ChoCallate (Chorus of Callers) is a Nextflow pipeline for consensus-based variant calling. It maps FASTQ reads or accepts aligned BAMs, calls variants with bcftools, FreeBayes and GATK, and applies a configurable consensus rule to produce high-confidence SNVs and indels.
Requirements: Linux, Conda/Mamba and Git. Nextflow and all analysis tools are installed by the environment. The first run resolves the nf-schema and nf-boost plugins; an offline Conda setup must install the pinned versions once, while the Docker image bundles them.
git clone --depth 1 https://github.com/alermol/ChoCallate.git
cd ChoCallate
conda env create -y -f environment.yaml --no-default-packages
conda activate ChoCallate
cp assets/templates/config.yaml my_run.yamlMinimal my_run.yaml:
input:
samples_tsv: /absolute/path/samples.tsv
reference_genome: /absolute/path/reference.fa.gz
reference_index_dir: /absolute/path/indexes
output:
directory: ChoCallate_outputreference_genome must be plain FASTA or BGZF-compressed FASTA; plain gzip is rejected. For FASTQ input, reference_index_dir must contain the index files for the selected mapping.mapper (Bowtie2 by default).
samples.tsv is tab-separated:
sample1 /path/sample1_R1.fq.gz /path/sample1_R2.fq.gz
Supported layouts are paired-end (sample_id, R1, R2), single-end (sample_id, R1), mixed (sample_id, R1, R2, unpaired; Bowtie2 only) and BAM (sample_id, BAM). reference_index_dir is required for FASTQ input and unused for BAM input. Index files must match the selected mapper.
Run:
nextflow run main.nf -params-file my_run.yamldocker pull alermol/chocallate:latest
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "${PWD}/input_data:/workspace" \
-w /workspace \
alermol/chocallate:latest \
-params-file config.yamlThe image bundles the Nextflow plugins and works offline and under an arbitrary UID. Paths in config.yaml and samples.tsv must refer to files inside the mounted /workspace.
By default, a run publishes one merged multi-sample consensus.bcf. Set output.type: "sample" for one file per sample, and output.format: "vcf" for bgzip-compressed VCF. All covered sites are kept by default, including monomorphic positions; set output.remove_invariant: true to drop them. Mapping statistics, dropped_samples.txt and standard Nextflow reports are also published.
Detailed documentation is in the Wiki:
- Installation, including Docker, Apptainer and offline use.
- Pipeline overview and inputs and reference requirements.
- CLI reference: every parameter, including resources, callers and consensus options.
- Consensus model: voting, caller normalization and degraded mode.
- Output structure: files, header metadata and FORMAT/INFO annotations.
- Merge strategies and testing: multi-sample merge and open-file limits.
- Operations and troubleshooting: resources, retries and common errors.
- Testing and CI: pytest, nf-test, snapshots and lint commands.
- Developer guide: repository layout and process conventions.
The full configuration template is assets/templates/config.yaml.
See CONTRIBUTING.md.
See ROADMAP.md.