我正在尝试对blast输出进行分类,使用这个网站上的脚本https://github.com/bartaelterman/BlastTaxonomy。 我对python还很陌生,有时我会试图找到已经存在的脚本来完成复杂的工作。然而,像这样的脚本让我很困惑。我有一个非常基本的问题,即在下面的脚本中,我应该用我的输入文件替换哪里,你能给我一个简短的解释这样的脚本有一个想法吗?在
如果你有其他的想法,那就太好了!在import sys
sys.path.append("./scripts")
import blasthittaxonomy
def checkarguments():
if len(sys.argv) != 2:
print "usage: ./addTaxonomyToBlastOutput.py <blast output file>"
sys.exit(-1)
def main():
checkarguments()
taxfetcher = blasthittaxonomy.TaxonomyFetcher()
filename = sys.argv[1]
infile = open(filename)
header = infile.readline()
print "\t".join(["seqnr", "hitginr", "hitname", "evalue", "bitscore", "similarity", "score", "division", "scientificName", "rank1", "rank2"])
for line in infile:
newline = line.rstrip("\n")
seqnr, ginr, hitname, evalue, bitscore, sim, score = newline.split("\t")
division = ""
scientName = ""
rank1 = ""
rank2 = ""
if ginr != "":
taxonomy = taxfetcher.getTaxonomy(int(ginr))
if taxonomy != "":
scientName = taxonomy[0]["ScientificName"]
if scientName == "unidentified":
scientName = ""
else:
division = taxonomy[0]["Division"]
try:
rank1 = taxonomy[0]["LineageEx"][0]["ScientificName"]
except:
rank1 = ""
try:
rank2 = taxonomy[0]["LineageEx"][1]["ScientificName"]
except:
rank2 = ""
print "\t".join([seqnr, ginr, hitname, evalue, bitscore, sim, score, division, scientName, rank1, rank2])
taxfetcher.die()
main()
不需要替换任何内容,只需将文件名作为命令行参数运行脚本
这就是脚本读取输入文件名的地方:
相关问题 更多 >
编程相关推荐