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#
| Integration | Command | Output |
|---|---|---|
| Python | bdp generate python | bdp_data.py — pathlib.Path variables per source |
| Snakemake | bdp generate snakemake | config/bdp_data.yaml — YAML config block |
| Nextflow | bdp generate nextflow | conf/bdp_data.config — params.bdp.* block |
| CWL | bdp generate cwl | cwl/bdp-inputs.yml — CWL v1.2 typed File entries with EDAM format annotations |
| R | bdp generate r | r/bdp_data.yml + r/bdp_data.R — YAML config with Bioconductor reader hints |
Typical Workflow#
# 1. Add data sourcesbdp source add uniprot:P01308-fasta@2024.03bdp source add clinvar:variants-vcf@2024.01bdp source add ensembl:homo_sapiens-gtf@110 # 2. Pull databdp pull # 3. Generate integration config for your toolbdp generate cwl # or python, snakemake, nextflow, r # 4. Use the generated config in your pipelinecwltool variant-analysis.cwl cwl/bdp-inputs.ymlThe 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_1929for FASTA,edam:format_3016for VCF, etc.) - R: Recommended Bioconductor reader function and package for each format (e.g.,
Biostrings::readAAStringSetfor FASTA,VariantAnnotation::readVcffor VCF)
Post-Pull Hooks#
Automate code generation so your integration config stays in sync:
# bdp.ymlhooks: post_pull: - bdp generate cwl - bdp generate rSee 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