diff --git a/_config.yml b/_config.yml index 92aaeaa..277d216 100644 --- a/_config.yml +++ b/_config.yml @@ -37,6 +37,9 @@ exclude: - cv-print.html # Site metadata - -description: > +url: "https://ctr26.github.io" +author: Craig T. Russell +description: >- + Craig T. Russell, PhD, Senior Machine Learning Scientist at Valence Labs (Recursion Pharmaceuticals), + building generative and agentic models for biology. diff --git a/assets/main.scss b/assets/main.scss new file mode 100644 index 0000000..f38c527 --- /dev/null +++ b/assets/main.scss @@ -0,0 +1,35 @@ +--- +# Overrides the Minima theme's main.scss so the print rules load on every page +--- + +@import "minima"; + +/* Print: a compact A4 CV when the page is printed or saved as PDF from the browser */ +@page { size: A4; margin: 10mm 13mm; } + +@media print { + html { font-size: 9pt; } + body { font-size: 9pt; line-height: 1.27; color: #111; background: #fff; } + .wrapper { max-width: none; padding: 0; margin: 0; } + + /* header becomes the name and job title; nav menu and footer go */ + .site-header { border: 0; min-height: 0; margin-bottom: 2mm; } + .site-title { float: none; display: block; font-size: 17pt; font-weight: 700; + line-height: 1.2; color: #111; letter-spacing: 0; } + .site-nav { float: none; position: static; border: 0; background: none; line-height: 1.3; } + .site-nav label, .site-nav .nav-trigger { display: none; } + .site-nav .trigger { display: block; } + .site-nav .page-link { display: block; font-size: 10.5pt; color: #444; margin: 0; } + .site-footer { display: none; } + + .page-content { padding: 0; } + .page-content p, .page-content li { text-align: left; } + h2 { font-size: 11pt; font-weight: 700; margin: 3mm 0 1.2mm; padding-bottom: .5mm; + border-bottom: 1px solid #999; text-transform: uppercase; letter-spacing: .05em; + break-after: avoid; } + p { margin: 0 0 1.4mm; } + ul, ol { margin: 0 0 1.6mm 4mm; } + li { margin: 0 0 .4mm; break-inside: avoid; } + p + ul, p + ol { margin-top: -.4mm; } + a { color: inherit; text-decoration: none; } +} diff --git a/cv-print.css b/cv-print.css index 317e1f0..e8a9c58 100644 --- a/cv-print.css +++ b/cv-print.css @@ -16,5 +16,5 @@ body { max-width: none; margin: 0; padding: 0; } header#title-block-header { margin: 0 0 2mm; } h1.title { font-size: 17pt; margin: 0 0 1mm; text-align: left; } p.subtitle { font-size: 10.5pt; color: #444; margin: 0; text-align: left; } -/* the site links to the PDF; hide that link inside the PDF */ -p:has(> a[href="cv.pdf"]) { display: none; } +/* Keep a role heading (the paragraph before its bullets) on the same page as them. */ +p:has(+ ul) { break-after: avoid; } diff --git a/index.md b/index.md index 5f9a7d1..4fd5c81 100644 --- a/index.md +++ b/index.md @@ -7,61 +7,63 @@ London, UK • [linkedin.com/in/ctr26](https://linkedin.com/in/ctr26) • [githu Generative and agentic models for biology • LLM post-training • out-of-distribution modelling • virtual cells ## Summary -I build generative models that generalise to unseen biology, with the aim of building the first virtual cell. I apply machine learning to biological data, from light-sheet microscopy and terabyte-scale image archives to single-cell transcriptomics and knowledge graphs, and have published in *Nature Biotechnology*, *NeurIPS*, and *Nature Methods*. I write the research code and the infrastructure under it, from tools other labs use to agents grounded in real biological databases and training and inference on cloud and HPC. +I build generative models that generalise to unseen biology, aiming to build the **first virtual cell**. I apply machine learning to biological data, from light-sheet microscopy and terabyte-scale image archives to single-cell transcriptomics and knowledge graphs. I have published in *Nature Biotechnology*, *NeurIPS*, and *Nature Methods*. I write **the research code and the infrastructure under it**, from tools used by other labs to agents grounded in real biological databases, and training and inference on cloud and HPC. ## Experience **Senior Machine Learning Scientist, Valence Labs @ Recursion Pharmaceuticals** London, UK • Oct 2024 – present -- Build agents that use real biological databases as tools; they decode within Ensembl, HGNC, and ChEMBL vocabularies, check their tool calls against structured resources, and are grounded by retrieval and verifier ensembles. The gene–gene hypotheses they produce are explainable and draw on several sources. -- Co-authored **TxPert** (*Nature Biotechnology*, 2026), a state-of-the-art transcriptomic perturbation predictor conditioned on multiple biological knowledge graphs; I owned benchmark task design, data curation, and the out-of-distribution ablations. -- Post-train multimodal LLMs over knowledge graphs, literature, and omics, and use reinforcement learning to align agent behaviour with verifiable biological objectives. -- Train large diffusion transformers to generate perturbational biology that generalises to perturbations, cell types, and combinations the model has never seen, rather than interpolating between ones it has. -- Model single-cell and bulk RNA-seq jointly with high-content phenotypic imaging, since each modality pins down what the other leaves open. -- Design active learning strategies that choose the next experiment under a fixed budget, closing the loop between model uncertainty and what the wet lab can run. -- Lead the engineering on a large scientific project; I set technical direction and engineering standards across ML and biology, scale training and inference across GPUs in the cloud, and encourage the code review, reproducibility, and shared tooling that carry research prototypes into production. -- Work on evaluation strategy and error analysis for proteome-scale binding-affinity screening. -- Organise the Virtual Cell Journal Club, which brings the ML and wet-lab teams together. +- Build **agents that use real biological databases as tools**. They decode within Ensembl, HGNC, and ChEMBL vocabularies, check tool calls against structured resources, and use retrieval and verifier ensembles for grounding. Their gene–gene hypotheses are explainable and draw on several sources. +- Co-authored **TxPert** (*Nature Biotechnology*, 2026), a state-of-the-art transcriptomic perturbation predictor conditioned on multiple biological knowledge graphs. Owned **benchmark task design**, **data curation**, and the **out-of-distribution ablations**. +- **Post-train multimodal LLMs** over knowledge graphs, literature, and omics; use **reinforcement learning** to align agent behaviour with verifiable biological objectives. +- Train **large diffusion transformers** to generate perturbational biology that generalises to unseen perturbations, cell types, and combinations, rather than interpolating between ones it has. +- Model **single-cell and bulk RNA-seq** jointly with **high-content phenotypic imaging**; each modality pins down what the other leaves open. +- Design **active learning** strategies to choose the next experiment under a fixed budget, linking model uncertainty to experiments the wet lab can run. +- **Lead the engineering** on a large scientific project. Set technical direction and engineering standards across ML and biology; scale training and inference across **GPUs in the cloud**; promote code review, reproducibility, and shared tooling to carry research prototypes into production. +- Work on **evaluation strategy and error analysis** for proteome-scale binding-affinity screening. +- Organise the **Virtual Cell Journal Club**, bringing ML and wet-lab teams together. **Senior Research Associate and AI Engineering Lead, EMBL-EBI (Uhlmann Group and Bio-Image Archive)** Cambridge, UK • Dec 2022 – Oct 2024 -- Supervised 6 PhD students, and set the lab's coding standards, CI, and peer review. -- Created **[bioimage_embed](https://github.com/uhlmanngroup/bioimage_embed)** and co-authored **ShapeEmbed** (*NeurIPS* 2025), which learn contour and morphology representations without labels; both ship as production Python used by other labs. -- Designed scalable pipelines that process terabytes of microscopy across HPC and cloud, with containerised workflows and automated experiment tracking. +- Supervised **6 PhD students**; set the lab's *coding standards, CI, and peer review*. +- Created **[bioimage_embed](https://github.com/uhlmanngroup/bioimage_embed)** and co-authored **ShapeEmbed** (*NeurIPS* 2025), which learn contour and morphology representations without labels. Both ship as *production Python used by other labs*. +- Designed scalable, containerised pipelines with automated experiment tracking to process **terabytes of microscopy** across HPC and cloud. *Part-time and consulting roles held alongside EMBL-EBI, 2022 – 2024* **AI/ML Founding Engineer (part-time), Amun AI AB** Stockholm, Sweden • 2022 – 2024 -- Built a Kubernetes (GKE) model-serving platform on NVIDIA Triton and KServe, with auth, monitoring, and autoscaling, serving 100+ models to 30+ daily users. +- Built a Kubernetes (GKE) model-serving platform on NVIDIA Triton and KServe, with auth, monitoring, and autoscaling. Served **100+ models** to **30+ daily users**. **AI/ML Engineering Consultant (part-time), DeepMirror** Cambridge and London, UK • 2022 – 2024 -- Shipped **MouseMindMapper**, a brain-histology segmentation product that brings in £50k of revenue a year, and owned it end to end, from data and training to packaging and docs. -- Wrote a high-performance C++ cheminformatics fingerprinting library for production. +- Shipped **MouseMindMapper**, a brain-histology segmentation product bringing in **£50k of revenue a year**. Owned it end to end, from data and training to packaging and docs. +- Wrote a high-performance **C++ cheminformatics fingerprinting library** for production. **Data Scientist, Brazma Group, EMBL-EBI** Cambridge, UK • Dec 2019 – Dec 2023 -- Co-authored the successful €5M **AI4LIFE** grant for federated bioimage AI infrastructure, and contributed to its platform architecture and model-sharing strategy. -- Drove large-scale AI microscopy analyses in the Image Data Resource, and worked with Google Cloud on representation learning. -- Taught an annual deep learning course to 40+ researchers, from PhD students to PIs. +- Co-authored the successful **€5M AI4LIFE grant** for federated bioimage AI infrastructure; contributed to its platform architecture and model-sharing strategy. +- Drove large-scale AI microscopy analyses in the **Image Data Resource**; worked with *Google Cloud* on representation learning. +- Taught an annual deep learning course to **40+ researchers**, from PhD students to PIs. **Software Engineer (COVID-19 response), European Nucleotide Archive, EMBL-EBI** Cambridge, UK • Mar 2020 – Sept 2020 -- Built CI/CD for the **COVID-19 Data Portal**, which let it publish global data daily, and scaled NGS alignment and ETL in Nextflow and Kubernetes as volumes surged. +- Built CI/CD for the **COVID-19 Data Portal**, so it published global data daily. Scaled NGS alignment and ETL in Nextflow and Kubernetes as volumes surged. **Computational Microscopist, National Physical Laboratory** London, UK • 2018 – Dec 2019 -- Developed new 3D organoid segmentation methods for cancer research, and consulted for MSquared on advanced imaging. +- Developed new **3D organoid segmentation** methods for cancer research; consulted for MSquared on advanced imaging. ## Education **PhD, Engineering, University of Cambridge** • 2014 – 2018 (EPSRC PES-CDT) -Thesis on light-sheet microscopy for tracking particles in large specimens -- Designed and built a new light-sheet microscope with automated acquisition, and wrote algorithms for particle tracking, signal optimisation, and micrometre-scale tomography. Supervised two MRes students and one BSc student. +*Thesis on light-sheet microscopy for tracking particles in large specimens* +- Designed and built a **new light-sheet microscope**, and wrote the code that ran it. Automated acquisition, **bead tracking** for **homographic alignment** of the optics, and signal optimisation driven by the tracker. +- Wrote **flOPT**, a micrometre-scale tomographic reconstruction that recovers sample pose from tracked fiducial beads and back-projects each ray, so it stays robust to mechanical jitter and drift where the Radon transform breaks down. Published in *Scientific Reports*, open-source Python with OpenCV. +- Supervised two MRes students and one BSc student. -**MRes, Photonics, University of Cambridge and UCL** • 2013 – 2014 • structured illumination microscopy reconstruction -**MSci, Physics (First-Class Honours), Nottingham Trent University** • 2009 – 2013 • top physics graduate +**MRes, Photonics, University of Cambridge and UCL** • 2013 – 2014 • *structured illumination microscopy reconstruction* +**MSci, Physics (First-Class Honours), Nottingham Trent University** • 2009 – 2013 • *top physics graduate* ## Selected Publications @@ -72,7 +74,7 @@ Thesis on light-sheet microscopy for tracking particles in large specimens 5. **CIR4MICS**. Synthetic ground truth for benchmarking image-analysis methods. *Bioinformatics* (2023), co-author. [doi:10.1093/bioinformatics/btad587](https://doi.org/10.1093/bioinformatics/btad587) 6. **The COVID-19 Data Portal**. Rapid open data sharing for SARS-CoV-2 research. *Nucleic Acids Research* 49(W1) (2021), co-author. [doi:10.1093/nar/gkab417](https://doi.org/10.1093/nar/gkab417) 7. **mmSIM**. Open toolbox for structured illumination microscopy. *Phil. Trans. R. Soc. A* (2021), *first author*. [doi:10.1098/rsta.2020.0353](https://doi.org/10.1098/rsta.2020.0353) -8. **Frame-localisation OPT**. Reconstruction for optical projection tomography. *Scientific Reports* (2021), *first author*. [doi:10.1038/s41598-021-83454-z](https://doi.org/10.1038/s41598-021-83454-z) +8. **Frame-localisation OPT (flOPT)**. Tomographic reconstruction from tracked fiducial beads. *Scientific Reports* (2021), *first author*. [doi:10.1038/s41598-021-83454-z](https://doi.org/10.1038/s41598-021-83454-z) The full list is on [Google Scholar](https://scholar.google.com/citations?user=XVt7BYQAAAAJ&hl=en). @@ -84,13 +86,13 @@ The full list is on [Google Scholar](https://scholar.google.com/citations?user=X **ML and AI.** Diffusion transformers, generative modelling, fine-tuning and post-training foundation models, reinforcement learning, agents and tool use, constrained decoding and retrieval grounding, active learning, contrastive and self-supervised learning, OOD and uncertainty, evaluation and benchmark design **Frameworks.** PyTorch, Lightning, Hugging Face, Pyro, TensorFlow, scikit-learn -**Biology and data.** Single-cell and bulk RNA-seq, high-content and phenotypic imaging, histopathology, GNNs, knowledge graphs; UniProt, PDB, Ensembl, NCBI, ChEMBL +**Biology and data.** Single-cell and bulk RNA-seq, high-content and phenotypic imaging, histopathology, GNNs, knowledge graphs; UniProt, PDB, Ensembl, HGNC, NCBI, ChEMBL **Languages.** Python (primary), R, C++, Rust, MATLAB, Java **Compute.** Multi-GPU (A100, V100), CUDA, distributed training, SLURM, HPC, GCP, AWS **MLOps and infrastructure.** Kubernetes, Docker, NVIDIA Triton, KServe, MLflow, CI/CD, Terraform; Nextflow, Snakemake, Airflow ## Grants, Teaching, and Service -- **Grants.** AI4LIFE (2022, €5M EU Horizon, co-author) • EPSRC CDT Studentship (2013–2018, £120k) • Nuffield Research Bursary (2012) +- **Grants.** AI4LIFE (2022, €5M EU Horizon, co-author) • EPSRC CDT Studentship (2013 – 2018, £120k) • Nuffield Research Bursary (2012) - **Teaching.** Led the Deep Learning for Bioimage Analysis course (2019–2023), 40+ participants a year - **Supervision.** 6 PhD students in AI and spatial biology, and 3 project students - **Peer review.** Nature Methods, Scientific Reports, Journal of Microscopy, ISBI (2022, 2023), ICASSP (2024)