导师/ncbi

国家生物技术信息中心(NCBI)E-Utils Guzzle 客户端

dev-master 2017-12-07 09:34 UTC

This package is not auto-updated.

Last update: 2024-09-20 02:20:30 UTC


README

提供Guzzle库的实现,用于查询NCBI E-Utils服务。

Entrez编程实用工具(E-utilities)是一组九个服务器端程序,为美国国家生物技术信息中心(NCBI)的Entrez查询和数据库系统提供一个稳定的接口。

E-utilities使用固定的URL语法,将一组标准输入参数转换为各种NCBI软件组件搜索和检索所需数据所需的价值。因此,E-utilities是Entrez系统的结构化接口,目前包括38个数据库,涵盖了各种生物医学数据,包括核酸和蛋白质序列、基因记录、三维分子结构和生物医学文献。

九个E-utilities简要介绍

EInfo(数据库统计信息)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi

提供每个数据库每个字段的索引记录数、数据库最后更新日期以及从数据库到其他Entrez数据库的可用链接。

ESearch(文本搜索)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi

对一个文本查询做出响应,列出给定数据库中匹配的UID列表(用于在ESummary、EFetch或ELink中后续使用),以及查询的术语翻译。

EPost(UID上传)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi

接受来自给定数据库的UID列表,将集合存储在历史服务器上,并返回上传数据集的查询键和Web环境。

ESummary(文档摘要下载)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi

对给定数据库中的UID列表做出响应,返回相应的文档摘要。

EFetch(数据记录下载)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi

对给定数据库中的UID列表做出响应,以指定格式返回相应的数据记录。

ELink(Entrez链接)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi

对给定数据库中的UID列表做出响应,要么是同一数据库中相关UID(和相关度分数)的列表,要么是另一个Entrez数据库中链接的UID列表;检查从UID列表中是否存在指定的链接;为特定UID和数据库创建指向主要LinkOut提供商的超链接,或列出多个UID的LinkOut URL和属性。

EGQuery(全局查询)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/egquery.fcgi

对一个文本查询做出响应,列出每个Entrez数据库中匹配查询的记录数。

ESpell(拼写建议)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/espell.fcgi

检索给定数据库中文本查询的拼写建议。

ECitMatch(PubMed中的批量引文搜索)

https://eutils.ncbi.nlm.nih.gov/entrez/eutils/ecitmatch.cgi

检索对应于输入引证字符串集合的PubMed ID(PMID)。

用法

要使用NCBI API客户端,只需实例化客户端。

<?php

require dirname(__FILE__).'/../vendor/autoload.php';

use Tutor\NCBI\EUtilsClient;
$client = EUtilsClient::factory();

// if you want to see what is happening, add debug => true to the factory call
$client = EUtilsClient::factory(['debug' => true]);

使用__call方法调用命令(包括自动完成phpDocs)

<?php

$client = EUtilsClient::factory();
$response = $client->eFetch([
  'db' => 'protein',
  'id' => '194680922,50978626,28558982,9507199,6678417',
]);

或使用getCommand方法(在这种情况下,您需要处理$ response['data']数组

<?php

$client = EUtilsClient::factory();

//Retrieve the Command from Guzzle
$command = $client->getCommand('EFetch', [
  'db' => 'protein',
  'id' => '194680922,50978626,28558982,9507199,6678417',
]);
$command->prepare();

$response = $command->execute();

$data = $response['data'];

示例

您可以在示例目录中执行示例。

您可以查看services.json文件以获取有关可用方法和调用它们的参数的详细信息。

待办事项

  • 添加更多示例
  • 添加测试
  • 添加一些响应模型
  • 与API令牌集成
  • EPost
  • EGQuery
  • ESpell
  • ESummary
  • ELink
  • ECitMatch

欢迎贡献

发现了一个错误,请提交一个issue,最好附上调试输出和您所做的事情。需要修复错误?请提交一个Pull Request,我会查看。

许可证

使用NCBI\EUtilsClient API客户端是在MIT许可证下提供的。