使用biopython提取tblastn主题的前四名

2024-09-30 01:24:28 发布

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

我想从一个包含tblastn搜索本地核苷酸数据库中多个蛋白质查询结果的大型XML文件中提取出前4个匹配项。但是问题是,我的blast设置有一些查询的结果不到4次,因此当我运行此代码时:

> from Bio.Blast import NCBIXML 
   with open('/home/edson/ungulate/tblastn_result_test_xml') as tblastn_file: 
>  tblastn_records = NCBIXML.parse(tblastn_file) 
       for tblastn_record in tblastn_records:
>         if tblastn_record.alignments:
>             print tblastn_record.alignments[0].title
>             print tblastn_record.alignments[0].hsps[0]
>             print tblastn_record.alignments[1].title
>             print tblastn_record.alignments[1].hsps[0]
>             print tblastn_record.alignments[2].title
>             print tblastn_record.alignments[2].hsps[0]
>             print tblastn_record.alignments[3].title
>             print tblastn_record.alignments[3].hsps[0]

它在运行,但在运行了一些之后,它说:

^{pr2}$

那么如何修改这个脚本来打印前四个对齐的结果呢?期待回复,任何帮助将不胜感激。在


Tags: 文件数据库title蛋白质xmlrecordfileprint
1条回答
网友
1楼 · 发布于 2024-09-30 01:24:28

这样的怎么样?在

from Bio.Blast import NCBIXML

with open('/home/edson/ungulate/tblastn_result_test_xml') as tblastn_file: 
    tblastn_records = NCBIXML.parse(tblastn_file) 
    for tblastn_record in tblastn_records:
        for alignment in record.alignments[:4]:
            print alignment.title
            print alignment.hsps[0]

我不熟悉biopython,但是文档[1]说alignmentsAlignment对象的列表。这个例子从列表的前四个元素中抽取一部分。如果少于四个,那就什么都可以了。在

[1]-http://biopython.org/DIST/docs/api/Bio.Blast.Record.Blast-class.html

相关问题 更多 >

    热门问题