Teil 2: Implementierung für eine einzelne Probe¶
KI-gestützte Übersetzung - mehr erfahren & Verbesserungen vorschlagen
In diesem Teil des Kurses werden wir den einfachstmöglichen Workflow schreiben, der alle Befehle aus Teil 1 zusammenfasst, um ihre Ausführung zu automatisieren. Dabei werden wir zunächst nur eine Probe gleichzeitig verarbeiten.
Wir werden dies in drei Schritten tun:
- Einen einstufigen Workflow schreiben, der den ersten QC-Schritt ausführt
- Adapter-Trimming und Post-Trimming-QC hinzufügen
- Alignment zum Referenzgenom hinzufügen
Voraussetzung
Du musst Teil 1 des Kurses durcharbeiten, bevor du mit dieser Lektion beginnst.
Insbesondere durch das Durcharbeiten der Abschnitte 2.1-3 wird die Genom-Indexdatei (data/genome_index.tar.gz) erstellt, die für den Alignment-Schritt in dieser Lektion benötigt wird.
1. Einen einstufigen Workflow schreiben, der die erste QC ausführt¶
Beginnen wir damit, einen einfachen Workflow zu schreiben, der das FastQC-Tool auf eine FASTQ-Datei mit Single-End-RNAseq-Reads anwendet.
Wir stellen dir eine Workflow-Datei, rnaseq.nf, zur Verfügung, die die Hauptteile des Workflows skizziert.
| rnaseq.nf | |
|---|---|
Beachte, dass dieser Workflow-Code zwar korrekt, aber noch nicht funktionsfähig ist; sein Zweck ist es lediglich, als Gerüst zu dienen, das du zum Schreiben des eigentlichen Workflows verwenden wirst.
1.1. Ein Verzeichnis zum Speichern von Modulen erstellen¶
Wir werden eigenständige Module für jeden Prozess erstellen, um sie einfacher verwalten und wiederverwenden zu können. Erstellen wir also ein Verzeichnis zum Speichern.
1.2. Ein Modul für den Prozess zur Erfassung von QC-Metriken erstellen¶
Erstellen wir eine Moduldatei namens modules/fastqc.nf, um den FASTQC-Prozess unterzubringen:
Öffne die Datei im Code-Editor und kopiere den folgenden Code hinein:
Du solltest alle Teile aus dem wiedererkennen, was du in Teil 1 & Teil 2 dieser Trainingsreihe gelernt hast; die einzige nennenswerte Änderung ist, dass wir diesmal mode: symlink für die publishDir-Direktive verwenden und einen Parameter zur Definition von publishDir verwenden.
Hinweis
Obwohl die Datendateien, die wir hier verwenden, sehr klein sind, können sie in der Genomik sehr groß werden. Zu Demonstrationszwecken in der Trainingsumgebung verwenden wir den 'symlink'-Veröffentlichungsmodus, um unnötige Dateikopien zu vermeiden. Du solltest dies in deinen finalen Workflows nicht tun, da du Ergebnisse verlierst, wenn du dein work-Verzeichnis aufräumst.
1.3. Das Modul in die Workflow-Datei importieren¶
Füge die Anweisung include { FASTQC } from './modules/fastqc.nf' zur Datei rnaseq.nf hinzu:
1.4. Eine Eingabedeklaration hinzufügen¶
Deklariere einen Eingabeparameter mit einem Standardwert:
| rnaseq.nf | |
|---|---|
1.5. Einen Eingabekanal im Workflow-Block erstellen¶
Verwende eine einfache .fromPath()-Channel-Factory, um den Eingabekanal zu erstellen:
| rnaseq.nf | |
|---|---|
1.6. Den FASTQC-Prozess auf dem Eingabekanal aufrufen¶
| rnaseq.nf | |
|---|---|
1.7. Den Workflow ausführen, um zu testen, ob er funktioniert¶
Wir könnten den --reads-Parameter verwenden, um eine Eingabe von der Befehlszeile aus anzugeben, aber während der Entwicklung können wir faul sein und einfach den eingerichteten Teststandard verwenden.
Befehlsausgabe
Dies sollte sehr schnell ausgeführt werden, wenn du Teil 1 durchgearbeitet hast und den Container bereits heruntergeladen hast. Wenn du ihn übersprungen hast, wird Nextflow den Container für dich herunterladen; du musst nichts dafür tun, aber du musst möglicherweise bis zu einer Minute warten.
Du findest die Ausgaben unter results/fastqc, wie im FASTQC-Prozess durch die publishDir-Direktive angegeben.
2. Adapter-Trimming und Post-Trimming-Qualitätskontrolle hinzufügen¶
Wir werden den Trim_Galore-Wrapper verwenden, der Cutadapt für das Trimming selbst und FastQC für die Post-Trimming-Qualitätskontrolle bündelt.
2.1. Ein Modul für den Trimming- und QC-Prozess erstellen¶
Erstellen wir eine Moduldatei namens modules/trim_galore.nf, um den TRIM_GALORE-Prozess unterzubringen:
Öffne die Datei im Code-Editor und kopiere den folgenden Code hinein:
2.2. Das Modul in die Workflow-Datei importieren¶
Füge die Anweisung include { TRIM_GALORE } from './modules/trim_galore.nf' zur Datei rnaseq.nf hinzu:
| rnaseq.nf | |
|---|---|
2.3. Den Prozess auf dem Eingabekanal aufrufen¶
| rnaseq.nf | |
|---|---|
2.4. Den Workflow ausführen, um zu testen, ob er funktioniert¶
Befehlsausgabe
Dies sollte ebenfalls sehr schnell ausgeführt werden, da wir mit einer so kleinen Eingabedatei arbeiten.
Du findest die Ausgaben unter results/trimming, wie im TRIM_GALORE-Prozess durch die publishDir-Direktive angegeben.
ENCSR000COQ1_1.fastq.gz_trimming_report.txt ENCSR000COQ1_1_trimmed_fastqc.zip
ENCSR000COQ1_1_trimmed_fastqc.html ENCSR000COQ1_1_trimmed.fq.gz
3. Die Reads zum Referenzgenom alignieren¶
Schließlich können wir den Genom-Alignment-Schritt mit Hisat2 ausführen, der auch FastQC-ähnliche Qualitätskontrollmetriken ausgibt.
3.1. Ein Modul für den HiSat2-Prozess erstellen¶
Erstellen wir eine Moduldatei namens modules/hisat2_align.nf, um den HISAT2_ALIGN-Prozess unterzubringen:
Öffne die Datei im Code-Editor und kopiere den folgenden Code hinein:
3.2. Das Modul in die Workflow-Datei importieren¶
Füge die Anweisung include { HISAT2_ALIGN } from './modules/hisat2_align.nf' zur Datei rnaseq.nf hinzu:
| rnaseq.nf | |
|---|---|
3.3. Eine Parameterdeklaration hinzufügen, um den Genomindex bereitzustellen¶
Deklariere einen Eingabeparameter mit einem Standardwert:
| rnaseq.nf | |
|---|---|
3.4. Den HISAT2_ALIGN-Prozess auf den getrimmten Reads aufrufen, die von TRIM_GALORE ausgegeben wurden¶
Die getrimmten Reads befinden sich im TRIM_GALORE.out.trimmed_reads-Channel, der vom vorherigen Schritt ausgegeben wurde.
Zusätzlich verwenden wir file (params.hisat2_index_zip), um dem Hisat2-Tool das gezippte Genom-Index-Tarball bereitzustellen.
3.5. Den Workflow ausführen, um zu testen, ob er funktioniert¶
Befehlsausgabe
Du findest die Ausgaben unter results/align, wie im HISAT2_ALIGN-Prozess durch die publishDir-Direktive angegeben.
Dies vervollständigt die grundlegende Verarbeitung, die wir auf jede Probe anwenden müssen.
Wir werden die MultiQC-Report-Aggregation in Teil 2 hinzufügen, nachdem wir den Workflow so angepasst haben, dass er mehrere Proben gleichzeitig akzeptiert.
Zusammenfassung¶
Du weißt jetzt, wie du alle Kernschritte zur individuellen Verarbeitung von Single-End-RNAseq-Proben zusammenfasst.
Wie geht es weiter?¶
Lerne, wie du den Workflow anpasst, um mehrere Proben parallel zu verarbeiten, QC-Reports über alle Schritte für alle Proben zu aggregieren und die Ausführung des Workflows mit Paired-End-RNAseq-Daten zu ermöglichen.