Kraken2 - широко используемый инструмент в метагеномных исследованиях. Он классифицирует метагеномные последовательности на таксономические ряды, такие как виды, род, семейство и т. Д.
Kraken2 создает базу данных, состоящую из K-MER и всех геномов, которые содержат этот K-MER. Метагеномные последовательности разбиваются на K-MERS, и каждый K-MER запрашивается против базы данных KRAKEN2 K-MER для классификации метагеномных последовательностей. Метагеномные последовательности, которые не имеют соответствующего K-MER в базе данных, помечены как неклассифицированные (Wood et al., 2019; Wood and Salzberg, 2014).
Как правило, поставщики HPC не позволяют своим пользователям устанавливать Softwares на HPC. Контейнеры для сингулярности являются отличной альтернативой физической установке программного обеспечения, и даже не требует привилегии «sudo». Ведение записей использованных контейнеров и их версий облегчает воспроизводимость рабочего процесса. С другой стороны, NextFlow - это менеджер рабочего процесса биоинформатики, позволяющий использовать контейнеры.
Тем не менее, выполнение Kraken2 (или любого задания) на HPC с использованием контейнера Singularity и Nextflow требует набора из трех сценариев следующим образом:
Скрипт работы: сценарий работы, написанный в Nextflow (.nf), чтобы выполнить фактическую работу
Скрипт конфигурации: сценарий конфигурации, который можно предоставить с помощью ссылки контейнера и распределения вычислительных ресурсов. По умолчанию имя этого скрипта - «nexflow.config». Если он назван по -разному, то его необходимо указать в команде «NextFlow Run» в следующем скрипте DOAM Scheduler следующим образом: «NextFlow -C XXXXXX.Config Run»
Скрипт планировщика заданий: сценарий BASH, чтобы назначить задание через планировщик заданий 'Slurm'
Сценарии, установленные для запуска KRAKEN2 на HPC, предоставленных Суперкомпьютерным центром PAWSEY (https://pawsey.org.au/), представлены ниже.
//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
"""
}
Приведенная выше база данных может быть загружена и построена с нуля после руководства Kraken2 (https://github.com/derrickwood/kraken2)
Или доступные предварительно построенные базы данных можно загрузить и использовать (https://benlangmead.github.io/aws-indexes/k2)
Создать и «CD» в каталог в вашем компьютере Linux для загрузки предварительно созданных баз данных Kraken2 в
Перейдите на приведенный выше предварительно построенный веб-сайт баз данных
Перейдите в столбец URL HTTPS в таблице сбора
Щелкните правой кнопкой мыши файл tar.gz соответствующей коллекции
Копировать адрес ссылки
Запустите следующую команду
wget link_address
Извлеките базу данных TAR на молнии следующим образом:
tar -zxvf downloaded_database
Теперь вам нужно направить этот каталог как база данных Kraken 2 в скрипте Kraken2
При запуске Kraken2 база данных должна быть на том же компьютере, где будет выполнена команда (например, в Zeus или Magnus в Pawsey). Предпочтительно, в том же каталоге
Полный путь базы данных должен быть указан в команде Kraken2, даже если база данных находится в одном каталоге
Требуются не менее 100 ГБ бесплатно и 50 ГБ оперативной памяти. Kraken2 загружает базу данных в локальную оперативную память и использует ее оттуда. Отсутствие достаточного количества диска или пространства памяти приведет к ошибке «Ошибка чтения хеш -таблицы»
«Ошибка чтения хеш -таблицы» может быть связана с каким -то образом поврежденных файлов в базе данных. Это может произойти при передаче расстегнутой базы данных на между компьютерами. Эта проблема может быть решена путем повторной эксплуатации файла Zipped загруженной базы данных Kraken2
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
Установите Kraken2
Добавьте путь Kraken2 к переменной среды пути
Загрузите соответствующую базу данных Kraken2. Чтобы загрузить базу данных, см. Примечание примечания
Сделайте каталог для анализа Kraken2
Сохраните чтения секвенирования, базу данных и следующий сценарий в каталоге «Kraken2»
Сделайте каталог «результатов» в каталоге «Kraken2», чтобы собрать результаты
Запустите сценарий следующим образом:
./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
Выходной файл Kraken2 разграничен. Гипотетический пример:
75 250 160 S 211044 Influenza A virus
Столбец 1: Процент чтения, охватываемых кладкой, укорененной на этом таксоне
Столбец 2: Количество чтений, охватываемых кладкой, укореняемым на этом таксоне
Столбец 3: Количество считываний, назначенных непосредственно на этот таксон
Столбец 4: Код ранга, указывающий (u) nclassified, (d) omain, (k) ingdom, (p) hylum, (c) lass, (o) rder, (f) amily, (g) enus, или (s) pecies. Все остальные ряды просто «-».
Столбец 5: идентификатор таксономии NCBI
Колонка 6: Научное название
Wood, De, Lu, J., Langmead, B., 2019. Улучшенный метагеномный анализ с Kraken 2. Genome Biol. 20, 257. https://doi.org/10.1186/S13059-019-1891-0
Wood, DE, Salzberg, SL, 2014. Kraken: Сверхбыстенная классификация метагеномных последовательностей с использованием точных выравниваний. Геном биол. 15, R46. https://doi.org/10.1186/gb-2014-15-3-r46