用于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第三方库


热门话题
JavaGWT:何时使用Lazydemelement?   Java中跟踪消失线程的多线程处理   java Springboot未能配置数据源:“url”,但我没有使用数据库   java为按钮生成随机位置   math Java:包含二项式系数计算的表达式   java通过AsyncTask传递参数   从路径错误创建java文件   高流量网站的性能播放框架、Java、Apache、PostgreSQL、JPA和Hibernate   java将4D矢量转换为长矢量   arraylist Java循环在没有任何错误的情况下终止   java正在制作一个计算器应用程序,希望在第二个片段中更新历史,但无法完成   java将信息从IntentService发送到Activity   java如何在游戏中插入大量实体!工作   javascript如何在ScriptEngineforJava中从数学中获得准确的结果?