爆炸输出的分类

2024-10-02 22:23:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对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()

Tags: 脚本ifsysinfiledivisiontaxonomyprintrank2