Sequana documentation#

Current version: 0.21.2, Apr 15, 2026

SEQUANA#

https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat) https://badge.fury.io/py/sequana.svg https://github.com/sequana/sequana/actions/workflows/main.yml/badge.svg?branch=main https://coveralls.io/repos/github/sequana/sequana/badge.svg?branch=main Documentation Status JOSS (journal of open source software) DOI Python 3.10 | 3.11 | 3.12 GitHub Issues https://img.shields.io/badge/code%20style-black-000000.svg DOI downloads
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. https://doi.org/10.1093/gigascience/giy110

For Sequanix: Desvillechabrol et al. Sequanix: A Dynamic Graphical Interface for Snakemake Workflows Bioinformatics, bty034, https://doi.org/10.1093/bioinformatics/bty034 Also available on bioRxiv (DOI: https://doi.org/10.1101/162701)

🔧 Overview and Installation#

Sequana is a Python library dedicated to bioinformatics. It is also a project that 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.

Contributors#

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

https://contrib.rocks/image?repo=sequana/sequana

Changelog :memo:#

Version

Description

0.21.2

  • Update LAA to use the new variant class

0.21.1

  • Fix bowti2 plot( multiqc parsing)

0.21.0

  • Kozak: add plot_logo_bits method (information content / bits scaling)

  • Telomere: refactored sliding window, new annotated plot, cleaner API; telomark CLI gains --plot-style option

  • KEGG enrichment: replace selenium with REST API + PIL rendering

  • FastQ: optimised select_reads_in_list (avoid decode overhead)

  • modules_report: remove deprecated SummaryModule classes

0.20.0

  • Refactoring FASTA and GFF3 modules/classes (less memory). can now handle large eukaryotes as well.

  • Update Kozak module

0.19.6

  • NEW add gff command

  • rename and improve the add_CDS function in GFF class

  • BUG fix typo in the is_telomeric function

  • BUG Fix regression in kraken analysis

0.19.5

  • add embl2fasta, fix CDS parents in GFF file

0.19.4

  • improved TRF module.

  • NEW: added fastq_split and html_report commands. The latter should be used in the future for sequana pipeline HTML reports. Right now, handles VCF file only.

0.19.3

  • Fixes plotly issue in RNAdiff plot (#872)

0.19.2

  • NEW new modules related to genomic metrics (zdna, imotif, cruciform,etc)

  • NEW new visualisation tools

  • NEW parser for hmmtools

0.19.1

  • update pyproject with matploblib, scipy, and all dependencie except snakemake (keep <8.X and its pulp dependency <2.8) because 8.X breaks the containers and therefore all pipelines. no workaround. we will need a snakemake 'frozen library'. This is unfortunate.

  • CHANGES: remove multiqc plugin quality_control (obsolet) and updated many plugin due to increased version ofmultiqc.

0.19.0

  • UPDATE pyproject layout to be poetry2.0 compatible. drop support py3.8

  • NEW: kozak module, somy score, telomere, biomol, rnafold, restriction enzyme

  • UPDATES: sequence module has more metrics (e.g. karlin signature), fastq has a histogram for long reads,

0.18.0

  • NEW: somy scores (module and standalone)

  • CHANGES: coverage now uses mosdepth for the bam2cov. can also handle creation of the 4-column coverage file from BAM on the fly.

  • Drop python 3.8 support (more and more dependencies issues)

0.17.3

  • CHANGES: fix https://github.com/sequana/rnaseq/issues/45 to better handle multiqc files especially, feature counts plugin. Fix #855 to be able to name batch effect column arbitrary to any name. Fix batch effect column (and all others) to be strings rather than integer. If integer, factor are sorted based on the integer values, not the factor itself.

  • NEWS: add size factor comments and table.

0.17.2

  • Pin down pulp<2.8 and snakemake to <8.0 (too many changes in snakemake)

0.17.1

  • NEW: tsne plot

  • CHANGES: update iem module with additional specs

0.17.0

  • CHANGE. remove the substractor utility (use sequana_depletion pipeline instead)

  • CHANGE. remove get_max_gc_correlation function from bedtools. not used.

  • CHANGE. 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

  • IMPROV. speedup kegg enrichment using multiprocess

  • IMPROV. sequana_taxonomy can now download toydb and viruses_masking DBs from zenodo

  • NEW function to retrieve the GO terms and genes from panther website

  • NEW keep_reads function in fastq class

  • Major update of the IEM module (renamed IEM class into SampleSheet)

  • NEW addW find-integrated-genes standalone

0.16.9

  • 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.

0.16.8

  • update IEM for more testing

  • better handling of error in RNADiff

  • Add new methods for ribodesigner

0.16.7

  • Stable release (fix doc), deprecated.

0.16.6

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

0.16.5

  • 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/bar.py into viz)

0.16.4

  • hot fixes on RNAdiff reports and enrichments

0.16.3

0.16.2

  • save coverage PNG image (regression)

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

0.16.1

  • hotfix missing module

0.16.0

  • 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)

0.15.4

  • add plot for rnaseq/rnadiff

0.15.3

  • 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

0.15.2

  • 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

0.15.1

  • Fix creation of images directory in modules report

  • add missing test related to gff

  • Fix #804

0.15.0

  • 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.

0.14.6

  • 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

0.14.5

0.14.4

  • 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

0.14.3

  • new fisher metric in variant calling; support several features in rnaseq/rnadiff

  • pin several libaries due to regression during installs

0.14.2

  • Update ribodesigner

0.14.1

  • Kegg enrichment improvements; new uniprot module for GO term enrichment

0.14.0

  • pinned click>=8.1.0; ribodesigner new plots, clustering and notebook

0.13.X

  • 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

0.12.X

Any :question: Feel free to [open an issue](https://github.com/sequana/sequana/issues)

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.

Installation

conda install sequana

Examples

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#