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示例

示例1:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=protein&id=15718680,157427902,119703751

示例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

示例2:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=15718680,157427902,119703751&rettype=fasta

示例3:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=protein&id=15718680,157427902,119703751&rettype=fasta&retmode=xml

示例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中各數據庫支持的retmoderettype 

Record Type

&rettype

&retmode

db = biosample

Full record XML

full, default

xml, default

Full record text

full, default

text

db = biosystems

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 = homologene

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, nucest, nucgss, protein or popset

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 options for db = nuccore, nucest, nucgss or popset

GenBank flat file

gb

text

GBSeq XML

gb

xml

INSDSeq XML

gbc

xml

Additional option for db = nuccore and protein

Feature table

ft

text

Additional option for db = nuccore

GenBank flat file with full sequence (contigs)

gbwithparts

text

CDS nucleotide FASTA

fasta_cds_na

text

CDS protein FASTA

fasta_cds_aa

text

Additional option for db = nucest

EST report

est

text

Additional option for db = nucgss

GSS report

gss

text

Additional options for db = protein

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

示例2:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?dbfrom=pubmed&db=pubmed&id=20210808&cmd=neighbor_score

示例1將返回給定的蛋白id所對應的基因的id;示例2將返回和文章20210808相似的pubmedID,並給出對應的相似性分數。

注:ELink是eutils中一個強大的跨庫查詢工具,通過cmd參數可以實現各種各樣的map功能。如示例1中,cmd默認參數是neighbor,實現簡單的將蛋白id映射到對應的基因id的功能。示例2中neighbor_score實現相似文章的搜索。cmd參數的詳細功能見表3。

3. Elinkcmd參數功能詳解

參數

功能

neighbor (default)

返回另一個數據庫中和給定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. EFetchcomplexity值與返回的數據內容

 

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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM