entrez2.asn
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:13k
源码类别:

生物技术

开发平台:

C/C++

  1. --
  2. -- ===========================================================================
  3. -- PRODUCTION $Log: entrez2.asn,v $
  4. -- PRODUCTION Revision 1000.0  2003/10/29 21:11:00  gouriano
  5. -- PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.12
  6. -- PRODUCTION
  7. -- ===========================================================================
  8. --
  9. --$Revision: 1000.0 $********************************************
  10. --
  11. --  entrez2.asn
  12. --   Version 1
  13. --
  14. --   API to Entrez Engine (1999)
  15. --   Retrieval of sequence done through ID1 module
  16. --     Also, SeqId queries
  17. --   Retrieval of PubMed records through PubMed module
  18. --   Retrieval of Structures through PubStruct module
  19. --   Retrieval of Genomes through Genomes module
  20. --
  21. --***************************************************************
  22. NCBI-Entrez2 DEFINITIONS ::=
  23. BEGIN
  24.    --**************************************
  25.    --  Entrez2 common elements
  26.    --**************************************
  27. Entrez2-dt ::= INTEGER                   -- a date/time stamp
  28. Entrez2-db-id ::= VisibleString          -- database name
  29. Entrez2-field-id ::= VisibleString       -- field name
  30. Entrez2-link-id ::= VisibleString        -- link name
  31. Entrez2-id-list ::= SEQUENCE  {          -- list of record UIDs
  32.   db Entrez2-db-id ,                     -- the database
  33.   num INTEGER ,                          -- number of uids
  34.   uids OCTET STRING OPTIONAL  }          -- coded uids
  35.        --****************************************
  36.        -- The structured form of the boolean is the same in a request or
  37.        --    return so that it easy to modify a query. This means some
  38.        --    fields are only considered in a return value, like counts
  39.        --    by term. They are ignored in a request.
  40.        -- The structured boolean supports specific boolean components,
  41.        --    an unparsed string in query syntax, and UID lists as
  42.        --    elements of a boolean. This makes it possible to submit
  43.        --    a single string, a fully structured query, or a mixture.
  44.        --    The UID list feature means one can also perform refinements
  45.        --    on UID lists from links, neighbors, or other operations.
  46.        --    UID list query now returns a history key for subsequent use.
  47.        --*****************************************
  48. Entrez2-boolean-exp ::= SEQUENCE {
  49.   db Entrez2-db-id ,                         -- database for this query
  50.   exp SEQUENCE OF Entrez2-boolean-element ,  -- the Boolean
  51.   limits Entrez2-limits OPTIONAL }           -- date bounds
  52. Entrez2-boolean-element ::= CHOICE {
  53.   str VisibleString ,                       -- unparsed query string
  54.   op Entrez2-operator ,                     -- logical operator
  55.   term Entrez2-boolean-term ,               -- fielded term
  56.   ids Entrez2-id-list ,                     -- list of UIDs - returns history key in reply
  57.   key VisibleString }                       -- history key for uploaded UID list or other query
  58.        --*****************************************
  59.        -- the term is both sent and received as parts of
  60.        --   queries and replies. The attributes can be filled in
  61.        --   by either, but may be ignored by one or the other. Flags are
  62.        --   shown if a real value is only of use in the query (Q), only
  63.        --   in the reply (R), or used in both (B)
  64.        -- do-not-explode and do-not-translate are only active set by
  65.        --   by the query. However, they retain those settings in the
  66.        --   return value so they can be resent with a new query
  67.        --******************************************
  68. Entrez2-boolean-term ::= SEQUENCE {
  69.   field Entrez2-field-id ,                  -- B
  70.   term VisibleString ,                      -- B
  71.   term-count INTEGER OPTIONAL,              -- R count of records with term
  72.   do-not-explode BOOLEAN DEFAULT FALSE,     -- Q do not explode term
  73.   do-not-translate BOOLEAN DEFAULT FALSE}   -- Q do not use synonyms
  74.   
  75. Entrez2-operator ::= INTEGER {
  76.   and (1) ,
  77.   or (2) ,
  78.   butnot (3) ,
  79.   range (4) ,
  80.   left-paren (5) ,
  81.   right-paren (6) }
  82.   --***************************************
  83.   --  Entrez2 Request types
  84.   --***************************************
  85.        --****************************************
  86.        -- The basic request wrapper leaves space for a version which
  87.        --   allow the server to support older clients
  88.        -- The tool parameter allows us to log the client types for
  89.        --   debugging and tuning
  90.        -- The cookie is a session ID returned by the first Entrez2-reply
  91.        --****************************************
  92.        
  93. Entrez2-request ::= SEQUENCE {           -- a standard request
  94.   request E2Request ,                    -- the actual request
  95.   version INTEGER ,                      -- ASN1 spec version
  96.   tool VisibleString OPTIONAL ,          -- tool making request
  97.   cookie VisibleString OPTIONAL ,        -- history session cookie
  98.   use-history BOOLEAN DEFAULT FALSE }    -- request should use history
  99. E2Request ::= CHOICE {                   -- request types
  100.   get-info NULL ,                        -- ask for info block
  101.   eval-boolean Entrez2-eval-boolean ,    -- Boolean lookup
  102.   get-docsum Entrez2-id-list ,           -- get the DocSums
  103.   get-term-pos Entrez2-term-query,       -- get position in term list
  104.   get-term-list Entrez2-term-pos ,       -- get Term list by position
  105.   get-term-hierarchy Entrez2-hier-query, -- get a hierarchy from a term
  106.   get-links Entrez2-get-links ,          -- get specific links from a UID list
  107.   get-linked Entrez2-get-links ,         -- get subset of UID list which has links
  108.   get-link-counts Entrez2-id }           -- get all links from one UID
  109.        --****************************************
  110.        -- When evaluating a boolean query the counts of hits is always
  111.        --    returned.
  112.        -- In addition, you can request the UIDs of the hits or the
  113.        --    the parsed query in structured form (with counts by term),
  114.        --    or both.
  115.        --****************************************
  116.   
  117. Entrez2-eval-boolean ::= SEQUENCE {       -- evaluate Boolean query
  118.   return-UIDs BOOLEAN DEFAULT FALSE,      -- return UID list?
  119.   return-parse BOOLEAN DEFAULT FALSE,     -- return parsed query?
  120.   query Entrez2-boolean-exp }             -- the actual query
  121. Entrez2-dt-filter ::= SEQUENCE { 
  122.   begin-date Entrez2-dt,
  123.   end-date Entrez2-dt,
  124.   type-date Entrez2-field-id }
  125. Entrez2-limits ::= SEQUENCE {            -- date limits
  126.   filter-date Entrez2-dt-filter OPTIONAL,
  127.   max-UIDs INTEGER OPTIONAL,             -- max UIDs to return in list
  128.   offset-UIDs INTEGER OPTIONAL}          -- start partway into UID list
  129.  
  130.   
  131. Entrez2-id ::= SEQUENCE {                -- a single UID
  132.   db Entrez2-db-id ,
  133.   uid INTEGER }
  134. Entrez2-term-query ::= SEQUENCE {
  135.   db Entrez2-db-id ,
  136.   field Entrez2-field-id ,
  137.   term VisibleString }
  138. Entrez2-hier-query ::= SEQUENCE {
  139.   db Entrez2-db-id ,
  140.   field Entrez2-field-id ,
  141.   term VisibleString OPTIONAL ,          -- query with either term
  142.   txid INTEGER OPTIONAL }                -- or Taxonomy ID
  143. Entrez2-term-pos ::= SEQUENCE {          -- request portions of term list
  144.   db Entrez2-db-id ,
  145.   field Entrez2-field-id ,
  146.   first-term-pos INTEGER ,
  147.   number-of-terms INTEGER OPTIONAL }     -- optional for hierarchy only
  148. Entrez2-get-links ::= SEQUENCE {         -- request links of one type
  149.   uids Entrez2-id-list ,                 -- docs to link from
  150.   linktype Entrez2-link-id ,             -- type of link
  151.   max-UIDS INTEGER OPTIONAL ,            -- maximum number of links to return
  152.   count-only BOOLEAN OPTIONAL ,          -- return only the counts
  153.   parents-persist BOOLEAN OPTIONAL }     -- allow original uids in list
  154.   --**********************************************************
  155.   -- Replies from the Entrez server
  156.   --  all replies contain the date/time stamp when they were executed
  157.   --  to do reqular date bounded searches use this value+1 to search
  158.   --  again later instead of recording the date/time on the client machine
  159.   --  the cookie allows a simple key string to represent UID lists in the history
  160.   --**********************************************************
  161.   
  162. Entrez2-reply ::= SEQUENCE {
  163.   reply E2Reply ,                       -- the actual reply
  164.   dt Entrez2-dt ,                       -- date/time stamp from server
  165.   server VisibleString ,                -- server version info
  166.   msg VisibleString OPTIONAL ,          -- possibly a message to the user
  167.   key VisibleString OPTIONAL ,          -- history key for query
  168.   cookie VisibleString OPTIONAL }       -- history session cookie
  169. E2Reply ::= CHOICE {
  170.   error VisibleString ,                 -- if nothing can be returned
  171.   get-info Entrez2-info ,               -- the database info
  172.   eval-boolean Entrez2-boolean-reply,   -- result of boolean query
  173.   get-docsum Entrez2-docsum-list,
  174.   get-term-pos INTEGER,                 -- position of the term
  175.   get-term-list Entrez2-term-list,
  176.   get-term-hierarchy Entrez2-hier-node,
  177.   get-links Entrez2-link-set,
  178.   get-linked Entrez2-id-list,
  179.   get-link-counts Entrez2-link-count-list }
  180. Entrez2-info ::= SEQUENCE {             -- describes all the databases
  181.   db-count INTEGER ,                    -- number of databases
  182.   build-date Entrez2-dt ,               -- build date of databases
  183.   db-info SEQUENCE OF Entrez2-db-info } -- info by database
  184. Entrez2-db-info ::= SEQUENCE {          -- info for one database
  185.   db-name Entrez2-db-id ,               -- internal name
  186.   db-menu VisibleString ,               -- short name for menu
  187.   db-descr VisibleString ,              -- longer explanatory name
  188.   doc-count INTEGER ,                   -- total number of records
  189.   field-count INTEGER ,                 -- number of field types
  190.   fields SEQUENCE OF Entrez2-field-info,
  191.   link-count INTEGER ,                  -- number of link types
  192.   links SEQUENCE OF Entrez2-link-info,
  193.   docsum-field-count INTEGER,
  194.   docsum-fields SEQUENCE OF Entrez2-docsum-field-info }
  195. Entrez2-field-info ::= SEQUENCE {       -- info about one field
  196.   field-name Entrez2-field-id ,         -- the internal name
  197.   field-menu VisibleString ,            -- short string suitable for menu
  198.   field-descr VisibleString ,           -- longer, explanatory name
  199.   term-count INTEGER ,                  -- number of terms in field
  200.   is-date BOOLEAN OPTIONAL ,
  201.   is-numerical BOOLEAN OPTIONAL ,
  202.   single-token BOOLEAN OPTIONAL ,
  203.   hierarchy-avail BOOLEAN OPTIONAL ,
  204.   is-rangable BOOLEAN OPTIONAL ,
  205.   is-truncatable BOOLEAN OPTIONAL }
  206. Entrez2-link-info ::= SEQUENCE {        -- info about one link
  207.   link-name Entrez2-link-id ,
  208.   link-menu VisibleString ,
  209.   link-descr VisibleString ,
  210.   db-to Entrez2-db-id ,                 -- database it links to
  211.   data-size INTEGER OPTIONAL }          -- size of link data element    
  212. Entrez2-docsum-field-type ::= INTEGER {
  213.   string (1) ,
  214.   int    (2) ,
  215.   float  (3) ,
  216.   date-pubmed (4) }
  217. Entrez2-docsum-field-info ::= SEQUENCE {
  218.   field-name VisibleString,
  219.   field-description VisibleString,
  220.   field-type Entrez2-docsum-field-type }
  221. Entrez2-boolean-reply ::= SEQUENCE {
  222.   count INTEGER ,                       -- records hit
  223.   uids Entrez2-id-list OPTIONAL,        -- if uids requested
  224.   query Entrez2-boolean-exp OPTIONAL }  -- if parsed query requested
  225. Entrez2-docsum-list ::= SEQUENCE {
  226.   count INTEGER ,                       -- number of docsums
  227.   list SEQUENCE OF Entrez2-docsum }
  228. Entrez2-docsum ::= SEQUENCE {
  229.   uid INTEGER ,                         -- primary uid (gi, pubmedid)
  230.   docsum-data SEQUENCE OF Entrez2-docsum-data }
  231. Entrez2-docsum-data::= SEQUENCE {
  232.   field-name VisibleString,
  233.   field-value VisibleString }
  234. Entrez2-term-list ::= SEQUENCE {
  235.   pos INTEGER,                          -- position of first term in list
  236.   num INTEGER,                          -- number of terms in list
  237.   list SEQUENCE OF Entrez2-term }
  238. Entrez2-term ::= SEQUENCE {
  239.   term VisibleString ,
  240.   txid  INTEGER OPTIONAL,
  241.   count INTEGER ,                       -- count of records with this term
  242.   is-leaf-node BOOLEAN OPTIONAL }       -- used for hierarchy only
  243. Entrez2-hier-node ::= SEQUENCE {        -- for hierarchical index
  244.   cannonical-form VisibleString ,       -- the official name
  245.   lineage-count INTEGER ,               -- number of strings in lineage
  246.   lineage SEQUENCE OF Entrez2-term OPTIONAL , -- strings up the lineage
  247.   child-count INTEGER ,                 -- number of children of this node
  248.   children SEQUENCE OF Entrez2-term ,   -- the children
  249.   is-ambiguous BOOLEAN OPTIONAL }       -- used for hierarchy only
  250.   
  251.   
  252.       --*******************************************
  253.       -- Links are returned in sets also using OCTET STRINGS
  254.       --*******************************************
  255. Entrez2-link-set ::= SEQUENCE {          -- set of links
  256.   ids Entrez2-id-list ,
  257.   data-size INTEGER OPTIONAL ,           -- size of data elements
  258.   data OCTET STRING OPTIONAL }           -- coded scores
  259. Entrez2-link-count-list ::= SEQUENCE {   -- all links from 1 uid
  260.   link-type-count INTEGER ,              -- number of types of links
  261.   links SEQUENCE OF Entrez2-link-count }
  262. Entrez2-link-count ::= SEQUENCE {        -- link count of one type
  263.   link-type Entrez2-link-id ,
  264.   link-count INTEGER }
  265. END