ChoCallate (Chorus of Callers) - a Nextflow pipeline for consensus-based variant calling.
ChoCallate runs several variant callers and applies configurable consensus rules to produce high-confidence SNVs and INDELs. It addresses a critical challenge in variant calling: individual variant callers can produce different results for the same genomic data, leading to uncertainty in variant identification. By implementing a consensus-driven approach, ChoCallate combines results from multiple state-of-the-art variant callers and applies configurable consensus rules to generate reliable, high-quality variant calls.
- Linux (tested). macOS/Windows are not currently tested.
- Conda (Miniconda/Anaconda) or Mamba
- Git
- Nextflow
git clone --depth 1 https://github.com/alermol/ChoCallate.git
cd ChoCallate
conda env create -y -f environment.yaml
conda activate ChoCallateOptional verification and cleanup:
cd test_run
bash run_test.sh
bash cleanup.shChoCallate is available as a Docker image on DockerHub. For a fuller walkthrough, see the Wiki: Installing ChoCallate.
docker pull alermol/chocallate:latestMount your run directory to /workspace and run:
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "${PWD}/input_data:/workspace" \
-w /workspace \
alermol/chocallate:latest \
-params-file config.yamlOutputs will be written to the configured outdir (default: ChoCallate_output) inside input_data.
ChoCallate is configured via a Nextflow params YAML file. Start from the template.
cp assets/templates/config.yaml my_run.yamlMinimum set of parameters in my_run.yaml:
samples_tsv: input samples TSV (formats below)reference_genome: reference FASTA (plain or bgzip-compressed)reference_index_dir: path to directory with index files for reference genome
After configuration is complete you can run the ChoCallate
nextflow run main.nf -params-file my_run.yaml- Reads: FASTQs (
input_format: "fastq") or a pre-aligned BAM (input_format: "bam"). If you provide a BAM, mapping is skipped. - Reference genome: Plain or bgzipped FASTA file.
- Indexes of reference genome: All indexes required by the selected mapper/callers.
- Tip: Use absolute paths for inputs.
samples_tsv formats:
- FASTQ + paired-end (
reads_type: "pe"):sample_id<TAB>R1<TAB>R2 - FASTQ + single-end (
reads_type: "se"):sample_id<TAB>R1 - FASTQ + mixed (
reads_type: "mx"):sample_id<TAB>R1<TAB>R2<TAB>U(Bowtie2 mapping only) - BAM (
input_format: "bam"):sample_id<TAB>bam_path
Published outputs are written to outdir (default: ChoCallate_output), including standard Nextflow reports:
pipeline_report.htmltimeline_report.htmltrace.txt
Consensus outputs depend on output.type and output.format:
- Per-sample:
<outdir>/per_sample/<sample_id>/consensus.bcf(default) orconsensus.vcf.gz - Single merged:
<outdir>/consensus.bcfor<outdir>/consensus.vcf.gz
- Wiki home: ChoCallate Wiki
- Install: Installing ChoCallate
- Quick start / config & CLI: CLI Reference
- Outputs: Output Structure
See CONTRIBUTING.md
See Development Roadmap for planned container support and additional callers/mappers.