Installation

Dependencies

External Tools

VariantCentrifuge requires several bioinformatics tools to be installed and available in your PATH:

  • bcftools - For variant extraction and manipulation

  • snpEff - For generating gene BED files and functional annotations

  • SnpSift - For filtering and field extraction

  • bedtools (specifically sortBed) - For sorting BED files

Installing via mamba/conda

mamba create -y -n annotation bcftools snpsift snpeff bedtools
mamba activate annotation

Ensure these tools are in your PATH before running VariantCentrifuge.

Python Requirements

VariantCentrifuge requires Python 3.12+ and the following Python packages:

  • pandas - For XLSX conversion and data handling

  • jinja2 - For HTML template rendering

  • openpyxl - For XLSX creation

  • scipy - For Fisher exact test in variant analysis

  • statsmodels - For multiple testing correction in gene burden analysis

Installation Methods

Method 2: Install from Source

  1. Clone the repository:

    git clone https://github.com/scholl-lab/variantcentrifuge.git
    cd variantcentrifuge
    
  2. Set up a virtual environment (recommended):

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install the package:

    pip install .
    

    For development (editable install):

    pip install -e .
    

Method 3: Using conda environment

# Clone the repository
git clone https://github.com/scholl-lab/variantcentrifuge.git
cd variantcentrifuge

# Create and activate conda environment
mamba env create -f conda/environment.yml
mamba activate annotation

# Install the package
pip install -e .

Method 5: Apptainer / Singularity (HPC Execution)

In high-performance computing (HPC) environments where root access and Docker daemons are unavailable, Apptainer (formerly Singularity) executes the container image directly without elevated privileges.

Running Directly from GitHub Container Registry

Prefer apptainer run over apptainer exec. apptainer run executes the container’s entrypoint script (/usr/local/bin/_entrypoint.sh), activating the Conda/Micromamba environment containing bcftools, snpEff, SnpSift, and bedtools:

# Verify version using apptainer run
apptainer run docker://ghcr.io/scholl-lab/variantcentrifuge:latest --version

For production workflows and strict reproducibility, pin the image by its immutable SHA-256 digest:

# Look up the immutable digest for a release tag
docker buildx imagetools inspect ghcr.io/scholl-lab/variantcentrifuge:v0.16.0

# Execute with immutable digest pinning
apptainer run \
  docker://ghcr.io/scholl-lab/variantcentrifuge@sha256:<digest> \
  --version

Alternatively, build a reusable Singularity Image File (.sif):

apptainer build variantcentrifuge.sif docker://ghcr.io/scholl-lab/variantcentrifuge:latest

If using apptainer exec instead of apptainer run, invoke the activation entrypoint explicitly so environmental bioinformatics tools are in PATH:

apptainer exec variantcentrifuge.sif /usr/local/bin/_entrypoint.sh variantcentrifuge --version

Filesystem Binds and SnpEff Storage

Map local data into the container with -B /path/to/data:/data. Provide a persistent, writable host directory mounted to /data/snpeff so downloaded SnpEff genome databases persist between job runs:

mkdir -p /path/to/snpeff_cache

apptainer run \
  -B /path/to/data:/data \
  -B /path/to/snpeff_cache:/data/snpeff \
  docker://ghcr.io/scholl-lab/variantcentrifuge:latest \
    --gene-name BRCA1 \
    --vcf-file /data/input.vcf.gz \
    --output-file /data/output.tsv

[!NOTE] The host directory bound to /data/snpeff must be writable during the first run for each required genome database so SnpEff can download and unpack reference annotations. Once populated, it may optionally be mounted read-only as -B /path/to/snpeff_cache:/data/snpeff:ro.

Verification

Verify your installation by running:

variantcentrifuge --version

And check that external tools are available:

bcftools --version
snpEff -version
java -jar $SNPSIFT_JAR
bedtools --version

Troubleshooting

Common Issues

  1. External tools not found:

    • Ensure all external tools are installed and in your PATH

    • For conda installations, activate the correct environment

  2. Permission errors:

    • Use --user flag with pip: pip install --user variantcentrifuge

    • Or use a virtual environment

  3. Version conflicts:

    • Use a fresh virtual environment or conda environment

    • Update pip: pip install --upgrade pip

Environment Variables

You may need to set environment variables for some tools:

export SNPEFF_JAR=/path/to/snpEff.jar
export SNPSIFT_JAR=/path/to/SnpSift.jar

Next Steps

Once installed, proceed to the Usage Guide to learn how to configure and run VariantCentrifuge.