I lead technical teams in biotech and write software for new genomics technologies. At Fulcrum Genomics you'll find me building tools and leading others in the fields of oncology, cell & gene editing, and precision medicine all while ensuring we deliver high-quality services to our clients and partners.
| Project | Stack | Install | What it does |
|---|---|---|---|
| unmux | Parse and demultiplex records, splitcode-style. | ||
| chum | Evaluate baits in a hybrid selection panel. | ||
| krak | An addicting set of Kraken-enhancing tools. | ||
| vartovcf | Stream VarDict variants into VCF v4.2. | ||
| neodisambiguate | Disambiguate reads mapped to multiple references. | ||
| bedspec | An HTS-specs compliant BED toolkit. | ||
| typeline | Dataclasses to delimited text, round-trip with types. |
Demultiplex a dual-index paired-end run against a sample sheet, routing each read pair by its i7+i5 barcode concatenation:
❯ unmux "R1.fastq.gz" "I1.fastq.gz" "I2.fastq.gz" "R2.fastq.gz" \
--extract "i7=1:0:8" \
--extract "i5=2:0:8" \
--extract "r1=0:0:end" \
--extract "r2=3:0:end" \
--group "samples=metadata.tsv" \
--group "samples::match=i7+i5" \
--template "r1" \
--template "r2" \
--sample-from-group "samples" \
--out "demux/%sample.R%ordinal.fq"Score capture baits against a reference:
❯ chum score \
--baits baits.fa \
--targets targets.bed \
--reference hg38.fa \
--per-bait per-bait.tsvBridge Kraken classifications into a BAM and filter by taxon:
❯ krak annotate \
-i input.bam \
-d /kraken-db \
-a <(krak prep input.bam | kraken2 --db /kraken-db --output - -) \
| krak filter -t 9606 -o output.bamDisambiguate templates aligned to human and mouse references:
❯ neodisambiguate \
--input dna00001.aligned-to-human.bam dna00001.aligned-to-mouse.bam \
--output out/dna00001 \
--names hg38 mm10







