Cascabel est un pipeline conçu pour exécuter une analyse de séquence d'amplicons sur une ou plusieurs bibliothèques de lecture. L'objectif de ce pipeline est de créer différents fichiers de sortie qui permettent à l'utilisateur d'explorer les données de manière simple et significative, ainsi que de faciliter l'analyse en aval, basée sur les fichiers de sortie générés.
CASCABEL a été conçu pour la lecture courte de données de séquence à haut débit. Il couvre le contrôle qualité des fichiers fastq, l'assemblage de lectures appariées en fragments (il peut également gérer des données à extrémité unique), la division des bibliothèques en échantillons (facultatif), la sélection d'OTU et l'affectation de taxonomie. Outre les autres fichiers de sortie, il renverra une table OTU.
Notre pipeline est implémenté avec Snakemake comme moteur de gestion de workflow et permet de personnaliser les analyses en proposant plusieurs choix pour la plupart des étapes. Le pipeline peut utiliser plusieurs nœuds informatiques et s'adapter aux ordinateurs personnels jusqu'aux serveurs informatiques. Les analyses et les résultats sont entièrement reproductibles et documentés dans un rapport HTML et PDF en option.
Version actuelle : 6.1.0
Le moyen le plus simple et recommandé d’installer Cascabel est via Conda . Le moyen le plus rapide d'obtenir Conda est d'installer Miniconda, une mini version d'Anaconda qui inclut uniquement conda et ses dépendances.
Pour installer conda ou miniconda, veuillez consulter le didacticiel suivant (recommandé) ou, si vous travaillez avec un système d'exploitation Linux, vous pouvez essayer ce qui suit :
Téléchargez le programme d'installation :
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
Exécutez le script d'installation et suivez les instructions.
bash Miniconda3-latest-Linux-x86_64.sh
Malheureusement, Cascabel a de nombreuses dépendances et les dernières versions de Conda trouvent des conflits entre elles. Cependant, avec conda v 4.6.14, nous avons remarqué que l'installation peut se dérouler sans problème. Pour ce faire, nous devons rétrograder la version conda avec la commande suivante :
conda install conda=4.6.14
Une fois que conda est installé, nous sommes prêts à cloner ou télécharger le projet.
Vous pouvez cloner le projet :
git clone https://github.com/AlejandroAb/CASCABEL.git
Ou téléchargez-le depuis ce référentiel :
wget https://github.com/AlejandroAb/CASCABEL/archive/master.zip
Après avoir téléchargé ou cloné le référentiel, cdez-vous dans le répertoire "CASCABEL" et exécutez là la commande suivante afin de créer l'environnement de CASCABEL :
conda env create --name cascabel --file environment.yaml
Maintenant que vous avez créé l'environnement cascabel, vous pouvez installer Snakemake en suivant cette aide en ligne ou exécuter la commande suivante :
conda install -c bioconda -c conda-forge snakemake
Toutes les dépendances requises par CASCABEL sauf par Snakemake et donc Python sont chargées dans un seul environnement conda. En ce sens, CASCABEL utilise matplotlib pour générer certains graphiques, il est donc nécessaire d'installer cette bibliothèque avant de charger l'environnement. La méthode recommandée pour procéder est de suivre le guide d'installation ou vous pouvez également essayer avec :
pip install matplotlib --user
*Pensez à utiliser le flag --user comme ci-dessus, si vous effectuez une installation locale ou si vous n'avez pas les droits sudo
Après avoir installé Snakemake et Matplotlib, nous pouvons activer notre nouvel environnement.
conda activate cascabel
Après avoir activé l'environnement, il est possible que Snakemake ne soit plus dans votre PATH, dans ce cas exportez simplement le répertoire bin de Snakemake. c'est à dire :
export PATH=$PATH:/path/to/miniconda3/bin
Vous n'avez besoin de suivre cette étape supplémentaire que si vous prévoyez d'exécuter Cascabel avec le workflow asv .
Certains problèmes ont été signalés lors de l'installation de dada2 dans conda, nous devons donc effectuer une dernière étape supplémentaire afin d'installer dada2.
Entrez dans le shell R (tapez simplement R
) et exécutez la commande suivante :
BiocManager::install("dada2", version = "3.10")
*Veuillez noter que BiocManager doit être déjà installé, il vous suffit donc d'exécuter la commande précédente. Vous pouvez également trouver plus d'informations dans le guide d'installation de dada2.
Nous sommes conscients que ce n'est pas l'installation la plus simple, c'est pourquoi nous travaillons sur un conteneur de singularité, le même que nous espérons avoir bientôt disponible.
Merci de votre compréhension !
Fichiers d'entrée requis :
Principaux fichiers de sortie attendus pour l'analyse en aval
Exécutez Cascabel
Tous les paramètres et comportements du flux de travail sont spécifiés via le fichier de configuration. Par conséquent, le moyen le plus simple de faire fonctionner le pipeline est de remplir certains paramètres requis dans ce fichier.
# ------------------------------------------------------------------------------#
# Project Name #
# ------------------------------------------------------------------------------#
# The name of the project for which the pipeline will be executed. This should #
# be the same name used as the first parameter on init_sample.sh script (if #
# used for multiple libraries #
# ------------------------------------------------------------------------------#
PROJECT : " My_CASCABEL_Project "
# ------------------------------------------------------------------------------#
# LIBRARIES/SAMPLES #
# ------------------------------------------------------------------------------#
# SAMPLES/LIBRARIES you want to include in the analysis. #
# Use the same library names as with the init_sample.sh script. #
# Include each library name surrounded by quotes, and comma separated. #
# i.e LIBRARY: ["LIB_1","LIB_2",..."LIB_N"] #
# LIBRARY_LAYOUT: Configuration of the library; all the libraries/samples #
# must have the same configuration; use: #
# "PE" for paired-end reads [Default]. #
# "SE" for single-end reads. #
# ------------------------------------------------------------------------------#
LIBRARY : ["EXP1"]
LIBRARY_LAYOUT : " PE "
# ------------------------------------------------------------------------------#
# INPUT FILES #
# ------------------------------------------------------------------------------#
# To run Cascabel for multiple libraries you can provide an input file, tab #
# separated with the following columns: #
# - Library: Name of the library (this have to match with the values entered #
# in the LIBRARY variable described above). #
# - Forward reads: Full path to the forward reads. #
# - Reverse reads: Full path to the reverse reads (only for paired-end). #
# - metadata: Full path to the file with the information for #
# demultiplexing the samples (only if needed). #
# The full path of this file should be supplied in the input_files variable, #
# otherwise, you have to enter the FULL PATH for both: the raw reads and the #
# metadata file (barcode mapping file). The metadata file is only needed if #
# you want to perform demultiplexing. #
# If you want to avoid the creation of this file a third solution is available #
# using the script init_sample.sh. More info at the project Wiki: #
# https://github.com/AlejandroAb/CASCABEL/wiki#21-input-files #
# #
# ----------------------------- PARAMS -----------------------------#
# #
# - fw_reads: Full path to the raw reads in forward direction (R1) #
# - rw_reads: Full path to the raw reads in reverse direction (R2) #
# - metadata: Full path to the metadata file with barcodes for each sample #
# to perform library demultiplexing #
# - input_files: Full path to a file with the information for the library(s) #
# #
# ** Please supply only one of the following: #
# - fw_reads, rv_reads and metadata #
# - input_files #
# - or use init_sample.sh script directly #
# ------------------------------------------------------------------------------#
fw_reads : " /full/path/to/forward.reads.fq "
rv_reads : " /full/path/to/reverse.reads.fq "
metadata : " /full/path/to/metadata.barcodes.txt "
# or
input_files : " /full/path/to/input_reference.txt "
# ------------------------------------------------------------------------------#
# ASV_WF: Binned qualities and Big data workflow #
# ------------------------------------------------------------------------------#
# For fastq files with binned qualities (e.g. NovaSeq and NextSeq) the error #
# learning process within dada2 can be affected, and some data scientists #
# suggest that enforcing monotonicity could be beneficial for the analysis. #
# In this section, you can modify key parameters to enforce monotonicity and #
# also go through a big data workflow when the number of reads may exceed the #
# physical memory limit.
# More on binned qualities: https://www.illumina.com/content/dam/illumina-marketing/documents/products/technotes/technote_understanding_quality_scores.pdf
# You can also follow this excellent thread about binned qualities and Dada2: https://forum.qiime2.org/t/novaseq-and-dada2-incompatibility/25865/8
# ------------------------------------------------------------------------------#
binned_q_scores : " F " # Binned quality scores.Set this to "T" if you want to enforce monotonicity
big_data_wf : " F " # Set to true when your sequencing run contains more than 10^9 reads (depends on RAM availability!)
# ------------------------------------------------------------------------------#
# RUN #
# ------------------------------------------------------------------------------#
# Name of the RUN - Only use alphanumeric characters and don't use spaces. #
# This parameter helps the user to execute different runs (pipeline executions)#
# with the same input data but with different parameters (ideally). #
# The RUN parameter can be set here or remain empty, in the latter case, the #
# user must assign this value via the command line. #
# i.e: --config RUN=run_name #
# ------------------------------------------------------------------------------#
RUN : " My_First_run "
# ------------------------------------------------------------------------------#
# ANALYSIS TYPE #
# rules: #
# ------------------------------------------------------------------------------#
# Cascabel supports two main types of analysis: #
# 1) Analysis based on traditional OTUs (Operational Taxonomic Units) which #
# are mainly generated by clustering sequences based on a sheared #
# similarity threshold. #
# 2) Analysis based on ASV (Amplicon sequence variant). This kind of analysis #
# deal also with the errors on the sequence reads such that true sequence #
# variants can be resolved, down to the level of single-nucleotide #
# differences. #
# #
# ----------------------------- PARAMS -----------------------------#
# #
# - ANALYSIS_TYPE "OTU" or "ASV". Defines the type analysis #
# ------------------------------------------------------------------------------#
ANALYSIS_TYPE : " OTU "
Pour plus d'informations sur la façon de fournir ces données, veuillez suivre le lien pour des instructions détaillées
Comme vous pouvez le voir sur le fragment précédent du fichier de configuration (config.yaml), les paramètres requis pour que CASCABEL démarre sont : PROJECT , LIBRARY , RUN , fw_reads , rv_reads et metadata . Après avoir entré ces paramètres, prenez quelques minutes et parcourez le reste du fichier de configuration et écrasez les paramètres en fonction de vos besoins. La plupart des valeurs sont déjà préconfigurées. Le fichier de configuration s'explique en utilisant des en-têtes significatifs avant chaque règle, expliquant le but de cette règle et les différents paramètres que l'utilisateur peut utiliser. Il est très important de conserver l'indentation du fichier (ne pas modifier les tabulations et les espaces), ainsi que le nom des paramètres. Une fois que vous avez des valeurs valides pour ces entrées, vous êtes prêt à exécuter le pipeline (avant de démarrer CASCABEL, il est toujours conseillé de faire un "essai à sec") :
Veuillez également noter la section TYPE D'ANALYSE . Cascabel prend en charge deux principaux types d'analyse, les OTU (Operational Taxonomic Units) et les ASV (Amplicon Sequence Variants), ici vous pouvez sélectionner le flux de travail cible que Cascabel exécutera. Pour plus d'informations, veuillez vous référer à la section Type d'analyse
snakemake --configfile config.yaml
Vous pouvez éventuellement spécifier les mêmes paramètres* via l'indicateur --config, plutôt que dans le fichier config.yaml :
snakemake --configfile config.yaml --config PROJECT="My_CASCABEL_Project" RUN="My_First_run" fw_reads="//full/path/to/forward.reads.fq" rv_reads="/full/path/to/reverse.reads.fq" metadata="full/path/to/metadata.barcodes.txt"
*Sauf la BIBLIOTHÈQUE, car celle-ci est déclarée sous forme de tableau, elle doit donc être renseignée dans le fichier de configuration
Pour un guide complet sur la configuration et l'utilisation de CASCABEL, veuillez visiter le wiki officiel du projet.
Nous fournissons des fichiers de configuration « pré-remplis » pour les principales configurations possibles, comme pour les lectures d'extrémités appariées à code-barres doubles et simples pour l'analyse OTU et ASV. Nous vous conseillons fortement de faire des choix éclairés sur les réglages des paramètres correspondant aux besoins individuels de l'expérience et de l'ensemble de données.
Afin de tester le pipeline, nous suggérons également d'essayer de l'exécuter avec les données de test de CASCABEL.
Exemple de fichier de mappage de codes-barres
Cascabel : un pipeline d'analyse de données de séquences d'amplicons évolutif et polyvalent fournissant des résultats reproductibles et documentés. Alejandro Abdala Asbun, Marc A Besseling, Sergio Balzano, Judith van Bleijswijk, Harry Witte, Laura Villanueva, Julia C Engelmann Front. Genet.; est ce que je: https://doi.org/10.3389/fgene.2020.489357