Bioinformatics/Metagenomics

[QIIME2] Moving Pictures 튜토리얼 (QIIME 분석에서 가장 기본이 되는 내용)

2021. 3. 2. 12:29

해당 내용은 QIIME 2 Tutorial을 바탕으로 작성된 글로, Reference의 URL에서 원본 내용을 확인할 수 있습니다.

 

이 튜토리얼이 튜토리얼 중 가장 핵심이 되는 내용을 담고 있다.

데이터 정보

Human microbiome samples (Illumina HiSeq, V4 16S rRNA sequence): 항생제 사용의 영향을 보기 위해 두 사람 몸의 네 곳에서 다섯 번 얻은 샘플들

  • input/barcodes.fastq.gz
  • input/sequences.fastq.gz (multiplexed, single end sequencing)
  • sample-metadata.tsv
  • gg-13-8-99-515-806-nb-classiier.qza: Classifier

 

데이터 분석

# 1. IMPORTING
qiime tools import
  --type EMPSingleEndSequences
  --input-path input/
  --output-path input.qza

# 2. Demultiplexing
qiime demux emp-single \
  --i-seqs input.qza \
  --m-barcodes-file sample-metadata.tsv \
  --m-barcodes-column barcode-sequence \
  --o-per-sample-sequences demux.qza \
  
# Check Demultiplexing: 1) 각 샘플의 reads 수, 2) read quality 및 length를 알 수 있음
qiime demux summarize \
  --i-data demux.qza \
  --o-visualization demux.qzv
  
# 3. Quality control
qiime quality-filter q-score \
 --i-demux demux.qza \
 --o-filtered-sequences demux-filtered.qza \
 --o-filter-stats demux-filter-stats.qza
 
# Check Quality control: QC 이후 각 샘플에 남은 reads 수를 확인 가능
qiime metadata tabulate \
  --m-input-file demux-filter-stats.qza \
  --o-visualization demux-filter-stats.qzv

# 4. Denoising (Deblur)
qiime deblur denoise-16S \
  --i-demultiplexed-seqs demux-filtered.qza \
  --p-trim-length 120 \
  --o-representative-sequences rep-seqs.qza \ # FeatureData[Sequence]
  --o-table table.qza \ # FeatureData[Frequency]
  --p-sample-stats \
  --o-stats deblur-stats.qza
  
# Check Denoising (Deblur): denoising 이후 각 샘플에 남은 reads 수를 확인 가능
 qiime deblur visualize-stats \
  --i-deblur-stats deblur-stats.qza \
  --o-visualization deblur-stats.qzv
  
# Check Frequency: Feature(read 종류)와 Frequency(read 수)에 대한 정보를 줌
qiime feature-table summarize \
  --i-table table.qza \
  --o-visualization table.qzv \
  --m-sample-metadata-file sample-metadata.tsv

# Check Sequence: 실제 sequence를 확인하고, NCBI nt DB에 BLAST로 검색해볼 수 있다. 
qiime feature-table tabulate-seqs \ 
  --i-data rep-seqs.qza \ 
  --o-visualization rep-seqs.qzv
  
# 5. Phylogenetic Tree (for 다양성 분석)
qiime phylogeny align-to-tree-mafft-fasttree \
  --i-sequences rep-seqs.qza \ # FeatureData[Sequence]
  --o-alignment aligned-rep-seqs.qza \ # 1) MSA (mafft)
  --o-masked-alignment masked-aligned-rep-seqs.qza \ # 2) Remove highly variable positions in MSA
  --o-tree unrooted-tree.qza \ # 3) Generate tree (FastTree)
  --o-rooted-tree rooted-tree.qza # 4) Midpoint rooting (Phylogeny[Rooted])
  
# 6. Diversity analysis (Alpha & Beta)
qiime diversity core-metrics-phylogenetic \
  --i-phylogeny rooted-tree.qza \ # Phylogeny[Rooted]
  --i-table table.qza \ # FeatureData[Frequency]
  --p-sampling-depth 1103 \
  --m-metadata-file sample-metadata.tsv \
  --output-dir core-metrics-results
  
# Statistical test (Alpah diversity): Boxplots and Kruskal-Wallis test
qiime diversity alpha-group-significance \
  --i-alpha-diversity core-metrics-results/evenness_vector.qza \
  --m-metadata-file sample-metadata.tsv \
  --o-visualization core-metrics-results/evenness-group-significance.qzv
  
# Statistical test (Beta diversity): PERMANOVA
qiime diversity beta-group-significance \
  --i-distance-matrix core-metrics-results/unweighted_unifrac_distance_matrix.qza \
  --m-metadata-file sample-metadata.tsv \
  --m-metadata-column body-site \
  --o-visualization core-metrics-results/unweighted-unifrac-body-site-significance.qzv \
  --p-pairwise # optional
 
# Alpha rarefaction plotting
qiime diversity alpha-rarefaction \
  --i-table table.qza \
  --i-phylogeny rooted-tree.qza \
  --p-max-depth 4000 \ # ~ median frequency
  --m-metadata-file sample-metadata.tsv \
  --o-visualization alpha-rarefaction.qzv
  
# 7. Taxonomic assignment
qiime feature-classifier classify-sklearn \
  --i-classifier gg-13-8-99-515-806-nb-classifier.qza \
  --i-reads rep-seqs.qza \
  --o-classification taxonomy.qza
  
# Check taxonomic assignment
qiime metadata tabulate \
  --m-input-file taxonomy.qza \
  --o-visualization taxonomy.qzv
  
# Check taxonomic composition (barplot)
qiime taxa barplot \
  --i-table table.qza \
  --i-taxonomy taxonomy.qza \
  --m-metadata-file sample-metadata.tsv \
  --o-visualization taxa-bar-plots.qzv
  
# 8. Differential abundance testing (with ANCOM)
qiime feature-table filter-samples \ # Gut sample만 보기 위해
  --i-table table.qza \
  --m-metadata-file sample-metadata.tsv \
  --p-where "[body-site]='gut'" \
  --o-filtered-table gut-table.qza
qiime composition add-pseudocount \
  --i-table gut-table.qza \ # FeatureTable[Frequency]
  --o-composition-table comp-gut-table.qza # FeatureTable[Composition]
qiime composition ancom \
  --i-table comp-gut-table.qza \ # FeatureTable[Composition]
  --m-metadata-file sample-metadata.tsv \
  --m-metadata-column subject \
  --o-visualization ancom-subject.qzv

 

참고

  • Keemei: QIIME에 사용되는 tsv 파일 검증 프로그램 [링크]
  • qiime tools peek: QIIME artifact의 UUID, type, format을 확인 가능.
  • qzv 파일 확인: 1) qiime tools view demux.qzv, 2) view.qiime2.org
  • Taxonomic classifiers는 각각의 연구 상황에 맞게 train되었을 때가 가장 정확하게 작동한다.
  • Differential abundacne testing을 위한 ANCOM을 사용하기 전에 ANCOM paper를 읽고 ANCOM의 가정과 한계를 아는 것이 좋다 (ANCOM은 그룹 간 차이가 약 25%보다 적을 것으로 가정함).

 

Artifact API

다음 링크에서는 위 튜토리얼을 Python 코드로 돌린(명령어 X) 과정이 나와있다.

 

Jupyter Notebook Viewer

Next, the Deblur workflow is applied using the qiime deblur denoise-16S method. This method requires one parameter that is used in quality filtering, --p-trim-length n which truncates the sequences at position n. In general, the Deblur developers recommend

nbviewer.jupyter.org

 

 

Reference

 

 

728x90
반응형