zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    C++ primer plus读书笔记——第16章 string类和标准模板库
    C++ primer plus读书笔记——第15章 友元、异常和其他
    C++ primer plus读书笔记——第14章 C++中的代码重用
    C++ primer plus读书笔记——第13章 类继承
    C++ primer plus读书笔记——第12章 类和动态内存分配
    开发中常用的一些神器推荐
    收集常用的Linux常用命令
    【数据库】13种会导致索引失效语句写法
    Windows终端利器Cmder
    嵌入式操作系统的主要特点都有哪些
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/9161828.html
Copyright © 2011-2022 走看看