14 projects

Things I build

Benchmarks, models, databases, the pipelines behind the papers, and the years in industry that taught me to ship them. Everything here was used by somebody who isn't me — that is the only rule for getting on this page.

Teaching material has a page of its own. Everything else is on GitHub.

Benchmarks and datasets

Nearly everything I build starts as a complaint about an evaluation. A model that exploits an artefact posts a beautiful number and teaches you nothing, so somebody has to make the comparison fair first.

  1. 2025 – present

    Genomic Benchmarks QC

    Automated quality control for genomic machine-learning datasets. It scores the biases, duplicate sequences and train/test leakage a classifier could exploit before you train on it — length differences, GC content, per-position give-aways, near-duplicate overlap between splits — and gives each check a pass / warning / fail flag, a report you can read and a CSV you can drop into CI. It is the general form of the problem behind everything else in this section: rather than curate one more clean dataset, check the one you already have. I designed it, wrote it and maintain it.

    pythonbenchmarkstooling

  2. 2024 – 2025

    miRBench

    Benchmark datasets and a Python package for miRNA target-site prediction, built to remove the frequency-class bias that quietly inflates published scores. It ships the data, the splits and wrappers around the existing predictors, so a new method can be measured against all of them in one call instead of six afternoons. I led the project and supervised the students who built much of it.

    pythonbenchmarksmiRNA

  3. 2021 – 2023

    Genomic Benchmarks

    Eight curated datasets for genomic sequence classification across human, mouse and roundworm, each with a sensible split and a baseline model, so a new architecture has something honest to beat. Installable as a package and mirrored on Hugging Face — the field's most common excuse for not comparing fairly is that it was too much work. I led it and first-authored the paper.

    pythonpytorchdatasets

Shipped in industry

Seven years of software engineering before and alongside research. Mostly closed source, so there is nothing to click — but it is where I learned how software is built to last, and most of what I think computational biology should borrow.

  1. 2023

    Reading street signs at city scale

    Melown Technologies

    A computer-vision model that recovers the text on a street sign from many low-quality views of it, inside a pipeline building 3D models of entire cities. Research prototype through to something that ran unattended.

    computer visionproduction

  2. 2021 – 2022

    Product matching across catalogues

    Proficio / Databy

    NLP that decides when two listings from different sellers are the same physical product, plus the unglamorous text cleaning that made the listings comparable in the first place.

    nlppython

  3. 2020 – 2021

    SuiteAnalytics Connect

    Oracle NetSuite

    Third-party analytics access to NetSuite data — the layer that lets a customer point their own reporting tool at the system and get an answer. Java, SQL and ODBC, at a scale where a careless query is everyone's problem.

    javasql

  4. 2018 – 2020

    Test infrastructure and CI

    Tieto

    Continuous integration and the test infrastructure around a large Java system. This is where the habit of not believing a result until something else re-runs it comes from.

    javaci

  5. 2016 – 2018

    Corpora Processing Software

    Knowledge Technology group, Brno University of Technology

    Tooling for building and querying very large annotated text corpora. My first research job, and the first time something I wrote was used by people I had never met.

    nlptooling

Models and methods

Sequence in, prediction out — and, wherever I can manage it, some account of what the model actually noticed.

  1. 2022 – 2026

    miRBind and miRBind2

    Deep learning models that decide whether a microRNA binds a given site, trained on chimeric read data rather than on the seed-match rules everyone assumed. The second version goes a step further and predicts how much the transcript is actually repressed, from sequence alone.

    deep learningmiRNA

  2. 2022 – 2023

    Attribution sequence alignment

    A way to make a model say what it noticed. Attribution gives you one importance score per nucleotide, which is not yet a motif; aligning those profiles across many sequences makes the patterns a network has learned visible as patterns — something a biologist can argue with, and occasionally something nobody had written down.

    interpretabilitydeep learning

Databases and web services

Things with a URL, so that using them costs nobody an afternoon.

  1. 2023 – 2026

    AlphaFind and AlphaFind2

    Structure-similarity search across the whole of AlphaFold DB. Pretrained networks compress each structure into an embedding, which turns an all-against-all comparison over more than 200 million structures into a query you can wait for. The second version searches TED domains as well, so a hit can be a shared domain rather than a whole fold. Both versions are up and public.

    protein structureembeddingshpc

  2. 2023 – 2024

    RBP-Tar

    A searchable database of experimentally determined RNA-binding protein sites, pulled out of published CLIP experiments and put behind a query interface — so you can ask what binds a transcript without reprocessing somebody else's raw data first. I built it and first-authored the paper.

    databaseRBP

Pipelines behind the papers

The analysis for a paper, written as a workflow rather than a folder of scripts — raw data in, figures out, on a machine that isn't mine. It is the difference between a result and a result somebody else can check.

  1. 2024 – 2026

    Senescence marker discovery and scoring

    The machine learning behind the SenCat paper, written as a Snakemake workflow: transcriptomic and proteomic profiles of several senescent primary cell types go in, and out come marker sets that stay informative across cell types instead of describing one fibroblast very well. It ships the markers and a scoring script, so somebody else can score their own data for senescence without rerunning the discovery. I wrote it.

    snakemakemachine learningsenescence

  2. 2024 – 2025

    Isoform remodeling in the ageing mouse brain

    The single-cell long-read pipeline behind the ageing mouse brain paper — nanopore reads through to which RNA isoform each cell type switches to as the animal ages, which is a question short reads cannot answer at all. Written as a workflow so the figures can be regenerated from the raw data by someone who was not in the room.

    snakemakelong readssingle cell