왜 SNP 콜러가 SV를 놓치나요
HaplotypeCaller가 잡는 인델은 대략 40bp 이하입니다. 그 이상 크기의 변이(50bp~ 수 Mbp)는 별도 도구가 필요합니다. 이 대형 변이가 구조변이(Structural Variant, SV)입니다.
SV의 다섯 유형.
- DEL (Deletion): 참조에 있는 구간이 개체에서 사라짐.
- DUP (Duplication): 참조 구간이 개체에서 반복.
- INV (Inversion): 구간이 뒤집힘.
- TRA (Translocation): 다른 염색체 사이 재배열.
- INS (Insertion): 참조에 없는 서열이 삽입됨.
암 유전체, 유전 질환, 진화 연구에서 SV가 종종 결정적인 신호입니다. 그런데 HaplotypeCaller의 로컬 어셈블리는 창이 수백 bp라 대형 SV를 통째로 잡을 수 없습니다. SV 전용 도구가 필요한 이유죠.
세 시그니처 — SV를 어떻게 알아채나요
SV 도구가 사용하는 세 종류의 증거.
1. Discordant Read Pair
Paired-end 리드는 R1과 R2 사이 거리가 라이브러리 인서트 크기에 따라 결정됩니다(예: 300~500bp). 이 거리가 크게 벗어나면 사이에 SV가 있다는 신호입니다.
- 예상 인서트 400bp인데 R1-R2 거리가 3000bp → 사이에 2600bp DEL 가능성.
- R1은 chr1에 붙고 R2는 chr7에 붙으면 → 두 염색체 사이 TRA 가능성.
2. Split Read
한 리드가 SV 경계를 가로지르면, 앞부분은 A 위치에 붙고 뒷부분은 B 위치에 붙는 split alignment가 나옵니다 (BWA의 supplementary alignment).
- 리드 앞 80bp가 chr7:100에 붙고 뒷 70bp가 chr7:3000에 붙음 → 사이에 DEL.
- 앞부분이 chr1에, 뒷부분이 chr7에 → 두 염색체 사이 breakpoint.
3. Read Depth
큰 DEL이 있으면 그 구간의 커버리지가 반으로 (heterozygous) 또는 0으로 (homozygous) 떨어집니다. 큰 DUP이면 커버리지가 1.5×나 2×로 뛰어오릅니다.
- 예상 30× WGS에서 특정 100kbp 구간이 15× → hetero DEL 후보.
- 특정 50kbp 구간이 60× → hetero DUP 후보.
SV 도구들은 이 세 시그니처를 다양한 조합으로 활용합니다.
Manta — 그래프 어셈블리 + 페어드-엔드
Illumina 개발자들이 만든 도구. 짧은리드 시대 SV의 사실상 표준.
원리
- 페어드-엔드 discordant + split read를 스캔.
- 이 증거들을 클러스터링해 SV 후보 breakpoint 그래프 생성.
- 각 후보 지점에서 로컬 어셈블리 → 정확한 breakpoint 서열 확정.
- 신뢰도 점수 부여.
실행 명령
configManta.py \ --normalBam normal.bam \ --tumorBam tumor.bam \ --referenceFasta hg38.fa \ --runDir manta_run
manta_run/runWorkflow.py -m local -j 16Strelka2와 같은 Configure + runWorkflow 스타일.
강점
- 짧은리드 SV 전방위: DEL·DUP·INV·TRA 다 지원.
- 속도: 대부분 WGS 샘플이 몇 시간.
- 표준 파이프라인: nf-core/sarek 등 대부분 포함.
약점
- 대형 DUP · CNV: read depth 시그니처 활용이 제한적. CNVkit 등 별도 도구 병용.
- 롱리드는 미지원: PacBio HiFi에는 Sniffles·pbsv를 씀.
Delly — 페어드-엔드 시그니처 특화
Tobias Rausch가 EMBL에서 개발한 도구. Manta와 유사하나 SV 유형별로 별도 최적화.
원리
- SV 유형별 페어드-엔드 signature를 미리 정의.
- 각 signature에 맞는 read pair 클러스터를 스캔.
- 클러스터마다 split read로 breakpoint 서열 확정.
실행 명령
# SV 유형 별로 각각 실행delly call -t DEL -o S1.del.bcf -g hg38.fa S1.bamdelly call -t DUP -o S1.dup.bcf -g hg38.fa S1.bamdelly call -t INV -o S1.inv.bcf -g hg38.fa S1.bamdelly call -t TRA -o S1.tra.bcf -g hg38.fa S1.bam
# 통합bcftools concat S1.del.bcf S1.dup.bcf S1.inv.bcf S1.tra.bcf -Ob -o S1.sv.bcf강점
- SV 유형별 튜닝: 각 signature 특화.
- 소메틱 지원 강함: 종양-정상 쌍 SV 콜링에 잘 맞음.
- 작은 SV(50~500bp)에도 강함.
약점
- 복잡변이 처리 제한: 여러 SV가 중첩된 복잡 영역에서 감도 제한.
GRIDSS — Assembly-first 접근
Papenfuss lab이 2017년 발표한 도구. Assembly-first 접근으로 breakpoint 서열을 정확히 잡습니다.
원리
- 관심 영역 리드로 로컬 어셈블리.
- 어셈블리 서열이 참조와 다르게 붙는 지점을 breakpoint로 확정.
- 이 지점의 discordant/split 증거로 검증.
즉 어셈블리를 먼저 하고 나서 read 시그니처로 검증하는 순서.
실행 명령
gridss \ --reference hg38.fa \ --output S1.sv.vcf.gz \ --assembly S1.assembly.bam \ --workingdir gridss_work \ -t 16 \ S1.bam강점
- 가장 정확한 breakpoint: 어셈블리 기반이라 nucleotide-level 정확.
- 복잡변이 처리: 여러 SV가 얽힌 지역도 잘 풀어냄.
- 암 유전체 SV: 융합 유전자 · 복잡 재배열 감지에 우수.
약점
- 계산 무거움: Manta/Delly보다 2~5배 느림.
- 결과 필터링 복잡: 원 VCF가 raw라 사후 필터 파이프라인이 필수.
세 도구 실무 매트릭스
| 상황 | 1순위 | 2순위 |
|---|---|---|
| 인간 WGS 표준 germline SV | Manta | Delly |
| 종양-정상 쌍 somatic SV | Manta | Delly |
| 복잡 재배열 (암 융합) | GRIDSS | Manta |
| 속도 우선 | Manta | Delly |
| 정확도 최우선 (breakpoint 서열) | GRIDSS | — |
| 롱리드 SV | Sniffles / pbsv | — |
| CNV(대형 DUP·DEL 커버리지 기반) | CNVkit · GATK CNV | S15에서 다룸 |
SV VCF의 특수 필드
SV VCF는 SNP VCF와 다르게 두 좌표(시작·종료)를 표현해야 합니다.
SVTYPE=DEL: SV 유형.END=100500: 끝 좌표.SVLEN=-500: SV 길이 (DEL은 음수).CIPOS=-10,10: breakpoint 위치 불확실성.IMPRECISE: 정확한 breakpoint 미확정.
IGV에서 이 필드를 이용해 SV를 시각화할 수 있습니다.
손 계산 — Discordant Read로 DEL 감지
라이브러리 인서트가 400bp ± 50bp (평균 400, SD 50). 정상 R1-R2 거리는 대략 300~500bp.
특정 위치에서 R1-R2 거리가 2500bp인 리드 10개가 몰림.
- 2500 - 400 = 2100bp가 예상 대비 초과 → 사이에 약 2100bp DEL 후보.
- 리드 10개가 같은 signature를 보이면 우연 확률 극히 낮음.
- DEL 콜.
SV 도구가 이 클러스터링을 자동으로 수행합니다.
SV 벤치마크 — dbVar와 GIAB SV
SV 벤치마크의 표준.
- GIAB HG002 SV Truth Set: 인간 SV 참 세트. VCF 형식.
- Truvari: SV VCF 비교 도구 (hap.py의 SV 버전).
truvari bench -b truth.sv.vcf.gz -c manta.sv.vcf.gz -o truvari_out --pctsim 0.5결과에 SNP 벤치마크와 유사하게 Precision · Recall · F1이 나옵니다.
Colab에서 소형 실습
Manta는 인간 전체 게놈이 무거우니 chr22만 대상으로 시연 가능.
!apt-get install -y python2 wget >/dev/null!wget -q https://github.com/Illumina/manta/releases/download/v1.6.0/manta-1.6.0.centos6_x86_64.tar.bz2!tar xjf manta-1.6.0.centos6_x86_64.tar.bz2
!./manta-1.6.0.centos6_x86_64/bin/configManta.py \ --bam chr22_sample.bam \ --referenceFasta hg38_chr22.fa \ --runDir manta_out
!manta_out/runWorkflow.py -m local -j 2결과 VCF에서 chr22에서 발견된 SV를 볼 수 있습니다. 대부분 소형 인델과 몇 개 SV.
CS 매핑
- 그래프 어셈블리: Manta의 breakpoint 그래프 → 노드=위치, 엣지=페어드-엔드.
- Assembly-first vs Signature-first: GRIDSS(어셈블리 우선) vs Manta·Delly(시그니처 우선).
- 다중 증거 통합: DryBench "그래프 기반 검출" 편(
graph-based-detection) 참고.
마무리
SV는 인간 유전체의 놓쳐서는 안 되는 신호입니다. 특히 암 유전체와 발달 장애에서 결정적. Manta·Delly·GRIDSS 삼각 구도를 감으로 잡으면 프로젝트 진입이 빨라집니다. 다음 편(S15)에서는 SV의 특수 하위 유형인 CNV(복제수 이상)를 전용 도구로 다루는 방법을 봅니다.
더 깊게 파고 싶다면
- Chen X. et al. (2016), Manta: rapid detection of structural variants and indels for germline and cancer sequencing applications. Bioinformatics 32:1220. Manta 원 논문.
- Rausch T. et al. (2012), DELLY: structural variant discovery by integrated paired-end and split-read analysis. Bioinformatics 28:i333. Delly 원 논문.
- Cameron D.L. et al. (2017), GRIDSS: sensitive and specific genomic rearrangement detection using positional de Bruijn graph assembly. Genome Research 27:2050. GRIDSS 원 논문.
- Zook J.M. et al. (2020), A robust benchmark for detection of germline large deletions and insertions. Nature Biotechnology 38:1347. GIAB SV 벤치마크.
- SV-plaudit (https://github.com/jbelyeu/SV-plaudit): SV IGV 시각화 도구.
Manta 한 번 돌려보고 IGV로 시각화해보면 SV 감이 옵니다. 다음 편에서 CNV로 갑시다.