BioPlayground

🧬
목록으로

QIIME2: 16S 마이크로바이옴 분석과 '내가 무엇을 했는지'를 데이터가 기억하게 하는 법

16S 앰플리콘 마이크로바이옴 분석의 표준 QIIME2. DADA2 denoising, ASV, alpha/beta 다양성, 그리고 데이터 자체가 분석 이력을 기억하는 provenance 개념을 실습으로 봅시다.

중급
|
20
|
검증 완료 (2026-07-24)
QIIME216S ampliconmicrobiome diversityprovenance
진행률0/64 (0%)

"그 그림, 정확히 어떤 파라미터로 그렸죠?" 에 답할 수 있나요

6개월 전 마이크로바이옴 논문을 위해 다양성 그래프를 그렸습니다. 리뷰어가 묻습니다. "denoising 임계값 몇으로 잘랐나요? 어떤 참조 DB 버전을 썼죠?" 노트를 뒤지지만 기억이 흐릿합니다. 재현이 안 되면 논문은 흔들립니다. 이 재현성의 고통은 바이오인포매틱스 전체의 만성병입니다.

QIIME2는 이 문제를 정면으로 설계에 반영한 도구입니다. 16S rRNA 앰플리콘 마이크로바이옴 분석의 사실상 표준이면서, 모든 데이터 파일이 자신이 어떻게 만들어졌는지를 스스로 기억합니다. 이 편에서 16S 워크플로우와 함께, 그 provenance 개념이 왜 게임 체인저인지 봅니다. S1 티어의 마지막 편입니다.

16S 앰플리콘 — 왜 유전자 하나만 읽나

S24의 shotgun은 게놈 전체를 읽었습니다. 16S 접근은 다릅니다. 거의 모든 세균이 가진 16S rRNA 유전자 한 조각만 증폭해 시퀀싱합니다. 이 유전자는 보존 영역(프라이머가 붙는 곳)과 가변 영역(V1~V9, 종마다 다른 곳)이 번갈아 있어, 가변 영역 서열만으로 종을 구분할 수 있습니다. 저렴하고 숙주 오염이 적어 대규모 코호트에 적합합니다. 대신 종 수준 해상도와 기능 정보는 shotgun보다 약합니다.

DADA2 — OTU에서 ASV로

옛 방식은 비슷한 서열을 97% 유사도로 묶어 OTU(Operational Taxonomic Unit)를 만들었습니다. 문제는 이 97% 임계가 임의적이고, 시퀀싱 오류와 진짜 변이를 구분하지 못한다는 것입니다.

DADA2는 발상을 바꿉니다. 시퀀싱 오류 모델을 데이터에서 학습한 뒤, 관측된 서열이 "진짜 생물학적 서열 + 오류"인지 통계적으로 판정해 오류를 제거합니다. 결과는 단일 염기까지 구분되는 정확한 서열 변이체 — ASV(Amplicon Sequence Variant)입니다. ASV는 임계값에 의존하지 않아 연구 간 비교가 가능하고, 오늘날 OTU를 대체하는 표준입니다.

다양성 — 두 개의 질문

마이크로바이옴을 요약하는 두 축이 있습니다.

Alpha 다양성 — "한 시료 안이 얼마나 다양한가?" 대표 지표 Shannon 엔트로피는 CS의 정보 엔트로피 그대로입니다.

H=i=1SpilnpiH = -\sum_{i=1}^{S} p_i \ln p_i

pip_i는 종 ii의 상대 비율, SS는 종 수. 종이 고르게 많을수록 HH가 큽니다.

손으로 Shannon 계산

세 종이 비율 [0.5, 0.3, 0.2]라면,

H=(0.5ln0.5+0.3ln0.3+0.2ln0.2)=(0.3470.3610.322)=1.030H = -(0.5\ln 0.5 + 0.3\ln 0.3 + 0.2\ln 0.2) = -(-0.347 - 0.361 - 0.322) = 1.030

같은 세 종이 [0.9, 0.05, 0.05]로 한 종에 쏠리면 H0.394H \approx 0.394로 뚝 떨어집니다. 쏠릴수록 다양성이 낮다는 직관과 정확히 맞습니다.

Beta 다양성 — "두 시료가 서로 얼마나 다른가?" 여기서 마이크로바이옴 특유의 지표 UniFrac이 빛납니다. 단순히 종 목록을 비교하는 대신, 계통수(phylogenetic tree) 위에서 두 시료가 공유하지 않는 가지 길이의 비율로 거리를 잽니다. 가까운 친척 종끼리의 차이는 작게, 먼 종 간 차이는 크게 반영합니다. 진화적 맥락을 담은 거리입니다.

Provenance — 데이터가 이력을 기억한다

여기가 QIIME2의 진짜 혁신입니다. QIIME2의 모든 결과물은 .qza(데이터)·.qzv(시각화) 아티팩트입니다. 겉보기엔 파일 하나지만, 내부에는 이 데이터를 만든 모든 단계의 완전한 기록 — 사용한 플러그인, 파라미터, 버전, 입력 아티팩트의 UUID — 가 DAG로 박혀 있습니다.

즉 결과 파일 하나를 view.qiime2.org에 끌어다 놓으면, "raw reads → demux → DADA2(이 파라미터) → 분류(이 DB 버전) → 이 그림"이라는 전 계보가 그래프로 펼쳐집니다. 6개월 뒤 리뷰어의 질문에 파일 하나로 답할 수 있습니다. 이것은 CS의 두 개념과 정확히 같습니다. Git 커밋 그래프(각 상태가 부모를 참조하는 불변 이력)와 콘텐츠 주소화(내용으로 식별되는 불변 객체).

실습 — 16S 워크플로우 한 바퀴

QIIME2는 conda 환경으로 설치합니다(후속 편 Pixi/uv 참고). 핵심 흐름만 봅니다.

bash
# 1) 리드 임포트 → 아티팩트(.qza)로 (이 순간부터 provenance 기록 시작)
qiime tools import --type 'SampleData[PairedEndSequencesWithQuality]' \
--input-path manifest.tsv --input-format PairedEndFastqManifestPhred33V2 \
--output-path demux.qza
# 2) DADA2 denoising → ASV 테이블 + 대표 서열
qiime dada2 denoise-paired --i-demultiplexed-seqs demux.qza \
--p-trim-left-f 13 --p-trunc-len-f 150 \
--p-trim-left-r 13 --p-trunc-len-r 150 \
--o-table table.qza --o-representative-sequences rep-seqs.qza \
--o-denoising-stats stats.qza
# 3) 계통수 (UniFrac용)
qiime phylogeny align-to-tree-mafft-fasttree \
--i-sequences rep-seqs.qza \
--o-rooted-tree rooted-tree.qza --o-alignment aln.qza \
--o-masked-alignment masked.qza --o-tree unrooted.qza
# 4) 다양성 (alpha/beta 한 번에)
qiime diversity core-metrics-phylogenetic \
--i-phylogeny rooted-tree.qza --i-table table.qza \
--p-sampling-depth 1000 --m-metadata-file metadata.tsv \
--output-dir diversity/

산출된 .qzv들을 view.qiime2.org에 드래그하면 그림과 함께 provenance 탭이 열립니다. --p-trunc-len 같은 파라미터가 그 안에 영구히 기록되어 있습니다. 다시는 "무슨 값을 썼더라"로 고생하지 않습니다.

CS 매핑

  • Provenance DAG = Git 커밋 그래프: 각 아티팩트가 부모 아티팩트와 연산을 참조하는 불변 방향 그래프. 버전 관리의 핵심 자료구조 그대로입니다.
  • 콘텐츠 주소화: 아티팩트를 UUID로 식별하는 것은 Git의 SHA·IPFS의 CID와 같은 발상입니다.
  • 정보 엔트로피(Shannon): alpha 다양성은 Shannon 엔트로피 그 자체로, 압축·정보이론과 직결됩니다.
  • 계통 거리(UniFrac): 트리 위 가지 길이 기반 거리로, DryBench의 트리 자료구조·거리 계량을 생물학에 응용한 것입니다.

자주 만나는 결함

  • trunc-len을 품질 그래프 없이 임의 설정qiime demux summarize의 품질 분포를 보고 잘라야 합니다. 너무 길게 두면 오류가, 너무 짧게 두면 정보가 손실됩니다.
  • sampling depth(rarefaction)를 아무 값으로 — 시료별 리드 수 차이를 무시하면 다양성 비교가 왜곡됩니다. 최소 시료 깊이를 보고 정합니다.
  • OTU 방식 고집 — 특별한 이유가 없으면 ASV(DADA2)가 표준입니다. 재현성·연구 간 비교에서 유리합니다.
  • provenance 무시하고 중간 파일만 공유 — 아티팩트 대신 CSV만 넘기면 이력이 끊깁니다. .qza/.qzv 자체를 공유·보관합시다.

더 깊게 파고 싶다면

본문은 BPD가 직접 재구성한 서술입니다. 심화는 아래 정통 자료를 활용합시다.

  • QIIME2 공식 문서·튜토리얼"Moving Pictures" tutorial (docs.qiime2.org, 문서 완비). 16S 전 과정을 단계별로 따라가는 정석입니다.
  • 원 논문(QIIME2): Bolyen et al. (2019), Reproducible, interactive, scalable and extensible microbiome data science using QIIME 2, Nature Biotechnology 37:852. provenance 설계 철학이 담겨 있습니다.
  • 원 논문(DADA2): Callahan et al. (2016), DADA2: High-resolution sample inference from Illumina amplicon data, Nature Methods 13:581. ASV의 원천입니다.
  • UniFrac: Lozupone & Knight (2005), UniFrac: a new phylogenetic method for comparing microbial communities, Applied and Environmental Microbiology 71:8228.

이로써 S1 티어(S01~S25)가 완결됩니다 — FASTQ 품질부터 변이 검출, 정량, 어셈블리, 메타게노믹스까지 NGS 파이프라인 전체를 한 바퀴 돌았습니다. 다음 편 S27부터는 무대가 다시 바뀝니다. 조직 평균이라는 유령과 싸우는 단일세포의 세계, 그 첫 실전인 세포 품질 관리(QC)로 들어갑니다.