반응형
VCF 파일에서 Ts/Tv 비율 구하기
Transition : 퓨린 계열 염기 사이, 피리미딘 계열 염기 사이 간의 변이
Transversion : 그 외 나머지 염기 간의 변이
방법1 : python script
#tstv_ratio.py
ts = 0
tv = 0
with open("sample1.vcf","r"0 as fr:
for line in fr:
if line.startswith("#"):
pass
else:
l=line.split()
ref = l[3]
alt = l[4]
if len(ref) == len(alt):
if ref == "A":
if alt == "G":
ts += 1
else:
tv += 1
elif ref == "C":
if alt == "T":
ts += 1
else:
tv += 1
elif ref == "G":
if alt == "A":
ts += 1
else:
tv += t
elif ref == "T":
if alt == "C":
ts += 1
else:
tv += 1
print("transition:", ts)
print("transversion:", tv)
print("ts/tv:", ts/tv)
방법2: bcftools
bcftools stats sample1.vcf.gz | grep "TSTV"
반응형
'Bioinformatics' 카테고리의 다른 글
VCF 파일로 할 수 있는 분석 방법 (feat bcftools, snpEff) (2) | 2024.07.12 |
---|---|
bcftools 자주 쓰이는 명령어 (0) | 2024.07.12 |
VCF 파일에서 SNP, Indel 개수 세기 (1) | 2024.03.13 |
VCF 파일에서 변이 개수 세기 (0) | 2024.03.13 |
VCF 파일에서 filter 열 PASS 만 골라내기 (0) | 2024.03.13 |