用于ncbi数据库访问的简单api

Geeneus的Python项目详细描述


geeneus-0.1.9于2015年6月21日发布

吉内乌斯

概述

geeneus是一个非常简单的python api,用于以稳定、可编写脚本和简单的方式访问生物数据。在其当前版本中,它提供了对蛋白质记录信息的访问,主要是从ncbi服务器,但能够回退到ebi的uniprot服务器(默认情况下,ncbi无法提供所需的记录)。在未来的版本中,我们希望添加类似的功能,以使用可伸缩的后端框架和当前用于处理蛋白质数据的设计原则来访问遗传信息。

作为一个简短的可用性总结,一般的想法是创建一个管理器对象(例如proteinmananager对象),它充当一个可查询的数据库对象。这个对象有一系列的请求,这些请求可以基于一个蛋白质登录号(例如gi、uniprot、refseq),例如获取蛋白质名称、序列、突变、亚型等。无论系统最终查询哪个数据库(ncbi或uniprot),行为都是相同的。这个管理器对象又处理了100%的复杂性。最终用户不必担心解析XML数据、缓存或网络问题。

有关方法、设计原则和相关阅读的详细文档,go here


安装

到目前为止,安装geeneus最简单的方法是使用pip直接安装。跑步:

sudo pip install geeneus

将安装带有请求和biopython依赖项的geeneus。

geeneus也可以使用pip从源代码安装,如果您希望从github安装开发版本,而不是通过pypi等待发布,那么这可能是相关的。github repo中包含的开发版本是自立式tarballs。


使用-快速启动

一旦安装,一般用法如下:

#!/usr/bin/env python

from geeneus import Proteome
manager = Proteome.ProteinManager("your.emailaddress@email.com")
manager.get_protein_name("accession number")

有关可能的功能的详细信息,请尝试:

help(geeneus)
help(geeneus.Proteome)

符合NCBI的使用指南

在使用eutils包装器时,一个重要的考虑是不要超过NCBI’s usage guidelines。geeneus的编写方式使得对数据库的每一个查询都只能在前一个查询之后0.4秒发生,而与其他查询无关。

这意味着即使你有这样的东西:

for id in listOfIDs:
    print manager.get_protein_name[id]

你不能超过使用指南。但是,ncbi还有其他一些您应该注意的指导原则(尤其是在美国,peak小时内不超过100个连续查询)。这取决于你,用户,以确保你满足这些要求。

这也是manager对象在初始化时需要电子邮件地址的原因。


更多信息

有关此项目的信息,包括基础设计原则,请参见click here。github存储库是available here


要求

geeneus需要biopython和'requests<;http://docs.python-requests.org/en/latest/>;`。最初我们假设Biopython1.6,尽管早期版本还没有测试过。换言之,我们已经在1.6上测试过了,一切都很好。早期的版本也可以工作,但你自己。


关于

这段代码是由位于Washington University in Saint LouisAlex Holehouse作为Naegle lab的一部分开发的。它是根据GNU通用公共许可证(GPL-2.0)授权的。有关详细信息,请参阅许可证。

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

推荐PyPI第三方库


热门话题
javascript问题:通过URL用网站数据填充Textview   java TabLayout Android,如何用几个标签填充整个屏幕宽度,并用大量标签滚动?   Eclipse Java运行的文件不再存在于我的工作区中   安装两个Java版本时,使用Java的windows链接不起作用   java将多个图形添加到单个JPanel   java Kafka ConsumerFactory,带有两个Desiarizer   使用反射更改java类超类   当一致性测试失败时,java有没有办法让堆栈跟踪显示在控制台中   java映射到基元类型的HashMap的快速替代方案是什么?   java关闭一个jframe所有剩余的打开jframe都将关闭。   java为什么不推荐“使用getString()获取设备标识符”?   java值比较和值赋值之间有什么性能差异吗?   Java实体数组到JavaScript数组   java使用流将一个列表转换为另一个列表   在JTree中保存对象,但更改显示的名称(java swing)?   java“Hello world”Android应用程序,文件尽可能少,没有IDE,只有文本编辑器   java在方法之间传递值   java如何为项目数组创建ParseQuery?