Skip to main content

Pipeline that runs bcl2fastq and creates additional plots within a Snakemake workflow

Project description

This is is the demultiplex pipeline from the Sequana projet

Overview:Runs bcl2fastq on raw BCL data and creates plots to ease the QC validation
Input:A valid Illumina base calling directory
Output:a set of PNG files and the expected FastQ files
Documentation:This README file, the Wiki from the github repository (link above) and
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:

pip install sequana

Then, just install this package:

pip install sequana_demultiplex


sequana_pipelines_demultiplex --help
sequana_pipelines_demultiplex --working-directory DATAPATH --bcl-directory bcldata --samplesheet SampleSheet.csv

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

cd demultiplex
sh  # for a local run

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

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

Or use sequanix interface.

Would you need to merge the lane, please add the –merging-strategy argument followed by merge:

sequana_pipelines_demultiplex --bcl-directory bcl_data --merging-strategy merge


This pipelines requires the following executable(s):

  • bcl2fastq 2.20.0

bcl2fastq should be present in your path. Most facilities have the tools installed. On cluster, modules provide the tool as well. If you do not have it, we provide a singularity image, which can be download as follow:

singularity pull bcl2fastq.img shub://cokelaer/ngstools:bcl2fastq

Then, just add a script called bc2fastq in your binary PATH with is content:

singularity run PATH_TO_image/bcl2fastq.img ${1+"$@"}


This pipeline runs bcl2fastq 2.20 and creates a set of diagnostics plots to help deciphering common issues such as missing index and sample sheet errors.

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.


Version Description

change some default behaviour:

  • write_fastq_reverse_complement is now set to False by default like bcl2fastq
  • The –no-bgzf-compression option is changed into –bgzf-compression. We do not want this option by default.
  • The –ignore-missing-bcls option is changed into –no-ignore-missing-bcls so as to ignore missing bcls by default keep this option as a flag and keep same behaviour
  • Fix HTML syntax
  • stable version pinned on sequana libraries
  • fix label in plot_summary,
  • add new plot to show reads per sample + undetermined
  • add two tools one to check the samplesheet called sequana_sample_sheet and one called sequana_fix_samplesheet. The former is now inside the pipeline as well and when creating the pipeline
  • set –write_reverse_complement to False by default
  • remove the –ignore-missing-control which is deprecated anyway
  • implement the new option –from-project, add missing MANIFEST
  • simplification of the pipeline to use sequana 0.8.4 to speed up the –help calls.
  • include a summary HTML report
  • fix typos
  • Use new release of sequana_pipetools
  • set matplotlib backend to agg
  • include a simple HTML report
  • Handle different RunParameter.xml name (NextSeq vs HiSeq)
  • Fix a regression bug due to new sequana release. We do not check the input file (fastq) since this is not a sequence analysis pipeline
  • Check whether it is a NextSeq run. If so, merging-strategy must be set to ‘merge’. Can be bypassed using –force
  • Check the presence of the bcl input directory and samplesheet.
  • More help in the –help message.
  • add –sample-sheet option to replace –samplesheet option
  • Fix the schema file
  • Check for presence of RunParameters.xml and provide information if merging-stratgy is set to None whereas it is a NextSeq run
0.9.3 Fix regression bug
0.9.2 remove warning due to relative paths.
0.9.1 Make the merging options compulsory. Users must tell whether they want to merge the lanes or not. This avoid to do the merging or not whereas the inverse was expected.
0.8.6 Uses 64G/biomics queue and 16 cores on a SLURM scheduler

Project details

Download files

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

Files for sequana-demultiplex, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size sequana_demultiplex-1.0.1.tar.gz (41.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page