# work

Work

Everything I have built, in one place: the interactive apps, the packages that sit underneath them, and the databases I have curated.

app

tahoe-explorer

single-cell · perturbation · duckdb

Filter and subset Tahoe-100M perturbation metadata, 100.6 million rows, and leave with a reproducible pull recipe. Summaries push down to DuckDB.

app

recount-explorer

rna-seq · recount3 · shiny

Shiny app to browse, analyze, and export recount3 RNA-seq studies: 18,998 datasets, quality checks, and PCA.

app

variant-reviewer

variants · annotation · clinical genetics

One gene, one variant, one page. Eighteen cards fan out asynchronously across public APIs, with a 3D structure viewer and a ClinVar typeahead.

app

Plotomics Live

visualization · webgl · shinyreact · spatial

Twenty-six pages of GPU-accelerated visualization through shinyreact, in 476 lines of R, one of which is the UI. Precomputed .f32 blobs go straight to the GPU.

packagebioclients hex logo

bioclients

R

One client per biological database, each split into a request half and a pure parser half that needs no network to test. Transport and caching are left to biohttp.

packagebiohttp hex logo

biohttp

R

Normalized HTTP transport. Calls return a result value rather than raising, so transport failure, a bad status code and an unreadable body stay distinct outcomes. Circuit breaking, retry and caching are defaults.

teaching

R for Beginners

quarto · slides · carpentries

Interactive R lessons with paired slide decks, built on the Gapminder dataset for workshops and self-paced learning. Adapted from Software Carpentry's R novice course.

database

GlucoKinaseDB

php · mysql · javascript · html/css

Manually curated database of 1,700+ glucokinase modulators with bioactivity and chemical data, in-browser 3D structure visualization, and API endpoints.

database

PepEngine

php · mysql · javascript · html/css

Manually curated structural database of synthetic peptides containing the non-standard amino acids α,β-dehydrophenylalanine (ΔF) and α-aminoisobutyric acid (Aib).

app

gene-list-builder

gene-disease · target discovery · provenance

Resolve a disease name to an EFO/MONDO term, query seven gene-disease sources in parallel, and dedupe to one row per gene. Re-ranks live as you tune the source weights.

app

draft-reviewer

shiny · markdown · reviews

Local Shiny app for reviewing Markdown drafts in the browser: paragraph-anchored comments that survive edits, reviews saved as plain YAML, and an optional bring-your-own-key AI assistant. No server, no database, everything is a file.

app

Multi-Omics Locus Viewer (MOLV)

shiny · multi-omics · gwas

Shiny application and R package I built for the Human Genetics team at Genentech for locus-first, integrative visualization across 11,000+ GWAS, eQTL, pQTL, single-cell, and ATAC-seq datasets in Alzheimer's disease.

internal
app

RAPTOR

python · agentic ai · ontologies

Record-based Abstraction of Phenotypes, Terms, Ontologies, and Disease Relations. An agentic AI system that pulls phenotypes, genes, diseases, and ontology-linked concepts out of unstructured patient records.

internal
app

NF1 scRNA-seq Integration App

shiny · single-cell · nf-core

Shiny app that brings nf-core outputs together with Seurat, pseudobulk, and CellChat for end-to-end single-cell and single-nuclei RNA-seq exploration in one place.

internal
app

NF1 Rat Exome Data Explorer

shiny · exome · nf-core

Interactive explorer that combines nf-core whole-exome outputs with variant tools and AI-assisted analysis for NF1-associated tumor models.

internal
database

VIRdb 2.0

php · mysql · javascript · html/css

Vitiligo research database with differentially expressed genes, curated protein targets, natural compounds, and co-expression network visualizations.

app

BioDivPortal

shiny · leaflet · geospatial

R Shiny app that maps and visualizes species occurrences across Poland, using Leaflet for geospatial mapping and dygraphs for time-series exploration.

app

ondemand-html-renderer

chrome extension · javascript · hpc

Chrome extension that restores HTML report viewing in OnDemand v2+. It detects report output and opens it in a clean preview tab instead of the broken in-app rendering.

Every row is something I shipped, every column a skill it uses. Hover a cell to trace it, click a row to open the work.