Skip to content

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

BCFtools

BCFtools is a set of utilities for variant calling and for manipulating variant call format (VCF) and its binary counterpart (BCF) files. It is part of the same project as SAMtools and HTSlib.

License

Free to use and open source under the MIT/Expat License.

Available

  • Roihu: 1.23.1, via the bio-apps module.

Usage

BCFtools is part of the bio-apps collection on Roihu. Load the bio-apps module tree and then the BCFtools module:

module load bio-apps/v202603
module load bcftools/1.23.1

BCFtools provides many subcommands, for example bcftools view, bcftools call, bcftools mpileup, bcftools stats and bcftools filter. For example, to call variants from an alignment:

bcftools mpileup -f reference.fa aln.bam | bcftools call -mv -Oz -o calls.vcf.gz

Several BCFtools subcommands support the --threads option. For commands using the common BCFtools threading option, additional threads are currently used for compression of compressed BCF (-Ob) or VCF (-Oz) output rather than for parallelizing the main analysis.

Example batch script

#!/bin/bash
#SBATCH --job-name=bcftools
#SBATCH --account=<project>
#SBATCH --output=output_%j.txt
#SBATCH --error=errors_%j.txt
#SBATCH --partition=small
#SBATCH --time=04:00:00
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=2G

module load bio-apps/v202603
module load bcftools/1.23.1

bcftools mpileup -Ou -f reference.fa aln.bam | bcftools call -mv -Oz -o calls.vcf.gz

Replace <project> with your CSC project (for example project_2001234).

See creating a batch job script for Roihu for more information about running batch jobs.

Support

CSC Service Desk

More information

Do you find this page useful?
Thank you for your feedback!
Thank you! Your feedback is appreciated.

Please let us know how we could improve this page by contacting us or by creating an issue in GitHub. You can also edit this page yourself and contribute your improvements by creating a pull request.