gVCF는 VCF의 확장 포맷입니다.
VCF와 구조는 같지만 담고 있는 정보가 다릅니다.
이 차이를 이해하려면 먼저 일반 VCF의 한계를 알아야 합니다.
VCF의 한계 — 변이가 없는 자리는 어떻게 되는지
일반 VCF는 변이가 발견된 위치만 기록합니다.
변이가 없는 자리는 파일에 아예 등장하지 않습니다.
그런데 여기서 문제가 생깁니다.
어떤 위치가 VCF에 없는 이유가 두 가지일 수 있기 때문입니다.
경우 1: 레퍼런스와 동일해서 변이가 없는 것 (정상)
경우 2: 그 위치에 리드가 충분하지 않아서 판단 자체를 못 한 것
VCF만 보면 이 둘을 구분할 수 없습니다.
특히 여러 샘플을 합쳐서 분석하는 공동 변이 탐지(joint genotyping) 에서 이 문제가 커집니다.
예를 들어 샘플 A에서 어떤 위치에 변이가 없고, 샘플 B의 VCF에도 그 위치가 없다면 B도 정상인 건지, 아니면 B는 그 위치를 아예 못 읽은 건지 알 수 없습니다.
gVCF의 로직
gVCF(genomic VCF)는 변이가 있는 자리뿐 아니라 변이가 없는 자리도 기록합니다.
덕분에 "이 위치는 읽었고, 변이가 없다"는 것을 명확히 표현할 수 있습니다.
변이가 없는 구간은 위치마다 한 줄씩 쓰면 파일이 너무 커집니다.
그래서 연속된 구간을 하나의 블록으로 묶어서 표현합니다. 이를 non-variant block 또는 reference block이라고 합니다.
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SAMPLE1
chr1 10001 . C <NON_REF> . . END=10500;DP=35 GT:DP:GQ 0/0:35:40
chr1 10501 . A T 50 PASS DP=30;AF=0.5 GT:DP:GQ 0/1:30:99
chr1 10502 . G <NON_REF> . . END=11000;DP=33 GT:DP:GQ 0/0:33:45
<NON_REF>가 gVCF에서 핵심 표기입니다.
"이 구간은 변이가 없다"는 것을 나타내는 플레이스홀더입니다.
END=10500은 이 블록이 10001번부터 10500번까지 이어진다는 의미입니다.
즉 이 한 줄이 500개 위치를 대표합니다.
언제 쓰이는지
gVCF는 GATK HaplotypeCaller의 -ERC GVCF 옵션으로 생성됩니다.
GATK Best Practices에서 권장하는 표준 워크플로우에서 쓰입니다.
흐름은 밑과 같습니다.
샘플 1 BAM → HaplotypeCaller (-ERC GVCF) → 샘플1.g.vcf.gz
샘플 2 BAM → HaplotypeCaller (-ERC GVCF) → 샘플2.g.vcf.gz
샘플 3 BAM → HaplotypeCaller (-ERC GVCF) → 샘플3.g.vcf.gz
↓
GenomicsDBImport (gVCF 합치기)
↓
GenotypeGVCFs (공동 genotyping)
↓
최종 멀티샘플 VCF
샘플마다 gVCF를 먼저 만들어두고, 나중에 GenotypeGVCFs에서 한꺼번에 합쳐서 최종 VCF를 만드는 방식입니다.
이 방식의 장점은 새 샘플이 추가될 때 전체를 다시 돌릴 필요 없이 새 샘플의 gVCF만 추가하면 된다는 점입니다.
VCF와 gVCF 차이 정리
| VCF | gVCF | |
| 기록 범위 | 변이 위치만 | 변이 + 변이 없는 구간 전체 |
| 파일 크기 | 작음 | 큼 |
| 용도 | 최종 결과 공유, 분석 | 공동 genotyping 중간 파일 |
| 핵심 표기 | REF/ALT | <NON_REF>, reference block |
| 생성 도구 | GATK, DeepVariant 등 | GATK HaplotypeCaller -ERC GVCF |
gVCF는 최종 결과물이 아니라 공동 분석을 위한 중간 파일이라는 점이 핵심입니다.
분석이 끝나면 최종적으로 일반 VCF 형태로 변환해서 씁니다.
한 줄 요약
gVCF는 변이가 없는 구간도 기록하는 VCF 확장 포맷입니다.
여러 샘플을 함께 분석하는 공동 genotyping에서 각 샘플의 중간 파일로 쓰이며, "이 위치는 읽었고 변이가 없다"는 정보를 명확히 표현할 수 있다는 게 핵심입니다.
'BI&Programming-Tools > File Formats' 카테고리의 다른 글
| [바이오 빅데이터 파일 포맷] BED (0) | 2026.06.20 |
|---|---|
| [바이오 빅데이터 파일 포맷] GFF3 / GTF (0) | 2026.06.20 |
| [바이오 빅데이터 파일 포맷] VCF / BCF (0) | 2026.06.18 |
| [바이오 빅데이터 파일 포맷] SAM / BAM / CRAM (0) | 2026.06.18 |
| [바이오 빅데이터 파일 포맷] FASTQ (0) | 2026.06.17 |
