使用易于使用的pythonic api运行ncbi blast

pyblast的Python项目详细描述


手动运行NCBI爆炸当然不是火箭科学,但是 与此相比,模块提供了几个好处:

  • 为系统上的每个CPU自动运行一个BLAST进程; 比-num_threads选项获得更好的吞吐量
  • 提供一个迭代器api,它为每个 爆炸结果当它们产生时,而不是在结束时
  • ResultHit对象不需要手动分析 结果;所有值都由它们的本地python类型表示(例如 Hit.evaluefloat等)

示例

下面是一个简单的例子,其中有一些相关的评论 功能

import pyblast

with open('data.fasta') as f:
    # Use the pyblast.blastx() iterator function
    for r in pyblast.blastx(f, db='/path/to/swissprot'):
        msg = 'query {} has {} hits'.format(r.query_id, len(r.hits))
        if r.hits:
            # Use Hit.evalue as a float for comparison
            min_evalue = sorted([h.evalue for h in r.hits])[0]
            msg += '; minimum evalue {:f}'.format(min_evalue)

        print msg

这将产生如下输出

query M00181:167:000000000-A4VBV:1:1101:11880:1874 1:N:0:6 has 6 hits; minimum evalue 0.310000
query M00181:167:000000000-A4VBV:1:1101:17067:1875 1:N:0:6 has 14 hits; minimum evalue 0.200000
query M00181:167:000000000-A4VBV:1:1101:15039:1878 1:N:0:6 has 4 hits; minimum evalue 4.400000
query M00181:167:000000000-A4VBV:1:1101:17090:1895 1:N:0:6 has 6 hits; minimum evalue 1.700000
query M00181:167:000000000-A4VBV:1:1101:15843:1907 1:N:0:6 has 2 hits; minimum evalue 1.800000

API

blastn(input_file, *args, **kwargs)

使用迭代器处理fastainput_file的内容 blastn;生成Result对象。

参数*args**kwargs控制blastn如何 调用。前者作为没有值的选项传递,而 后者作为带值的选项传递。例如, blastn(some_file, 'ungapped', db='foo/bar')将运行blastn 使用-ungapped-db foo/bar选项。

此外,以下关键字参数是专门处理的,并且 不会传给blast:

  • pb_num_processes:要生成的blast进程数;默认值为sysconf(SC_NPROCESSORS_ONLN)
  • pb_fields:i可为每次命中检索字段名;默认值为DEFAULT_HIT_FIELDS。有效字段名(及其含义)的列表可以在blastn -help*** Formatting options部分找到。

blastp(input_file, *args, **kwargs)

请参阅blastn的文档。

blastx(input_file, *args, **kwargs)

请参阅blastn的文档。

Result

爆炸处理单个查询序列的结果。一套 此对象的属性为:

  • id:查询序列的标识符;可以是None
  • description:查询序列的文本描述;可以是None
  • hits:由Hit个对象组成的数组

Hit

Result对象中的单个序列命中。

此对象的属性是请求的字段的名称 爆炸。例如,如果使用pb_fields=['qseqid',...]运行blastn,则可以访问^{tt3}的qseqid值。$ 对象h就像这样:h.qseqid。引用的字段不是 请求的blast值为None

此外,blast字段被转换为它们的本地python类型。 例如,evalue字段自动转换为浮动字段 点值。

DEFAULT_HIT_FIELDS

为每个Hit对象返回的默认字段。

VERSION

正在使用的pyblast版本。这可以用来 比特征检测更容易确定模块的哪些特征 有空。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?