[Microbiome] QIIME2-Moving Pictures

이 D. 봉춘·2025년 9월 18일

Bioinformatics

목록 보기
3/3
post-thumbnail

QIIME2 Moving Pictures Tutorial 워크플로우

개요

QIIME2는 미생물(Microbiome) 군집 분석을 위한 강력한 플랫폼으로, Moving Pictures 튜토리얼은 16S rRNA 유전자 서열 데이터를 처리하고 분석하는 전체 워크플로우를 제공합니다.

자세한 내용 아래의 url 참고:
https://amplicon-docs.qiime2.org/en/latest/tutorials/moving-pictures.html


주요 파일 형식

  • .qza: QIIME2 아티팩트 파일 (데이터와 메타데이터 포함)
  • .qzv: QIIME2 시각화 파일 (하단의 웹 브라우저에서 확인 가능)

https://view.qiime2.org/

  • 파일 드래그앤 드랍 가능

환경 설정

가상환경 활성화

# 가상환경 목록 확인
conda info --envs

# QIIME2 가상환경 활성화
conda activate /opt/miniconda3/envs/qiime2-amplicon-2025.7

Task 0: 샘플 메타데이터 준비

한 줄 요약: 샘플 정보가 포함된 메타데이터 파일을 다운로드하여 분석에 필요한 기본 정보를 준비

# 메타데이터 다운로드
wget -O 'sample-metadata.tsv' \
  'https://moving-pictures-tutorial.readthedocs.io/en/latest/data/moving-pictures/sample-metadata.tsv'

Task 1: 메타데이터 시각화 (Tabulate)

한 줄 요약: QIIME2의 metadata tabulate 기능을 사용하여 샘플 메타데이터를 시각화 가능한 형태로 변환

QIIME2의 metadata 플러그인은 샘플 메타데이터를 편리하게 확인할 수 있는 시각화 도구를 제공합니다.

qiime metadata tabulate \
  --m-input-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --o-visualization sample-metadata-viz.qzv

Task 2: 데이터 가져오기 (Import)

한 줄 요약: 외부 시퀀스 데이터를 QIIME2 아티팩트 형태(.qza)로 변환하여 후속 분석이 가능하도록 준비

# 시퀀스 데이터 다운로드
wget -O 'emp-single-end-sequences.zip' \
  'https://moving-pictures-tutorial.readthedocs.io/en/latest/data/moving-pictures/emp-single-end-sequences.zip'

# 압축 해제
unzip -d emp-single-end-sequences emp-single-end-sequences.zip

# QIIME2 아티팩트로 가져오기
qiime tools import \
  --type 'EMPSingleEndSequences' \
  --input-path emp-single-end-sequences \
  --output-path emp-single-end-sequences.qza

Task 3: 시퀀스 디멀티플렉싱 (Demultiplexing)

한 줄 요약: 바코드 정보를 이용하여 다중화된 시퀀스를 개별 샘플별로 분리하는 과정

디멀티플렉싱은 바코드를 기반으로 혼합된 시퀀스 데이터를 각 샘플별로 분리하는 중요한 전처리 단계입니다.

qiime demux emp-single \
  --i-seqs emp-single-end-sequences.qza \
  --m-barcodes-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --m-barcodes-column barcode-sequence \
  --o-per-sample-sequences /Users/iseungjun/Desktop/test_qiime2/qiime/demux/demux.qza \
  --o-error-correction-details /Users/iseungjun/Desktop/test_qiime2/qiime/demux/demux-details.qza

# 디멀티플렉싱 결과 시각화
qiime demux summarize \
  --i-data demux.qza \
  --o-visualization demux.qzv

Task 4: 품질 관리 및 노이즈 제거

4.1 DADA2 방법

한 줄 요약: DADA2 알고리즘을 사용하여 시퀀싱 에러를 교정하고 키메라 서열을 제거하여 고품질 ASV를 생성

DADA2는 품질 필터링, 키메라 검사, 그리고 paired-end read 결합을 수행합니다.

qiime dada2 denoise-single \
  --i-demultiplexed-seqs demux.qza \
  --p-trim-left 0 \
  --p-trunc-len 120 \
  --o-representative-sequences /Users/iseungjun/Desktop/test_qiime2/qiime/dada2/rep-seqs.qza \
  --o-table /Users/iseungjun/Desktop/test_qiime2/qiime/dada2/table.qza \
  --o-denoising-stats /Users/iseungjun/Desktop/test_qiime2/qiime/dada2/stats.qza

# 통계 시각화
qiime metadata tabulate \
  --m-input-file stats.qza \
  --o-visualization stats.qzv

4.2 Deblur 방법 (대안)

한 줄 요약: Deblur는 시퀀스 오류 프로파일을 사용하여 고품질 시퀀스 변이 데이터를 생성하는 대안적 방법

Deblur 방법은 품질 점수 기반 초기 필터링과 오류 교정을 통해 실제 생물학적 시퀀스를 복구합니다.

# 품질 필터링
qiime quality-filter q-score \
  --i-demux demux.qza \
  --o-filtered-sequences /Users/iseungjun/Desktop/test_qiime2/qiime/deblur/demux-filtered.qza \
  --o-filter-stats /Users/iseungjun/Desktop/test_qiime2/qiime/deblur/demux-filter-stats.qza

# Deblur 노이즈 제거
qiime deblur denoise-16S \
  --i-demultiplexed-seqs demux-filtered.qza \
  --p-trim-length 120 \
  --p-sample-stats \
  --o-representative-sequences rep-seqs-deblur.qza \
  --o-table table-deblur.qza \
  --o-stats deblur-stats.qza

# 파일명 변경
mv rep-seqs-deblur.qza rep-seqs.qza
mv table-deblur.qza table.qza

4.2.2 특성 테이블 및 서열 요약

한 줄 요약: 노이즈 제거 결과물인 특성 테이블과 대표 서열의 통계적 요약 및 시각화 생성

qiime feature-table summarize \
  --i-table table.qza \
  --m-sample-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --o-visualization table.qzv

qiime feature-table tabulate-seqs \
  --i-data rep-seqs.qza \
  --o-visualization rep-seqs.qzv

Task 5: 계통학적 트리 생성

한 줄 요약: 계통학적 다양성 분석을 위해 대표 서열들의 다중 서열 정렬 및 계통학적 트리 구축

계통학적 다양성 지표(Faith's PD, UniFrac 등) 계산을 위해서는 특성들 간의 계통학적 관계를 나타내는 트리가 필요합니다.

qiime phylogeny align-to-tree-mafft-fasttree \
  --i-sequences rep-seqs.qza \
  --o-alignment /Users/iseungjun/Desktop/test_qiime2/qiime/phylogenetic/aligned-rep-seqs.qza \
  --o-masked-alignment /Users/iseungjun/Desktop/test_qiime2/qiime/phylogenetic/masked-aligned-rep-seqs.qza \
  --o-tree /Users/iseungjun/Desktop/test_qiime2/qiime/phylogenetic/unrooted-tree.qza \
  --o-rooted-tree /Users/iseungjun/Desktop/test_qiime2/qiime/phylogenetic/rooted-tree.qza

Task 6: 다양성 분석

6.1 핵심 다양성 메트릭 계산

한 줄 요약: 알파 다양성(Shannon, Faith's PD 등)과 베타 다양성(UniFrac, Bray-Curtis 등) 메트릭을 일괄 계산

qiime diversity core-metrics-phylogenetic \
  --i-phylogeny rooted-tree.qza \
  --i-table /Users/iseungjun/Desktop/test_qiime2/qiime/deblur/denoise/table.qza \
  --p-sampling-depth 1103 \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --output-dir diversity-core-metrics-phylogenetic

6.2 다양성 통계 분석

한 줄 요약: 그룹 간 알파/베타 다양성 차이의 통계적 유의성 검정 수행

# 알파 다양성 그룹별 유의성 검정
qiime diversity alpha-group-significance \
  --i-alpha-diversity diversity-core-metrics-phylogenetic/faith_pd_vector.qza \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --o-visualization faith-pd-group-significance.qzv

# 베타 다양성 그룹별 유의성 검정
qiime diversity beta-group-significance \
  --i-distance-matrix diversity-core-metrics-phylogenetic/unweighted_unifrac_distance_matrix.qza \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --m-metadata-column body-site \
  --p-pairwise \
  --o-visualization unweighted-unifrac-body-site-group-significance.qzv

6.3 Emperor 플롯 생성

한 줄 요약: PCoA 결과를 3차원 대화형 플롯으로 시각화하여 샘플 간 유사성 패턴을 탐색

qiime emperor plot \
  --i-pcoa diversity-core-metrics-phylogenetic/unweighted_unifrac_pcoa_results.qza \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --p-custom-axes days-since-experiment-start \
  --o-visualization unweighted-unifrac-emperor-days-since-experiment-start.qzv

Task 7: 알파 희석곡선 분석

한 줄 요약: 서열 깊이에 따른 알파 다양성 변화를 시각화하여 샘플링 충분성을 평가

qiime diversity alpha-rarefaction \
  --i-table /Users/iseungjun/Desktop/test_qiime2/qiime/deblur/denoise/table.qza \
  --i-phylogeny rooted-tree.qza \
  --p-max-depth 4000 \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --o-visualization alpha-rarefaction.qzv

Task 8: 분류학적 분석

한 줄 요약: 사전 훈련된 분류기를 사용하여 ASV에 분류학적 정보를 할당하고 샘플별 분류학적 구성을 시각화

# 분류기 다운로드
wget -O 'gg-13-8-99-515-806-nb-classifier.qza' \
  'https://moving-pictures-tutorial.readthedocs.io/en/latest/data/moving-pictures/gg-13-8-99-515-806-nb-classifier.qza'

# 분류학적 할당
qiime feature-classifier classify-sklearn \
  --i-classifier /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/gg-13-8-99-515-806-nb-classifier.qza \
  --i-reads /Users/iseungjun/Desktop/test_qiime2/qiime/dada2/rep-seqs.qza \
  --o-classification /Users/iseungjun/Desktop/test_qiime2/qiime/taxonomy/taxonomy.qza

# 분류 결과 시각화
qiime metadata tabulate \
  --m-input-file /Users/iseungjun/Desktop/test_qiime2/qiime/taxonomy/taxonomy.qza \
  --o-visualization /Users/iseungjun/Desktop/test_qiime2/qiime/taxonomy/taxonomy.qzv

# 분류학적 바 플롯 생성
qiime taxa barplot \
  --i-table /Users/iseungjun/Desktop/test_qiime2/qiime/dada2/table.qza \
  --i-taxonomy taxonomy.qza \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --o-visualization taxa-bar-plots.qzv

Task 9: 차별 풍부도 분석 (ANCOM-BC)

한 줄 요약: ANCOM-BC 방법을 사용하여 그룹 간 통계적으로 유의하게 다른 풍부도를 보이는 미생물 특성을 식별

ANCOM-BC는 그룹 간 차별적으로 풍부한 특징을 식별하는 동시에 편향 보정을 구현할 수 있는 구성 인식 선형 회귀 모델입니다.

# 장내 샘플만 필터링
qiime feature-table filter-samples \
  --i-table /Users/iseungjun/Desktop/test_qiime2/qiime/dada2/table.qza \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --p-where '[body-site]="gut"' \
  --o-filtered-table gut-table.qza

# ANCOM-BC 분석 (ASV 수준)
qiime composition ancombc \
  --i-table gut-table.qza \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --p-formula subject \
  --o-differentials ancombc-subject.qza

# 결과 시각화
qiime composition da-barplot \
  --i-data ancombc-subject.qza \
  --p-significance-threshold 0.001 \
  --o-visualization da-barplot-subject.qzv

# 속 수준에서 분석
qiime taxa collapse \
  --i-table gut-table.qza \
  --i-taxonomy /Users/iseungjun/Desktop/test_qiime2/qiime/taxonomy/taxonomy.qza \
  --p-level 6 \
  --o-collapsed-table gut-table-l6.qza

qiime composition ancombc \
  --i-table gut-table-l6.qza \
  --m-metadata-file /Users/iseungjun/Desktop/test_qiime2/qiime/raw_data/sample-metadata.tsv \
  --p-formula subject \
  --o-differentials l6-ancombc-subject.qza

qiime composition da-barplot \
  --i-data l6-ancombc-subject.qza \
  --p-significance-threshold 0.001 \
  --o-visualization l6-da-barplot-subject.qzv

결론

이 워크플로우는 16S rRNA 유전자 서열 데이터를 이용한 미생물 군집 분석의 전체 과정을 포괄합니다. 각 단계별 결과물은 다음 단계의 입력으로 사용되며, 최종적으로는 샘플 간 미생물 군집 구조의 차이와 특정 조건에서 풍부도가 달라지는 미생물을 식별할 수 있습니다.


[출처]

[1] QIIME2 메인 사이트(Library, View)
(https://www.dataq.or.kr/www/sub/a_07.do#none)

profile
오류는 언제 난다고 생각하나?

0개의 댓글