Bioinformatics/Metagenomics

Metagenomic Taxonomic Profiling | 관련 툴의 종류 (MetaPhlAn, Kraken, Kaiju)

2021. 8. 25. 19:30

  Shotgun metagenomic samples을 분석하여 어떤 세균 구성으로 되어있는지(metagenomic taxonomic profiling) 알아내는 여러 종류의 툴이 존재한다. 이를 각각 알아보고자 한다.

  참고로 NBCI에서 raw data를 받은 이후에 quality control (QC)은 일반적으로 필요하다 (Trimmomatic 등으로 human reads 제거 등). 한편 paired-end joining 단계는 보통 필요 없는데, 이는 profling tool 자체가 joining이 되지 않은 두 파일을 각각 받을 수 있기 때문에 생략 가능하다.

 

MetaPhlAn 3

  MetaPhlAn 3는 bioBakery 3에 포함된 abundance estimation program이다. MetaPhlAn 3는 unique clade-specific marker genes을 사용한다. 여기에서 clades란 species부터 phyla까지 organisms의 그룹을 의미하고, 특정 clade 내에서 강하게 보존된 coding sequences (CDSs)를 clade-specific markers라고 한다. 그래서 각 종에 해당하는 markers를 미리 찾아두고, sample을 분석할 때는 read가 marker에 해당하는지 확인하면서 profiling을 진행한다.

더보기

[참고]

Core gene과 marker gene의 차이점

  • Core gene: 특정 clade가 공통으로 가지고 있는 유전자 (다른 clade에도 있을 수 있음)로, similarity를 바탕으로 taxon을 구분할 수 있다.
  • Marker gene: 특정 clade만 가지고 있는 유전자(다른 clade에는 없음)로, 유무를 바탕으로 taxon을 구분할 수 있다.

  Genome size가 클수록 read가 더 많이 나오기 쉬운데, MetaPhlAn은 marker의 길이로 이를 보정함으로서 세포의 relative abundance를 예측하고자 한다.

  Species-level의 resolution을 보여주지만, StrainPhlAn module을 함께 사용하여 strain-level microbial profiling도 가능하다.

  MetaPhlAn 2는 paired-end set을 한번에 받을 수 있었다 (내부 프로세스에서 forward, reverse 파일을 각각 따로 처리한 후 concat하는 듯, joining 없이). 하지만 MetaPhlAn 3가 paired-end set을 한번에 받을 수 있는지는 확인이 필요하다.

더보기

[참고]

bioBakery 3는 shotgun metagenomic samples 분석과 관련된 방법을 모아놓은 것으로 다음의 내용을 포함한다 (https://elifesciences.org/articles/65088, https://huttenhower.sph.harvard.edu/).

  • MetaPhlAn 3: taxonomic profiling (Raw reads를 받아서 어떤 species가 있는지)
  • HUMAnN 3: functional profiling (Raw reads를 받아서 어떤 genes/pathways가 있는지)
  • StrainPhlAn 3: nucleotide-variant-based strain profiling (MetaPhlAn 3 이후 분석), strain-level phylogenetic trees 생성, strain transmission analyses (샘플에 같은 strain이 존재하는지)에 활용 가능, 샘플 내 각 species에 해당하는 unique marker genes의 consensus를 알아낸 이후에, 여러 샘플에서 특정 종에 대한 consensus sequence만 모아놓고 tree를 생성한다 (각각의 샘플이 leaves, SNP profiling). 
  • PanPhlAn 3: gene-variant-based strain profiling (HUMAnN 3 이후 분석), gene presence-absence genotypes 생성
  • PhyloPhlAn 3: 내가 가진 genome (MAGs도 가능)이 phylogenetic tree의 어디에 위치해있는지 알아냄 (phylogenetic profiling, phylogenetic placement, taxonomic assignment). Clade-specific markers를 사용하는 듯 (UBCG2는 domain-level core genes만 사용하지만, PhyloPhlAn 3는 어느 clade도 가능하다는 차이점이 있는 듯).
  • ChocoPhlAn 3: data resource of genomes and genes (pangenomes)
  • KneadData: sequence read-level quality control and contaminant depletion

설치 및 실행

# 설치
$ conda config --add channels defaults
$ conda config --add channels bioconda
$ conda config --add channels conda-forge
$ conda create -n "metaphlan" -c bioconda python=3.7 metaphlan
$ conda activate metaphlan

(metaphlan) $ wget https://github.com/BenLangmead/bowtie2/releases/download/v2.4.4/bowtie2-2.4.4-linux-x86_64.zip
(metaphlan) $ unzip bowtie2-2.4.4-linux-x86_64.zip
(metaphlan) $ metaphlan --install --bowtie2_build bowtie2-2.4.4-linux-x86_64/bowtie2-build


# 실행
(metaphlan) $ metaphlan SRR2175645_1.fastq.gz --input_type fastq -o profiled_metagenome.txt --bowtie2_exe bowtie2-2.4.4-linux-x86_64/bowtie2

# 아래 명령어는 SRR2175645_2.fastq.gz이 profiled_metagenome.txt의 내용으로 대체됨.
# (metaphlan) $ metaphlan SRR2175645_1.fastq.gz SRR2175645_2.fastq.gz --input_type fastq -o profiled_metagenome.txt --bowtie2_exe bowtie2-2.4.4-linux-x86_64/bowtie2

Output

  • bowtie2out.txt: read와 reference marker로 이루어진 2-column 파일
  • profile.txt: abundance가 계산된 파일

 

Kraken 2

  다른 classifier들은 주로 sequence alingment나 machine learning 기술을 활용하여 짧은 DNA sequences에 taxonomic label을 붙인다. 하지만 위 방법들을 느리기 때문에 Kraken은 exact alignments of k-mers (exact k-mer matches)을 활용한 빠른 속도를 보이는 classifier이다 (abundance 계산은 하지 않는다 <- Bracken 이용).

  Kraken은 sequencing read (DNA sequence)가 주어졌을 때, 이로부터 나올 수 있는 모든 k-mers가 각각 어떤 lowest common ancestor (LCA)에 해당하는지 판단하고 (미리 계산된 Kraken database를 이용), 이를 종합하여 taxonomic label을 붙여준다.

https://genomebiology.biomedcentral.com/articles/10.1186/gb-2014-15-3-r46/figures/1

  구체적으로 설명하자면, Kraken database는 k-mer와 그의 LCA 정보로 구성되어 있다. 예를 들어, 특정 k-mer가 Vibrio aestuarianusVibrio agarilyticus의 genome에만 포함되어 있다면, LCA는 Vibrio가 된다. LCA는 taxonomic hierarchy를 따라 classification tree의 node를 각각 구성한다. Sequencing read로부터 나올 수 있는 모든 k-mers에 대해서 각각 검색을 수행하는데, Kraken DB에 k-mer가 포함되어 있는 경우 그 k-mer에 해당하는 LCA node에 weight를 +1 더해준다. 모든 k-mers에 대해서 위 작업을 수행한 이후, 시작점으로부터 막힌 곳까지의 path 상의 weight의 합이 가장 큰 root-to-leaf (RTL) path를 찾는다. 그러한 maximal RTL path가 classifcation path가 되고, 그 path의 끝에 존재하는 node (taxonomic label)로 read의 classification이 이루어진다. 만약 여러 classification path에서 매핑된 k-mer의 개수(weight의 합)가 같다면, 이들 path의 LCA가 label이 된다. 또 모든 k-mers에 대해서 Kraken DB의 k-mer와 정확히 일치하는 경우가 아예 없다면 해당 DNA sequence는 unclassified로 남겨진다.

  또한 Kraken database는 내부적으로 minimizer를 설정하여 k-mer 검색을 더 빠르게 해준다.

  Regular version Kraken database는 미생물의 genome을 이용하여 생성됐다(RefSeq의 complete genomes만 사용)는 점에서 marker gene만 사용하는 MetaPhlAn과 차이가 있다. 하지만 Kraken은 사용자들이 직접 자신의 데이터베이스를 만들 수 있도록 지원하기 때문에 다양한 형태의 데이터베이스를 사용할 수 있다.

  Kraken 2에 관련된 여러 툴도 존재한다.

  • Bracken (Bayesian Reestimation of Abundance with KrakEN): bayesian formula를 사용하여 Kraken classification results로부터 species/genus-level (혹은 그 이상) abundance를 예측하는 프로그램이다. Kraken은 read가 어느 종으로부터 유래했는지는 알려주지만, 그 종의 abundances는 예측하지 않기 때문에 abundance를 알고 싶다면 Braken을 사용해야한다.
  • Pavian: visualization program으로서, 여러 샘플 간 Kraken classifications를 비교할 수 있다 [링크].
  • KrakenTools: Kraken results에 대한 downstream analysis를 수행할 때 도움을 주는 scripts 모음(.py)이다.
  • Kraken: Kraken 2 이전 버전. 더 느리고, memory 사용량이 더 많다.
  • KrakenUniq: unique k-mer counts를 사용하여 Kraken보다 false-positive를 낮춘 프로그램 (Kraken 2 이전)
더보기

[참고]

  Kraken 논문 내용 중 MiniKraken은 Kraken보다 더 빠르지만, MiniKraken-Q가 Kraken-Q보다 더 느리다고 나와있다. 이때 MiniKraken은 Regular version Kraken database에서 18/19 만큼의 정보를 지운 후 분석하는 것이고, -Q는 DNA sequence에서 하나의 k-mer라도 DB와 일치한다면 그 k-mer의 LCA로 DNA sequence에 taxonomic label을 붙이는 것이다 (빠른 분석).

  MiniKraken-Q가 Kraken-Q보다 더 느린 이유는 Kraken-Q에서는 k-mer를 DB에서 빠르게 찾을 수 있지만, MiniKraken-Q에서는 DB에 없는 정보가 많아 k-mer를 여러 번 검색해야 해서 느려지기 때문이다.

설치 및 실행

Kraken2와 Bracken의 설치 및 실행은 아래 페이지를 참고하면 된다.

 

GitHub - DerrickWood/kraken2: The second version of the Kraken taxonomic sequence classification system

The second version of the Kraken taxonomic sequence classification system - GitHub - DerrickWood/kraken2: The second version of the Kraken taxonomic sequence classification system

github.com

 

 

GitHub - jenniferlu717/Bracken: Bracken (Bayesian Reestimation of Abundance with KrakEN) is a highly accurate statistical method

Bracken (Bayesian Reestimation of Abundance with KrakEN) is a highly accurate statistical method that computes the abundance of species in DNA sequences from a metagenomics sample. - GitHub - jenn...

github.com

 

Kaiju

Kaiju는 metagenomic classifier이다. Kraken은 exact genomic k-mers를 비교하는 방법으로 속도는 빠르지만 sensitivity가 낮은 단점이 있다 (많은 부분이 unclassified로 남겨짐). 반면 Kaiju는 protein-level에서 Burrows–Wheeler transform을 사용하여 maximum (in-)exact matches를 찾는 방법이다. 더 높은 sensitivity를 보인다.

설치 및 실행

https://github.com/bioinformatics-centre/kaiju를 참고하면 된다.

 

정리

내용을 표로 정리하면 다음과 같다.

  MetaPhlAn 3 Kraken 2 Kaiju
데이터베이스 구성 Nucleotide-level (Gene) Nucleotide-level (Genome) Protein-level
특징 Specificity 🔼

Sensitivity 🔽
Specificity 🔼

Sensitivity 🔽
Specificity 🔽

Sensitivity 🔼
속도 slow fast fast
데이터베이스 검색 방식 Sequence alignment Exact K-mer Alignment Burrows–Wheeler transform
구분 abundance estimation program classifier classifier

 

Reference

  1. Segata, Nicola, et al. "Metagenomic microbial community profiling using unique clade-specific marker genes." Nature methods 9.8 (2012): 811-814.
  2. Beghini, Francesco, et al. "Integrating taxonomic, functional, and strain-level profiling of diverse microbial communities with bioBakery 3." Elife 10 (2021): e65088.
  3. ✨ Wood, Derrick E., and Steven L. Salzberg. "Kraken: ultrafast metagenomic sequence classification using exact alignments." Genome biology 15.3 (2014): 1-12.
  4. Wood, Derrick E., Jennifer Lu, and Ben Langmead. "Improved metagenomic analysis with Kraken 2." Genome biology 20.1 (2019): 1-13.
  5. Menzel, Peter, Kim Lee Ng, and Anders Krogh. "Fast and sensitive taxonomic classification for metagenomics with Kaiju." Nature communications 7.1 (2016): 1-9.

 

 

 

728x90
반응형