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

生物技术

开发平台:

C/C++

  1. --$Revision: 1000.3 $
  2. --**********************************************************************
  3. --
  4. --  Definitions for CDD's 
  5. --
  6. --  NCBI Structure Group
  7. --
  8. --  National Center for Biotechnology Information
  9. --  National Institutes of Health
  10. --  Bethesda, MD 20894 USA
  11. --
  12. --  October 1999
  13. --
  14. --  asntool -m cdd.asn -w 100 -o cdd.h
  15. --  asntool -B objcdd -m cdd.asn -G -w 100 -I objseq.h objsset.h -K cdd.h 
  16. --          -M asn.all
  17. --**********************************************************************
  18. NCBI-Cdd DEFINITIONS ::=
  19. -- NCBI Conserved Domain Definition
  20. BEGIN
  21. EXPORTS  Cdd-id, Cdd-id-set, Cdd, Cdd-set, Cdd-tree, Cdd-tree-set, Cdd-pref-nodes, Cdd-Project;
  22. IMPORTS  Date                    FROM NCBI-General
  23.          Pub                     FROM NCBI-Pub
  24.          Biostruc-annot-set      FROM MMDB
  25.          Bioseq                  FROM NCBI-Sequence
  26.          Seq-annot               FROM NCBI-Sequence
  27.          Seq-entry               FROM NCBI-Seqset
  28.          Org-ref                 FROM NCBI-Organism
  29.          Seq-id                  FROM NCBI-Seqloc
  30.          Seq-interval            FROM NCBI-Seqloc
  31.          Seq-loc                 FROM NCBI-Seqloc
  32.          Seq-feat                FROM NCBI-Seqfeat
  33.          Score-set               FROM NCBI-Seqalign
  34.          Cn3d-style-dictionary,
  35.          Cn3d-user-annotations   FROM NCBI-Cn3d
  36.          Score-matrix-parameters FROM NCBI-ScoreMat;
  37.          
  38. -- dealing with lists of preferred tax-nodes 
  39. Cdd-org-ref ::= SEQUENCE {
  40.   reference   Org-ref,
  41.   active      BOOLEAN DEFAULT TRUE 
  42. }
  43. Cdd-org-ref-set ::= SET OF Cdd-org-ref
  44. Cdd-pref-node-descr ::= CHOICE {
  45.   create-date      Date,
  46.   description      VisibleString
  47. }
  48. Cdd-pref-node-descr-set ::= SET OF Cdd-pref-node-descr
  49. Cdd-pref-nodes ::= SEQUENCE {
  50.    preferred-nodes Cdd-org-ref-set,
  51.    model-organisms Cdd-org-ref-set OPTIONAL,
  52.    optional-nodes  Cdd-org-ref-set OPTIONAL,
  53.    description     Cdd-pref-node-descr-set OPTIONAL
  54. }        
  55. -- Cdd's should not exist without a unique accession, but alternative id's may
  56. -- be present as well. It is conceivable that a CD which is created as a merged
  57. -- product of two highly redundant CDs will retain the source ids in addition 
  58. -- to its new unique id
  59. Global-id ::= SEQUENCE {
  60.   accession     VisibleString,          -- SMART, Pfam, LOAD or CD accession
  61.   release       VisibleString OPTIONAL, -- to hold CD-Database release number
  62.                                         -- if desired, currently not used
  63.   version       INTEGER       OPTIONAL, -- version 0 is the seed, version
  64.                                         -- numbers increase with update/curate
  65.                                         -- cycles
  66.   database      VisibleString OPTIONAL  -- this is NOT the source!, rather the
  67. }                                       -- database the object resides in
  68.                                         -- currently not in use
  69. Cdd-id ::= CHOICE {
  70.   uid           INTEGER,                -- for synchronization with Entrez
  71.                                         -- holds PSSM-Ids
  72.   gid           Global-id               -- holds accession/version pairs
  73. }
  74. Cdd-id-set ::= SEQUENCE OF Cdd-id
  75. Cdd-repeat ::= SEQUENCE {               -- record whether the CD contains
  76.                                         -- repeated sequence/structure motifs
  77.   count         INTEGER,                -- number of tandem repeats in the CD
  78.   location      Seq-loc OPTIONAL,       -- location on the representative
  79.   avglen        INTEGER OPTIONAL        -- average repeat length
  80. }
  81. Cdd-book-ref ::= SEQUENCE {             -- record a link to Entrez Books
  82.   bookname      VisibleString,          -- abbreviated book title
  83.   textelement   ENUMERATED { unassigned(0),   -- type of element 
  84.                              section(1),      -- a section or paragraph
  85.                              figgrp(2),       -- a figure or set of figures
  86.                              table(3),        -- a table
  87.                              chapter(4),      -- a whole chapter
  88.                              biblist(5),      -- a lisf of references
  89.                              box(6),          -- an inserted box
  90.                              glossary(7),     -- glossary
  91.                              appendix(8),     -- appendix
  92.                              other(255) },
  93.   elementid    INTEGER,                 -- address of the text-element
  94.   subelementid INTEGER OPTIONAL         -- exact address, used with section
  95. }
  96. -- The description of CDD's refers to the specific set of aligned sequences,
  97. -- the region that is being aligned and the information contained in the
  98. -- alignment. It may contain a lengthy comment
  99. -- describing the function of the domain as well as its origin and all
  100. -- other anecdotal information that can't be pressed into a rigid scheme.
  101. -- Crosslinks to reference papers available in PubMed are possible as well.
  102. -- There can be as many of these as you want in the CDD.
  103. Cdd-descr ::= CHOICE {
  104.   othername     VisibleString,          -- alternative names for the CDD
  105.                                         -- if domain has several common names
  106.   category      VisibleString,          -- intracellular, extracellular, etc.
  107.                                         -- to record spatial and/or temporal
  108.                                         -- expression in free-text format
  109.   comment       VisibleString,          -- this is where descriptions go
  110.   reference     Pub,                    -- a citation describing the domain
  111.   create-date   Date,                   -- Date of first creation/dump
  112.   tax-source    Org-ref,                -- holds the highest common tax node
  113.   source        VisibleString,          -- the database the seeds were created
  114.                                         -- from, e.g. SMART, PFAM, etc..
  115.   status        INTEGER { unassigned(0),
  116.                           finished-ok(1),     -- a public curated CD
  117.                           pending-release(2), -- needs work done, not yet released
  118.                           other-asis(3),      -- imported as-is, immediate release
  119.                           matrix-only(4),     -- CD holds a Psi-Blast PSSM only,
  120.                                               -- does not contain alignment data
  121.                           update-running(5),  -- has been flagged for
  122.                                               -- update (in queue)
  123.                           auto-updated(6),    -- update finished, no
  124.                                               -- work necessary
  125.                           claimed(7),         -- is earmarked for curation
  126.                           curated-complete(8),-- public curated member of a
  127.                                               -- completed family
  128.                           other(255) },       -- for CD production?
  129.   update-date   Date,                         -- Date of last version change
  130.   scrapbook     SEQUENCE OF VisibleString,    -- for storing curation notes
  131.                                               -- those won't make it into public
  132.                                               -- distributions
  133.   source-id     Cdd-id-set,                   -- for linking back to source db
  134.   repeats       Cdd-repeat,                   -- to record repeat counts
  135.   old-root      Cdd-id-set,                   -- to record short-term history
  136.   curation-status INTEGER { unassigned(0),    -- to record curation status
  137.                             prein (1),        -- when CD is checked out from
  138.                             ofc (2),          -- the tracking database, for 
  139.                             iac (3),          -- use within curation software
  140.                             ofv1 (4),
  141.                             iav1 (5),
  142.                             ofv2 (6),
  143.                             iav2 (7),
  144.                             postin (8),
  145.                             other (255) },
  146.   readonly-status INTEGER { unassigned(0),    -- to record read-only status
  147.                             readonly (1),     -- when CD is checked out from
  148.                             readwrite (2),    -- the tracking database, for
  149.                             other (255) },     -- use within curation software
  150.   book-ref      Cdd-book-ref
  151. }
  152. Cdd-descr-set ::= SET OF Cdd-descr
  153. -- the Cdd-tree stores the hierarchy of CDDs. These objects are stored separate
  154. -- from the CDs to allow for fast retrieval and use as an 'index' into CDs
  155. -- all the components in a CD-tree match components in the full-sized CD
  156. -- and should be synchronized
  157. Cdd-tree ::= SEQUENCE {
  158.   name          VisibleString,          -- short name  copied from CD
  159.   id            Cdd-id-set,             -- IDs         copied from CD
  160.   description   Cdd-descr-set OPTIONAL, -- description copied from CD
  161.   parent        Cdd-id     OPTIONAL,    -- CD is the result of a split/merge
  162.   children      Cdd-id-set OPTIONAL,    -- this CD has been split
  163.   siblings      Cdd-id-set OPTIONAL,    -- related CDs (have common hits)
  164.   neighbors     Cdd-id-set OPTIONAL     -- co-occurring CDs (non-overlapping 
  165.                                         -- hits to same sequences)
  166. }
  167. Cdd-tree-set ::= SEQUENCE OF Cdd-tree
  168. -- Matrix definitions, these are supposed to store PSSMs and corresponding 
  169. -- matrices of relative residue frequencies.
  170. -- the number of columns and rows is listed explicitly, values in columns
  171. -- are stored column by column, i.e. in groups of nrows values for each column
  172. Matrix ::= SEQUENCE {
  173.   ncolumns      INTEGER,
  174.   nrows         INTEGER,
  175.   row-labels    SEQUENCE OF VisibleString OPTIONAL,
  176.   scale-factor  INTEGER,
  177.   columns       SEQUENCE OF INTEGER
  178. }
  179. -- definition for matrix of pairwise "distances", stored as the upper 
  180. -- triangle of a squared n x n matrix (excluding the diagonal), this is
  181. -- supposed to store pairwise percentages of identical residues, pairwise
  182. -- alignment scores or E-values from pairwise BLAST sequence comparisons
  183. Triangle ::= SEQUENCE {
  184.   nelements     INTEGER,
  185.   scores        Score-set OPTIONAL,
  186.   div-ranks     SEQUENCE OF INTEGER OPTIONAL
  187. }
  188. -- Update-align is supposed to contain alignments that still need some work
  189. -- done to fit into the CD-proper alignment. These originate from the
  190. -- CD update process (generated by Blast, for example) or may be created in
  191. -- an editing session to save its state
  192. Update-comment ::= CHOICE {
  193.   comment       VisibleString,          -- free text to describe nature of
  194.                                         -- Update-align
  195.   addthis       Seq-loc,                -- suggestion for inclusion in the CD
  196.                                         -- without corresponding alignment
  197.   replaces      Seq-loc,                -- if one or several alignment rows are
  198.                                         -- to be replaced by the Update-align
  199.   reject-loc    Seq-loc,                -- if used with Reject-id, specify a
  200.                                         -- location on a sequence which should
  201.                                         -- not be used
  202.   reference     Pub                     -- if update alignment imported from
  203.                                         -- citation and for whenever it seems
  204.                                         -- necessary to cite
  205. }
  206. -- Both fields are optional, as the Update-align may be a Seq-annot without
  207. -- description, or a suggestion to add a sequence without the corresponding
  208. -- alignment
  209. Update-align ::= SEQUENCE {
  210.   description   SEQUENCE OF Update-comment OPTIONAL,  
  211.   seqannot      Seq-annot OPTIONAL,     -- contains the SeqAlign
  212.   type          INTEGER { unassigned(0),
  213.                           update(1),
  214.                           update-3d(2),
  215.                           demoted(51),
  216.                           demoted-3d(52),
  217.                           other(255)}
  218. }
  219. Reject-id ::= SEQUENCE {
  220.   description   SEQUENCE OF Update-comment OPTIONAL,
  221.   ids           SET OF Seq-id
  222. }
  223. Feature-evidence ::= CHOICE {
  224.   comment       VisibleString,          -- so we can spell out what doesn't
  225.                                         -- fit in any other category
  226.   reference     Pub,                    -- evidence via a literature reference
  227.   bsannot       Biostruc-annot-set,     -- evidence via Biostruc-features, such
  228.                                         -- as structure superpositions 
  229.   seqfeat       Seq-feat,               -- evidence is a Sequence feature found
  230.                                         -- elsewhere
  231.   book-ref      Cdd-book-ref            -- evidence is a book chapter or figure
  232. }
  233. Align-annot ::= SEQUENCE {
  234.   location      Seq-loc,                -- points to a location in one of the
  235.                                         -- aligned sequences, usually the
  236.                                         -- master/representative
  237.   description   VisibleString OPTIONAL, -- to hold descriptions/names like
  238.                                         -- "Heme binding site" or "catalytic
  239.                                         -- triad" etc., something that should
  240.                                         -- be used for labels in visualization
  241.   evidence      SEQUENCE OF Feature-evidence OPTIONAL -- evidence we can
  242.                                                       -- compute with
  243. }
  244. Align-annot-set ::= SEQUENCE OF Align-annot
  245. -- the Domain-parent records an evolutionary relationship which may not be
  246. -- as simple as a classical parent-child relationship in a typical hierarchy,
  247. -- i.e. where a CD is merely a specific subgroup ("child") of a more general
  248. -- diverse alignment model ("parent"). A CD alignment model may be the result
  249. -- of an ancient fusion event, combining two or more domains into a bigger unit
  250. -- which has subsequently undergone a divergent evolutionary process similar to
  251. -- what may have happened to a single "domain". A CD alignment model may 
  252. -- also reflect the result of a deletion event, where a specific subgroup
  253. -- lacks part of a (set of) domain(s), but where the part present is found to
  254. -- be highly similar to a putative "parent", with some added evidence for
  255. -- an actual deletion, like from the distribution of truncated copies in phylogenetic
  256. -- lineages. Deletion events which affect different parts of a set of
  257. -- duplicated domain architectures may be indistinguishable from actual
  258. -- fission events, which means that we may want to represent the latter as
  259. -- deletions after duplication and do not need a special case for fissions.
  260. Domain-parent ::= SEQUENCE {
  261.   parent-type    INTEGER { classical           (0), -- the classification of parent child relations
  262.                            fusion              (1),
  263.                            deletion            (2),
  264.                            permutation         (3),
  265.                            other               (255) },
  266.   parentid       Cdd-id,                -- identify the section parent by accession
  267.   seqannot       Seq-annot OPTIONAL     -- contains the sequence alignment linking
  268.                                         -- CD alignment models, should align the 
  269.                                         -- masters/representatives of each CD
  270. }
  271. -- record sequence trees generated by a suitable algorithm.
  272. Sequence-tree ::= SEQUENCE {
  273.   cdAccession    VisibleString OPTIONAL,
  274.   algorithm      Algorithm-type,
  275.   isAnnotated    BOOLEAN DEFAULT FALSE,
  276.   root           SeqTree-node
  277. }
  278. SeqTree-node ::= SEQUENCE {
  279.   isAnnotated    BOOLEAN DEFAULT FALSE,
  280.   name           VisibleString           OPTIONAL,
  281.   distance       REAL                    OPTIONAL,
  282.   children       CHOICE {
  283.     children SEQUENCE OF SeqTree-node,
  284.     footprint SEQUENCE {
  285.       seqRange   Seq-interval,
  286.       rowId      INTEGER OPTIONAL
  287.     }
  288.   },
  289.   annotation     Node-annotation         OPTIONAL
  290. }
  291. Algorithm-type ::= SEQUENCE {
  292.   scoring-Scheme    INTEGER { unassigned           (0),
  293.                               percent-id           (1),
  294.                               kimura-corrected     (2),
  295.                               aligned-score        (3),
  296.                               aligned-score-ext    (4),
  297.                               aligned-score-filled (5),
  298.                               blast-footprint      (6),
  299.                               blast-full           (7),
  300.                               other           (255) },
  301.   clustering-Method INTEGER { unassigned             (0),
  302.                               single-linkage         (1),
  303.                               neighbor-joining       (2),
  304.                               fast-minimum-evolution (3),
  305.                               other                (255) },
  306.   score-Matrix      INTEGER { unassigned (0),
  307.                               blosum45   (1),
  308.                               blosum62   (2),
  309.                               blosum80   (3),
  310.                               pam30      (4),
  311.                               pam70      (5),
  312.                               pam250     (6),
  313.                               other    (255) } OPTIONAL,
  314.   gapOpen           INTEGER OPTIONAL,
  315.   gapExtend         INTEGER OPTIONAL,
  316.   gapScaleFactor    INTEGER OPTIONAL,
  317.   nTerminalExt      INTEGER OPTIONAL,
  318.   cTerminalExt      INTEGER OPTIONAL
  319. }
  320. Node-annotation ::= SEQUENCE {
  321.   presentInChildCD VisibleString OPTIONAL,
  322.   note             VisibleString OPTIONAL
  323. }
  324. -- the Cdd is the basic ASN.1 object storing an annotated and curated set of
  325. -- alignments (formulated as a set of pairwise master-slave alignments). 
  326. -- The alignment data are contained in Seq-annots, and a special type of
  327. -- object, the Update-align, contains additional alignment data from unfinished
  328. -- editing sessions and update processes. The Biostruc-annot-set holds 
  329. -- structure superposition information for multiple structure-derived rows in
  330. -- the alignment.
  331. -- Version numbers in Global-ids are meant to be updated every time the Cdd is
  332. -- changed in a way that does not require Global-ids to be changed (sequences
  333. -- added in update cycle, annotation changed, alignment errors fixed)
  334. Cdd ::= SEQUENCE {
  335.   name          VisibleString,          -- a short name (can be the accession..)
  336.   id            Cdd-id-set,             -- this CD's Ids
  337.   description   Cdd-descr-set OPTIONAL, -- status, references, etc.
  338.   seqannot      SEQUENCE OF Seq-annot    OPTIONAL,  -- contains the CD alignment
  339.   features      Biostruc-annot-set       OPTIONAL,  -- contains structure
  340.                                                     -- alignment data
  341.                                                     -- or "core" definitions
  342.   sequences     Seq-entry     OPTIONAL, -- store as bioseq-set inside seq-entry
  343.   profile-range Seq-interval  OPTIONAL, -- profile for this region only
  344.                                         -- also stores the Seq-id of the master
  345.   trunc-master  Bioseq        OPTIONAL, -- holds the truncated master, which
  346.                                         -- may be something like a consensus,
  347.                                         -- uses the same sequence coordinate
  348.                                         -- frame as the profile-range
  349.   posfreq       Matrix        OPTIONAL, -- relative residue frequencies
  350.   scoremat      Matrix        OPTIONAL, -- Position dependent score matrix
  351.   distance      Triangle      OPTIONAL, -- pairwise distances for all seqs.
  352.   parent        Cdd-id        OPTIONAL, -- this CD is the result of a split
  353.   children      Cdd-id-set    OPTIONAL, -- this CD has been split, not used
  354.   siblings      Cdd-id-set    OPTIONAL, -- related CDs (common hits), not used
  355.   neighbors     Cdd-id-set    OPTIONAL, -- co-occurring CDs, not used
  356.   pending       SEQUENCE OF Update-align OPTIONAL,  -- contains alignments from
  357.                                                     -- update or "lower panel"
  358.   rejects       SEQUENCE OF Reject-id    OPTIONAL,  -- SeqIds of rejected CD-
  359.                                                     -- members, ignore in update
  360.   master3d      SET OF Seq-id OPTIONAL, -- record if CD has a 3D representative
  361.   alignannot    Align-annot-set OPTIONAL,           -- alignment annotation
  362.   style-dictionary Cn3d-style-dictionary OPTIONAL,  -- record rendering styles
  363.   user-annotations Cn3d-user-annotations OPTIONAL,  -- user annotations in Cn3D
  364.   ancestors     SEQUENCE OF Domain-parent OPTIONAL, -- list of parents
  365.   scoreparams   Score-matrix-parameters  OPTIONAL,
  366.   seqtree       Sequence-tree            OPTIONAL
  367. }
  368. Cdd-set ::= SET OF Cdd
  369. -- Cdd projects store a set of CDs, typically related to each other
  370. -- relationships would be specified using the ancestors fields in the
  371. -- individual CD objects. For use with CD-Tree, a program to visualize
  372. -- curated CD hierarchies and evidence for hierarchical family structures.
  373. Cdd-Viewer-Rect ::= SEQUENCE {
  374.   top           INTEGER,           -- top coordinate
  375.   left          INTEGER,           -- left  coordinate
  376.   width         INTEGER,           -- width 
  377.   height        INTEGER            -- height
  378. }
  379. Cdd-Viewer ::= SEQUENCE {
  380.   ctrl          INTEGER {                   -- viewer type
  381.                   unassigned          (0),
  382.   cd-info             (1),
  383.   align-annot         (2),
  384.   seq-list            (3),
  385.   seq-tree            (4),
  386.   merge-preview       (5),
  387.   cross-hits          (6),
  388.   notes               (7),
  389.   tax-tree            (8),
  390.   dart                (9),
  391.   dart-selected-rows (10),
  392.   other (255)
  393.                 },
  394.   rect          Cdd-Viewer-Rect OPTIONAL,  -- viewer rectangle
  395.   accessions    SEQUENCE OF VisibleString  -- list of accessions associated with a viewer
  396. }
  397. Cdd-Script ::= SEQUENCE {
  398.   type          INTEGER {
  399.                   unassigned (0),
  400.                   user-recorded (1),
  401.   server-generated (2),
  402.                   other (255)
  403.                 } OPTIONAL,
  404.   name          VisibleString OPTIONAL,   -- user assigned name/description
  405.   commands      VisibleString             -- actual script commands
  406. }
  407. -- cd colors are as:  0000FF for red, 00FF00 for green, FF0000 for blue
  408. Cdd-Project ::= SEQUENCE {
  409.   cds           SEQUENCE OF Cdd ,         -- cds
  410.   cdcolor       SEQUENCE OF INTEGER,      -- colors  
  411.   viewers       SEQUENCE OF Cdd-Viewer,   -- Sequence viewers
  412.   log           VisibleString,            -- log
  413.   scripts       SEQUENCE OF Cdd-Script OPTIONAL    -- command scripts
  414. }
  415. END