[바이오 빅데이터 파일 포맷] VCF / BCF

2026. 6. 18. 23:00·BI&Programming-Tools/File Formats

VCF는 변이 탐지 결과를 저장하는 포맷입니다.

BAM에서 변이를 찾고 나면 그 결과가 VCF로 나옵니다.

어떤 염색체의 어떤 위치에서 레퍼런스와 다른 염기가 발견됐는지, 그게 얼마나 신뢰할 수 있는지를 담고 있습니다.

 

BCF는 VCF를 바이너리로 압축한 포맷입니다.

SAM과 BAM의 관계와 같습니다. 담고 있는 정보는 동일하고 저장 방식만 다릅니다.


VCF가 어떻게 생겼나

VCF도 SAM처럼 #으로 시작하는 헤더 섹션과 변이 레코드로 나뉩니다.

##fileformat=VCFv4.2
##FILTER=<ID=PASS,Description="All filters passed">
##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##reference=GRCh38
#CHROM  POS     ID         REF  ALT  QUAL  FILTER  INFO          FORMAT    SAMPLE1
chr1    925952  rs1234567  C    T    50    PASS    DP=30;AF=0.5  GT:DP:GQ  0/1:30:99
chr1    931279  .          A    ATG  30    LowQual DP=10;AF=0.2  GT:DP:GQ  0/1:10:30

 

##으로 시작하는 줄들은 메타데이터입니다.

INFO, FORMAT, FILTER 필드에 어떤 키가 있고 각각 무슨 의미인지를 미리 정의해둡니다.

#CHROM으로 시작하는 줄이 컬럼 헤더이고, 그 아래부터 실제 변이 레코드입니다.


변이 레코드 읽는 법

변이 한 줄을 왼쪽부터 읽으면 이렇습니다.

chr1  925952  rs1234567  C  T  50  PASS  DP=30;AF=0.5  GT:DP:GQ  0/1:30:99

 

  • CHROM / POS: 어떤 염색체의 몇 번째 위치인지입니다. VCF는 1-based 좌표를 씁니다.
  • ID: 알려진 변이면 dbSNP의 rs번호가 들어갑니다. 처음 발견된 변이나 미등록 변이는 .입니다.
  • REF / ALT: 레퍼런스 염기와 대체 염기입니다. 이 두 컬럼이 핵심입니다.
SNV:   REF=C    ALT=T      → C가 T로 바뀜
삽입:  REF=A    ALT=ATG    → A 뒤에 TG가 삽입됨
결실:  REF=ATG  ALT=A      → TG가 결실됨

 

삽입과 결실에서 앞에 공통 염기(앵커 염기)가 붙는 이유는 변이 위치를 명확히 고정하기 위해서입니다.

  • QUAL: 이 변이가 진짜 변이일 가능성에 대한 점수입니다. 높을수록 신뢰도가 높습니다.
  • FILTER: 품질 기준을 통과했는지입니다.
    • PASS: 모든 필터를 통과한 고품질 변이
    • 필터 이름(예: LowQual, LowDepth): 해당 조건에서 걸린 변이
    • .: 필터를 아예 적용하지 않은 상태

분석에서 보통 PASS인 변이만 씁니다.

단, 종양 분석처럼 낮은 빈도의 변이를 찾아야 할 때는 필터에 걸린 변이도 다시 검토하기도 합니다.


INFO 필드

변이 전체에 대한 정보를 담습니다. KEY=VALUE 형태로 ;로 구분합니다.

 

자주 보는 키:

키 의미
DP 이 위치의 전체 리드 깊이
AF ALT allele 빈도
MQ 평균 매핑 품질
FS 가닥 편향 지표 (FisherStrand)
QD QUAL을 깊이로 나눈 값
ANN SnpEff 주석 결과
CSQ VEP 주석 결과

 

SnpEff나 VEP로 기능 주석을 붙이면 ANN 또는 CSQ 필드에 이 변이가 어떤 유전자의 어떤 영역에 있는지, 아미노산이 어떻게 바뀌는지가 추가됩니다.



FORMAT / SAMPLE 필드

FORMAT은 샘플 필드의 구조를 정의하고, 그 오른쪽에 샘플별 값이 같은 순서로 옵니다.

FORMAT     SAMPLE1      SAMPLE2
GT:DP:GQ   0/1:30:99    0/0:25:85

 

자주 보는 FORMAT 키:

키 의미
GT Genotype
DP 이 샘플에서 해당 위치 깊이
GQ Genotype 품질 점수
AD REF와 ALT 각각의 리드 수
AF 이 샘플에서 ALT allele 빈도

 

GT(Genotype) 해석이 가장 중요합니다. 0은 REF, 1은 첫 번째 ALT를 의미합니다.

0/0  → 동형 레퍼런스 (변이 없음)
0/1  → 이형접합 (한쪽만 변이)
1/1  → 동형 변이 (양쪽 모두 변이)
./.  → 미결정
0|1  → 위상 정보 포함 (| 로 구분, 하플로타입 정보)

 

AD로 VAF 계산:

AD=25,5  →  REF 25개 리드, ALT 5개 리드
VAF = 5 / (25 + 5) = 16.7%

 

멀티샘플 VCF는 FORMAT 오른쪽에 샘플이 여러 개 붙습니다. 종양-정상 쌍(tumor-normal pair) 분석이나 가족 trio 분석에서 자주 씁니다.


BCF

BCF(Binary Call Format)는 VCF를 바이너리로 압축한 포맷입니다.

담고 있는 내용은 VCF와 완전히 동일합니다.

VCF 대신 BCF를 쓰는 이유는 두 가지입니다.

 

속도: 대용량 VCF 파일을 처리할 때 BCF가 훨씬 빠릅니다. 특히 수천 개 샘플이 들어있는 멀티샘플 VCF는 파일 크기가 수십~수백 GB에 달하는데, 이런 파일을 텍스트로 읽으면 속도가 매우 느립니다.

 

인덱싱: bcftools index 또는 tabix로 인덱스를 생성하면 특정 게놈 구간의 변이만 빠르게 꺼낼 수 있습니다. VCF도 bgzip 압축 + tabix 인덱스를 붙이면 같은 기능이 가능합니다.

 

실무에서는 VCF도 거의 항상 bgzip으로 압축해서 .vcf.gz 형태로 씁니다. tabix 인덱스(.tbi)를 함께 두면 BCF와 비슷한 수준의 접근 속도를 얻을 수 있습니다.

sample.vcf.gz     ← bgzip 압축 VCF
sample.vcf.gz.tbi ← tabix 인덱스

VCF와 BCF 비교

  VCF BCF
형식 텍스트 바이너리
직접 읽기 가능 불가 (bcftools view로 변환)
용량 큼 작음
처리 속도 느림 빠름
주요 용도 소규모, 확인, 공유 대규모 코호트, 빠른 처리

한 줄 요약

VCF는 변이 탐지 결과를 담는 포맷으로, 어디서 어떤 변이가 발견됐는지와 그 품질 정보를 저장합니다. BCF는 VCF를 바이너리로 압축한 버전으로 대용량 데이터 처리에 유리합니다.

'BI&Programming-Tools > File Formats' 카테고리의 다른 글

[바이오 빅데이터 파일 포맷] GFF3 / GTF  (0) 2026.06.20
[바이오 빅데이터 파일 포맷] gVCF  (0) 2026.06.20
[바이오 빅데이터 파일 포맷] SAM / BAM / CRAM  (0) 2026.06.18
[바이오 빅데이터 파일 포맷] FASTQ  (0) 2026.06.17
[바이오 빅데이터 파일 포맷] FASTA  (0) 2026.06.17
'BI&Programming-Tools/File Formats' 카테고리의 다른 글
  • [바이오 빅데이터 파일 포맷] GFF3 / GTF
  • [바이오 빅데이터 파일 포맷] gVCF
  • [바이오 빅데이터 파일 포맷] SAM / BAM / CRAM
  • [바이오 빅데이터 파일 포맷] FASTQ
데이터로 읽는 생명
데이터로 읽는 생명
is-note 님의 블로그 입니다.
  • 데이터로 읽는 생명
    In Silico Note
    데이터로 읽는 생명
  • 전체
    오늘
    어제
    • 분류 전체보기 (190) N
      • Bio-Knowledge (16)
        • 분자생물학 & 유전학 기초 (0)
        • 전사체학 & 유전자 발현 (0)
        • 구조생물학 & 단백질 (0)
        • 싱글셀 & 다중오믹스 (0)
        • 임상유전학 & 질환 데이터 (0)
      • Programming (4)
        • API (4)
      • BI&Programming-Tools (111)
        • File Formats (14)
        • Linux & Bash Script (38)
        • Python (35)
        • R (11)
        • 통계 (8)
        • Pipeline Manager (0)
        • Etc (5)
      • Bio Data Analysis (28) N
        • 서열분석개론 (6)
        • WGS(Whole Genome Seq) (11)
        • WES(Whole Exome Seq) (2)
        • RNA-Seq (4) N
        • Metagenome (2)
        • Non-human Resequencing (1)
        • 임상유전체 분석 (1)
        • Multi-Omics (1)
      • Bio-Trends & Tech (1)
      • 코딩테스트 연습 (30)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ngs
    분자생물학
    통계
    wgs
    코딩테스트
    bioinformatics
    R기초
    파일포맷
    GATK
    fasta
    리눅스기초
    생물정보학
    데이터분석
    파이썬기초
    유전체분석
    FASTQ
    리눅스
    파이썬
    파이썬연습
    R
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
데이터로 읽는 생명
[바이오 빅데이터 파일 포맷] VCF / BCF
상단으로

티스토리툴바