Skip to content

End-to-end test coverage & external data

bioflow ships two tiers of automated recipe testing:

A recipe gets a committed full-e2e fixture only when its inputs are small enough to live in git (a few-kb genome, synthetic reads). Recipes that need a multi-GB reference index or an external database can't — the fixture would dwarf the repo and the download would make CI flaky. Those recipes are still smoke-tested, and their external assets are catalogued for bioflow db fetch.

Validated end to end (9)

Each runs its full chain in CI (the nightly job) on a fixture under data/test/.

Recipe Chain Fixture
prokaryote_assembly fastp → SPAdes → QUAST → Prokka phix_small/
amr_vf_catalogue ABRicate × N (bundled DBs) genomes_small/
ani_matrix all-vs-all FastANI genomes_small/
pangenome Prokka × N → Roary genomes_small/
gwas Scoary on a Roary GPA + phenotype gwas_small/
cafe_evolution CAFE5 gene-family dynamics cafe_small/
phylogeny single-copy core → MAFFT × N → IQ-TREE phylo_small/
rnaseq_deg fastp → Salmon → DESeq2 → enrichment + MultiQC rnaseq_small/
methylation_wgbs TrimGalore → Bismark (prep + align) → methylKit methyl_small/

Requires external reference data (10)

These are smoke-tested (first stage), but a full e2e is gated on a reference the user supplies. The bioflow db column gives the catalog key for bioflow db fetch <key> --dest /refs where one exists (see bioflow db --help); otherwise it points at the upstream source.

Recipe Needs bioflow db fetch
eukaryote_assembly long reads + BUSCO/compleasm lineage DB busco_bacteria / busco_insecta / busco_vertebrata
metagenomics_profile Kraken2 database kraken2_standard_8gb
metagenome_assembly CheckM2 diamond DB upstream: checkm2 database --download
scrna_seq STAR genome index + 10x barcode whitelist 10x_whitelist_v3 (+ build STAR index from gencode_grch38 + genome FASTA)
chip_seq Bowtie2 index + reference FASTA + GTF bowtie2_grch38_noalt, gencode_grch38
atac_seq Bowtie2 index + reference FASTA (± blacklist) bowtie2_grch38_noalt, encode_blacklist_grch38
germline_variants reference FASTA + SnpEff DB (± GATK known-sites) SnpEff DB auto-downloads by name; dbsnp_grch38, mills_indels_grch38 for BQSR
joint_genotyping as germline_variants + a cohort sample sheet as above
cog_enrichment COG-2024 reference FAA + definitions + a pangenome FAA + Roary GPA upstream: NCBI COG-2024
proteomics_dda protein FASTA DB + Comet params + raw spectra uniprot_sprot (spectra are vendor files)

BWA / SnpEff indexes are built for you

germline_variants and joint_genotyping build the BWA index and the GATK .dict / .fai in place if absent, and SnpEff downloads its organism database by name — so for a bacterium you really only supply a reference FASTA. They're listed here because the SnpEff download and a realistic reference make a committed, deterministic fixture impractical, not because setup is heavy.

Utility (1)

Recipe Note
download_taxon Pure NCBI Datasets fetch (no Docker); network-dependent, so it has no committed fixture.