Bundle v1
CBIcall production workflows require a CBIcall-provided bundle containing third-party executables, reference genomes, known-sites files, interval lists, and auxiliary databases.
The current bundle is selected in the run YAML with:
resource: "cbicall-germline-resources-v1"
CBIcall resolves this key against the resource catalog, the JSON inventory of resource entries and their compatibility metadata:
resources/cbicall-resource-catalog.json
The resource catalog supports several resource types. Packaged workflows use
the CBIcall-provided bundle described below.
The scripts/download_cbicall_bundle.py utility installs CBIcall bundle entries
from the resource catalog. It uses the local catalog when available and
otherwise retrieves the canonical catalog. It does not install arbitrary local
or third-party resource layouts.
Bundle Identity
| Field | Value |
|---|---|
| Resource key | cbicall-germline-resources-v1 |
| Version | v1 |
The resource key is the identifier users select with resource. log.json
records this key, the resource version, and a catalog fingerprint, so two runs
can be checked for the same declared external dependency set.
Bundle Scope
This bundle supplies the external tools and reference data used by the
cbicall-core workflows. See the canonical compatibility
matrix for supported pipelines,
modes, software stacks, and backends.
CBIcall checks compatibility using the exact versioned workflow keys declared
in the resource catalog, for example nextflow/wgs/cohort/gatk-4.6/v1.
External nf-core workflows manage their own dependencies and do not use this
bundle.
Downloaded Files
The production bundle is distributed as a small identifier JSON, split archive parts, and a checksum file.
| File | Purpose |
|---|---|
cbicall-resource-id.json | Declares the resource key and is pinned by SHA-256 in the catalog. |
data.tar.gz.md5 | MD5 checksum file. The current bundle records the split archive parts. |
data.tar.gz.part-00 | Split archive part. |
data.tar.gz.part-01 | Split archive part. |
data.tar.gz.part-02 | Split archive part. |
data.tar.gz.part-03 | Split archive part. |
data.tar.gz.part-04 | Split archive part. |
data.tar.gz.part-05 | Split archive part. |
The setup utility verifies the files covered by data.tar.gz.md5. For the current bundle, this means the split archive parts are checked before they are reassembled and extracted.
An optional small remote identifier file can also be used:
{"resource_key": "cbicall-germline-resources-v1"}
When available, this file is named cbicall-resource-id.json. Its SHA-256 can be pinned in the local catalog to confirm that the remote bundle declares the expected resource key.
Expected Layout
After extraction, DATADIR should contain:
DATADIR/
Databases/
NGSutils/
The bundle layout uses these conventional top-level names:
| Variable | Meaning |
|---|---|
CBICALL_DATA | User-facing environment variable that selects the installed bundle root for all native backends. |
DATADIR | Root of the installed CBIcall-provided bundle. |
DBDIR | DATADIR/Databases |
NGSUTILS | DATADIR/NGSutils |
CBIcall resolves CBICALL_DATA into the backend-specific DATADIR/datadir
value. Workflow files such as Bash env.sh and
Snakemake/Nextflow/Cromwell config.yaml then resolve the bundle layout into
concrete executable and reference paths. Packaged workflow files should not be
edited to select an installation directory.
Tools
| Tool | Version | Path hint |
|---|---|---|
| GATK 4 | 4.6.2.0 | NGSutils/gatk/gatk-4.6.2.0/gatk |
| BWA | 0.7.18 | NGSutils/bwa-0.7.18/bwa |
| Samtools | 0.1.19 | NGSutils/samtools-0.1.19/samtools |
Some workflow branches may use architecture-specific executable paths or legacy tool paths. The catalog records the intended bundle identity; the workflow logs and log.json record the concrete paths resolved during a run.
The bundle includes precompiled executables for both amd64 and arm64
architectures. They run on many common Linux distributions, but some older
tools, such as BWA or Samtools, may depend on libraries that are not available
on a particular system.
If this happens, rebuild the same pinned version in a separate, site-specific directory and select it through the institutional runtime profile. Run the relevant integration test before using it in production.
You can also use another tool version already provided by the system, for example through an HPC module. Keep in mind that even small version or build differences can change analytical outputs, including variant counts and test hashes. This does not necessarily mean that the workflow is wrong, but the user is responsible for validating the local tool setup before production use.
Reference Resources
b37
| Resource | Path hint |
|---|---|
| Reference FASTA | Databases/GATK_bundle/b37/references_b37_Homo_sapiens_assembly19.fasta |
| dbSNP | Databases/dbSNP/human_9606_b144_GRCh37p13/All_20160408.vcf.gz |
| Mills / 1000G INDELs | Databases/GATK_bundle/b37/b37_Mills_and_1000G_gold_standard.indels.b37.vcf.gz |
hg38
| Resource | Path hint |
|---|---|
| Reference FASTA | Databases/GATK_bundle/hg38/resources_broad_hg38_v0_Homo_sapiens_assembly38.fasta |
rsrs / mtDNA
The mtDNA workflows use MToolBox-related mitochondrial files from the bundle.
Provenance in Runs
The selected resource bundle is stored in log.json under config.resources.bundle.
Example:
{
"key": "cbicall-germline-resources-v1",
"compatible": true,
"fingerprint": "..."
}
Two runs used the same declared external dependency set when their config.resources.bundle.fingerprint values match.
Installation Manifest
The setup utility also writes:
cbicall-resource-installation.json
This local manifest records the installed resource key, archive checksum result, source files, extraction status, and optional remote identifier provenance.
Runtime Check
Before launching a native workflow, CBIcall resolves the bundle directory from
CBICALL_DATA. If the variable is unset, the selected institutional profile or
backend configuration provides the fallback. CBIcall passes the resolved value
to Bash, Snakemake, Nextflow, or Cromwell without modifying packaged files.
If bundle metadata exists beside DATADIR, CBIcall validates it:
| File | Runtime check |
|---|---|
cbicall-resource-id.json | Resource key must match the selected resource; SHA-256 must match the catalog when pinned. |
cbicall-resource-installation.json | Installed resource key must match the selected resource; the manifest catalog entry must match the local catalog fingerprint. |
This check is intentionally small. It validates the installed bundle identity without hashing the full resource archive on every run.