
QIIME2는 미생물(Microbiome) 군집 분석을 위한 강력한 플랫폼으로, Moving Pictures 튜토리얼은 16S rRNA 유전자 서열 데이터를 처리하고 분석하는 전체 워크플로우를 제공합니다.
자세한 내용 아래의 url 참고:
https://amplicon-docs.qiime2.org/en/latest/tutorials/moving-pictures.html
# 가상환경 목록 확인
conda info --envs
# QIIME2 가상환경 활성화
conda activate /opt/miniconda3/envs/qiime2-amplicon-2025.7
한 줄 요약: 샘플 정보가 포함된 메타데이터 파일을 다운로드하여 분석에 필요한 기본 정보를 준비
# 메타데이터 다운로드
wget -O 'sample-metadata.tsv' \
'https://moving-pictures-tutorial.readthedocs.io/en/latest/data/moving-pictures/sample-metadata.tsv'
한 줄 요약: 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
한 줄 요약: 외부 시퀀스 데이터를 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
한 줄 요약: 바코드 정보를 이용하여 다중화된 시퀀스를 개별 샘플별로 분리하는 과정
디멀티플렉싱은 바코드를 기반으로 혼합된 시퀀스 데이터를 각 샘플별로 분리하는 중요한 전처리 단계입니다.
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
한 줄 요약: 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
한 줄 요약: 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
한 줄 요약: 노이즈 제거 결과물인 특성 테이블과 대표 서열의 통계적 요약 및 시각화 생성
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
한 줄 요약: 계통학적 다양성 분석을 위해 대표 서열들의 다중 서열 정렬 및 계통학적 트리 구축
계통학적 다양성 지표(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
한 줄 요약: 알파 다양성(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
한 줄 요약: 그룹 간 알파/베타 다양성 차이의 통계적 유의성 검정 수행
# 알파 다양성 그룹별 유의성 검정
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
한 줄 요약: 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
한 줄 요약: 서열 깊이에 따른 알파 다양성 변화를 시각화하여 샘플링 충분성을 평가
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
한 줄 요약: 사전 훈련된 분류기를 사용하여 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
한 줄 요약: 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)