Skip to main content

Non-containerized installation

Install the CBIcall Python package first. The large reference and software bundle is separate and is required only for the bundled cbicall-core workflows.

1. Install CBIcall​

PyPI is recommended for normal use:

python3 -m pip install --upgrade cbicall
cbicall --version

Install optional Snakemake and MultiQC dependencies when needed:

python3 -m pip install --upgrade "cbicall[all]"

Nextflow and Cromwell are external executables and are not installed as Python dependencies. Bash workflows do not require either engine.

2. Choose the workflow source​

Workflow sourceCBIcall bundle required?Additional runtime
workflow_provider: cbicall-core (default)YesThe selected backend: Bash, Snakemake, Nextflow, or Cromwell. mtDNA also requires x86_64 Linux.
workflow_provider: nf-coreNoNextflow and a working nf-core runtime profile, such as Docker or Apptainer.

To test external nf-core support without installing the CBIcall bundle:

cbicall test --nf-core-demo -t 4

3. Install resources for cbicall-core​

Choose a persistent directory and install the registered bundle:

export CBICALL_DATA=/absolute/path/to/cbicall-data
mkdir -p "$CBICALL_DATA"
cbicall install-resources --outdir "$CBICALL_DATA"

The installer downloads and assembles the bundle, verifies its catalog-declared checksums, extracts Databases/ and NGSutils/, and writes cbicall-resource-installation.json with installation provenance.

Set CBICALL_DATA in every shell or scheduler environment used to run bundled workflows:

export CBICALL_DATA=/absolute/path/to/cbicall-data
cbicall doctor

The same environment variable is propagated to all four bundled WES/WGS backends and recorded in the execution contract.

4. Run an integration test​

cbicall test --wes-bash -t 1

On x86_64, the mtDNA workflow can also be tested with:

cbicall test --mit-bash -t 1

Installed-package tests use packaged fixtures and create a temporary workspace. Use --workspace /path/to/new-or-empty-directory to retain the test outputs in a chosen location.

Source checkout for development​

Clone the repository and install the minimum functional Python package:

git clone https://github.com/CNAG-Biomedical-Informatics/cbicall.git
cd cbicall
python3 -m pip install -e .
cbicall --version

This installs CBIcall and its core dependencies only. For a complete development environment with Snakemake, MultiQC, and the test tools, use:

python3 -m pip install -e ".[all,test]"
pytest
Choose the extras you need
Editable installWhat it adds
-e .Core CBIcall dependencies, including PyYAML, JSON Schema validation, and resource downloading.
-e ".[snakemake]"Snakemake and its pinned PuLP dependency.
-e ".[multiqc]"MultiQC report generation.
-e ".[all]"Both Snakemake and MultiQC.
-e ".[test]"pytest and coverage tooling.
-e ".[all,test]"All optional runtime integrations plus the test suite; this is the complete development installation shown above.
-e ".[build]"Package build and upload tools used for releases.

Nextflow and Cromwell are not Python extras and must be installed separately.

Use cbicall after installation. The repository launcher bin/cbicall remains available inside a source checkout.

Slurm​

For a source checkout on the CNAG GenE cluster, see the complete run_cbicall_slurm.sh template. It selects the appropriate research partition, requests the workflow resources, exposes the Python packages installed under the site-specific cbi_py3 prefix, and launches CBIcall with --runtime-profile cnag-hpc.

Manual resource-download recovery

Google Drive can restrict large automated downloads. Print the registered file list when automatic download fails:

cbicall install-resources \
--outdir "$CBICALL_DATA" \
--print-manual-download

Place every listed file in $CBICALL_DATA, then resume verification, assembly, and extraction:

cbicall install-resources \
--outdir "$CBICALL_DATA" \
--skip-download

Use --verify-resource-id-only to verify the small catalog-pinned resource identifier before downloading the archive. Add --remove-parts after successful verification when disk space is limited.

System requirements​

  • Linux on amd64 or arm64; macOS can be used through a Linux VM.
  • Python 3.8 or newer.
  • Java 17 for GATK 4.6 workflows.
  • libncurses.so.5 and libtinfo.so.5 for bundled legacy tools.
  • Sufficient storage for the resource bundle and analysis inputs; allow at least 100 GB for installation and the shipped WES test.

The bundled MToolBox mtDNA workflow supports x86_64 only.