我正在尝试编写一个简单的脚本来从 VCF 文件中提取特定数据,该文件显示基因组序列中的变体。
该脚本需要从文件中提取标头以及 SNV,同时省略任何插入删除。变体显示在 2 列中,即 ALT 和 REF。每列由空格分隔。Indels 在 ALT 或 REF 中将有 2 个字符,SNV 将始终有 1 个。
到目前为止,我提取了标题(始终以## 开头),但没有提取任何变体数据。
original_file = open('/home/user/Documents/NA12878.vcf', 'r')
extracted_file = open('NA12878_SNV.txt', 'w+')
for line in original_file:
if '##' in line:
extracted_file.write(line)
# Extract SNVs while omitting indels
# Indels will have multiple entries in the REF or ALT column
# The ALT and REF columns appear at position 4 & 5 respectively
for line in original_file:
ref = str.split()[3]
alt = str.split()[4]
if len(ref) == 1 and len(alt) == 1:
extracted_file.write(line)
original_file.close()
extracted_file.close()