Bölüm 2: Tek örnek implementasyonu¶
Yapay Zeka Destekli Çeviri - daha fazla bilgi ve iyileştirme önerileri
Bu kurumun bu bölümünde, Bölüm 1'de çalıştırdığımız tüm komutları otomatikleştirmek için mümkün olan en basit iş akışını yazacağız ve her seferinde yalnızca bir örnek işlemeyi hedefleyeceğiz.
Bunu üç aşamada yapacağız:
- İlk kalite kontrol adımını çalıştıran tek aşamalı bir iş akışı yazın
- Adaptör kırpma ve kırpma sonrası kalite kontrolünü ekleyin
- Referans genoma hizalamayı ekleyin
Ön Koşul
Bu derse başlamadan önce kursun Bölüm 1'ini tamamlamanız gerekmektedir.
Özellikle, 2.1-3 bölümlerini tamamlamak bu dersteki hizalama adımı için gereken genom dizin dosyasını (data/genome_index.tar.gz) oluşturur.
1. İlk kalite kontrolünü çalıştıran tek aşamalı bir iş akışı yazın¶
Tek uçlu RNAseq okumalarını içeren bir FASTQ dosyası üzerinde FastQC aracını çalıştıran basit bir iş akışı yazarak başlayalım.
Size iş akışının ana bölümlerini özetleyen rnaseq.nf adında bir iş akışı dosyası sağlıyoruz.
| rnaseq.nf | |
|---|---|
Bu iş akışı kodunun doğru ancak işlevsel olmadığını unutmayın; amacı yalnızca gerçek iş akışını yazmak için kullanacağınız bir iskelet görevi görmektir.
1.1. Modülleri depolamak için bir dizin oluşturun¶
Her bir process için bağımsız modüller oluşturacağız, böylece bunları yönetmeyi ve yeniden kullanmayı kolaylaştıracağız. Hadi bunları depolamak için bir dizin oluşturalım.
1.2. Kalite kontrol metrikleri toplama process'i için bir modül oluşturun¶
FASTQC process'ini barındırmak için modules/fastqc.nf adında bir modül dosyası oluşturalım:
Dosyayı kod düzenleyicide açın ve içine aşağıdaki kodu kopyalayın:
Bu eğitim serisinin Bölüm 1 ve Bölüm 2'de öğrendiklerinizden tüm parçaları tanıyor olmalısınız; dikkate değer tek değişiklik bu sefer publishDir yönergesi için mode: symlink kullanıyor olmamız ve publishDir tanımlamak için bir parametre kullanıyor olmamızdır.
Note
Burada kullandığımız veri dosyaları çok küçük olsa da, genomikte çok büyük olabilirler. Öğretim ortamında gösterim amacıyla, gereksiz dosya kopyalarından kaçınmak için 'symlink' yayınlama modunu kullanıyoruz. Bunu son iş akışlarınızda yapmamalısınız, çünkü work dizininizi temizlediğinizde sonuçları kaybedersiniz.
1.3. Modülü iş akışı dosyasına import edin¶
rnaseq.nf dosyasına include { FASTQC } from './modules/fastqc.nf' ifadesini ekleyin:
1.4. Bir girdi bildirimi ekleyin¶
Varsayılan değere sahip bir girdi parametresi bildirin:
1.5. İş akışı bloğunda bir girdi kanalı oluşturun¶
Girdi kanalını oluşturmak için temel bir .fromPath() kanal fabrikası kullanın:
| rnaseq.nf | |
|---|---|
1.6. Girdi kanalı üzerinde FASTQC process'ini çağırın¶
| rnaseq.nf | |
|---|---|
1.7. Çalıştığını test etmek için iş akışını çalıştırın¶
Komut satırından bir girdi belirtmek için --reads parametresini kullanabiliriz, ancak geliştirme sırasında tembel olabilir ve kurduğumuz test varsayılanını kullanabiliriz.
Komut çıktısı
Bölüm 1'i tamamladıysanız ve konteyneri zaten çektiyseniz bu çok hızlı çalışmalıdır. Eğer atladıysanız, Nextflow konteyneri sizin için çekecektir; bunun gerçekleşmesi için bir şey yapmanıza gerek yok, ancak bir dakika kadar beklemeniz gerekebilir.
Çıktıları FASTQC process'inde publishDir yönergesi tarafından belirtildiği şekilde results/fastqc altında bulabilirsiniz.
2. Adaptör kırpma ve kırpma sonrası kalite kontrolünü ekleyin¶
Kırpma işlemi için Cutadapt'i ve kırpma sonrası kalite kontrolü için FastQC'yi bir araya getiren Trim_Galore sarmalayıcısını kullanacağız.
2.1. Kırpma ve kalite kontrol process'i için bir modül oluşturun¶
TRIM_GALORE process'ini barındırmak için modules/trim_galore.nf adında bir modül dosyası oluşturalım:
Dosyayı kod düzenleyicide açın ve içine aşağıdaki kodu kopyalayın:
2.2. Modülü iş akışı dosyasına import edin¶
rnaseq.nf dosyasına include { TRIM_GALORE } from './modules/trim_galore.nf' ifadesini ekleyin:
| rnaseq.nf | |
|---|---|
2.3. Girdi kanalı üzerinde process'i çağırın¶
| rnaseq.nf | |
|---|---|
2.4. Çalıştığını test etmek için iş akışını çalıştırın¶
Komut çıktısı
Bu da çok hızlı çalışmalıdır, çünkü çok küçük bir girdi dosyası üzerinde çalışıyoruz.
Çıktıları TRIM_GALORE process'inde publishDir yönergesi tarafından belirtildiği şekilde results/trimming altında bulabilirsiniz.
ENCSR000COQ1_1.fastq.gz_trimming_report.txt ENCSR000COQ1_1_trimmed_fastqc.zip
ENCSR000COQ1_1_trimmed_fastqc.html ENCSR000COQ1_1_trimmed.fq.gz
3. Okumaları referans genoma hizalayın¶
Son olarak, FastQC tarzı kalite kontrol metriklerini de yayınlayacak olan Hisat2 kullanarak genom hizalama adımını çalıştırabiliriz.
3.1. HiSat2 process'i için bir modül oluşturun¶
HISAT2_ALIGN process'ini barındırmak için modules/hisat2_align.nf adında bir modül dosyası oluşturalım:
Dosyayı kod düzenleyicide açın ve içine aşağıdaki kodu kopyalayın:
3.2. Modülü iş akışı dosyasına import edin¶
rnaseq.nf dosyasına include { HISAT2_ALIGN } from './modules/hisat2_align.nf' ifadesini ekleyin:
| rnaseq.nf | |
|---|---|
3.3. Genom dizinini sağlamak için bir parametre bildirimi ekleyin¶
Varsayılan değere sahip bir girdi parametresi bildirin:
| rnaseq.nf | |
|---|---|
3.4. TRIM_GALORE tarafından çıktılanan kırpılmış okumalar üzerinde HISAT2_ALIGN process'ini çağırın¶
Kırpılmış okumalar, önceki adım tarafından çıktılanan TRIM_GALORE.out.trimmed_reads kanalındadır.
Ek olarak, Hisat2 aracına sıkıştırılmış genom dizini tarball'ını sağlamak için file (params.hisat2_index_zip) kullanıyoruz.
| rnaseq.nf | |
|---|---|
3.5. Çalıştığını test etmek için iş akışını çalıştırın¶
Komut çıktısı
Çıktıları HISAT2_ALIGN process'inde publishDir yönergesi tarafından belirtildiği şekilde results/align altında bulabilirsiniz.
Bu, her bir örneğe uygulamamız gereken temel işlemi tamamlar.
MultiQC rapor toplama işlemini Bölüm 2'de, iş akışını aynı anda birden fazla örneği kabul edecek şekilde değiştirdikten sonra ekleyeceğiz.
Çıkarımlar¶
Tek uçlu RNAseq örneklerini tek tek işlemek için tüm temel adımları nasıl sarmalayacağınızı biliyorsunuz.
Sırada ne var?¶
İş akışını birden fazla örneği paralel olarak işleyecek şekilde nasıl değiştireceğinizi, tüm örnekler için tüm adımlarda kalite kontrol raporlarını nasıl toplayacağınızı ve iş akışını çift uçlu RNAseq verileri üzerinde çalışacak şekilde nasıl etkinleştireceğinizi öğrenin.