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

生物技术

开发平台:

C/C++

  1. --  ----------------------------------------------------------------------------
  2. --
  3. --                            PUBLIC DOMAIN NOTICE
  4. --                National Center for Biotechnology Information
  5. --
  6. --  This software/database is a "United States Government Work" under the terms
  7. --  of the United States Copyright Act.  It was written as part of the author's
  8. --  official duties as a United States Government employee and thus cannot be
  9. --  copyrighted.  This software/database is freely available to the public for
  10. --  use.  The National Library of Medicine and the U.S. Government have not
  11. --  placed any restriction on its use or reproduction.
  12. --
  13. --  Although all reasonable efforts have been taken to ensure the accuracy and
  14. --  reliability of the software and data, the NLM and the U.S. Government do not
  15. --  and cannot warrant the performance or results that may be obtained by using
  16. --  this software or data.  The NLM and the U.S. Government disclaim all
  17. --  warranties, express or implied, including warranties of performance,
  18. --  merchantability or fitness for any particular purpose.
  19. --
  20. --  Please cite the authors in any work or product based on this material.
  21. --
  22. --  ----------------------------------------------------------------------------
  23. --
  24. --  Authors: Tom Madden, Tim Boemker
  25. --
  26. --  ASN.1 interface to BLAST.
  27. --
  28. --  ----------------------------------------------------------------------------
  29. NCBI-Blast4 DEFINITIONS ::=
  30. BEGIN
  31. EXPORTS
  32.     Blast4-ka-block;
  33. IMPORTS
  34.     Bioseq                  FROM NCBI-Sequence
  35.     Bioseq-set              FROM NCBI-Seqset
  36.     Score-matrix-parameters FROM NCBI-ScoreMat
  37.     Seq-id,
  38.     Seq-loc                 FROM NCBI-Seqloc
  39.     Seq-align,
  40.     Seq-align-set           FROM NCBI-Seqalign;
  41. --  --------------------------------------------------------------------
  42. --
  43. --  Requests
  44. --
  45. --  --------------------------------------------------------------------
  46. Blast4-request ::= SEQUENCE {
  47.     ident                   VisibleString OPTIONAL,
  48.     body                    Blast4-request-body
  49. }
  50. Blast4-request-body ::= CHOICE {
  51.     finish-params           Blast4-finish-params-request,
  52.     get-databases           NULL,
  53.     get-matrices            NULL,
  54.     get-parameters          NULL,
  55.     get-paramsets           NULL,
  56.     get-programs            NULL,
  57.     get-search-results      Blast4-get-search-results-request,
  58.     get-sequences           Blast4-get-sequences-request,
  59.     queue-search            Blast4-queue-search-request
  60. }
  61. Blast4-finish-params-request ::= SEQUENCE {
  62.     program                 VisibleString,
  63.     service                 VisibleString,
  64.     paramset                VisibleString OPTIONAL,
  65.     params                  Blast4-parameters OPTIONAL
  66. }
  67. Blast4-get-search-results-request ::= SEQUENCE {
  68.     request-id              VisibleString
  69. }
  70. Blast4-get-sequences-request ::= SEQUENCE {
  71.     database                Blast4-database,
  72.     seq-ids                 SEQUENCE OF Seq-id
  73. }
  74. -- If a PSSM is used (ie. for PSI-Blast), it must contain a "query"
  75. -- for formatting purposes.  Bioseq-set may contain any number of
  76. -- queries, specified as data.  Seq-loc-list may contain only the
  77. -- "whole" or "interval" types.  In the case of "whole", any number of
  78. -- queries may be used; in the case of "interval", there should be
  79. -- exactly one query.  (This is limited by the BlastObject.)
  80. Blast4-queries ::= CHOICE {
  81.     pssm                    Score-matrix-parameters,
  82.     seq-loc-list            SEQUENCE OF Seq-loc,
  83.     bioseq-set              Bioseq-set
  84. }
  85. -- Options have been broken down into two groups as part of the BLAST
  86. -- API work.  The algorithm options essentially correspond to those
  87. -- options available via the CBlastOptions class.
  88. --   algorithm-options: Options for BLAST (ie. seq comparison) algorithm.
  89. --   program-options:   Other options, such as which seqs. to compare.
  90. Blast4-queue-search-request ::= SEQUENCE {
  91.     program                 VisibleString,
  92.     service                 VisibleString,
  93.     queries                 Blast4-queries,
  94.     subject                 Blast4-subject,
  95.     paramset                VisibleString OPTIONAL,
  96.     algorithm-options       Blast4-parameters OPTIONAL,
  97.     program-options         Blast4-parameters OPTIONAL
  98. }
  99. --  --------------------------------------------------------------------
  100. --
  101. --  Replies
  102. --
  103. --  --------------------------------------------------------------------
  104. Blast4-reply ::= SEQUENCE {
  105.     errors                  SEQUENCE OF Blast4-error OPTIONAL,
  106.     body                    Blast4-reply-body
  107. }
  108. Blast4-reply-body ::= CHOICE {
  109.     finish-params           Blast4-finish-params-reply,
  110.     get-databases           Blast4-get-databases-reply,
  111.     get-matrices            Blast4-get-matrices-reply,
  112.     get-parameters          Blast4-get-parameters-reply,
  113.     get-paramsets           Blast4-get-paramsets-reply,
  114.     get-programs            Blast4-get-programs-reply,
  115.     get-search-results      Blast4-get-search-results-reply,
  116.     get-sequences           Blast4-get-sequences-reply,
  117.     queue-search            Blast4-queue-search-reply
  118. }
  119. Blast4-finish-params-reply ::= Blast4-parameters
  120. Blast4-get-databases-reply ::= SEQUENCE OF Blast4-database-info
  121. Blast4-get-matrices-reply ::= SEQUENCE OF Blast4-matrix-id
  122. Blast4-get-parameters-reply ::= SEQUENCE OF Blast4-parameter-info
  123. Blast4-get-paramsets-reply ::= SEQUENCE OF Blast4-paramset-info
  124. Blast4-get-programs-reply ::= SEQUENCE OF Blast4-program-info
  125. Blast4-get-search-results-reply ::= SEQUENCE {
  126.     alignments              Seq-align-set OPTIONAL,
  127.     phi-alignments          Blast4-phi-alignments OPTIONAL,
  128.     mask                    Blast4-mask OPTIONAL,
  129.     ka-blocks               SEQUENCE OF Blast4-ka-block OPTIONAL,
  130.     search-stats            SEQUENCE OF VisibleString OPTIONAL,
  131.     pssm                    Score-matrix-parameters OPTIONAL
  132. }
  133. Blast4-get-sequences-reply ::= SEQUENCE OF Bioseq
  134. Blast4-queue-search-reply ::= SEQUENCE {
  135.     request-id              VisibleString OPTIONAL
  136. }
  137. --  --------------------------------------------------------------------
  138. --
  139. --  Errors
  140. --
  141. --  --------------------------------------------------------------------
  142. Blast4-error ::= SEQUENCE {
  143.     code                    INTEGER,
  144.     message                 VisibleString OPTIONAL
  145. }
  146. Blast4-error-flags ::= ENUMERATED {
  147.     warning                 (1024),
  148.     error                   (2048)
  149. }
  150. Blast4-error-code ::= INTEGER {
  151. -- warnings
  152. conversion-warning (1024),
  153. -- errors
  154.     internal-error          (2048),
  155.     not-implemented         (2049),
  156.     not-allowed             (2050),
  157.     bad-request             (2051),
  158.     bad-request-id          (2052),
  159.     search-pending          (2053)
  160. }
  161. --  --------------------------------------------------------------------
  162. --
  163. --  Other types in alphabetical order
  164. --
  165. --  --------------------------------------------------------------------
  166. Blast4-cutoff ::= CHOICE {
  167.     e-value                 REAL,
  168.     raw-score               INTEGER
  169. }
  170. Blast4-database ::= SEQUENCE {
  171.     name                    VisibleString,
  172.     type                    Blast4-residue-type
  173. }
  174. -- Borrowed from seq.asn
  175. Blast4-seqtech ::= INTEGER {
  176.         unknown (0) ,
  177.         standard (1) ,          -- standard sequencing
  178.         est (2) ,               -- Expressed Sequence Tag
  179.         sts (3) ,               -- Sequence Tagged Site
  180.         survey (4) ,            -- one-pass genomic sequence
  181.         genemap (5) ,           -- from genetic mapping techniques
  182.         physmap (6) ,           -- from physical mapping techniques
  183.         derived (7) ,           -- derived from other data, not a primary entity
  184.         concept-trans (8) ,     -- conceptual translation
  185.         seq-pept (9) ,          -- peptide was sequenced
  186.         both (10) ,             -- concept transl. w/ partial pept. seq.
  187.         seq-pept-overlap (11) , -- sequenced peptide, ordered by overlap
  188.         seq-pept-homol (12) ,   -- sequenced peptide, ordered by homology
  189.         concept-trans-a (13) ,  -- conceptual transl. supplied by author
  190.         htgs-1 (14) ,           -- unordered High Throughput sequence contig
  191.         htgs-2 (15) ,           -- ordered High Throughput sequence contig
  192.         htgs-3 (16) ,           -- finished High Throughput sequence
  193.         fli-cdna (17) ,         -- full length insert cDNA
  194.         htgs-0 (18) ,           -- single genomic reads for coordination
  195.         htc (19) ,              -- high throughput cDNA
  196.         wgs (20) ,              -- whole genome shotgun sequencing
  197.         other (255)             -- use Source.techexp
  198. }
  199. Blast4-database-info ::= SEQUENCE {
  200.     database                Blast4-database,
  201.     description             VisibleString,
  202.     last-updated            VisibleString,
  203.     total-length            BigInt,
  204.     num-sequences           BigInt,
  205.     seqtech                 Blast4-seqtech,
  206.     taxid                   INTEGER
  207. }
  208. Blast4-frame-type ::= ENUMERATED {
  209.     notset                  (0),
  210.     plus1                   (1),
  211.     plus2                   (2),
  212.     plus3                   (3),
  213.     minus1                  (4),
  214.     minus2                  (5),
  215.     minus3                  (6)
  216. }
  217. Blast4-ka-block ::= SEQUENCE {
  218.     lambda                  REAL,
  219.     k                       REAL,
  220.     h                       REAL,
  221.     gapped                  BOOLEAN
  222. }
  223. Blast4-mask ::= SEQUENCE {
  224.     locations               SEQUENCE OF Seq-loc,
  225.     frame                   Blast4-frame-type
  226. }
  227. Blast4-matrix-id ::= SEQUENCE {
  228.     residue-type            Blast4-residue-type,
  229.     name                    VisibleString
  230. }
  231. Blast4-parameter ::= SEQUENCE {
  232.     name                    VisibleString,
  233.     value                   Blast4-value
  234. }
  235. Blast4-parameter-info ::= SEQUENCE {
  236.     name                    VisibleString,
  237.     type                    VisibleString
  238. }
  239. Blast4-paramset-info ::= SEQUENCE {
  240.     program                 VisibleString,
  241.     name                    VisibleString
  242. }
  243. Blast4-program-info ::= SEQUENCE {
  244.     program                 VisibleString,
  245.     services                SEQUENCE OF VisibleString
  246. }
  247. Blast4-residue-type ::= ENUMERATED {
  248.     unknown                 (0),
  249.     protein                 (1),
  250.     nucleotide              (2)
  251. }
  252. Blast4-strand-type ::= ENUMERATED {
  253.     forward-strand          (1),
  254.     reverse-strand          (2),
  255.     both-strands            (3)
  256. }
  257. Blast4-subject ::= CHOICE {
  258.     database                VisibleString,
  259.     sequences               SEQUENCE OF Bioseq
  260. }
  261. Blast4-parameters ::= SEQUENCE OF Blast4-parameter
  262. Blast4-phi-alignments ::= SEQUENCE {
  263.     num-alignments          INTEGER,
  264.     seq-locs                SEQUENCE OF Seq-loc
  265. }
  266. Blast4-value ::= CHOICE {
  267.     -- scalar types
  268.     big-integer             BigInt,
  269.     bioseq                  Bioseq,
  270.     boolean                 BOOLEAN,
  271.     cutoff                  Blast4-cutoff,
  272.     integer                 INTEGER,
  273.     matrix                  Score-matrix-parameters,
  274.     real                    REAL,
  275.     seq-align               Seq-align,
  276.     seq-id                  Seq-id,
  277.     seq-loc                 Seq-loc,
  278.     strand-type             Blast4-strand-type,
  279.     string                  VisibleString,
  280.     -- lists of scalar types
  281.     big-integer-list        SEQUENCE OF BigInt,
  282.     bioseq-list             SEQUENCE OF Bioseq,
  283.     boolean-list            SEQUENCE OF BOOLEAN,
  284.     cutoff-list             SEQUENCE OF Blast4-cutoff,
  285.     integer-list            SEQUENCE OF INTEGER,
  286.     matrix-list             SEQUENCE OF Score-matrix-parameters,
  287.     real-list               SEQUENCE OF REAL,
  288.     seq-align-list          SEQUENCE OF Seq-align,
  289.     seq-id-list             SEQUENCE OF Seq-id,
  290.     seq-loc-list            SEQUENCE OF Seq-loc,
  291.     strand-type-list        SEQUENCE OF Blast4-strand-type,
  292.     string-list             SEQUENCE OF VisibleString,
  293.     -- imported collection types
  294.     bioseq-set              Bioseq-set,
  295.     seq-align-set           Seq-align-set
  296. }
  297. END