Software

Methods I have built or contributed to, and where to find them.

Open-source statistical genomics software: CliPP, DeMixNB, DeMixT, TmS, and MuSE.

I have authored and contributed to several methods over the course of my research career. I have highlighted my role and contributions to some key methods below.

DeMixNB

Deconvolution of sparse-count RNA sequencing data. A semi-reference-based model that treats a mixed sample as a sum of negative binomial distributions, which makes deconvolution work on data where counts are too low for the usual Gaussian assumptions, microRNA-seq and spatial transcriptomics in particular. Distributed as part of the DeMixT package.

My role: co-first author. Helped develop the model, designed and analyzed the benchmark dataset, and ran the applications to breast cancer miRNA-seq.

GitHub Paper

CliPP

Subclonal reconstruction via pairwise penalization. Clusters somatic mutations into subclones using a regularized likelihood with a pairwise penalty, fast enough to run on cohorts rather than case studies: over 12,000 whole-genome and whole-exome samples in under 24 hours. There is a hosted Shiny application if you want to try it without installing anything.

My role: co-author on the method; designed and executed the pan-cancer analysis of 7,827 tumors across 32 cancer types that established subclonal mutational load as a prognostic marker.

GitHub Shiny app Paper

TmS

Tumor-specific total mRNA expression. Estimates how much mRNA tumor cells actually produce, by combining transcriptomic deconvolution with purity and ploidy from matched genomic data. This recovers a quantity that standard RNA-seq normalization discards, and it turns out to carry prognostic information across cancer types.

My role: contributing author on the method and the pan-cancer application across 6,590 tumors in 15 cancer types. Led the ATAC-seq integration that validated key signature genes.

GitHub Shiny app Paper

MuSE

Somatic mutation calling with sample-specific error modeling. Most callers assume a shared error profile across samples. MuSE fits the error model per sample, which matters when sequencing runs differ in quality, as they always do in a real cohort.

My role: co-author on the methods chapter documenting the approach; optimized the production calling pipeline across 7,000+ whole exomes.

GitHub Methods chapter

Workshop material

I run occasional methods tutorials for my lab group. The writeups are on the blog.

Working style

R and Python for analysis; SQL and DuckDB when the data outgrows memory; Snakemake and Docker for standardized pipelines; Quarto for reports and Shiny or Observable when a result needs to be explored. I care about reproducibility and effective data visualization as core aspects of good science.