Kraken2 adalah alat yang banyak digunakan dalam studi metagenomik. Ini mengklasifikasikan urutan metagenomik ke dalam peringkat taksonomi seperti spesies, genus, keluarga, dll.
Kraken2 membangun database yang terdiri dari K-mer dan semua genom yang mengandung K-mer ini. Urutan metagenomik dipecah menjadi K-Mers, dan masing-masing K-Mer ditanyakan terhadap database K-Mer-MER yang dibangun KRAKEN2 untuk mengklasifikasikan urutan metagenomik. Urutan metagenomik yang tidak memiliki K-mer dalam database diberi label tidak diklasifikasi (Wood et al., 2019; Wood dan Salzberg, 2014).
Secara umum, penyedia HPC tidak mengizinkan penggunanya menginstal perangkat lunak di HPC. Wadah singularitas adalah alternatif yang bagus untuk memasang perangkat lunak secara fisik, dan bahkan tidak memerlukan hak istimewa 'sudo'. Mempertahankan catatan wadah yang digunakan dan versinya memfasilitasi reproduktifitas alur kerja. Di sisi lain, NextFlow adalah manajer alur kerja bioinformatika yang memungkinkan penggunaan wadah.
Namun, mengeksekusi Kraken2 (atau pekerjaan apa pun) di HPC menggunakan singularity container dan NextFlow membutuhkan satu set tiga skrip sebagai berikut:
Skrip pekerjaan: skrip pekerjaan yang ditulis di NextFlow (.nf) untuk melakukan pekerjaan yang sebenarnya
Skrip Config: Skrip konfigurasi untuk menyediakan dengan tautan wadah dan alokasi sumber daya komputasi. Secara default, nama skrip ini adalah 'nextflow.config'. Jika dinamai secara berbeda, maka itu perlu ditentukan dalam perintah 'NextFlow Run' dalam skrip Penjadwal Pekerjaan berikut sebagai berikut: "NextFlow -C xxxxxx.config run"
Skrip Penjadwal Pekerjaan: Skrip Bash untuk menjadwalkan pekerjaan melalui penjadwal pekerjaan 'Slurm'
Script yang ditetapkan untuk menjalankan Kraken2 pada HPC yang disediakan oleh Pawsey Supercomputer Center (https://pawsey.org.au/) disajikan di bawah ini.
//data_location
params.in = "$PWD/*.fasta"
params.outdir = './results'
datasets = Channel
.fromPath(params.in)
.map { file -> tuple(file.simpleName, file) }
// taxonomy
process taxonomy {
tag "$z"
publishDir "${params.outdir}", mode:'copy'
input:
set datasetID, file(z) from datasets
output:
file "${z.baseName}_taxo.tsv" into taxonomy_ch
script:
"""
kraken2 --db path/to/the/DB --output ${z.baseName}_taxo.out --report ${z.baseName}_taxo.tsv $z --threads 28
"""
}
Basis data di atas dapat diunduh dan dibangun dari awal mengikuti manual Kraken2 (https://github.com/derrickwood/kraken2)
Atau, database pra-built yang tersedia dapat diunduh dan digunakan (https://benlangmead.github.io/aws-indexes/k2)
Buat dan 'CD' ke dalam direktori di komputer Linux Anda untuk mengunduh database pra-built Kraken2 di
Buka situs web database pra-dibangun di atas
Buka kolom URL HTTPS dari tabel koleksi
Klik kanan pada file tar.gz dari koleksi yang sesuai
Salin alamat tautan
Jalankan perintah berikut
wget link_address
Ekstrak database Tar Zip sebagai berikut:
tar -zxvf downloaded_database
Sekarang, Anda perlu merujuk direktori ini sebagai database Kraken 2 dalam skrip Kraken2
Saat menjalankan Kraken2, database harus berada di komputer yang sama di mana perintah akan dijalankan (misalnya, di Zeus atau Magnus di Pawsey). Lebih disukai, di direktori yang sama
Jalur lengkap dari database perlu diberikan dalam perintah Kraken2 bahkan jika database berada di direktori yang sama
Setidaknya 100 GB ruang disk gratis dan RAM 50 GB diperlukan. Kraken2 memuat database di RAM lokal dan menggunakannya dari sana. Kurangnya disk atau ruang memori yang cukup akan menghasilkan kesalahan "kesalahan membaca tabel hash"
"Kesalahan membaca tabel hash" mungkin berasal dari file yang rusak di dalam database. Ini mungkin terjadi selama mentransfer database yang belum di -zip di seluruh komputer. Masalah ini dapat diselesaikan dengan mengekstraksi ulang file zip dari database Kraken2 yang diunduh
trace {
fields = 'name,hash,status,exit,realtime,submit'
}
profiles {
zeus {
workDir = "$PWD/work"
process {
cache = 'lenient'
stageInMode = 'symlink'
}
process {
withName:taxonomy { container = 'quay.io/biocontainers/kraken2:2.1.2--pl5262h7d875b9_0' }
}
singularity {
enabled = true
autoMounts = true
//runOptions = '-e TERM=xterm-256color'
envWhitelist = 'TERM'
}
params.slurm_account = 'XXXXX'
process {
executor = 'slurm'
clusterOptions = "--account=${params.slurm_account}"
queue = 'workq'
cpus = 1
time = '1h'
memory = '10GB'
withName: 'taxonomy' {
cpus = 28
time = '24h'
}
}
}
}
#SBATCH --job-name=nxf-master
#SBATCH --account=XXXX
#SBATCH --partition=workq
#SBATCH --time=1-00:00:00
#SBATCH --no-requeue
#SBATCH --export=none
#SBATCH --nodes=1
unset SBATCH_EXPORT
module load singularity
module load nextflow
nextflow run nanopore_nextflow.nf -profile zeus -name nxf-${SLURM_JOB_ID} -resume --with-report
Instal Kraken2
Tambahkan jalur kraken2 ke variabel lingkungan jalur
Unduh database Kraken2 yang sesuai. Untuk mengunduh database, lihat catatan di atas
Membuat direktori untuk analisis kraken2
Simpan sekuensing yang dibaca, database, dan skrip berikut di direktori 'Kraken2'
Membuat direktori 'hasil' dengan di direktori 'kraken2' untuk mengumpulkan hasilnya
Jalankan skrip sebagai berikut:
./kraken2.sh
#!/usr/bin/env bash
#textFormating
Red="$(tput setaf 1)"
Green="$(tput setaf 2)"
reset=`tput sgr0` # turns off all atribute
Bold=$(tput bold)
#
for F in *.fastq
do
baseName=$(basename $F .fastq)
echo "${Red}${Bold} Processing ${reset}: "${baseName}""
kraken2 --db $PWD/kraken2_database --threads 64 --output $PWD/results/"${baseName}_taxo.out" --report $PWD/results/"${baseName}_taxo.tsv" $F
echo ""
echo "${Green}${Bold} Processed and saved as${reset} "${baseName}""
done
File output Kraken2 adalah tab Delimited. Contoh hipotetis:
75 250 160 S 211044 Influenza A virus
Kolom 1: Persentase bacaan yang dicakup oleh clade yang berakar pada takson ini
Kolom 2: Jumlah bacaan yang dicakup oleh clade yang berakar pada takson ini
Kolom 3: Jumlah bacaan yang ditetapkan langsung ke takson ini
Kolom 4: Kode peringkat, menunjukkan (u) nclasified, (d) oMain, (k) ingdom, (p) hylum, (c) lass, (o) rder, (f) amily, (g) enus, atau (s) pecies. Semua peringkat lainnya hanyalah “-“.
Kolom 5: ID Taksonomi NCBI
Kolom 6: Nama Ilmiah
Wood, De, Lu, J., Langmead, B., 2019. Analisis metagenomik yang lebih baik dengan Kraken 2. Genome Biol. 20, 257. Https://doi.org/10.1186/s13059-019-1891-0
Wood, De, Salzberg, SL, 2014. Kraken: Klasifikasi Urutan Metagenomik UltraFast menggunakan keberpihakan yang tepat. Genome Biol. 15, R46. https://doi.org/10.1186/gb-2014-15-3-r46