Skip to main content

A multi-sample fastqc pipeline from Sequana project

Project description

https://badge.fury.io/py/sequana-fastqc.svg JOSS (journal of open source software) DOI https://github.com/sequana/fastqc/actions/workflows/main.yml/badge.svg Python 3.8 | 3.9 | 3.10

This is is the fastqc pipeline from the Sequana projet

Overview:

Runs fastqc and multiqc on a set of Sequencing data to produce control quality reports

Input:

A set of FastQ files (paired or single-end) compressed or not

Output:

An HTML file summary.html (individual fastqc reports, mutli-samples report)

Status:

Production

Wiki:

https://github.com/sequana/fastqc/wiki

Documentation:

This README file, the Wiki from the github repository (link above) and https://sequana.readthedocs.io

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

Installation

sequana_fastqc is based on Python3, just install the package as follows:

pip install sequana_fastqc --upgrade

You will need third-party software such as fastqc. Please see below for details.

Usage

If you have a set of FastQ files in a data/ directory, type:

sequana_fastqc --input-directory data

To know more about the options (e.g., add a different pattern to restrict the execution to a subset of the input files, change the output/working directory, etc):

sequana_fastqc --help

The call to sequana_fastqc creates a directory fastqc. Then, you go to the working directory and execute the pipeline as follows:

cd fastqc
sh fastqc.sh  # for a local run

This launch a snakemake pipeline. If you are familiar with snakemake, you can retrieve the fastqc.rules and config.yaml files and then execute the pipeline yourself with specific parameters:

snakemake -s fastqc.rules --cores 4 --stats stats.txt

Or use sequanix interface.

Please see the Wiki for more examples and features.

Tutorial

You can retrieve test data from sequana_fastqc (https://github.com/sequana/fastqc) or type:

wget https://raw.githubusercontent.com/sequana/fastqc/master/sequana_pipelines/fastqc/data/data_R1_001.fastq.gz
wget https://raw.githubusercontent.com/sequana/fastqc/master/sequana_pipelines/fastqc/data/data_R2_001.fastq.gz

then, prepare the pipeline:

sequana_fastqc --input-directory .
cd fastqc
sh fastq.sh

# once done, remove temporary files (snakemake and others)
make clean

Just open the HTML entry called summary.html. A multiqc report is also available. You will get expected images such as the following one:

https://github.com/sequana/fastqc/blob/main/doc/summary.png?raw=true

Please see the Wiki for more examples and features.

Requirements

This pipelines requires the following executable(s):

  • fastqc

  • falco (optional)

For Linux users, we provide apptainer/singularity images available through the damona project (https://damona.readthedocs.io).

To make use of them, initiliase the pipeline with the –use-apptainer option and everything should be downloaded automatically for you, which also guarantees reproducibility:

sequana_fastqc --input-directory data --use-apptainer --apptainer-prefix ~/images
https://raw.githubusercontent.com/sequana/fastqc/main/sequana_pipelines/fastqc/dag.png

Details

This pipeline runs fastqc in parallel on the input fastq files (paired or not) and then execute multiqc. A brief sequana summary report is also produced. s You may use falco instead of fastqc. This is experimental but seem to work for Illumina/FastQ files.

This pipeline has been tested on several hundreds of MiSeq, NextSeq, MiniSeq, ISeq100, Pacbio runs.

It produces a md5sum of your data. It copes with empty samples. Produces ready-to-use HTML reports, etc

Rules and configuration details

Here is the latest documented configuration file to be used with the pipeline. Each rule used in the pipeline may have a section in the configuration file.

Changelog

Version

Description

1.8.2

  • Fix the onerror typo in the pipeline, fix CI.

1.8.1

  • update __init__ (version)

1.8.0

  • uses pyproject instead of setuptools

  • uses click instead of argparse and newest sequana_pipetools (0.16.0)

1.7.1

  • Set wrapper version in the config based on new sequana_pipetools feature

1.7.0

  • Use new rulegraph wrapper and new graphviz apptainer

1.6.2

  • slight refactorisation to use rulegraph wrapper

1.6.1

  • pin sequana version to 1.4.4 to force usage of new fastqc module to fix falco. Updated config documentation.

1.6.0

  • Fixed falco output error and use singularity containers

1.5.0

  • removed modules completely.

1.4.2

  • simplified pipeline (suppress setup and use existing wrapper)

1.4.1

  • simplified pipeline with wrappers/rules

1.4.0

  • This version uses sequana 0.12.0 and new sequana-wrappers mechanism. Functionalities is unchanged. Also based on sequana_pipetools 0.6.X

1.3.0

  • add option –skip-multiqc (in case of memory trouble)

  • Fix typo in the link towards fastqc reports in the summary.html table

  • Fix number of samples in the paired case (divide by 2)

1.2.0

  • compatibility with Sequanix

  • Fix pipeline to cope with new snakemake API

1.1.0

  • add new rule to allow users to choose falco software instead of fastqc. Note that fastqc is 4 times faster but still a work in progress (version 0.1 as of Nov 2020).

  • allows the pipeline to process pacbio files (in fact any files accepted by fastqc i.e. SAM and BAM files

  • More doc, test and info on the wiki

1.0.1

  • add md5sum of input files as md5.txt file

1.0.0

  • a stable version. Added a wiki on github as well and a singularity recipes

0.9.15

  • For the HTML reports, takes into account samples with zero reads

0.9.14

  • round up some statistics in the main table

0.9.13

  • improve the summary HTML report

0.9.12

  • implemented new –from-project option

0.9.11

  • now depends on sequana_pipetools instead of sequana.pipelines to speed up –help calls

  • new summary.html report created with pipeline summary

  • new rule (plotting)

0.9.10

  • simplify the onsuccess section

0.9.9

  • add missing png and pipeline (regression bug)

0.9.8

  • add missing multi_config file

0.9.7

  • check existence of input directory in main.py

  • add a logo

  • fix schema

  • add multiqc_config

  • add sequana + sequana_fastqc version

0.9.6

add the readtag option

Contribute & Code of Conduct

To contribute to this project, please take a look at the Contributing Guidelines first. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sequana_fastqc-1.9.0.tar.gz (91.5 kB view details)

Uploaded Source

Built Distribution

sequana_fastqc-1.9.0-py3-none-any.whl (89.1 kB view details)

Uploaded Python 3

File details

Details for the file sequana_fastqc-1.9.0.tar.gz.

File metadata

  • Download URL: sequana_fastqc-1.9.0.tar.gz
  • Upload date:
  • Size: 91.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sequana_fastqc-1.9.0.tar.gz
Algorithm Hash digest
SHA256 5deb9aff418262a50650df3b5f90e9b56e8bb9cb4b7e730d095fbfef2a371934
MD5 f398e81f11df44768739c949db08f916
BLAKE2b-256 13b7a5a25b1edeae33392aca798bb800038a9fd520c13224b26850f38fff0050

See more details on using hashes here.

File details

Details for the file sequana_fastqc-1.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sequana_fastqc-1.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee6e0febb11630d54eaa12afaae94fc78cc871a3fa5b245576d739a0852f63b5
MD5 e3431352ed6016360a5642de11c83b89
BLAKE2b-256 5130ef207570cd07f70fdff2d7a6e09eb6bcf96c0302e3e1418d04b532d922dc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page