首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用生物技术提取前四位主题点击

利用生物技术提取前四位主题点击
EN

Stack Overflow用户
提问于 2013-12-16 14:15:57
回答 1查看 205关注 0票数 0

我想从一个包含tblastn搜索结果的大型XML文件中提取前四名,该文件在我的本地核苷酸数据库中搜索了多个蛋白质查询。但是,问题是,我的when设置有一些查询,结果不到四次命中,所以当我运行这段代码时:

代码语言:javascript
复制
> 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]

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

代码语言:javascript
复制
Traceback (most recent call last):   File
 "/home/edson/tblastn_parser_test.py", line 8, in <module>
     print tblastn_record.alignments[0].title IndexError: list index out of range

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-16 14:29:27

像这样的怎么样?

代码语言:javascript
复制
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]

我不熟悉生物工程,但是docs1说alignmentsAlignment对象的列表。此示例获取列表中前四个元素的一部分。如果不到四个,它就会拿走所有的东西。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20613035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档