来自qblast xml输出的个体命中基因信息

时间:2014-03-28 17:43:00

标签: xml biopython ncbi

我刚刚开始使用Biopython,我正在尝试使用qblast()功能执行远程BLAST操作。一切似乎都正常,但我无法检索必要的输出结果。当从NCBI网页执行BLAST时,我可以看到"功能"每个命中的字段,表示分配给查询核苷酸序列的给定命中受试者的基因。但是,在从qblast解析输出XML文件时,我看不到与此对应的字段。我已经直接从BLAST输出中导出了XML文件,并且它也在那里丢失了。

是否可能完全从此输出文件中丢失这样一个关键信息?是否有其他方法可以访问此信息,或者我是否只能通过以文本形式解析输出文件来访问它?

1 个答案:

答案 0 :(得分:0)

假设您拥有从qblast()获得的XML:

from Bio.Blast import NCBIXML


xml = NCBIXML.parse(your_xml_handler)

for blast in xml:     
    for hit in blast.alignments:
        # Each hit is a Blast.Record.Alignment
        # http://biopython.org/DIST/docs/api/Bio.Blast.Record.Alignment-class.html
        # Here you can obtain the hit id
        # Something like "gi|588481781|gb|KF958277.1|"
        id = hit.hit_id
        for hsp in hit.hsps:
            # Here you have access to each HSP
            # http://biopython.org/DIST/docs/api/Bio.Blast.Record.HSP-class.html
            start = hsp.sbjct_start
            end = hsp.sbjct_end

使用id,start和end,您可以查询数据库以获取基因信息。这就是它在WebBlast(可能)中的完成方式,但它们提供了"功能"的快捷方式。