Eutils用法总结
好久没更新了,这里都长草了。。。
总结下Eutils的用法,参考《E-utilities Quick Start》,没时间看英文的可以参考下。
简介
Eutils全称是The Entrez Programming Utilities (E-utilities),是由八个服务器端程序组成的一套编程工具,它提供用于访问NCBI Entrez查询和数据库系统的稳定接口。 这八个工具包括Einfo、ESearch、EPost、ESummary、EFetch、ELink、EGQuery、ESpell(详见表1)。通过这些工具,你可以访问NCBI Entrez所包含的序列、三维结构、文献等所有38个数据库。
表1. 八种Eutils工具
Eutils Name |
Entry |
Required Parameters |
Optional Parameters |
Return Format |
EInfo |
einfo.fcgi |
db |
xml |
|
ESearch |
esearch.fcgi |
db term |
usehistory WebEnv query_key retstart retmax rettype field datetype reldate mindate, maxdate |
xml |
EPost |
epost.fcgi |
db id |
WebEnv QueryKey |
xml |
ESummary |
esummary.fcgi |
db id WebEnv query_key |
retstart retmax version |
xml |
EFetch |
efetch.fcgi |
db id WebEnv query_key |
retmode retstart retmax rettype strand seq_start seq_stop complexity |
xml/text/asn (详情见表2) |
ELink |
elink.fcgi |
db dbfrom cmd id WebEnv query_key |
linkname term holding datetype reldate mindate, maxdate |
xml |
EGQuery |
egquery.fcgi |
term |
xml |
|
ESpell |
espell.fcgi |
db term |
xml |
访问地址
Eutils工具使用固定URL地址的形式进行访问,每个工具都有一个固定的访问地址BaseURL,都以EutilsURL开始。
EutilsURL:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/
如:EInfo 的访问地址为:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi
即:BaseURL=EutilsURL + Entry(一个以工具名称命名的Fasta CGI 文件,扩展名为fcgi。什么是Fasta CGI?。。。其实我也不了解)
使用限制
每秒查询次数不能超过3次,大型查询限制在周末和工作日的9:00 PM~5:00 AM,超过次限制会被封IP,除非给eutilities@ncbi.nlm.nih.gov发邮件注册使用eutils服务的软件名称tool和email地址,并在使用服务时以URL参数的形式传入。大量操作最好还是注册一下比较好。
使用示例
通过设置不同的URL参数获取不同的结果,八个工具参数列表如下图所示,参数分为两种,必须参数和可选参数,返回文件格式大多为xml。
- EInfo示例
示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi
示例2:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi?db=protein
示例1没有传入参数将列出所有的支持数据库,即示例2中db参数的名字;
示例2将列出protein数据库的基本信息。
- Esearch示例
示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=protein&term=dnapol
示例2:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?term=dnapol
示例3:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=protein&term=dnapol&usehistory=y
示例4:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=protein&term=virus&query_key=1&WebEnv=NCID_1_55320436_
130.14.18.48_5553_1335062251_525363903&usehistory=y
示例1传入必须参数,所查询的数据库名称db和要查询的关键词term;示例2仅传入要查询的关键词term,并不是由于db为非必须参数,而是因为db的默认值是pubmed,所以示例2将查询以dnapol为关键词查询pubmed数据库;
示例3使用可选usehistory参数将在服务器端产生一个查询历史记录,结果中将生成WebEnv和query_key值,下一次使用ESearch、ESummary等操作可利用这些参数在这一次查询结果基础上进行操作,这也是Eutils最强大的地方,可以方便的建立自己的工作流程;
示例4中即使用示例3中的查询结果重新查询以virus为关键词的条目,这等价于将示例3中的“term=dnapol”替换为“term=dnapol+virus”的查询结果。
- EPost示例
示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi?db=protein&id=15718680,157427902,119703751
示例2:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/epost.fcgi?db=protein&id=15718680,157427902,119703751&WebEnv=NCID_1_25983036_
165.112.9.24_5553_1335063999_246386066
示例1将三个蛋白质数据库的id号上传到服务器,结果中将生成WebEnv和query_key值,以备后续操作使用;
示例2在给定的WebEnv历史记录上添加给定id号;注:在使用其他Eutils工具,如EFetch,id参数条目数超过限制时,只能使用EPost,先上传需要的id,然后在所使用工具中传入EPost结果中的WebEnv和query_key值。
- ESummary示例
示例2:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=protein&query_key=1&WebEnv=NCID_1_25983036_
165.112.9.24_5553_1335063999_246386066
示例1列出给定id号的摘要信息;
示例2列出给定查询历史记录中的摘要信息。
注:ESummary中db为必选参数,id和(query_key+WebEnv)二选一。
- EFetch示例
示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=15718680,157427902,119703751
示例1以text ASN.1格式返回给定id号的蛋白序列文件;
示例2以text fasta格式返回给定id号的蛋白序列文件;
示例3以xml fasta格式返回给定id号的蛋白序列文件。
注:EFetch是获取数据库文件的常用工具,示例1中没有给定rettype和retmode参数,默认为text ASN.1格式,示例2中retmode参数默认为text,示例3中retmode设置为xml,返回xml格式的fasta文件。各数据库支持的返回参数见表2。在EFetch中使用ESearch结果中的query_key和WebEnv参数,可轻松实现普通的Entrez下载操作。
表2. EFetch中各数据库支持的retmode和rettype值
Record Type |
&rettype |
&retmode |
db = biosample |
||
Full record XML |
full, default |
xml, default |
Full record text |
full, default |
text |
db = |
||
Full record XML |
xml, default |
xml, default |
db = gds |
||
Summary |
summary, default |
text, default |
db = gene |
||
text ASN.1 |
null |
asn.1, default |
XML |
null |
xml |
Gene table |
gene_table |
text |
db = |
||
text ASN.1 |
null |
asn.1, default |
XML |
null |
xml |
Alignment scores |
alignmentscores |
text |
FASTA |
fasta |
text |
HomoloGene |
homologene |
text |
db = mesh |
||
Full record |
full, default |
text, default |
db = nuccore, |
||
text ASN.1 |
null |
text, default |
binary ASN.1 |
null |
asn.1 |
Full record in XML |
native |
xml |
Accession number(s) |
acc |
text |
FASTA |
fasta |
text |
TinySeq XML |
fasta |
xml |
SeqID string |
seqid |
text |
Additional |
||
GenBank flat file |
gb |
text |
GBSeq XML |
gb |
xml |
INSDSeq XML |
gbc |
xml |
Additional |
||
Feature table |
ft |
text |
Additional |
||
GenBank flat file with full sequence |
gbwithparts |
text |
CDS nucleotide FASTA |
fasta_cds_na |
text |
CDS protein FASTA |
fasta_cds_aa |
text |
Additional |
||
EST report |
est |
text |
Additional |
||
GSS report |
gss |
text |
Additional |
||
GenPept flat file |
gp |
text |
GBSeq XML |
gp |
xml |
INSDSeq XML |
gpc |
xml |
db = pmc |
||
XML |
null |
xml, default |
MEDLINE |
medline |
text |
db = pubmed |
||
text ASN.1 |
null |
asn.1, default |
XML |
null |
xml |
MEDLINE |
medline |
text |
PMID list |
uilist |
text |
Abstract |
abstract |
text |
db = sequences |
||
text ASN.1 |
null |
text, default |
Accession number(s) |
acc |
text |
FASTA |
fasta |
text |
SeqID string |
seqid |
text |
db = snp |
||
text ASN.1 |
null |
asn.1, default |
XML |
null |
xml |
Flat file |
flt |
text |
FASTA |
fasta |
text |
RS Cluster report |
rsr |
text |
SS Exemplar list |
ssexemplar |
text |
Chromosome report |
chr |
text |
Genotype XML |
genxml |
xml |
Summary |
docset |
text |
UID list |
uilist |
text or xml |
db = sra |
||
XML |
full, default |
xml, default |
db = taxonomy |
||
XML |
null |
xml, default |
TaxID list |
uilist |
text or xml |
- ELink示例
示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?dbfrom=protein&db=gene&id=15718680,157427902
示例1将返回给定的蛋白id所对应的基因的id;示例2将返回和文章20210808相似的pubmedID,并给出对应的相似性分数。
注:ELink是eutils中一个强大的跨库查询工具,通过cmd参数可以实现各种各样的map功能。如示例1中,cmd默认参数是neighbor,实现简单的将蛋白id映射到对应的基因id的功能。示例2中neighbor_score实现相似文章的搜索。cmd参数的详细功能见表3。
表3. Elink中cmd参数功能详解
参数 |
功能 |
neighbor |
返回另一个数据库中和给定UID对应的UID。如不设置db相当于设置db=pubmed(默认值)。下同1 |
neighbor_score |
返回同一数据库中和给定UID相似的UID列表及相似性分数。如不设置db相当于设置与dbfrom相同的值。下同2 |
neighbor_history |
将以neighbor为参数返回的结果存入历史记录服务器,并返回 query_key 和WebEnv。同1 |
acheck |
返回给定UID的所有可能链接方式。如不设置db相当于选中所有。 |
ncheck |
判断同一个数据库中是否存在与给定的UID相关的链接。同2,忽略db设置 |
lcheck |
判断给定的UID是否存在链出链接。同2,忽略db设置 |
llinks |
列出给定UID的所有非图书馆链出链接及对应属性。同2,忽略db设置 |
llinkslib |
列出给定UID的所有链出链接及对应属性,包含图书馆链接。同2,忽略db设置 |
prlinks |
列出给定UID的首选链出链接及对应属性,在设置retmode=ref情况下直接跳转到链接网页。同2,忽略db设置 |
- EGQuery示例
示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/egquery.fcgi?term=asthma
示例1返回所有数据库中含有关键词asthma的条目数
注:EGQuery为全局查询,和在Entrez中选择所有数据库查询的结果相同。
- ESpell示例
示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/espell.fcgi?db=pubmed&term=asthmaa+OR+alergies
示例1返回对三个关键词的拼写建议,asthmaa被替换为asthma,OR为逻辑词不进行替换,alergies被替换为allergies。
注:ESpell为拼写建议工具,会根据关键词的相似性进行建议,方便关键词的纠错和相关关键词的推荐。
部分通用参数解释
db:查询的数据库名称。和Entrez下拉菜单中显示的名称不一样,所支持的所有值可通过EInfo(http://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi)查看;
term:查询的关键词。和Entrez查询相似,可使用逻辑操作词AND,OR,NOT以及[acession]、[organism]等以字段限定词等(具体可参见Entrez Help),但是中间的空格要以“+”替代,其他特殊符号要转换为URL编码(如引号“编码为%22;井号#编码为%23)。
WebEnv:历史记录环境编号。 ESearch的usehistory=y参数、EPost、ELink的cmd=neighbor_history参数都会产生一个WebEnv。后续操作传入次参数将大大减少查询工作量。
query_key:历史记录环境下的查询编号。第一次生成WebEnv的结果的query_key为1,在此WebEnv环境下的下一个操作结果的query_key为2,后续操作依次递增。
retstart:返回结果在查询结果中的起始位置。默认为0,配合retmax实现分页显示。
retmax:返回结果条目数最大值。默认为20。
rettype:返回数据类型。不同的工具有不同的可选值。ESearch的可选类型为uilist(默认)和count(只返回查询结果数目),EFetch可参加表2。
retmode:返回数据方式。详见表2。
datetype:限定日期的类型。限定reldate, mindate, maxdate的日期类型,不同的数据库有不同的可选值,常见的为mdat(modification date)、pdat(publication
date)、edat (Entrez date)。
reldate:相对于当前时间的天数。返回过去多少天内的数据。
mindate, maxdate:时间间隔。返回由最小日期和最大日期限定的时间间隔中的数据,必须同时使用,格式为YYYY/MM/DD,或者YYYY, YYYY/MM。
其他参数解释
field:ESearch中term的限定字段。如[accession]、[title]等,设置此参数后,term中的所有关键词将只查询指定字段。
version:指定所使用Esummary的版本号。
strand:指定EFetch中DNA链的类型,正义为1,反义为2。
seq_start:指定EFetch中返回序列的起始位点。
seq_stop:指定EFetch中返回序列的终止位点。
complexity:指定EFetch中返回数据的内容。许多序列数据和其他数据存储在一起,组成一个大的数据结构或BLOB(二进制大对象)。指定该参数可选择返回哪些数据内容。详见表4。
linkname:限定ELink中限制返回的链接类型,如gene_snp_genegenotype只返回所有链接中genegenotype子类。
holding:限定ELink中链出链接的提供商。
表4. EFetch中complexity值与返回的数据内容
Value of complexity |
Data returned for each requested GI |
0 |
entire blob |
1 |
bioseq |
2 |
minimal bioseq-set |
3 |
minimal nuc-prot |
4 |
minimal pub-set |
结语
这里根据前一段时间使用和学习Eutils的经历,参考《Entrez Programming Utilities Help》一书对Eutils的用法做了初步的总结,不可避免有错误,欢迎指正。
本文未涉及返回结果处理和编程部分,后面考虑是否写一下相关文章。
参考链接
《Entrez Programming Utilities Help》: http://www.ncbi.nlm.nih.gov/books/NBK25501/
《Entrez Help》: http://www.ncbi.nlm.nih.gov/books/NBK3837/
Eutils用法总结的更多相关文章
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
- chattr用法
[root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...
- 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)
vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...
随机推荐
- [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'number primary key,
如题,mysql建表语句报错 分析:就是一个语法错误,具体问题具体分析 本例中,直接赋值过来的 sql建表语句,直接粘贴到mysql数据库运行,报错! 经查询,mysql中 number类型的定义有如 ...
- jq对象和DOM对象的互换
var oJq; //JQ对象 var oDom; //dom对象 oDom = oJq[index]; // JQ对象转化为oDom对象 oJq = $(oDom); //DOM对象 ...
- Android之自定义控件实现天气温度折线图和饼状图
以前写了个天气的APP,最近把他更新了一个版本,就抽取其中的天气温度折现图这个功能写了这篇博客,来与大家分享,希望对你有所帮助. 效果如图: 代码: MainActivity.Java /**** * ...
- vue spn如何做seo优化
vue spn如何做seo优化 突然来了一个需求,对已有的项目做SEO优化,WHAT? 总所周知,spn对seo不够优化,因而官方考虑到直接使用ssr 一个不算解决办法的办法prerender-spa ...
- 蓝桥杯练习系统历届试题 剪格子 dfs
问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+|10* 1|52|+--****--+|20|30* 1|*******--+| 1| 2| 3|+--+--+--+ ...
- mysql中limit的用法详解[数据分页常用]
在我们使用查询语句的时候,经常要返回前几条或者中间某几行的数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. SELECT * FROM table LIMIT [offset ...
- 201621123006 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰 ...
- C++ 标准库和标准模板库(STL)
转自原文http://blog.csdn.net/sxhelijian/article/details/7552499 一.C++标准库 C++标准库的内容分为10类,分别是(建议在阅读中,将你已经用 ...
- MyEclipse10 中设置Jquery提醒,亲测可用
最近做练习需要用到Jquery,在myeclipse中默认没有提示功能.然后在网上找解决方案,有一种方案说使用spket,然后搜索安装,折腾了半天还是不行,脑细胞死掉几百个.. 然后在网上搜到另外一种 ...
- excel 应用,右下角的小十字拖拽的时候形成递减的数列
excel 应用,右下角的小十字拖拽的时候形成递减的数列 2012-12-20 15:16无良小鬼 | 浏览 352 次 比如说我想要这样一列数字201220112010……这样递减的数列,而不是递增 ...