"Python访问NCBI的eutilities API的接口"
项目描述
eutils是一个Python包,用于通过NCBI的E-utilities接口简化搜索、获取和解析NCBI记录。
新闻
0.5.0 版本于 2018-11-20 发布。请参阅 0.5 变更日志。
功能
简单的 Pythonic 接口用于搜索和获取
自动根据 NCBI 指引进行查询速率限制
可选的基于 sqlite 的压缩回复缓存
“外观”使访问回复中的基本属性变得容易
快速示例
截至 2018 年 5 月 1 日,NCBI 根据客户端是否注册来限制请求。未注册客户端限制为每秒 3 个请求;注册客户端被授予每秒 10 个请求,并且可以请求更多。请参阅 NCBI 公告 了解更多信息。
eutils 包将根据 NCBI 指引自动限制请求(无 API 密钥时为每秒 3 个请求,有 API 密钥时为每秒 10 个请求)。
$ pip install eutils
$ ipython
>>> from eutils import Client
# Initialize a client. This client handles all caching and query
# throttling. For example:
>>> ec = Client(api_key=os.environ.get("NCBI_API_KEY", None))
# search for tumor necrosis factor genes
# any valid NCBI query may be used
>>> esr = ec.esearch(db='gene',term='tumor necrosis factor')
# fetch one of those (gene id 7157 is human TNF)
>>> egs = ec.efetch(db='gene', id=7157)
# One may fetch multiple genes at a time. These are returned as an
# EntrezgeneSet. We'll grab the first (and only) child, which returns
# an instance of the Entrezgene class.
>>> eg = egs.entrezgenes[0]
# Easily access some basic information about the gene
>>> eg.hgnc, eg.maploc, eg.description, eg.type, eg.genus_species
('TP53', '17p13.1', 'tumor protein p53', 'protein-coding', 'Homo sapiens')
# get a list of genomic references
>>> sorted([(r.acv, r.label) for r in eg.references])
[('NC_000017.11', 'Chromosome 17 Reference GRCh38...'),
('NC_018928.2', 'Chromosome 17 Alternate ...'),
('NG_017013.2', 'RefSeqGene')]
# Get the first three products defined on GRCh38
#>>> [p.acv for p in eg.references[0].products][:3]
#['NM_001126112.2', 'NM_001276761.1', 'NM_000546.5']
# As a sample, grab the first product defined on this reference (order is arbitrary)
>>> mrna = eg.references[0].products[0]
>>> str(mrna)
'GeneCommentary(acv=NM_001126112.2,type=mRNA,heading=Reference,label=transcript variant 2)'
# mrna.genomic_coords provides access to the exon definitions on this reference
>>> mrna.genomic_coords.gi, mrna.genomic_coords.strand
('568815581', -1)
>>> mrna.genomic_coords.intervals
[(7687376, 7687549), (7676520, 7676618), (7676381, 7676402),
(7675993, 7676271), (7675052, 7675235), (7674858, 7674970),
(7674180, 7674289), (7673700, 7673836), (7673534, 7673607),
(7670608, 7670714), (7668401, 7669689)]
# and the mrna has a product, the resulting protein:
>>> str(mrna.products[0])
'GeneCommentary(acv=NP_001119584.1,type=peptide,heading=Reference,label=isoform a)'
重要说明
我们鼓励您 浏览问题。请报告您发现的任何问题。
使用 pip 软件包规范以确保在 API 稳定性的情况下保持次要版本。 例如,eutils >=0.6,<0.7。
开发和贡献
欢迎提交错误报告、代码补丁和文档的贡献!
开发在默认分支上发生。请从默认分支工作在功能分支或书签。功能分支应命名为修复的 eutils 问题,例如 121-update-xml-facades。在合并时,使用类似“closes #121: 将 xml facades 更新为新样式接口”的提交信息。(“closes #n”将自动识别并在推送时关闭票证。)
包含的 Makefile 自动化了许多任务。特别是,make develop 准备开发环境,make test 运行单元测试。(请在提交前运行测试!)
再次感谢您的贡献。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。