导师 / ncbi
国家生物技术信息中心(NCBI)E-Utils Guzzle 客户端
Requires
- php: ^5.6 || ^7.0
- gimler/guzzle-description-loader: ^0.0.4
- guzzlehttp/guzzle: ^6.2
- guzzlehttp/guzzle-services: ^1.1
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许可证下提供的。