4.5.8. Variant Calling

current version:?

https://badge.fury.io/py/sequana-variant-calling.svg JOSS (journal of open source software) DOI https://github.com/sequana/variant_calling/actions/workflows/main.yml/badge.svg

This is is the variant_calling pipeline from the Sequana projet

Overview:Variant calling from FASTQ files
Input:FASTQ files from Illumina Sequencing instrument
Output:VCF and HTML files
Citation:Cokelaer et al, (2017), 'Sequana': a Set of Snakemake NGS pipelines, Journal of Open Source Software, 2(16), 352, JOSS DOI https://doi:10.21105/joss.00352


You must install Sequana first (use --upgrade to get the latest version installed):

pip install sequana --upgrade

Then, just install this package:

pip install sequana_variant_calling --upgrade


sequana_variant_calling --help
sequana_variant_calling --input-directory DATAPATH --reference-file measles.fa
sequana_variant_calling --input-directory DATAPATH --reference-file measles.fa

This creates a directory variant_calling. You just need to execute the pipeline:

cd variant_calling
sh variant_calling.sh

This launch a snakemake pipeline. If you are familiar with snakemake, you can retrieve the pipeline itself and its configuration files and then execute the pipeline yourself with specific parameters:

snakemake -s variant_calling.rules -c config.yaml --cores 4 --stats stats.txt

Or use sequanix interface.


This pipelines requires the following executable(s):

  • bwa
  • freebayes
  • picard (picard-tools)
  • sambamba
  • samtools
  • snpEff


Snakemake variant calling pipeline is based on tutorial written by Erik Garrison. Input reads (paired or single) are mapped using bwa and sorted with sambamba-sort. PCR duplicates are marked with sambamba-markdup. Freebayes is used to detect SNPs and short INDELs. The INDEL realignment and base quality recalibration are not necessary with Freebayes. For more information, please refer to a post by Brad Chapman on minimal BAM preprocessing methods.

The pipeline provides an analysis of the mapping coverage using sequana coverage. It detects and characterises automatically low and high genome coverage regions.

Detected variants are annotated with SnpEff if a GenBank file is provided. The pipeline does the database building automatically. Although most of the species should be handled automatically, some special cases such as particular codon table will required edition of the snpeff configuration file.

Finally, joint calling is also available and can be switch on if desired.


Version Description
  • fully integrated sequana wrappers and simplification of HTML reports
  • Uses new sequana_pipetools and wrappers
  • fix typo in the onsuccess and update sequana requirements to use most up-to-date snakemake rules
  • fix typo related to the reference-file option new name not changed everyhere in the pipeline.
  • use new framework (faster --help, --from-project option)
  • rename --reference into --reference-file and --annotation to --annotation-file
  • add custom summary page
  • add multiqc config file
  • snpeff output files are renamed sample.snpeff (instead of samplesnpeff)
  • add multiqc to show sequana_coverage and snpeff summary sections
  • cleanup onsuccess section
  • more options sanity checks and options (e.g.,
  • genbank_file renamed into annotation_file in the config
  • use --legacy in freebayes options
  • fix coverage section to use new sequana api
  • add the -do-coverage, --do-joint-calling options as well as --circular and --frebayes--ploidy
  • Fix input-readtag, which was not populated
0.9.0 First release