본문 바로가기
유전체/GWAS

[GWAS] 두 vcf 파일을 합칠 때 ref가 다를 경우 어떻게 해야할까?

by 인포메틱스 2021. 6. 24.
반응형

 

최근 들어온 질문 중에 vcf를 합치다가 보니 두 파일에 같은 위치에서 reference snp이 반대되는 경우는 어떻게 해야하나요? 라는 질문을 받았습니다.

 

우리가 생각하는 reference는 hg19, hg38에 기준으로 생각 할 수 있지만, vcf를 만드는 여러 과정중에 reference가 변경될 수가 있습니다.

 

그래서 결국 Reference가 다른 vcf를 어떻게 합칠것이냐?!

 

GWAS를 분석할때 주로 많이 사용되는 툴인 Plink에서는 두가지의 plink format를 합치는 기능도 있습니다.

 

그래서 한번 합쳐보도록 하죠.

 

예전에 연습용으로 사용했던 이명 관련 데이터를 이용해서 연습 파일을 만들어 보도록 하겠습니다.

 

다음과 같이 ref가 다른 두 개의 파일을 만들었습니다.

 

위가 part1, 아래가 part2라고 지정을 하고 plink를 이용하여 합쳐보도록 하겠습니다.

 

그리고 내용을 위해서 각 part별로 변이가 있는 샘플만 정리해보도록 하겠습니다.

 


part 1 (ref : A, Alt : G)

Pilot_AK-0013,Pilot_AK-0017,Pilot_AK-0038,Pilot_AK-0043,Pilot_AK-0045가 0/1임

 

part 2 (ref : G, Alt : A)

Omni_RN-0465가 0/1임


 

처음엔 plink format으로 변경한 다음에 두 파일을 합쳐보도록 하겠습니다.

# plink포멧으로 변경하기
plink --vcf ti_part1.vcf --make-bed --out part1
plink --vcf ti_part2.vcf --make-bed --out part2

# plink 포멧 합치기
plink --bfile part1 --bmerge part2 --out merge

# 결과를 vcf로 변경
plink --bfile merge --recode vcf --out merge_new

 

그래서 결과는?!

 

 

아까 두 raw파일들에서는 0/1인 경우가 대부분이였지만 결과파일에서는 1/1인 경우도 생기는 것을 확인할 수 있었습니다.

 

이 이유는 합칠때, 한쪽을 기준으로 합치게 되는데, 그렇게 반대편 파일의 경우  0/1은 그대로 일것이고, 1/1은 0/0으로 0/0은 1/1로 변경되게 됩니다.

 

그렇기 때문에 결과파일에 갑자기 뜬금없는 1/1이 발생을 한 것입니다.

 

결과적으로 같은 위치에서 ref와 Alt가 서로 달라도 plink의 merge, bmerge를 이용하면 합쳐서 분석이 가능하다! 입니다.

 

 

이번 포스팅을 하면서 다음은 변이가 두 개일 경우는 어떻게 변하는지에 대해서 실험해보도록 하겠습니다.

 

감사합니다.

 


아 vcf to plink, plink to vcf일 때 ref가 변경될수도 있습니다. 왜냐하면 plink에서는 ref를 선정하는것이 Major allele기준으로 결과를 내는것 같습니다.

 

예를 들어 어떤 하나의 vcf에서 특정 위치에 minor한 변이들이 많은 경우  vcf to plink, plink to vcf 진행하면 minor한 allele가 ref로 변경될 수가 있습니다. (vcf내에서는 major한 allele이기 때문이죠)

 

 

728x90
반응형

댓글