diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml new file mode 100644 index 0000000..56b9577 --- /dev/null +++ b/.github/workflows/preview-build.yml @@ -0,0 +1,44 @@ +name: Preview build + +# Builds the site with the same builder GitHub Pages uses, so a green +# check here means the live build will succeed. The rendered site is +# uploaded as an artifact for previewing before merge. + +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: preview-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Build with Jekyll (GitHub Pages builder) + uses: actions/jekyll-build-pages@v1 + with: + source: ./ + destination: ./_site + + - name: Upload preview + id: upload + uses: actions/upload-artifact@v4 + with: + name: site-preview + path: _site + retention-days: 14 + + - name: Summary + run: | + echo "### Preview build passed" >> "$GITHUB_STEP_SUMMARY" + echo "Download: ${{ steps.upload.outputs.artifact-url }}" >> "$GITHUB_STEP_SUMMARY" + echo 'Unzip, then `python3 -m http.server -d site-preview`' >> "$GITHUB_STEP_SUMMARY" diff --git a/.gitignore b/.gitignore index 6eb92de..d4ad1df 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ _site/ # Vendored Vale linter styles (fetched via `vale sync`) .vale-styles/ +cv.pdf +cv-print.html diff --git a/Makefile b/Makefile index 363d5ed..fe9b3bd 100644 --- a/Makefile +++ b/Makefile @@ -1,29 +1,41 @@ -.PHONY: help serve server build clean install test - -BUNDLE := /opt/homebrew/opt/ruby/bin/bundle - -help: - @echo "Available commands:" - @echo " make serve - Serve the site locally with live reload" - @echo " make server - Serve the site locally (alias for serve)" - @echo " make build - Build the site for production" - @echo " make clean - Clean build artifacts" - @echo " make install - Install Jekyll dependencies" - @echo " make test - Serve site locally (alias for serve)" - -serve: - $(BUNDLE) exec jekyll serve --livereload - -server: serve - -build: - $(BUNDLE) exec jekyll build - -clean: - rm -rf _site .jekyll-cache .jekyll-metadata - -install: - gem install jekyll bundler - bundle install - -test: serve +.PHONY: help serve server build clean install test pdf + +BUNDLE := /opt/homebrew/opt/ruby/bin/bundle +CHROME ?= $(shell command -v google-chrome || command -v chromium || echo "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome") + +help: + @echo "Available commands:" + @echo " make serve - Serve the site locally with live reload" + @echo " make server - Serve the site locally (alias for serve)" + @echo " make build - Build the site for production" + @echo " make pdf - Render index.md to cv.pdf" + @echo " make clean - Clean build artifacts" + @echo " make install - Install Jekyll dependencies" + @echo " make test - Serve site locally (alias for serve)" + +serve: + $(BUNDLE) exec jekyll serve --livereload + +server: serve + +build: + $(BUNDLE) exec jekyll build + +# Needs pandoc and Chrome/Chromium on PATH (override with CHROME=/path/to/chrome) +pdf: + @command -v pandoc >/dev/null || { echo "make pdf needs pandoc: https://pandoc.org/installing.html"; exit 1; } + LC_ALL=C.UTF-8 pandoc index.md -f commonmark_x -s -o cv-print.html --css cv-print.css \ + -M title="Craig T. Russell, PhD" \ + -M subtitle="$$(sed -n 's/^title: //p' index.md)" + "$(CHROME)" --headless --no-sandbox --disable-gpu --no-pdf-header-footer \ + --print-to-pdf=cv.pdf "file://$(CURDIR)/cv-print.html" + rm -f cv-print.html + +clean: + rm -rf _site .jekyll-cache .jekyll-metadata cv.pdf cv-print.html + +install: + gem install jekyll bundler + bundle install + +test: serve diff --git a/_config.yml b/_config.yml index 5262603..92aaeaa 100644 --- a/_config.yml +++ b/_config.yml @@ -33,6 +33,8 @@ exclude: - Dockerfile - docker-compose.yml - docs/ + - cv-print.css + - cv-print.html # Site metadata diff --git a/cv-print.css b/cv-print.css new file mode 100644 index 0000000..317e1f0 --- /dev/null +++ b/cv-print.css @@ -0,0 +1,20 @@ +/* Print styles for cv.pdf (pandoc index.md -> HTML -> Chrome PDF). See `make pdf`. */ +@page { size: A4; margin: 10mm 13mm; } +body { font: 8.8pt/1.28 "Helvetica Neue", Arial, sans-serif; color: #111; } +h1 { font-size: 17pt; margin: 0 0 1mm; } +h2 { font-size: 10.5pt; text-transform: uppercase; letter-spacing: .06em; + border-bottom: 1px solid #999; margin: 2.6mm 0 1.2mm; padding-bottom: .6mm; } +p { margin: 0 0 1.2mm; } +ul, ol { margin: 0 0 1.2mm; padding-left: 4mm; } +li { margin: 0 0 .3mm; } +a { color: #0b4f8a; text-decoration: none; } +h2, strong { break-after: avoid; } +li { break-inside: avoid; } +/* undo pandoc's default page styles */ +html { background: #fff; } +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; } diff --git a/index.md b/index.md index da446fd..70e7c1d 100644 --- a/index.md +++ b/index.md @@ -1,116 +1,99 @@ --- -title: Machine Learning Scientist — Drug Discovery (Foundation Models) +title: Senior Machine Learning Scientist, generative and agentic models for biology layout: default --- London, UK • [linkedin.com/in/ctr26](https://linkedin.com/in/ctr26) • [github.com/ctr26](https://github.com/ctr26) • [Google Scholar](https://scholar.google.com/citations?user=XVt7BYQAAAAJ&hl=en) -*Focus:* Virtual cells, multi‑modal foundation models, omics + imaging, precision medicine +Generative and agentic models for biology • LLM post-training • out-of-distribution modelling • virtual cells • open to relocating to San Francisco -## Professional Summary -Machine Learning Scientist specialising in **virtual cell** development for drug discovery. Built and deployed **multi‑modal foundation models** that integrate knowledge graphs, text, transcriptomic and phenotypic imaging data. Experience spans molecular interactions to whole‑organism imaging. Comfortable leading across science and engineering—MLOps at TB‑scale, reproducible pipelines, and cross‑functional collaboration with biology, chemistry and platform teams. - -## Core Strengths -Foundation models • Representation/self‑supervised learning • Multi‑modal fusion • Knowledge graphs • Biological sequence & transcriptomics • High‑content imaging • GNNs • OOD/robustness • Scaling & performance • Reproducible ML (MLOps) • Scientific communication +## Summary +I build generative models that generalise to unseen biology, with the aim of building the first virtual cell. I have spent eight years applying machine learning to biological data, from light-sheet microscopy and terabyte-scale image archives to single-cell transcriptomics and knowledge graphs, and 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. ## Experience -**Senior Machine Learning Scientist — Valence Labs @ Recursion Pharmaceuticals** -London, UK • Oct 2024 – Present -- **Virtual Cell initiative:** Fine‑tune multi‑modal LLMs over **knowledge graphs + text + RNA‑seq + phenotypic imaging** to model cell state and predict gene/drug responses; partnered closely with biology to design benchmark tasks and success metrics. -- **TxPert:** Co‑developed a **state‑of‑the‑art transcriptomic perturbation predictor** using systems‑biology KGs; contributed training code, data curation, and ablations. -- **Boltz2 project:** Contributed to proteome‑scale **virtual drug screening** components; supported evaluation strategy and error analysis across targets. -- **Community:** Organiser, **Virtual Cell Journal Club**; fostered reading group bridging ML and wet‑lab teams. - -**Senior Research Associate & AI Engineering Lead — EMBL‑EBI (Uhlmann Group & Bio‑Image Archive)** +**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. +- Research engineering lead in a ~30-person research team; 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. + +**Senior Research Associate and AI Engineering Lead, EMBL-EBI (Uhlmann Group and Bio-Image Archive)** Cambridge, UK • Dec 2022 – Oct 2024 -- **Team leadership:** Supervised **6 PhD students**; established coding standards, CI, and peer‑review practices used across the lab. -- **Spatial biology:** Built deep‑learning pipelines for **high‑content cell morphology** and single‑cell feature learning; integrated with public bioimage resources. -- **Open‑source:** Created **[bioimage_embed](https://github.com/uhlmanngroup/bioimage_embed)** (self‑supervised biological images) and **[shape_embed](https://arxiv.org/abs/2507.01009)** (cell‑shape DL toolkit); productionised training/inference. -- **MLOps:** Designed scalable pipelines processing **TB‑scale microscopy datasets** across HPC and cloud; containerised workflows, automated experiment tracking. -- **Academic service:** Reviewer — ISBI 2022/2023, **ICASSP** 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. +- First author on **bia-binder** (*Bioinformatics* 2025), web-native cloud compute that sits beside the Bio-Image Archive. +- Designed scalable pipelines that process terabytes of microscopy across HPC and cloud, with containerised workflows and automated experiment tracking. + +*Part-time and consulting roles held alongside EMBL-EBI, 2022 – 2024* -**AI/ML Founding Engineer — Amun AI AB** +**AI/ML Founding Engineer (part-time), Amun AI AB** Stockholm, Sweden • 2022 – 2024 -- Built **GKE/Kubernetes** platform for model serving with **NVIDIA Triton/KServe**; supported **100+ models** for **30+ daily users** with auth, monitoring and autoscaling. +- Built a Kubernetes (GKE) model-serving platform on NVIDIA Triton and KServe, with auth, monitoring, and autoscaling, serving 100+ models to 30+ daily users. -**AI/ML Engineering Consultant — DeepMirror** -Cambridge & London, UK • 2022 – 2024 -- **MouseMindMapper:** Automated brain‑histology segmentation product generating **£50k annual revenue**; delivered end‑to‑end data, training, packaging and docs. -- Wrote a high‑performance **C++ cheminformatics fingerprinting** library for production use. +**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. -**Data Scientist — Brazma Group, EMBL‑EBI** +**Data Scientist, Brazma Group, EMBL-EBI** Cambridge, UK • Dec 2019 – Dec 2023 -- Co‑authored the successful **AI4LIFE €5M** grant (federated bioimage AI infrastructure); contributed to platform architecture and model‑sharing strategy. -- Drove **large‑scale AI microscopy** analyses in the Image Data Resource; collaborated with **Google Cloud** on representation learning. -- Taught annual deep‑learning courses to **40+ researchers** (PhD to PI). +- 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. -**Software Engineer (COVID‑19 Response) — European Nucleotide Archive, EMBL‑EBI** +**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** to enable **daily global data updates**. -- Scaled NGS alignment and **Nextflow/Kubernetes** ETL pipelines for surging data volumes. +- 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. -**Computational Microscopist — National Physical Laboratory** +**Computational Microscopist, National Physical Laboratory** London, UK • 2018 – Dec 2019 -- Developed novel **3D organoid segmentation** methods for cancer research; delivered consultancy to MSquared on advanced imaging. +- Developed new 3D organoid segmentation methods for cancer research, and consulted for MSquared on advanced imaging. ## Education -**PhD, Engineering — University of Cambridge** • 2014 – 2018 (EPSRC PES‑CDT) -*Thesis:* “Light‑sheet microscopy for tracking particles in large specimens” -- Designed & built a novel light‑sheet microscope with automated acquisition. -- Algorithms for particle tracking, signal optimisation, and micrometre‑scale tomography. -- Supervision: 2× MRes, 1× BSc. - -**MRes, Photonics — University of Cambridge & UCL** • 2013 – 2014 (EPSRC Photonics CDT) -- Structured‑illumination microscopy reconstruction; modules in Computer Vision, Quantum Mechanics, Photonics. - -**MSci, Physics (First‑Class Honours) — Nottingham Trent University** • 2009 – 2013 -- Top physics graduate; President, Mountaineering Club (2011–2012). +**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. -## Selected Publications & Preprints +**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 -1. **Wenkel F**, Tu W, Masschelein C, Shirzad H, Eastwood C, Whitfield ST, Bendidi I, **Russell CT**, et al. *TxPert: Leveraging Biochemical Relationships for Out‑of‑Distribution Transcriptomic Perturbation Prediction.* arXiv:2505.14919 (2025) +## Selected Publications -2. Harrison PW, Lopez R, Rahman N, Allen SG, Aslam R, Buso N, **Russell CT**, et al. *The COVID‑19 Data Portal: accelerating SARS‑CoV‑2 and COVID‑19 research through rapid open access data sharing.* Nucleic Acids Research 49(W1):W619–W623 (2021) +1. **TxPert**. Out-of-distribution transcriptomic perturbation prediction over biological knowledge graphs. *Nature Biotechnology* (2026), co-author. [doi:10.1038/s41587-026-03113-4](https://doi.org/10.1038/s41587-026-03113-4) +2. **ShapeEmbed**. Self-supervised learning of 2D contour representations. *NeurIPS* (2025), second author. [proceedings](https://proceedings.neurips.cc/paper_files/paper/2025/hash/124cc3a6e8f563555c8bba9f5ded690f-Abstract-Conference.html) +3. **bia-binder**. Web-native cloud compute for bioimage analysis. *Bioinformatics* (2025), *first author*. [doi:10.1093/bioinformatics/btaf412](https://doi.org/10.1093/bioinformatics/btaf412) +4. **MIFA**. Metadata and accessibility standards for reusable AI training datasets in bioimaging. *Nature Methods* (2025), co-author. [doi:10.1038/s41592-025-02835-8](https://doi.org/10.1038/s41592-025-02835-8) +5. **DL4MicEverywhere**. Reproducible, containerised deep learning for microscopy. *Nature Methods* (2024), co-author. [doi:10.1038/s41592-024-02295-6](https://doi.org/10.1038/s41592-024-02295-6) +6. **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) +7. **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) +8. **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) +9. **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) -3. Ouyang W, Beuttenmueller F, Gómez‑de‑Mariscal E, Pape C, Burke T, Garcia‑López‑de Haro C, **Russell C**, et al. *Bioimage model zoo: a community‑driven resource for accessible deep learning in bioimage analysis.* BioRxiv 2022.06.07.495102 (2022) - -4. Ahlers J, Moré DA, Amsalem O, Anderson A, Bokota G, Boone P, **Russell C**, et al. *napari: a multi‑dimensional image viewer for Python.* Zenodo 1–2 (2023) - -5. Hidalgo‑Cenalmor I, Pylvänäinen JW, Ferreira MG, **Russell CT**, et al. *DL4MicEverywhere: deep learning for microscopy made flexible, shareable and reproducible.* Nature Methods 21(6):925–927 (2024) - -See **Google Scholar** for complete publication list: [scholar.google.com/citations?user=XVt7BYQAAAAJ](https://scholar.google.com/citations?user=XVt7BYQAAAAJ&hl=en) +The full list is on [Google Scholar](https://scholar.google.com/citations?user=XVt7BYQAAAAJ&hl=en). ## Patents -- **Virtual Cell Foundation Model** • Patent pending • 2024 • Multi‑modal integration of knowledge graphs, transcriptomics and imaging for cellular state prediction (Hook1/Recursion) -- **TxPert: Transcriptomic Perturbation Prediction** • Patent pending • 2024 • Systems‑biology knowledge graph integration for gene expression response forecasting (Recursion) - -## Open Source (Selected) -- **[bioimage_embed](https://github.com/uhlmanngroup/bioimage_embed)** — Self‑supervised learning for biological images. -- **[shape_embed](https://arxiv.org/abs/2507.01009)** — Deep‑learning toolkit for cell‑shape analysis. -- Contributions to **Hypha Platform**, **BioImage Model Zoo**, **BIA Binder**, **Hypha Helm Charts**, **COVID Workflow Manager**. +- **Virtual Cell Foundation Model**, patent pending, 2024 (Recursion) +- **TxPert, transcriptomic perturbation prediction**, patent pending, 2024 (Recursion) ## Skills -**ML & AI:** Foundation‑model fine‑tuning, contrastive/self‑supervised learning, OOD & uncertainty, evaluation/ablation design -**Frameworks:** PyTorch, TensorFlow, Lightning, Pyro, Hugging Face, scikit‑learn -**Vision & Bio:** Bioimage analysis, 3D reconstruction, segmentation/super‑resolution, **snRNA‑seq/bulk RNA‑seq**, histopathology, fluorescence imaging, **GNNs**, knowledge graphs -**Languages:** Python (primary), R, MATLAB, C++, Java -**Compute:** Multi‑GPU training (A100/V100), CUDA, distributed training, SLURM, HPC, GCP/AWS GPU instances -**MLOps/Infra:** Kubernetes, Docker, **NVIDIA Triton**, **KServe**, MLflow, CI/CD, Terraform -**Workflows:** Nextflow, Snakemake, Apache Airflow - -## Grants & Awards -- **AI4LIFE** (2022) — Co‑investigator on **€5M** EU grant (federated bioimage AI) -- **EPSRC CDT Studentship** (2013–2018) — Photonic & Electronic Systems CDT (£120k) -- **Nuffield Research Bursary** (2012) — Computer vision for liquid‑crystal flows -- **Institute of Physics** grant support (2009–2012) - -## Teaching, Mentoring & Service -- **Course lead:** Deep Learning for Bioimage Analysis (2019–2023), 40+ participants/year -- **Supervision:** 6 PhD students (AI & spatial biology) + 3 project students (PhD years) -- **Peer review:** Nature Methods, Scientific Reports, Journal of Microscopy, ISBI, **ICASSP** -- **Talks & conferences:** FOM (2018, 2022, 2023), MMC (2018, 2022), CBIAS (2023) -- **Community leadership:** Rowing captain/coach (Magdalene College), Mountaineering Club President (NTU) - -*References available upon request.* +**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 +**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) +- **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) +- **Talks.** FOM (2018, 2022, 2023), MMC (2018, 2022), CBIAS (2023)