안녕하세요 한주현입니다.
오늘은 GATK의 결과 파일 중 gVCF와 VCF의 차이점과 gVCF가 무엇인지 대해서 알아보겠습니다.
요새 들어 GATK에 대해서 포스팅을 많이 쓰고 있네요 ㅎㅎ;;
워낙 GATK 안에 많은 기능들이 들어있고 개발도 활발히 진행되고 있으며
실제 분석을 진행 할 때도 유용하고 잘 사용하고 있기에 저도 정리 하며 여러분들께 도움이 되려고 포스팅을 남깁니다 :)
간단하지만 VCF가 무엇인지, gVCF가 무엇인지 알아보면 두 포맷간의 차이를 알 수 있겠죠?
VCF란?
VCF는 Variant Calling Format 의 약자로 Meta 정보가 담긴 라인과 헤더, 그리고 데이터 라인이 있습니다.
Meta 정보는 두개의 샾(##), Header는 샾(#) 으로 시작하며 데이터 라인은 탭(tab)으로 나뉜 컬럼들이 있습니다.
데이터 라인은 CHROM, POS, ID, REF, ALT, QUAL, FILTER, INFO 로 된 8개의 고정된 컬럼이 있고 FORMAT과 각 샘플의 수 만큼의 컬럼이 이어집니다.
파일은 텍스트 형식의 파일로 메모장 같은 텍스트 에디터 프로그램으로 열어보시면 됩니다.
간혹 운영체제가 자동으로 vCardFormat(또는 Virtual Contact File) 으로 인식하여 더블클릭하여 뭔가 안열리는 것 같은 불상사가 있는 경우가 종종 있습니다만,,,
다시 말씀드리지만 텍스트 형식의 파일로 그냥 메모장 같은 프로그램으로 열어서 보시면 됩니다. ㅎㅎ
그러면 이렇게 생겼습니다.
데이터 라인을 조금 더 자세히 보겠습니다.
컬럼명 |
의미 |
설명 |
CHROM |
Chromosome |
Position의 chromosome 번호를 의미합니다. |
POS |
Position |
Reference 의 Position을 의미합니다. |
ID |
Identifier |
Variant의 identifier를 의미하며, 예를 들면 dbSNP의 정보가 rsID값으로 들어갑니다. |
REF |
Reference bases |
Reference 의 allele을 의미합니다. |
ALT |
Alternate bases |
Comma(,)로 구분된 non-reference alleles 를 의미합니다. |
QUAL |
Quality |
Phred-scaled quality score로 position에 REF/ALT polymorphism이 있을 확률을 의미합니다. |
FILTER |
Filter status |
PASS로 되어있으면 filter조건을 통과하였다는 의미이며, PASS되지 않았다면 filter조건이 여기에 써집니다. filter조건의 내용은 VCF파일의 윗부분인 Meta-info 라인에 있습니다. |
INFO |
Additional information |
추가적인 정보가 들어가며 <key>=<data> 형식으로 쓰입니다. 예를 들어 AA의 경우 Ancestral allele, DP의 경우 sample전체의 DP의 합과 같은 정보가 들어있습니다. |
9번째에 있는 FORMAT 컬럼도 조금 더 자세히 보겠습니다.
태그 |
의미 |
GT |
Position에 대한 샘플의 Genotype을 나타냅니다. 0/0 - homozygous reference 를 의미 0/1 - heterozygous 로 REF/ALT allele 이 있음을 의미 1/1 - homozygous alternate 를 의미 |
AD |
Unfiltered Allele Depth 를 의미합니다. comma로 구분되며 |
DP |
Filtered Depth를 의미합니다. |
PL |
가능한 Genotype의 "Normalized" Phred-scaled likelihoods 를 의미합니다. |
GQ |
Genotype Quality를 의미하며 Phred-scaled confidence로 GT가 맞을 확률에 대해 말해줍니다. |
각 컬럼에 대한 더욱 자세한 설명은 포스팅 하단의 "참고 링크" 를 참조해 주세요 ㅎㅎ;;
gVCF란?
gVCF는 VCF파일의 한 종류로 genomic VCF를 뜻합니다.
즉, VCF파일에서 extra 정보가 더 들어 있는 것 이지요.
GATK HaplotypeCaller를 실행할 때 -ERC GVCF (또는 -ERC BP_RESOLUTION) 옵션을 넣고 실행하게 되면 output으로 gVCF가 나오게 됩니다.
가장 큰 차이점은 아래 그림과 같이 non-variant block record가 들어있다는 것 입니다.
genomic VCF란 단어가 주는 인상에서 알 수 있듯이 모든 position을 포함하고 있다는 것이 특징이지요.
reference 전체가 아닌 만약 범위를 주었다면 범위 전체에 대한 position들을 담고 있습니다.
ALT에 <NON_REF>만 있는 position들은 variant calling이 되지 않은 부분이며,
INFO 컬럼의 END=position의 의미는 위의 그림의 파란색으로 표시한 non-variant block record 를 의미합니다.
이렇게 생성된 gVCF는 나중에 GATK genotypeGVCFs 라는 tool로 합쳐져서 하나의 VCF로 얻을 수 있게 됩니다!!!
merged VCF를 생성할 때 각 샘플의 gVCF에서 <NON_REF>만 있는 position의 PL이 0이라고 한다면
합쳐진 VCF에서는 genotype이 ./. (no call) 로 나오게 되고 PL의 값이 높다면 0/0 (homozygous reference)로 나오게 될 것입니다.
genotypeGVCFs는 다음 포스팅에서 만나도록 하죠.. ㅎㅎ
오늘은 VCF와 gVCF에 대해서 알아봤습니다.
부디 여러분들께 도움이 되셨음 좋겠습니다 ㅎㅎ.
그럼 다음 시간에 만나요!
참고 링크:
# VCF Specification v4.2
http://samtools.github.io/hts-specs/VCFv4.2.pdf
# What is a VCF and how should I interpret it
# What is a GVCF and how is it different from a 'regular' VCF?
# NON_REF in gvcf
https://gatkforums.broadinstitute.org/gatk/discussion/4216/non-ref-in-gvcf
'생물정보학 > Tools' 카테고리의 다른 글
[GATK] VCF index 파일 생성 3가지 방법, VCF 인덱스 만들기 - GATK3, GATK4, bgzip, tabix (3) | 2018.04.10 |
---|---|
[VCF] VCF 파일의 DP, AD, MQ 의 의미 (5) | 2018.03.18 |
[GATK] UnifiedGenotyper vs. HaplotypeCaller 차이점 - 무엇을 써야 할까요? (0) | 2018.03.03 |
[GATK] GATK4 - Google Cloud - FireCloud 5달러 분석시대 (0) | 2018.02.26 |
UCSC blat 사용법 - command line blat stand alone 사용법 (1) | 2018.02.04 |
댓글