Python IndexError: list index out of range while finding SNPs in vcf
Python IndexError: list index out of range while finding SNPs in vcf
大家好,我应该使用 Python 脚本从 vcf 文件中的 csv 文件中识别指定位置的可能 SNP。
我刚开始使用 python 可悲的是我总是得到以下错误:
Traceback (most recent call last):
File "getSNPs.py", line 20, in <module> oo = line[2] + "_" +
line[3]
IndexError: list index out of range from the following script
!/bin/python usage: python getSNPs.py your.vcf PhenoSNPs.csv
代码:
import sys
import gzip
SNPs = {}
for i in gzip.open(sys.argv[1], "r"):
if '#' not in i:
line = i.split("\t")
oo = line[0] + "_" + line[1]
SNPs[oo] = i
pp = sys.argv[1] + ".captureSNPs"
out = open(pp, "w")
for i in open(sys.argv[2], "r"):
line = i.split(",")
oo = line[2] + "_" + line[3]
try:
out.write(SNPs[oo])
except KeyError:
ow = line[2] + "\t" + line[3] + "\t" + "not covered" + "\n"
out.write(ow)
如果例如 i = 'aa'
并且您执行 line = i.split(",")
这意味着 line = ['aa']
,那么当您执行 line[2] + "_" + line[3]
时您将得到一个 IndexError
因为 line
没有第 2 个和第 3 个元素。
使用 try/except
或重新考虑代码的逻辑。
大家好,我应该使用 Python 脚本从 vcf 文件中的 csv 文件中识别指定位置的可能 SNP。
我刚开始使用 python 可悲的是我总是得到以下错误:
Traceback (most recent call last):
File "getSNPs.py", line 20, in <module> oo = line[2] + "_" +
line[3]
IndexError: list index out of range from the following script
!/bin/python usage: python getSNPs.py your.vcf PhenoSNPs.csv
代码:
import sys
import gzip
SNPs = {}
for i in gzip.open(sys.argv[1], "r"):
if '#' not in i:
line = i.split("\t")
oo = line[0] + "_" + line[1]
SNPs[oo] = i
pp = sys.argv[1] + ".captureSNPs"
out = open(pp, "w")
for i in open(sys.argv[2], "r"):
line = i.split(",")
oo = line[2] + "_" + line[3]
try:
out.write(SNPs[oo])
except KeyError:
ow = line[2] + "\t" + line[3] + "\t" + "not covered" + "\n"
out.write(ow)
如果例如 i = 'aa'
并且您执行 line = i.split(",")
这意味着 line = ['aa']
,那么当您执行 line[2] + "_" + line[3]
时您将得到一个 IndexError
因为 line
没有第 2 个和第 3 个元素。
使用 try/except
或重新考虑代码的逻辑。