research

past and current research interests

current work: single-cell and spatial genomics at 10x Genomics

Single-cell RNA-seq and spatial transcriptomics present statistical challenges: experiment design is hard, and the data is mostly observational. The scale of the data also presents algorithmic challenges. The data we generate can be thought of as an image with around 30,000 channels — each corresponding to a gene, and each sparse — in addition to an H&E image. Processing this presents many interesting algorithmic and statistical problems.

Some highlights from my work at 10x:

  • Visium HD: I worked on the Visium HD product, where we detect genes across different spatial areas of a tissue slice. This meant working in a tight loop with biologists on assay and protocol development — designing and optimizing metrics for sensitivity, specificity, and false-positive detection — and developing the algorithms that extract spatial signal from the data. Those algorithms ship in Visium HD and run in production for every Visium HD customer. The associated paper was published in Nature Genetics (2025), with a technical validation in the Journal of Molecular Diagnostics (2025).
  • Automated cell-type annotation: I have worked in and led teams that developed and shipped machine learning models end to end, most notably for annotating cell types in single-cell data — the algorithm behind Cell Ranger, described in Williams et al. (bioRxiv 2025) — and for annotating nuclei from H&E-stained microscope images. In both cases we went from figuring out what data we would need, to setting up data collection, cleaning, and labeling, to building, packaging, and shipping the model.
  • Agentic AI for single-cell workflows: I am building a tool-use agentic environment that automates single-cell analysis workflows, using eval-driven development — designing evaluation suites to measure agent performance, correctness, and failure modes, and using them to iteratively drive agent and model improvements, with attention to reliability and responsible use.
  • Reference-free spot deconvolution: I hold a patent (US20240287599A1) with Stephen Williams and Joey Arthur on reference-free deconvolution of spatial transcriptomics spots.

past research

The following are a sample of the problems I worked on during my doctoral and post-doctoral studies, and my master’s at IISc (prior to joining 10x Genomics):

  • Genome assembly: The genome of an organism is a long string of A, C, T, G. Current sequencing technology gives us noisy substrings of the genome called reads. These noisy reads are around 10,000 bases long, while genomes are millions to billions of bases. Assembling the genome from reads is a fundamental problem of computational genomics, and I worked on it from both a theoretical and a practical perspective.

    Assembly is constrained by repeats in the genome. We realized that the output of an assembler should be a graph in which every sequence corresponding to a genome is an Eulerian cycle (or tour, if the genome is linear). We wrote a practical assembler called HINGE (analysis), published in Genome Research, which is still under active development with quite a few users, primarily doing bacterial genomics (current focus: reducing memory footprint). The theoretical results, showing the goodness of a simplified version of HINGE from a rate-distortion perspective, appeared at ISIT.

  • Using Monte-Carlo tree search to speed up common ML algorithms: We considered common machine learning algorithms such as k-Nearest Neighbours and k-means, and showed that a Monte-Carlo search based algorithm provides speedups on the order of 10x in practice, with theoretical guarantees proved using the multi-armed bandit framework. This was presented at an NIPS 2017 workshop, in AISTATS 2018, and in the IEEE Journal on Selected Areas in Information Theory. Code: Meddit and combinatorial_MAB.

  • Low-rank models for sequence alignment: We considered a class of sequence-alignment algorithms — seed-and-extend — and drew connections to low-rank models. We derived spectral estimators for such models, then used the bandit framework above to speed up their computation. This was published in RECOMB 2020, Cell Patterns, and NeurIPS 2020. Code: adaptiveSpectral and spectral_jaccard_similarity.

  • Knowledge distillation and semiparametric inference: It has been observed that training a small model on logits (soft class labels) generated by a large model trained on the data does better than directly training the small model on the data. We cast knowledge distillation as a semiparametric inference problem and derived several new guarantees for the prediction error of standard distillation. Published at ICLR 2021.

  • Single-cell RNA-seq: With advances in biochemistry, researchers can now sequence RNA from single cells. There is very little RNA in each cell, millions of cells are sequenced, and each cell has an expression profile of tens of thousands of dimensions — a challenging computational problem. One basic application is clustering cells from their RNA-seq reads; we developed an equivalence-class-based method with significant computational savings over conventional methods, published in Genome Biology. Code: clustering_on_transcript_compatibility_counts.

  • Post-clustering differential analysis for single-cell RNA-seq: We noticed that standard single-cell RNA-seq pipelines had a data-snooping problem leading to artificially low p-values and a selection of spurious genes as differentiating clusters. We quantified this bias and proposed solutions, published at RECOMB 2019 and in Cell Systems. Code: tn_test.

  • Haplotype assembly, codes, and spectral algorithms: Humans and other higher organisms are diploid — they have two nearly identical copies of their genome, differing at less than 0.3% of sites. The problem is to estimate which polymorphisms lie on the same copy of a chromosome. We attacked this in two theoretical frameworks: as a convolutional code, and as a community-detection problem. These were published at ISIT 2015 and ICML 2016.

  • Codes for distributed storage: Distributed storage systems keep redundant copies of data across machines so the system survives node failures — and the design of that redundancy involves a fundamental trade-off between storage overhead and repair bandwidth (how much data must be downloaded to recover a failed node). During my master’s at the Indian Institute of Science with P. Vijay Kumar, I designed and proved optimality results for such codes: we reformulated the storage-bandwidth trade-off for regenerating codes with a new construction (NCC 2012), and introduced codes that combine local error correction with regeneration, proving their optimality in the IEEE Transactions on Information Theory (2014), with earlier versions at ISIT 2013 and ISIT 2012. This was part of a project funded by NetApp Inc.