Skip to main content

HPC installation with Apptainer

Use Apptainer when Docker is unavailable on an HPC system. The CBIcall image is immutable; project files and the optional cbicall-core resource bundle remain on the host and are bind-mounted at runtime.

1. Pull a released image​

Load Apptainer if your site provides it through environment modules, then pull a versioned image:

module load apptainer 2>/dev/null || true

export SIF_IMAGE=/absolute/path/to/cbicall_1.3.0.sif
apptainer pull "$SIF_IMAGE" docker://manuelrueda/cbicall:1.3.0

Keep the .sif file for later interactive and scheduled runs. Pinning the image tag avoids an unnoticed change from latest.

2. Choose the workflow source​

Workflow sourceCBIcall bundle required?Recommended HPC setup
workflow_provider: cbicall-core (default)YesRun the CBIcall SIF and bind the resource and project directories as shown below.
workflow_provider: nf-coreNoInstall CBIcall on the host, then use the site's Nextflow and Apptainer modules so nf-core can launch its task containers normally.

The remaining commands on this page cover bundled cbicall-core workflows.

3. Install the resource bundle​

Choose a persistent host directory:

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

apptainer exec \
--bind "$CBICALL_DATA":/cbicall-data \
"$SIF_IMAGE" \
cbicall install-resources --outdir /cbicall-data

Verify the mounted installation:

apptainer exec \
--bind "$CBICALL_DATA":/cbicall-data \
--env CBICALL_DATA=/cbicall-data \
"$SIF_IMAGE" \
cbicall doctor
Manual resource-download recovery

If the automatic Google Drive download fails, print the registered file list:

apptainer exec \
--bind "$CBICALL_DATA":/cbicall-data \
"$SIF_IMAGE" \
cbicall install-resources --outdir /cbicall-data --print-manual-download

Place every listed file in $CBICALL_DATA, then resume:

apptainer exec \
--bind "$CBICALL_DATA":/cbicall-data \
"$SIF_IMAGE" \
cbicall install-resources --outdir /cbicall-data --skip-download

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

4. Run an analysis​

Keep the parameters YAML and input data under one project directory. Bind that directory at the same absolute path so paths in the YAML remain valid:

export PROJECT_DIR=/absolute/path/to/project

apptainer exec \
--bind "$CBICALL_DATA":/cbicall-data \
--bind "$PROJECT_DIR":"$PROJECT_DIR" \
--env CBICALL_DATA=/cbicall-data \
--pwd "$PROJECT_DIR" \
"$SIF_IMAGE" \
cbicall run -p "$PROJECT_DIR/parameters.yaml" -t 4

The run directory is written directly to the host project directory. Normal execution does not require a writable copy of /usr/share/cbicall.

5. Run an integration test​

Use a new or empty host directory to retain the test outputs:

export TEST_DIR=/absolute/path/to/cbicall-wes-test
mkdir -p "$TEST_DIR"

apptainer exec \
--bind "$CBICALL_DATA":/cbicall-data \
--bind "$TEST_DIR":"$TEST_DIR" \
--env CBICALL_DATA=/cbicall-data \
"$SIF_IMAGE" \
cbicall test --wes-bash -t 1 --workspace "$TEST_DIR"

Slurm​

Use the same binds inside the scheduled job. A complete template is available in run_cbicall_apptainer_slurm.sh.

On the CNAG GenE cluster, the template uses research for the 10-hour WES example and research_long for the two-day WGS example. Use the standard partition whenever the job can finish within its 12-hour limit. The script does not request a QoS because GenE selects its single QoS automatically.

Site-specific workflow development

The packaged workflow definitions are intentionally immutable. Developers who need to modify a workflow, registry, or Bash runtime profile should use a version-matched source checkout and bind that checkout explicitly. Normal users need only the SIF, project directory, and resource bundle.

Notes​

  • The host home directory is normally visible inside Apptainer unless restricted by site policy.
  • The CBIcall SIF is separate from any Nextflow task-container cache used by external nf-core workflows.
  • The bundled MToolBox mtDNA workflow runs on x86_64 only.