Almost all my projects are publicly hosted on GitHub, where my account name is namemcguffin. Below is a brief overview of the work I’ve done recently.
usci: untitled spatial correlation implementation
While working to address reviewer concerns for a publication involving a spatial-transcriptomics dataset, I wanted to quantify levels of spatially biased co-expression between gene programs in different cell sets. I also used this as an opportunity to learn more about Rust and R interoperability via extendr by implementing the core logic in Rust to optimize runtime performance and memory use. Moreover, using Rust allowed me to introduce multithreaded CPU parallelism via the rayon library with minimal friction. Finally, I also implemented an approximation routine that can cut down on runtime by orders of magnitude in common use-cases while incurring minimal drifts in accuracy.
Documentation for the package is available at https://goeva-lab.ccbr.utoronto.ca/usci. The package manual is uploaded in each latest release. Source code is available on GitHub under the goeva-lab/usci repo.
glmGamPoi performance and memory optimization
glmGamPoi is an existing (and excellent) library for differential gene expression analysis. However, the current version of the library (as of October 2026) represents gene counts as a dense matrix, even when a sparse representation is initially provided and significantly preferable. During my work in the Goeva lab, we were interested in using glmGamPoi with atlas-scale scRNA-seq data, which lead to issues as representing such data in a dense fashion in memory is incredibly prohibitive. As such, I developed an internal fork which maintains a sparse representation for inputs throughout the model fitting process. Moreover, I was also interested in unlocking cross-gene parallelism for the beta and overdispersion estimation processes. To do this, I rewrote the library’s C++ internals to use Eigen (instead of Armadillo), and enabled parallelization using the subpar library. Finally, I reimplemented overdispersion estimation to utilize a Newton-Raphson routine implemented in C++ to avoid calling back into R.
Source code for the fork is available on GitHub under the goeva-lab/glmGamPoi repo. A pull request was filed for merging with upstream under PR#77.
found: a HiDDEN implementation
HiDDEN is a previously published method for refining batch-level labels in scRNA-seq data. When I joined the Goeva lab, I developed a HiDDEN implementation with a focus on extensibility and accessibility, providing both Python and R bindings as well as extensive documentation.
A preprint discussing this implementation is available on bioRxiv at DOI:10.64898/2026.04.10.717768. Documentation for the Python package is available at https://goeva-lab.ccbr.utoronto.ca/found/py. Documentation for the R package is available at https://goeva-lab.ccbr.utoronto.ca/found/R. Source code is available on GitHub under the goeva-lab/found repo.
UAPL: untitled anndata plotting library
I generally prefer a grammar of graphics style plotting API, but couldn’t find anything that allowed for using AnnData objects ergonomically with plotnine, which is my plotting library of choice when doing Python work. As such, I decided to make a set of adapters for making AnnData-stored data available to plotnine, which I’ve since found very useful for rapid iteration.
Source code is available on GitHub under the goeva-lab/uapl repo.
UMAT: untitled MERSCOPE analysis tool
When working with some MERSCOPE data, I faced many issues with stability and scaling of existing tooling used to conduct initial processing (e.g. segmentation and transcript assignment). I became frustrated enough that I decided to make my own tool to resolve this, which I’ve used for all MERSCOPE data processing I have done since.
Source code is available on GitHub under the namemcguffin/umat repo.
SCS: spatial cell selector
While procrastinating from writing my Master’s thesis, I decided to write a tool which lets you easily select cells from spatial transcriptomics datasets using arbitrary bounding boxes, since nothing (at the time) allowed me to do this easily. I’ll note that these days, I would recommend checking out the napari-spatialdata or celldega projects to resolve this problem.
Source code is available on GitHub under the namemcguffin/scs repo.
UDP: untitled dataviz project
When I joined the Stratton lab, I was charged with making a static-site based visualization portal for a couple scRNA-seq datasets. I’ll note that these days, I would recommend out checking out the kana project to resolve this problem.
Source code is available on GitHub under the stratton-lab/dataviz repo.