KRAKEN2는 메타 게놈 연구에서 널리 사용되는 도구입니다. 그것은 metagenomic 서열을 종, 속, 가족 등과 같은 분류 학적 순위로 분류합니다.
Kraken2는 K-Mer 와이 K-Mer를 포함하는 모든 게놈으로 구성된 데이터베이스를 구축합니다. 메타 게놈 서열은 K-mers로 분해되며, 각각의 K-Mer는 메타 게놈 서열을 분류하기 위해 KRAKEN2-BUILT K-MER 데이터베이스에 대해 쿼리된다. 데이터베이스에서 K-MER이 일치하지 않는 메타 게놈 서열은 분류되지 않은 것으로 표시됩니다 (Wood et al., 2019; Wood and Salzberg, 2014).
일반적으로 HPC 제공 업체는 사용자가 HPC에 소프트웨어를 설치하도록 허용하지 않습니다. 특이점 컨테이너는 소프트웨어를 물리적으로 설치하는 데 큰 대안이며 'Sudo'권한이 필요하지도 않습니다. 중고 컨테이너와 해당 버전의 기록을 유지하면 워크 플로의 재현성이 용이 해집니다. 반면에 NextFlow는 컨테이너를 사용하는 생물 정보학 워크 플로우 관리자입니다.
그러나 특이점 컨테이너와 NextFlow를 사용하여 HPC에서 Kraken2 (또는 모든 작업)를 실행하려면 다음과 같이 세 개의 스크립트 세트가 필요합니다.
작업 스크립트 : 실제 작업을 수행하기 위해 NextFlow (.NF)로 작성된 작업 스크립트
구성 스크립트 : 컨테이너의 링크 및 컴퓨팅 리소스 할당을 제공하는 구성 스크립트. 기본적 으로이 스크립트의 이름은 'NextFlow.config'입니다. 다르게 명명 된 경우 다음과 같이 다음 작업 스케줄러 스크립트의 'NextFlow Run'명령에 지정되어야합니다.
작업 스케줄러 스크립트 : 작업 스케줄러 'Slurm'을 통해 작업을 예약하는 Bash 스크립트
Pawsey SuperComputer Center (https://pawsey.org.au/)가 제공하는 HPC에서 Kraken2를 실행하기 위해 설정된 스크립트는 다음과 같습니다.
//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).
Linux 컴퓨터의 디렉토리를 작성하고 'CD'를 작성하여 KRAKEN2 사전 구축 데이터베이스를 다운로드하십시오.
위의 사전 구축 된 데이터베이스 웹 사이트로 이동하십시오
컬렉션 테이블의 HTTPS URL 열로 이동
해당 컬렉션의 tar.gz 파일을 마우스 오른쪽 버튼으로 클릭하십시오.
링크 주소를 복사하십시오
다음 명령을 실행하십시오
wget link_address
TAR ZIPPER 데이터베이스를 다음과 같이 추출하십시오.
tar -zxvf downloaded_database
이제 Kraken2 스크립트의 Kraken 2 데이터베이스에 따라이 디렉토리를 참조해야합니다.
Kraken2를 실행할 때 데이터베이스는 명령이 실행되는 동일한 컴퓨터에 있어야합니다 (예 : Zeus 또는 Magnus at Pawsey). 바람직하게는 동일한 디렉토리에서
데이터베이스의 전체 경로는 데이터베이스가 동일한 디렉토리에 있더라도 Kraken2 명령에 제공되어야합니다.
최소 100GB의 무료 디스크 공간과 50GB RAM이 필요합니다. Kraken2는 로컬 RAM에 데이터베이스를로드하여 거기에서 사용합니다. 디스크 또는 메모리 공간이 충분하지 않으면 "해시 테이블을 읽는 오류"오류가 발생합니다.
"해시 테이블을 읽는 오류"는 데이터베이스의 어떻게 든 손상된 파일에서 비롯 될 수 있습니다. 이는 컴퓨터를 통해 압축 된 데이터베이스를 전송하는 동안 발생할 수 있습니다. 다운로드 된 Kraken2 데이터베이스의 Zipped 파일을 다시 추출 하여이 문제를 해결할 수 있습니다.
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 분류 ID
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. 크라켄 : 정확한 정렬을 사용한 초고속 메타 게놈 서열 분류. 게놈 바이올. 15, R46. https://doi.org/10.1186/GB-2014-15-3-R46