Sequana documentation

Current version: 0.16.11, Mar 18, 2024

SEQUANA Documentation Status JOSS (journal of open source software) DOI Python 3.8 | 3.9 | 3.10 | 3.11 GitHub Issues
How to cite:

Citations are important for us to carry on developments. For Sequana library (including the pipelines), please use

Cokelaer et al, (2017), 'Sequana': a Set of Snakemake NGS pipelines, Journal of Open Source Software, 2(16), 352, JOSS DOI doi:10.21105/joss.00352

For the genome coverage tool (sequana_coverage): Desvillechabrol et al, 2018: detection and characterization of genomic variations using running median and mixture models. GigaScience, 7(12), 2018.

For Sequanix: Desvillechabrol et al. Sequanix: A Dynamic Graphical Interface for Snakemake Workflows Bioinformatics, bty034, Also available on bioRxiv (DOI:

Sequana includes a set of pipelines related to NGS (new generation sequencing) including quality control, variant calling, coverage, taxonomy, transcriptomics. We also ship Sequanix, a graphical user interface for Snakemake pipelines.

Pipelines and tools available in the Sequana project



Latest Pypi version

Test passing



Create and Manage Sequana pipeline

Not required


Set of wrappers to build pipelines

Not on pypi

Not required


Demultiplex your raw data

License restriction


denovo sequencing data


Get Sequencing Quality control


Map sequences on target genome


Map sequences on target genome


Merge barcoded (or unbarcoded) nanopore fastq and reporting


Pacbio quality control


Find ribosomal content


RNA-seq analysis


Variant Calling


Coverage (mapping)


Long read Amplicon Analysis


reverse complement of sequence data


downsample sequencing data

Not required


remove/select reads mapping a reference
Pipelines not yet released



Latest Pypi version

Test passing


Find repeats


Taxonomy analysis

Please see the documentation for an up-to-date status and documentation.


Maintaining Sequana would not have been possible without users and contributors. Each contribution has been an encouragement to pursue this project. Thanks to all:





  • viz submodules: remove easydev and cleanup scipy imports

  • remove the substractor utility (use sequana_depletion pipeline instead)

  • remove get_max_gc_correlation function from bedtools. not used.

  • Major change in VCF reader (freebayes). Got rid of freebayes_bcf_filter redundant with freebayes_vcf_filter; replace scipy fisher test with own implementation. Remove useless VCF code.

  • Fixes rnadiff HTML report

  • speedup kegg enrichment using multiprocess

  • Allow sequana_taxonomy to download toydb and viruses_masking DBs from zenodo


  • Major fix on PCA and add batch effect plots in RNAdiff analysis

  • count matrix and DESeq2 output files' headers fixed with missing index (no impact on analysis but only for those willing to use the CSV files in excel)

  • Taxonomy revisited to save taxonomy.dat in gzipped CSV format.


  • update IEM for more testing

  • better handling of error in RNADiff

  • Add new methods for ribodesigner


  • Stable release (fix doc), deprecated.


  • Refactor IEM to make it more robust with more tests.


  • refactor to use pyproject instead of setuptools

  • remove pkg_resources (future deprecation)

  • remove unused requirements (cookiecutter, adjusttext, docutuils, mock, psutil, pykwalify)

  • cleanup resources (e.g. moving canvas/ into viz)


  • hot fixes on RNAdiff reports and enrichments



  • save coverage PNG image (regression)

  • Update taxonomy/coverage standalone (regression) and more tests


  • hotfix missing module


  • add mpileup module

  • homogenization enrichment + fixup rnadiff

  • Complete refactoring of sequana coverage module. Allow sequana_coverage to handle small eukaryotes in a more memory efficient way.

  • use click for the sequana_taxonomy and sequana_coverage and sequana rnadiff command

  • Small fixup on homer, idr and phantom modules (for chipseq pipeline)


  • add plot for rnaseq/rnadiff


  • add sequana.viz.plotly module. use tqdm in bamtools module

  • KEGG API changed. We update sequana to use headless server and keep the feature of annotated and colored pathway.

  • Various improvements on KEGG enrichment including saving pathways, addition --comparison option in sequana sub-command, plotly plots, etc


  • ribodesigner can now accept an input fasta with no GFF assuming the fasta already contains the rRNA sequences

  • Fix IEM module when dealing with double indexing

  • Fix anchors in HTML reports (rnadiff module)

  • refactorise compare module to take several rnadiff results as input

  • enrichment improvements (export KEGG and GO as csv files


  • Fix creation of images directory in modules report

  • add missing test related to gff

  • Fix #804


  • add logo in reports

  • RNADiff reports can now use shrinkage or not (optional)

  • remove useless rules now in sequana-wrappers

  • update main README to add LORA in list of pipelines

  • Log2FC values are now shrinked log2FC values in volcano plot and report table. "NotShrinked" columns for Log2FC and Log2FCSE prior shrinkage are displayed in report table.


  • add fasta_and_gff_annotation module to correct fasta and gff given a vcf file.

  • add macs3 module to read output of macs3 peak detector.

  • add idr module to read results of idr analysis

  • add phantom module to compute phantom peaks

  • add homer module to read annotation files from annotatePeaks



  • hotfix bug on kegg colorised pathways

  • Fix the hover_name in rnadiff volcano plot to include the index/attribute.

  • pin snakemake to be >=7.16


  • new fisher metric in variant calling

  • ability to use several feature in rnaseq/rnadiff

  • pin several libaries due to regression during installs


  • Update ribodesigner


  • Kegg enrichment: add gene list 'all' and fix incomplete annotation case

  • New uniprot module for GO term enrichment and enrichment refactorisation (transparent for users)


  • pinned click>=8.1.0 due to API change (autocomplete)

  • moved tests around to decrease packaging from 16 to 4Mb

  • ribodesigner: new plots, clustering and notebook


  • Remove useless standalones or moved to main sequana command

  • Move sequana_lane_merging into a subcommand (sequana lane_merging)

  • General cleanup of documentation, test and links to pipelines

  • add new ribodesigner subcommand


What is Sequana ?

Sequana is a versatile tool that provides

  1. A Python library dedicated to NGS analysis (e.g., tools to visualise standard NGS formats).

  2. A set of pipelines dedicated to NGS in the form of Snakefiles (Makefile-like with Python syntax based on snakemake framework).

  3. Original tools to help in the creation of such pipelines including HTML reports.

  4. Standalone applications:
    1. sequana_coverage ease the extraction of genomic regions of interest and genome coverage information

    2. sequana_taxonomy performs a quick taxonomy of your FastQ. This requires dedicated databases to be downloaded.

    3. Sequanix: GUI for snakemake workflows, a GUI for Snakemake workflows (hence Sequana pipelines as well)

The sequana pipelines are various. Since March 2020, they have their own independent life within dedicated github repositories. You may find pipelines for NGS quality control (e.g. adapters removal, phix removal, trimming of bad quality bases), variant calling, characterisation of the genome coverage, taxonomic classification, de-novo assembly, Variant calling, RNA-seq, etc. See the Pipelines section for more information.

Sequana can be used by developers to create new pipelines and by users in the form of applications ready for production. Moreover, Sequanix can be used to set the parameters of pipelines and execute them easily with a graphical user interface.

To join the project, please let us know on github.


conda install sequana


Visit our example gallery to use the Python library

NGS pipelines

Learn about available Snakemake pipelines

Standalone applications

Standalone applications including Sequanix (GUI for snakemake) and the sequana_coverage tool.

User guide and reference

Indices and tables