Documentation

Integrations#

BDP integrates with the major bioinformatics workflow managers and languages. Once you have a bdp.yml and a populated bdp.lock, use bdp generate to emit a configuration file for your tool — resolved file paths, pinned to exact versions.

Supported Integrations#

IntegrationCommandOutput
Pythonbdp generate pythonbdp_data.pypathlib.Path variables per source
Snakemakebdp generate snakemakeconfig/bdp_data.yaml — YAML config block
Nextflowbdp generate nextflowconf/bdp_data.configparams.bdp.* block
CWLbdp generate cwlcwl/bdp-inputs.yml — CWL v1.2 typed File entries with EDAM format annotations
Rbdp generate rr/bdp_data.yml + r/bdp_data.R — YAML config with Bioconductor reader hints

Typical Workflow#

bash
# 1. Add data sources
bdp source add uniprot:P01308-fasta@2024.03
bdp source add clinvar:variants-vcf@2024.01
bdp source add ensembl:homo_sapiens-gtf@110
# 2. Pull data
bdp pull
# 3. Generate integration config for your tool
bdp generate cwl # or python, snakemake, nextflow, r
# 4. Use the generated config in your pipeline
cwltool variant-analysis.cwl cwl/bdp-inputs.yml

The generated files always reflect the current bdp.lock — re-run after any bdp pull that changes versions, or automate it with a post-pull hook.

Format-Aware Generation#

BDP knows the file format of each source (FASTA, VCF, GTF, OBO, TSV, etc.) and uses this to generate richer output:

  • CWL: EDAM ontology format annotations (edam:format_1929 for FASTA, edam:format_3016 for VCF, etc.)
  • R: Recommended Bioconductor reader function and package for each format (e.g., Biostrings::readAAStringSet for FASTA, VariantAnnotation::readVcf for VCF)

Post-Pull Hooks#

Automate code generation so your integration config stays in sync:

yaml
# bdp.yml
hooks:
post_pull:
- bdp generate cwl
- bdp generate r

See Post-Pull Hooks for the full hook API.

Examples#

See the examples/ directory on Codeberg for complete bioinformatics workflow examples. All 7 integrations implement the same gene-disease variant analysis pipeline: Python | Snakemake | Nextflow | CWL | R | Jupyter | GitHub Actions