Computing Science PhD candidate at Simon Fraser University. My research is on how machine learning models in genomics are tested and evaluated. Most of my pipeline work is in Snakemake on Slurm clusters, and I also write Nextflow. I teach programming and data structures at the University of the Fraser Valley as a sessional instructor.
The first six repositories are public versions of parts of my PhD work, rebuilt on public data (ClinVar, GIAB, gnomAD, MaveDB), so their history starts in 2026.
| Repository | What it does |
|---|---|
| callbench | Snakemake workflow that calls germline SNVs and indels on GIAB samples with bcftools and FreeBayes and scores each caller against the GIAB v4.2.1 truth set, by variant type and genome stratum. Runs on a laptop, in containers or on Slurm. |
| clinvar-delta | Nextflow DSL2 pipeline: ClinVar and gnomAD annotation for a gene panel, and a variant-by-variant audit of what changed between two ClinVar releases. Tested with nf-test. |
| clinvar-history | ClinVar releases, gnomAD frequencies and MaveDB scores in one SQL schema on DuckDB and PostgreSQL, with validated loads and tested queries. |
| pipeprof | Python package that measures memory, CPU and time of pipeline jobs before, during and after they run on Slurm, and turns the measurements into resource requests for Slurm, Nextflow and Snakemake. |
| mavecal | How well six multiplexed assays of variant effect separate ClinVar pathogenic from benign missense variants, and what evidence strength that supports under OddsPath. The analysis plan was committed before the first run in the repository; later changes are listed as amendments. |
| nf-retrofit | Adds tests, known-answer data and run logging to an existing Nextflow pipeline without editing the pipeline, shown on two published pipelines. |
Earlier work:
| Repository | What it does |
|---|---|
| ChromeCRISPR | CRISPR/Cas9 on-target activity model (BMC Bioinformatics, accepted September 2026) |
| crispr-foreclosure-benchmark | Off-target candidates that reference-based nomination misses, across 459 assembled human haplotypes |

