Computational biologist working across CRISPR screens, genetics, transcriptomics, multi-omics, clinical data and ontologies. Industry background, mostly pharma and biotech. Spare cycles go into open-source tooling: R packages and Python libraries for computational biology and Rust crates under the hood that make them fast. Firm believer that good science needs performant open-source software that runs without a fat compute bill.
Currently playing with burn for deep learning and writing GPU kernels via cubecl.
All MIT licensed. R binaries on R-universe (no Rust compile), Python on PyPI, Rust on crates.io if you want the crates in your own stuff.
| R | Python | Rust | Description |
|---|---|---|---|
| bixverse bixverse.plots |
bixverse-rs | The kitchen sink. Enrichment, matrix factorisation, gene diffusion and a single cell suite that does a million cells on 16 GB. Plots live in bixverse.plots. |
|
| bixverse.gpu | SIMD not enough? GPU kNN, k-means, Harmony, SCENIC, SEACells, Scrublet, sparse PCA and parametric UMAP. | ||
| annsearchR | ann-search | ann-search-rs | Blazingly fast nearest neighbour search. Loads of indices, quantised variants, GPU via wgpu. |
| manifoldsR | manifolds-rs | manifolds-rs | UMAP, tSNE, PaCMAP, PHATE, ForceAtlas2 and diffusion maps. |
| evoc-rs | evoc-rs | Port of EVoC clustering. In R via manifoldsR. |
|
| genewalkR | node2vec-rs | node2vec and metapath2vec, plus GeneWalk, GeneDrift and other graph methods. | |
| bonsai-rs | bonsai-rs sanity-sc-rs |
Ports of Bonsai and Sanity. Trees where distances hold at every scale. | |
| edge-rs | edgeR, limma-voom and NEBULA in Rust. NEBULA on the GPU. | ||
| splatter-sc | CLI version of splatter for synthetic benchmark data. | ||
| cubecl-utils-rs | Shared cubecl kernel helpers across my crates. |




