BioPlayground

🧬
목록으로

Strelka2 · FreeBayes 대안 콜러: 벤치마크 감으로 도구를 골라봅시다

Strelka2와 FreeBayes는 GATK와 다른 통계적 접근을 취합니다. 두 콜러의 원리, 언제 우세한지, GIAB 참 세트로 어떻게 벤치마크하는지 실무 감각으로 정리합니다.

중급
|
18
|
검증 완료 (2026-07-22)
variant caller benchmarkingStrelka2FreeBayes
진행률0/52 (0%)

왜 대안 콜러를 아는 게 실무에 도움이 될까요

GATK4와 DeepVariant를 봤으니 이제 대안 콜러를 훑을 시간입니다. Strelka2와 FreeBayes는 오랜 이력의 오픈 도구들로, 특정 상황에서 GATK를 능가하거나, 계산 비용이 훨씬 적거나, 특정 라이브러리에 특화되어 있습니다.

새 프로젝트를 받았을 때 "이 상황엔 어떤 콜러가 유리한가요?"에 답할 수 있는 감을 잡는 게 이 편의 목적입니다.

Strelka2 — Illumina의 자체 콜러

Strelka2는 Illumina사가 개발해 2018년 오픈소스로 공개한 콜러입니다. germline과 somatic 모드를 모두 지원.

원리의 특이점

  • Empirical genotype model: HaplotypeCaller처럼 로컬 어셈블리를 하지만, 확률 모델을 사전 훈련된 empirical 파라미터에 크게 의존.
  • Illumina 시퀀서 특화: NovaSeq · HiSeq X · MiSeq의 오류 패턴에 튜닝되어 있음.
  • Somatic tumor-normal 강점: 종양-정상 쌍에서 임상 감도가 높음.

실행 명령

bash
# Germline 실행
configureStrelkaGermlineWorkflow.py \
--bam=S1.bam \
--referenceFasta=hg38.fa \
--runDir=strelka_germline_S1
strelka_germline_S1/runWorkflow.py -m local -j 16
# Somatic 실행
configureStrelkaSomaticWorkflow.py \
--normalBam=normal.bam \
--tumorBam=tumor.bam \
--referenceFasta=hg38.fa \
--runDir=strelka_somatic_S1
strelka_somatic_S1/runWorkflow.py -m local -j 16

Configure 명령이 워크플로 스크립트를 생성하고, 그 스크립트가 실제 실행. Nextflow와 유사한 발상.

강점

  • 속도: GATK4의 1/3~1/5 시간.
  • Illumina 실증: 여러 벤치마크에서 인델 F1이 GATK보다 살짝 우위.
  • 워크플로 관리 통합: Configure + runWorkflow로 재현성 확보.

약점

  • 비인간 종에는 열세: Illumina 인간 튜닝이라 다른 종에서는 GATK가 안정적.
  • 커스터마이징 어려움: 모델 재훈련 미지원.

FreeBayes — 논리적으로 유연한 하플로타입 콜러

FreeBayes는 Erik Garrison(pangenome graph 저자와 동일 인물)이 만든 오픈 도구입니다. GitHub에서 활발히 유지되고 있습니다.

원리의 특이점

  • Haplotype-based: HaplotypeCaller와 유사하게 로컬 하플로타입을 만들고 리드로 우도 계산.
  • 폴리플로이드 지원: -p N으로 배수성 지정 가능 (인간 2n, 식물 4n·6n·8n, 미생물 haploid).
  • 혼합 샘플 지원: 하나의 BAM에 여러 개체가 섞여 있어도 콜링 가능 (풀 시퀀싱).

실행 명령

bash
freebayes \
--ploidy 2 \
--fasta-reference hg38.fa \
--targets exome.bed \
--min-alternate-fraction 0.20 \
S1.bam > S1.freebayes.vcf

옵션 몇 개만 잡으면 됩니다.

  • --ploidy: 배수성. 인간 2. 식물 4·6·8. 세균 1.
  • --min-alternate-fraction: 최소 VAF. 임상은 0.20 표준.
  • --targets: 인터벌.

강점

  • 폴리플로이드: GATK가 인간 2n 위주라 식물·미생물 프로젝트엔 FreeBayes.
  • 소형 유전체 신속: 미생물 유전체(5Mbp) 콜링이 몇 분.
  • 오픈 커뮤니티: 이슈 응답이 빠름.

약점

  • 인간 표준에서 감도: GATK/DeepVariant보다 다소 낮음.
  • 필터가 최소: 사후 필터를 별도로 (bcftools filter) 붙여야 함.

언제 어떤 콜러? 실무 결정 매트릭스

상황1순위2순위
인간 WGS/WES 표준 임상GATK4DeepVariant
인간 WGS 최대 감도DeepVariantGATK4
인간 종양-정상 쌍 소마틱Mutect2Strelka2
인간 종양 단독Mutect2 (PoN)Strelka2
PacBio HiFi 롱리드DeepVariantClair3
미생물 유전체 (haploid)FreeBayesSnippy(Bcftools)
식물·수산물 (polyploid)FreeBayesGATK4 (ploidy 옵션)
소규모 · 소수 샘플Strelka2GATK4 hard filter
논문 재현성 최우선원 논문 도구 그대로

이 매트릭스가 실무 결정의 뼈대입니다. 벤치마크 결과가 매년 조금씩 갱신되니 새 프로젝트마다 최신 벤치마크 리포트를 스캔하는 습관이 좋습니다.

벤치마크 방법론 — GIAB + hap.py

콜러들을 어떻게 공정하게 비교할까요. 표준 프로토콜이 있습니다.

1. GIAB 참 세트로 기준 확정

Genome in a Bottle (GIAB) 컨소시엄이 인간 7개 표본(HG001~HG007)에 대해 여러 플랫폼·여러 콜러를 결합해 "이 위치들은 확실히 이 유전자형"이라는 참 세트를 만들었습니다. 이 세트가 벤치마크의 gold standard.

  • HG001 (NA12878): 참 세트가 가장 완비.
  • HG002~HG007: 다양성 확대.

2. hap.py로 비교

Illumina가 개발한 hap.py가 표준 비교 도구.

bash
hap.py \
truth.vcf.gz \
S1.gatk.vcf.gz \
-f confident_regions.bed \
-r hg38.fa \
-o gatk_vs_truth

결과에 다음 지표가 나옵니다.

  • Precision: 콜된 것 중 참인 비율.
  • Recall: 참 중 콜된 비율.
  • F1: 조화 평균.
  • Type별 (SNP · INDEL): 각 유형별 성능.

3. vcfeval

RTG Tools의 vcfeval도 표준. hap.py와 결과가 대체로 일치.

손 계산 — F1이 무엇을 말하는가

가상의 벤치마크 결과.

콜러PrecisionRecallF1
GATK4 HC0.9950.9930.994
DeepVariant0.9960.9970.996
Strelka20.9940.9950.994
FreeBayes0.9870.9830.985

인간 WGS SNP 표준에서 감도 순위. DeepVariant가 근소하게 앞, GATK/Strelka2 우세, FreeBayes 다소 뒤. 각 값이 실무 의미:

  • Precision 0.996 = 콜된 100만 변이 중 4천 개가 위양성.
  • Recall 0.997 = 참 100만 중 3천 개를 놓침.

임상 파이프라인은 4천 위양성이 유의미해서 후속 큐레이션이 필요합니다. 이 큐레이션이 실무 시간의 대부분입니다.

Ensemble — 여러 콜러 결합

여러 콜러의 결과를 합쳐 감도를 극대화하는 접근이 있습니다.

  • Union: 어느 한 콜러라도 콜한 변이 → 감도 최대 · 위양성 증가.
  • Intersection: 모든 콜러가 콜한 변이 → 특이도 최대 · 감도 감소.
  • 2-of-3: 3개 콜러 중 2개 이상 동의 → 균형 지점.

nf-core/sarek이 이 앙상블 방식을 지원. 대규모 코호트에서는 앙상블이 감도 향상에 실질적 가치.

Colab 실습 — chr22 소형 벤치마크

bash
!apt-get install -y freebayes samtools bcftools >/dev/null
# 소형 예제
!wget -q https://sra-pub-src-1.s3.amazonaws.com/HG002/HG002_chr22.bam
!samtools index HG002_chr22.bam
# FreeBayes 콜링
!freebayes -f hg38_chr22.fa HG002_chr22.bam > freebayes.vcf
!bcftools view freebayes.vcf | head -30

hap.py는 설치가 다소 무거워 Docker로 별도 실행 권장.

CS 매핑

  • Bayesian 하플로타입: FreeBayes = HaplotypeCaller와 유사한 로컬 하플로타입 접근.
  • Empirical 파라미터: Strelka2 = 사전 훈련 통계.
  • 벤치마크 (Precision/Recall/F1): DryBench "벤치마크 프레임" 편(benchmarking-frameworks) 참고.

마무리

콜러 선택은 상황 판단입니다. 이번 편의 매트릭스가 그 판단의 지도입니다. 다음 편(S14)에서는 짧은리드 콜러들이 잡지 못하는 대형 구조변이(SV)에 특화된 도구들(Manta · Delly · GRIDSS)을 봅니다.

더 깊게 파고 싶다면

  • Kim S. et al. (2018), Strelka2: fast and accurate calling of germline and somatic variants. Nature Methods 15:591. Strelka2 원 논문.
  • Garrison E. & Marth G. (2012), Haplotype-based variant detection from short-read sequencing. arXiv:1207.3907. FreeBayes 원 논문.
  • Zook J.M. et al. (2019), An open resource for accurately benchmarking small variant and reference calls. Nature Biotechnology 37:561. GIAB 벤치마크 프로토콜.
  • precisionFDA Truth Challenge (https://precision.fda.gov/challenges): 최신 콜러 벤치마크 대회.
  • nf-core/sarek (https://nf-co.re/sarek): Nextflow 기반 앙상블 워크플로.

콜러 매트릭스를 프로젝트 시작할 때 참조 문서로 붙여두면 결정 속도가 확 오릅니다. 다음 편에서 구조변이 도구로 갑시다.