Cascabel ist eine Pipeline zur Durchführung einer Amplikon-Sequenzanalyse über einzelne oder mehrere Lesebibliotheken hinweg. Das Ziel dieser Pipeline besteht darin, verschiedene Ausgabedateien zu erstellen, die es dem Benutzer ermöglichen, Daten auf einfache und aussagekräftige Weise zu untersuchen und eine nachgelagerte Analyse auf Basis der generierten Ausgabedateien zu erleichtern.
CASCABEL wurde für kurze Lesesequenzdaten mit hohem Durchsatz entwickelt. Es umfasst die Qualitätskontrolle der Fastq-Dateien, das Zusammensetzen von Paired-End-Lesevorgängen zu Fragmenten (es kann auch Single-End-Daten verarbeiten), das Aufteilen der Bibliotheken in Samples (optional), die OTU-Auswahl und die Taxonomiezuweisung. Neben anderen Ausgabedateien wird eine OTU-Tabelle zurückgegeben.
Unsere Pipeline ist mit Snakemake als Workflow-Management-Engine implementiert und ermöglicht die individuelle Anpassung der Analysen, indem sie für die meisten Schritte mehrere Auswahlmöglichkeiten bietet. Die Pipeline kann mehrere Rechenknoten nutzen und von Personalcomputern bis hin zu Rechenservern reichen. Die Analysen und Ergebnisse sind vollständig reproduzierbar und werden in einem HTML- und optionalem PDF-Bericht dokumentiert.
Aktuelle Version: 6.1.0
Der einfachste und empfohlene Weg, Cascabel zu installieren, ist über Conda . Der schnellste Weg, Conda zu erhalten, ist die Installation von Miniconda, einer Miniversion von Anaconda, die nur Conda und seine Abhängigkeiten enthält.
Um Conda oder Miniconda zu installieren, lesen Sie bitte das folgende Tutorial (empfohlen) oder, wenn Sie mit einem Linux-Betriebssystem arbeiten, können Sie Folgendes versuchen:
Laden Sie das Installationsprogramm herunter:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
Führen Sie das Installationsskript aus und folgen Sie den Anweisungen.
bash Miniconda3-latest-Linux-x86_64.sh
Leider weist Cascabel viele Abhängigkeiten auf und die neuesten Conda-Versionen weisen Konflikte zwischen ihnen auf. Mit Conda v 4.6.14 haben wir jedoch festgestellt, dass die Installation reibungslos ablaufen kann. Dazu müssen wir die Conda-Version mit dem folgenden Befehl herunterstufen:
conda install conda=4.6.14
Sobald Sie Conda installiert haben, können wir das Projekt klonen oder herunterladen.
Sie können das Projekt klonen:
git clone https://github.com/AlejandroAb/CASCABEL.git
Oder laden Sie es aus diesem Repository herunter:
wget https://github.com/AlejandroAb/CASCABEL/archive/master.zip
Wechseln Sie nach dem Herunterladen oder Klonen des Repositorys in das Verzeichnis „CASCABEL“ und führen Sie dort den folgenden Befehl aus, um die CASCABEL-Umgebung zu erstellen:
conda env create --name cascabel --file environment.yaml
Nachdem Sie nun die Cascabel-Umgebung erstellt haben, können Sie Snakemake installieren, indem Sie dieser Online-Hilfe folgen oder den folgenden Befehl ausführen:
conda install -c bioconda -c conda-forge snakemake
Alle von CASCABEL benötigten Abhängigkeiten mit Ausnahme von Snakemake und damit Python werden in einer Conda-Umgebung geladen. In diesem Sinne verwendet CASCABEL matplotlib zum Generieren einiger Diagramme. Daher muss diese Bibliothek vor dem Laden der Umgebung installiert sein. Die empfohlene Vorgehensweise besteht darin, der Installationsanleitung zu folgen. Alternativ können Sie es auch mit Folgendem versuchen:
pip install matplotlib --user
*Erwägen Sie die Verwendung des Flags --user wie oben, wenn Sie eine lokale Installation durchführen oder keine Sudo -Rechte haben
Nach der Installation von Snakemake und Matplotlib können wir unsere neue Umgebung aktivieren.
conda activate cascabel
Nach der Aktivierung der Umgebung ist es möglich, dass sich Snakemake nicht mehr in Ihrem PATH befindet. Exportieren Sie in diesem Fall einfach das bin-Verzeichnis von Snakemake. dh:
export PATH=$PATH:/path/to/miniconda3/bin
Sie müssen diesen einen weiteren Schritt nur ausführen, wenn Sie Cascabel mit dem ASV-Workflow ausführen möchten.
Bei der Installation von dada2 in Conda wurden einige Probleme gemeldet. Daher müssen wir noch einen letzten Schritt ausführen, um dada2 zu installieren
Rufen Sie die R-Shell auf (geben Sie einfach R
ein) und führen Sie den folgenden Befehl aus:
BiocManager::install("dada2", version = "3.10")
*Bitte beachten Sie, dass BiocManager bereits installiert sein sollte, sodass Sie nur den vorherigen Befehl ausführen müssen. Weitere Informationen finden Sie auch in der Installationsanleitung von dada2.
Wir sind uns bewusst, dass dies nicht die einfachste Installation ist, daher arbeiten wir an einem einzigartigen Container, den wir hoffentlich bald verfügbar haben werden.
Vielen Dank für Ihr Verständnis!
Erforderliche Eingabedateien:
Wichtigste erwartete Ausgabedateien für die nachgelagerte Analyse
Führen Sie Cascabel aus
Alle Parameter und das Verhalten des Workflows werden über die Konfigurationsdatei festgelegt. Daher ist es am einfachsten, die Pipeline zum Laufen zu bringen, indem einige erforderliche Parameter in diese Datei eingetragen werden.
# ------------------------------------------------------------------------------#
# 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 "
Für weitere Informationen zur Bereitstellung dieser Daten folgen Sie bitte dem Link für detaillierte Anweisungen
Wie Sie im vorherigen Fragment der Konfigurationsdatei (config.yaml) sehen können, sind die erforderlichen Parameter für den Start von CASCABEL: PROJECT , LIBRARY , RUN , fw_reads , rv_reads und metadata . Nehmen Sie sich nach der Eingabe dieser Parameter einige Minuten Zeit, gehen Sie den Rest der Konfigurationsdatei durch und überschreiben Sie die Einstellungen entsprechend Ihren Anforderungen. Die meisten Werte sind bereits vorkonfiguriert. Die Konfigurationsdatei erklärt sich selbst, indem sie vor jeder Regel aussagekräftige Header verwendet, die das Ziel einer solchen Regel und die verschiedenen Parameter erläutern, die der Benutzer verwenden kann. Es ist sehr wichtig, die Einrückung der Datei (Tabulatoren und Leerzeichen nicht ändern) sowie den Namen der Parameter beizubehalten. Sobald Sie gültige Werte für diese Einträge haben, können Sie die Pipeline ausführen (vor dem Start von CASCABEL empfiehlt es sich immer, einen „Probelauf“ durchzuführen):
Bitte beachten Sie auch den Abschnitt ANALYSETYP . Cascabel unterstützt zwei Haupttypen der Analyse: OTUs (Operational Taxonomische Einheiten) und ASVs (Amplicon Sequence Variants). Hier können Sie den Ziel-Workflow auswählen, den Cascabel ausführen soll. Weitere Informationen finden Sie im Abschnitt Analysetyp
snakemake --configfile config.yaml
Optional können Sie dieselben Parameter* über das Flag --config angeben, anstatt in der Datei 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"
*Mit Ausnahme der LIBRARY, da diese als Array deklariert ist und daher in der Konfigurationsdatei aufgefüllt werden muss
Eine vollständige Anleitung zur Einrichtung und Verwendung von CASCABEL finden Sie im offiziellen Projekt-Wiki
Wir stellen einige „vorgefüllte“ Konfigurationsdateien für die wichtigsten möglichen Konfigurationen bereit, z. B. für Double- und Single-Barcode-Paired-End-Reads für die OTU- und ASV-Analyse. Wir empfehlen dringend, fundierte Entscheidungen über Parametereinstellungen zu treffen, die den individuellen Anforderungen des Experiments und des Datensatzes entsprechen.
Um die Pipeline zu testen, empfehlen wir auch, sie mit den Testdaten von CASCABEL auszuführen
Beispiel für eine Barcode-Zuordnungsdatei
Cascabel: eine skalierbare und vielseitige Amplikon-Sequenzdatenanalyse-Pipeline, die reproduzierbare und dokumentierte Ergebnisse liefert. Alejandro Abdala Asbun, Marc A Besseling, Sergio Balzano, Judith van Bleijswijk, Harry Witte, Laura Villanueva, Julia C Engelmann Front. Genet.; doi: https://doi.org/10.3389/fgene.2020.489357