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

生物技术

开发平台:

C/C++

  1.     enum Num-enum ,              -- enumerated names for residues
  2.     ref Num-ref ,                -- by reference to another sequence
  3.     real Num-real }              -- supports mapping to a float system
  4.     
  5. Num-cont ::= SEQUENCE {          -- continuous display numbering system
  6.     refnum INTEGER DEFAULT 1,         -- number assigned to first residue
  7.     has-zero BOOLEAN DEFAULT FALSE ,  -- 0 used?
  8.     ascending BOOLEAN DEFAULT TRUE }  -- ascending numbers?
  9. Num-enum ::= SEQUENCE {          -- any tags to residues
  10.     num INTEGER ,                        -- number of tags to follow
  11.     names SEQUENCE OF VisibleString }    -- the tags
  12. Num-ref ::= SEQUENCE {           -- by reference to other sequences
  13.     type ENUMERATED {            -- type of reference
  14.         not-set (0) ,
  15.         sources (1) ,            -- by segmented or const seq sources
  16.         aligns (2) } ,           -- by alignments given below
  17.     aligns Seq-align OPTIONAL }
  18. Num-real ::= SEQUENCE {          -- mapping to floating point system
  19.     a REAL ,                     -- from an integer system used by Bioseq
  20.     b REAL ,                     -- position = (a * int_position) + b
  21.     units VisibleString OPTIONAL }
  22. Pubdesc ::= SEQUENCE {              -- how sequence presented in pub
  23.     pub Pub-equiv ,                 -- the citation(s)
  24.     name VisibleString OPTIONAL ,   -- name used in paper
  25.     fig VisibleString OPTIONAL ,    -- figure in paper
  26.     num Numbering OPTIONAL ,        -- numbering from paper
  27.     numexc BOOLEAN OPTIONAL ,       -- numbering problem with paper
  28.     poly-a BOOLEAN OPTIONAL ,       -- poly A tail indicated in figure?
  29.     maploc VisibleString OPTIONAL , -- map location reported in paper
  30.     seq-raw StringStore OPTIONAL ,  -- original sequence from paper
  31.     align-group INTEGER OPTIONAL ,  -- this seq aligned with others in paper
  32.     comment VisibleString OPTIONAL, -- any comment on this pub in context
  33. reftype INTEGER {           -- type of reference in a GenBank record
  34. seq (0) ,               -- refers to sequence
  35. sites (1) ,             -- refers to unspecified features
  36. feats (2) ,             -- refers to specified features
  37. no-target (3) }         -- nothing specified (EMBL)
  38. DEFAULT seq }
  39. Heterogen ::= VisibleString       -- cofactor, prosthetic group, inibitor, etc
  40. --*** Instances of sequences *******************************
  41. --*
  42. Seq-inst ::= SEQUENCE {            -- the sequence data itself
  43.     repr ENUMERATED {              -- representation class
  44.         not-set (0) ,              -- empty
  45.         virtual (1) ,              -- no seq data
  46.         raw (2) ,                  -- continuous sequence
  47.         seg (3) ,                  -- segmented sequence
  48.         const (4) ,                -- constructed sequence
  49.         ref (5) ,                  -- reference to another sequence
  50.         consen (6) ,               -- consensus sequence or pattern
  51.         map (7) ,                  -- ordered map of any kind
  52.         delta (8) ,              -- sequence made by changes (delta) to others
  53.         other (255) } ,
  54.     mol ENUMERATED {               -- molecule class in living organism
  55.         not-set (0) ,              --   > cdna = rna
  56.         dna (1) ,
  57.         rna (2) ,
  58.         aa (3) ,
  59.         na (4) ,                   -- just a nucleic acid
  60.         other (255) } ,
  61.     length INTEGER OPTIONAL ,      -- length of sequence in residues
  62.     fuzz Int-fuzz OPTIONAL ,       -- length uncertainty
  63.     topology ENUMERATED {          -- topology of molecule
  64.         not-set (0) ,
  65.         linear (1) ,
  66.         circular (2) ,
  67.         tandem (3) ,               -- some part of tandem repeat
  68.         other (255) } DEFAULT linear ,
  69.     strand ENUMERATED {            -- strandedness in living organism
  70.         not-set (0) ,
  71.         ss (1) ,                   -- single strand
  72.         ds (2) ,                   -- double strand
  73.         mixed (3) ,
  74.         other (255) } OPTIONAL ,   -- default ds for DNA, ss for RNA, pept
  75.     seq-data Seq-data OPTIONAL ,   -- the sequence
  76.     ext Seq-ext OPTIONAL ,         -- extensions for special types
  77.     hist Seq-hist OPTIONAL }       -- sequence history
  78. --*** Sequence Extensions **********************************
  79. --*  for representing more complex types
  80. --*  const type uses Seq-hist.assembly
  81. Seq-ext ::= CHOICE {
  82.     seg Seg-ext ,        -- segmented sequences
  83.     ref Ref-ext ,        -- hot link to another sequence (a view)
  84.     map Map-ext ,        -- ordered map of markers
  85.     delta Delta-ext }
  86. Seg-ext ::= SEQUENCE OF Seq-loc
  87. Ref-ext ::= Seq-loc
  88. Map-ext ::= SEQUENCE OF Seq-feat
  89. Delta-ext ::= SEQUENCE OF Delta-seq
  90. Delta-seq ::= CHOICE {
  91.     loc Seq-loc ,       -- point to a sequence
  92.     literal Seq-literal }   -- a piece of sequence
  93. Seq-literal ::= SEQUENCE {
  94.     length INTEGER ,         -- must give a length in residues
  95.     fuzz Int-fuzz OPTIONAL , -- could be unsure
  96.     seq-data Seq-data OPTIONAL } -- may have the data
  97. --*** Sequence History Record ***********************************
  98. --** assembly = records how seq was assembled from others
  99. --** replaces = records sequences made obsolete by this one
  100. --** replaced-by = this seq is made obsolete by another(s)
  101. Seq-hist ::= SEQUENCE {
  102.     assembly SET OF Seq-align OPTIONAL ,-- how was this assembled?
  103.     replaces Seq-hist-rec OPTIONAL ,    -- seq makes these seqs obsolete
  104.     replaced-by Seq-hist-rec OPTIONAL , -- these seqs make this one obsolete
  105.     deleted CHOICE {
  106.         bool BOOLEAN ,
  107.         date Date } OPTIONAL }
  108. Seq-hist-rec ::= SEQUENCE {
  109.     date Date OPTIONAL ,
  110.     ids SET OF Seq-id }
  111.     
  112. --*** Various internal sequence representations ************
  113. --*      all are controlled, fixed length forms
  114. Seq-data ::= CHOICE {              -- sequence representations
  115.     iupacna IUPACna ,              -- IUPAC 1 letter nuc acid code
  116.     iupacaa IUPACaa ,              -- IUPAC 1 letter amino acid code
  117.     ncbi2na NCBI2na ,              -- 2 bit nucleic acid code
  118.     ncbi4na NCBI4na ,              -- 4 bit nucleic acid code
  119.     ncbi8na NCBI8na ,              -- 8 bit extended nucleic acid code
  120.     ncbipna NCBIpna ,              -- nucleic acid probabilities
  121.     ncbi8aa NCBI8aa ,              -- 8 bit extended amino acid codes
  122.     ncbieaa NCBIeaa ,              -- extended ASCII 1 letter aa codes
  123.     ncbipaa NCBIpaa ,              -- amino acid probabilities
  124.     ncbistdaa NCBIstdaa }          -- consecutive codes for std aas
  125. IUPACna ::= StringStore       -- IUPAC 1 letter codes, no spaces
  126. IUPACaa ::= StringStore       -- IUPAC 1 letter codes, no spaces
  127. NCBI2na ::= OCTET STRING      -- 00=A, 01=C, 10=G, 11=T
  128. NCBI4na ::= OCTET STRING      -- 1 bit each for agct
  129.                               -- 0001=A, 0010=C, 0100=G, 1000=T/U
  130.                               -- 0101=Purine, 1010=Pyrimidine, etc
  131. NCBI8na ::= OCTET STRING      -- for modified nucleic acids
  132. NCBIpna ::= OCTET STRING      -- 5 octets/base, prob for a,c,g,t,n
  133.                               -- probabilities are coded 0-255 = 0.0-1.0
  134. NCBI8aa ::= OCTET STRING      -- for modified amino acids
  135. NCBIeaa ::= StringStore       -- ASCII extended 1 letter aa codes
  136.                               -- IUPAC codes + U=selenocysteine
  137. NCBIpaa ::= OCTET STRING      -- 25 octets/aa, prob for IUPAC aas in order:
  138.                               -- A-Y,B,Z,X,(ter),anything
  139.                               -- probabilities are coded 0-255 = 0.0-1.0
  140. NCBIstdaa ::= OCTET STRING    -- codes 0-25, 1 per byte
  141. --*** Sequence Annotation *************************************
  142. --*
  143. Annot-id ::= CHOICE {
  144.     local Object-id ,
  145.     ncbi INTEGER ,
  146.     general Dbtag }
  147.     
  148. Annot-descr ::= SET OF Annotdesc
  149. Annotdesc ::= CHOICE {
  150.     name VisibleString ,         -- a short name for this collection
  151.     title VisibleString ,        -- a title for this collection
  152.     comment VisibleString ,      -- a more extensive comment
  153.     pub Pubdesc ,                -- a reference to the publication
  154.     user User-object ,           -- user defined object
  155.     create-date Date ,           -- date entry first created/released
  156.     update-date Date ,           -- date of last update
  157.     src Seq-id ,                 -- source sequence from which annot came
  158.     align Align-def,             -- definition of the SeqAligns
  159.     region Seq-loc }             -- all contents cover this region
  160. Align-def ::= SEQUENCE {
  161.     align-type INTEGER {         -- class of align Seq-annot
  162.       ref (1) ,                  -- set of alignments to the same sequence
  163.       alt (2) ,                  -- set of alternate alignments of the same seqs
  164.       blocks (3) ,               -- set of aligned blocks in the same seqs
  165.       other (255) } ,
  166.     ids SET OF Seq-id OPTIONAL } -- used for the one ref seqid for now
  167. Seq-annot ::= SEQUENCE {
  168.     id SET OF Annot-id OPTIONAL ,
  169.     db INTEGER {                 -- source of annotation
  170.         genbank (1) ,
  171.         embl (2) ,
  172.         ddbj (3) ,
  173.         pir  (4) ,
  174.         sp   (5) ,
  175.         bbone (6) ,
  176.         pdb   (7) ,
  177.         other (255) } OPTIONAL ,
  178.     name VisibleString OPTIONAL ,-- source if "other" above
  179.     desc Annot-descr OPTIONAL ,  -- used only for stand alone Seq-annots
  180.     data CHOICE {
  181.         ftable SET OF Seq-feat ,
  182.         align SET OF Seq-align ,
  183.         graph SET OF Seq-graph ,
  184.         ids SET OF Seq-id ,        -- used for communication between tools
  185.         locs SET OF Seq-loc } }    -- used for communication between tools
  186. END
  187. --$Revision: 1000.1 $
  188. --********************************************************************
  189. --
  190. --  Direct Submission of Sequence Data
  191. --  James Ostell, 1991
  192. --
  193. --  This is a trial specification for direct submission of sequence
  194. --    data worked out between NCBI and EMBL
  195. --  Later revised to reflect work with GenBank and Integrated database
  196. --
  197. --  Version 3.0, 1994
  198. --    This is the official NCBI sequence submission format now.
  199. --
  200. --********************************************************************
  201. NCBI-Submit DEFINITIONS ::=
  202. BEGIN
  203. EXPORTS Seq-submit, Contact-info;
  204. IMPORTS Cit-sub, Author FROM NCBI-Biblio
  205.         Date, Object-id FROM NCBI-General
  206.         Seq-annot FROM NCBI-Sequence
  207.         Seq-id FROM NCBI-Seqloc
  208.         Seq-entry FROM NCBI-Seqset;
  209. Seq-submit ::= SEQUENCE {
  210.     sub Submit-block ,
  211.     data CHOICE {
  212.         entrys  SET OF Seq-entry ,  -- sequence(s)
  213.         annots  SET OF Seq-annot ,  -- annotation(s)
  214.         delete  SET OF Seq-id } } -- deletions of entries
  215. Submit-block ::= SEQUENCE {
  216.     contact Contact-info ,        -- who to contact
  217.     cit Cit-sub ,                 -- citation for this submission
  218.     hup BOOLEAN DEFAULT FALSE ,   -- hold until publish
  219.     reldate Date OPTIONAL ,       -- release by date
  220.     subtype INTEGER {             -- type of submission
  221.         new (1) ,                 -- new data
  222.         update (2) ,              -- update by author
  223.         revision (3) ,            -- 3rd party (non-author) update
  224.         other (255) } OPTIONAL ,
  225.     tool VisibleString OPTIONAL,  -- tool used to make submission
  226.     user-tag VisibleString OPTIONAL, -- user supplied id for this submission
  227.     comment VisibleString OPTIONAL } -- user comments/advice to database
  228. Contact-info ::= SEQUENCE {      -- who to contact to discuss the submission
  229.     name VisibleString OPTIONAL ,        -- OBSOLETE: will be removed
  230.     address SEQUENCE OF VisibleString OPTIONAL ,
  231.     phone VisibleString OPTIONAL ,
  232.     fax VisibleString OPTIONAL ,
  233.     email VisibleString OPTIONAL ,
  234.     telex VisibleString OPTIONAL ,
  235.     owner-id Object-id OPTIONAL ,         -- for owner accounts
  236.     password OCTET STRING OPTIONAL ,
  237.     last-name VisibleString OPTIONAL ,  -- structured to replace name above
  238.     first-name VisibleString OPTIONAL ,
  239.     middle-initial VisibleString OPTIONAL ,
  240.     contact Author OPTIONAL }           -- WARNING: this will replace the above
  241. END
  242. --$Revision: 1000.1 $
  243. --****************************************************************
  244. --
  245. --  NCBI Project Definition Module
  246. --  by Jim Ostell and Jonathan Kans, 1998
  247. --
  248. --****************************************************************
  249. NCBI-Project DEFINITIONS ::=
  250. BEGIN
  251. EXPORTS Project, Project-item;
  252. IMPORTS Date FROM NCBI-General
  253.         PubMedId FROM NCBI-Biblio
  254.         Seq-id, Seq-loc FROM NCBI-Seqloc
  255.         Seq-annot, Pubdesc FROM NCBI-Sequence
  256.         Seq-entry FROM NCBI-Seqset
  257.         Pubmed-entry FROM NCBI-PubMed;
  258. Project ::= SEQUENCE {
  259.     descr Project-descr OPTIONAL ,
  260.     data Project-item }
  261. Project-item ::= CHOICE {
  262.     pmuid SET OF INTEGER ,
  263.     protuid SET OF INTEGER ,
  264.     nucuid SET OF INTEGER ,
  265.     sequid SET OF INTEGER ,
  266.     genomeuid SET OF INTEGER ,
  267.     structuid SET OF INTEGER ,
  268.     pmid SET OF PubMedId ,
  269.     protid SET OF Seq-id ,
  270.     nucid SET OF Seq-id ,
  271.     seqid SET OF Seq-id ,
  272.     genomeid SET OF Seq-id ,
  273.     structid NULL ,
  274.     pment SET OF Pubmed-entry ,
  275.     protent SET OF Seq-entry ,
  276.     nucent SET OF Seq-entry ,
  277.     seqent SET OF Seq-entry ,
  278.     genomeent SET OF Seq-entry ,
  279.     structent NULL ,
  280.     seqannot SET OF Seq-annot ,
  281.     loc SET OF Seq-loc ,
  282.     proj SET OF Project
  283. }
  284. Project-descr ::= SEQUENCE {
  285.     id SET OF Project-id ,
  286.     name VisibleString OPTIONAL ,
  287.     descr SET OF Projdesc OPTIONAL }
  288. Projdesc ::= CHOICE {
  289.     pub Pubdesc ,
  290.     date Date ,
  291.     comment VisibleString ,
  292.     title VisibleString
  293. }
  294. Project-id ::= VisibleString
  295. END
  296. --$Revision: 1000.1 $
  297. --**********************************************************************
  298. --
  299. --  Biological Macromolecule 3-D Structure Data Types for MMDB,
  300. --                A Molecular Modeling Database
  301. --
  302. --  Definitions for a biomolecular assembly and the MMDB database
  303. --
  304. --  By Hitomi Ohkawa, Jim Ostell, Chris Hogue, and Steve Bryant 
  305. --
  306. --  National Center for Biotechnology Information
  307. --  National Institutes of Health
  308. --  Bethesda, MD 20894 USA
  309. --
  310. --  July 1995
  311. --
  312. --**********************************************************************
  313. -- Contents of the MMDB database are currently based on files distributed by
  314. -- the Protein Data Bank, PDB.  These data are changed in form, as described
  315. -- in this specification. To some extent they are also changed in content, in 
  316. -- that many data items implicit in PDB are made explicit, and others are
  317. -- corrected or omitted as a consequence of validation checks.  The semantics
  318. -- of MMDB data items are indicated by comments within the specification below.
  319. -- These comments explain in detail the manner in which data items from  PDB 
  320. -- have been mapped into MMDB. 
  321. MMDB DEFINITIONS ::=
  322. BEGIN
  323. EXPORTS Biostruc, Biostruc-id, Biostruc-set, Biostruc-annot-set,
  324. Biostruc-residue-graph-set;
  325. IMPORTS Biostruc-graph, Biomol-descr, Residue-graph FROM MMDB-Chemical-graph 
  326. Biostruc-model FROM MMDB-Structural-model
  327. Biostruc-feature-set FROM MMDB-Features
  328. Pub FROM NCBI-Pub
  329. Date, Object-id, Dbtag FROM NCBI-General;
  330. -- A structure report or "biostruc" describes the components of a biomolecular 
  331. -- assembly in terms of their names and descriptions, and a chemical graph 
  332. -- giving atomic formula, connectivity and chirality. It also gives one or more
  333. -- three-dimensional model structures, literally a mapping of the atoms, 
  334. -- residues and/or molecules of each component into a measured three-
  335. -- dimensional space. Structure may also be described by named features, which 
  336. -- associate nodes in the chemical graph, or regions in space, with text or 
  337. -- numeric descriptors.
  338. -- Note that a biostruc may also contain cross references to other databases,
  339. -- including citations to relevant scientific literature. These cross 
  340. -- references use object types from other NCBI data specifications, which are 
  341. -- "imported" into MMDB, and not repeated in this specification. 
  342. Biostruc ::= SEQUENCE {
  343. id SEQUENCE OF Biostruc-id,
  344. descr SEQUENCE OF Biostruc-descr OPTIONAL,
  345. chemical-graph Biostruc-graph,
  346. features SEQUENCE OF Biostruc-feature-set OPTIONAL,
  347. model SEQUENCE OF Biostruc-model OPTIONAL }
  348. -- A Biostruc-id is a collection identifiers for the molecular assembly.
  349. -- Mmdb-id's are NCBI-assigned, and are intended to be unique and stable 
  350. -- identifiers.  Other-id's are synonyms.
  351. Biostruc-id ::= CHOICE {
  352. mmdb-id Mmdb-id,
  353. other-database Dbtag,
  354. local-id Object-id }
  355. Mmdb-id ::= INTEGER
  356. -- The description of a biostruc refers to both the reported chemical and 
  357. -- spatial structure of a biomolecular assembly.  PDB-derived descriptors
  358. -- which refer specifically to the chemical components or spatial structure
  359. -- are not provided here, but instead as descriptors of the biostruc-graph or 
  360. -- biostruc-model. For PDB-derived structures the biostruc name is the PDB 
  361. -- id-code.  PDB-derived citations appear as publications within the biostruc 
  362. -- description, and include a data-submission citation derived from PDB AUTHOR 
  363. -- records.  Citations are described using the NCBI Pub specification.
  364. Biostruc-descr ::= CHOICE {
  365. name VisibleString,
  366. pdb-comment VisibleString,
  367. other-comment VisibleString,
  368. history Biostruc-history, 
  369. attribution Pub }
  370. -- The history of a biostruc indicates it's origin and it's update history
  371. -- within MMDB, the NCBI-maintained molecular structure database.  
  372. Biostruc-history ::= SEQUENCE {
  373. replaces Biostruc-replace OPTIONAL,
  374. replaced-by Biostruc-replace OPTIONAL,
  375. data-source Biostruc-source OPTIONAL }
  376. Biostruc-replace ::= SEQUENCE {
  377. id Biostruc-id,
  378. date Date }
  379. -- The origin of a biostruc is a reference to another database.  PDB release 
  380. -- date and PDB-assigned id codes are recorded here, as are the PDB-assigned 
  381. -- entry date and replacement history.
  382. Biostruc-source ::= SEQUENCE {
  383. name-of-database VisibleString,
  384. version-of-database CHOICE {
  385. release-date Date,
  386. release-code VisibleString } OPTIONAL,
  387. database-entry-id Biostruc-id,
  388. database-entry-date Date,
  389. database-entry-history SEQUENCE OF VisibleString OPTIONAL}
  390. -- A biostruc set is a means to collect ASN.1 data for many biostrucs in 
  391. -- one file, as convenient for application programs.  The object type is not
  392. -- inteded to imply similarity of the biostrucs grouped together.
  393. Biostruc-set ::= SEQUENCE {
  394. id SEQUENCE OF Biostruc-id OPTIONAL,
  395. descr SEQUENCE OF Biostruc-descr OPTIONAL,
  396. biostrucs SEQUENCE OF Biostruc }
  397. -- A biostruc annotation set is a means to collect ASN.1 data for biostruc
  398. -- features into one file. The object type is intended as a means to store 
  399. -- feature annotation of similar type, such as "core" definitions for a 
  400. -- threading program, or structure-structure alignments for a structure-
  401. -- similarity browser.
  402. Biostruc-annot-set ::= SEQUENCE {
  403. id SEQUENCE OF Biostruc-id OPTIONAL,
  404. descr SEQUENCE OF Biostruc-descr OPTIONAL,
  405. features SEQUENCE OF Biostruc-feature-set }
  406. -- A biostruc residue graph set is a collection of residue graphs.  The object
  407. -- type is intended as a means to record dictionaries containing the chemical
  408. -- subgraphs of "standard" residue types, which are used as a means to 
  409. -- simplify discription of the covalent structure of a biomolecular assembly.
  410. -- The standard residue graph dictionary supplied with the MMDB database 
  411. -- contains 20 standard L amino acids and 8 standard ribonucleotide groups. 
  412. -- These graphs are complete, including explicit hydrogen atoms and separate 
  413. -- instances for the terminal polypeptide and polynucleotide residues. 
  414. Biostruc-residue-graph-set ::= SEQUENCE {
  415. id SEQUENCE OF Biostruc-id OPTIONAL,
  416. descr SEQUENCE OF Biomol-descr OPTIONAL,
  417. residue-graphs SEQUENCE OF Residue-graph }
  418. END
  419. --**********************************************************************
  420. --
  421. --  Biological Macromolecule 3-D Structure Data Types for MMDB,
  422. --                A Molecular Modeling Database
  423. --
  424. --  Definitions for a chemical graph
  425. --
  426. --  By Hitomi Ohkawa, Jim Ostell, Chris Hogue and Steve Bryant 
  427. --
  428. --  National Center for Biotechnology Information
  429. --  National Institutes of Health
  430. --  Bethesda, MD 20894 USA
  431. --
  432. --  July, 1995
  433. --
  434. --**********************************************************************
  435. MMDB-Chemical-graph DEFINITIONS ::=
  436. BEGIN
  437. EXPORTS Biostruc-graph, Biomol-descr, Residue-graph,
  438. Molecule-id, Residue-id, Atom-id;
  439. IMPORTS Pub FROM NCBI-Pub
  440. BioSource FROM NCBI-BioSource
  441. Seq-id FROM NCBI-Seqloc
  442. Biostruc-id FROM MMDB;
  443. -- A biostruc graph contains the complete chemical graph of the biomolecular 
  444. -- assembly.  The assembly graph is defined hierarchically, in terms of 
  445. -- subgraphs graphs of component molecules.  For PDB-derived biostrucs,
  446. -- the molecules forming the assembly are the individual biopolymer chains and 
  447. -- any non-polymer or "heterogen" groups which are present. 
  448. -- The PDB-derived  "compound name" field appears as the name within the
  449. -- biostruc-graph description.  PDB "class" and "source" fields appear as 
  450. -- explicit attributes.  PDB-derived structures are assigned an assembly type 
  451. -- of "other" unless they have been further classified as the "physiological
  452. -- form" or "crystallographic cell" contents.  If they have, the source of the 
  453. -- type classification appears as a citation within the  assembly description. 
  454. -- Note that the biostruc-graph also includes as literals the subgraphs of 
  455. -- any nonstandard residues present within it. For PDB-derived biostrucs these 
  456. -- subgraphs are constructed automatically, with validation as described below.
  457. Biostruc-graph ::= SEQUENCE {
  458. descr SEQUENCE OF Biomol-descr OPTIONAL,
  459. molecule-graphs SEQUENCE OF Molecule-graph,
  460. inter-molecule-bonds SEQUENCE OF Inter-residue-bond OPTIONAL,
  461. residue-graphs SEQUENCE OF Residue-graph OPTIONAL }
  462. -- A biomolecule description refers to the chemical structure of a molecule or 
  463. -- component substructures.  This descriptor type is used at the level of
  464. -- assemblies, molecules and residues, and also for residue-graph dictionaries.
  465. -- The BioSource object type is drawn from NCBI taxonomy data specifications,
  466. -- and is not repeated here.
  467. Biomol-descr ::= CHOICE {
  468. name VisibleString,
  469. pdb-class VisibleString,
  470. pdb-source VisibleString,
  471. pdb-comment VisibleString,
  472. other-comment VisibleString,
  473. organism BioSource,
  474. attribution Pub,
  475. assembly-type INTEGER { physiological-form(1),
  476. crystallographic-cell(2),
  477. other(255) },
  478. molecule-type INTEGER { dna(1),
  479. rna(2),
  480. protein(3),
  481. other-biopolymer(4),
  482. solvent(5),
  483. other-nonpolymer(6),
  484. other(255) } }
  485. -- A molecule chemical graph is defined by a sequence of residues.  Nonpolymers
  486. -- are described in the same way, but may contain only a single residue.  
  487. -- Biopolymer molecules are identified within PDB entries according to their
  488. -- appearance on SEQRES records, which formally define a biopolymer as such. 
  489. -- Biopolymers are defined by the distinction between ATOM and HETATM 
  490. -- coordinate records only in cases where the chemical sequence from SEQRES
  491. -- is in conflict with coordinate data. The PDB-assigned chain code appears as 
  492. -- the name within the molecule descriptions of the biopolymers.
  493. -- Nonpolymer molecules from PDB correspond to individual HETEROGEN groups, 
  494. -- excluding any HETEROGEN groups which represent modified biopolymer residues.
  495. -- These molecules are named according to the chain, residue type and residue 
  496. -- number fields as assigned by PDB. Any description appearing in the PDB HET 
  497. -- record appears as a pdb-comment within the molecule description. 
  498. -- Molecule types for PDB-derived molecule graphs are assigned by matching 
  499. -- residue and atom names against the PDB-documented standard types for protein,
  500. -- DNA and RNA, and against residue codes commonly used to indicate solvent.
  501. -- Classification is by "majority rule". If more than half of the residues in
  502. -- a biopolymer are standard groups of one type, then the molecule is of that 
  503. -- type, and otherwise classified as "other". Note that this classification does
  504. -- not preclude the presence of modified residues, but insists they constitute 
  505. -- less than half the biopolymer. Non-polymers are classified only as "solvent"
  506. -- or "other".  
  507. -- Note that a molecule graph may also contain a set of cross references 
  508. -- to biopolymer sequence databases.  All biopolymer molecules in MMDB contain 
  509. -- appropriate identifiers for the corresponding entry in the NCBI-Sequences 
  510. -- database, in particular the NCBI "gi" number, which may be used for sequence
  511. -- retrieval. The Seq-id object type is defined in the NCBI molecular sequence 
  512. -- specification, and not repeated here.
  513. Molecule-graph ::= SEQUENCE {
  514. id Molecule-id,
  515. descr SEQUENCE OF Biomol-descr OPTIONAL,
  516. seq-id Seq-id OPTIONAL,
  517. residue-sequence SEQUENCE OF Residue,
  518. inter-residue-bonds SEQUENCE OF Inter-residue-bond OPTIONAL }
  519.    
  520. Molecule-id ::= INTEGER
  521. -- Residues may be assigned a text-string name as well as an id number. PDB 
  522. -- assigned residue numbers appear as the residue name.
  523. Residue ::= SEQUENCE {
  524. id Residue-id,
  525. name VisibleString OPTIONAL,
  526. residue-graph Residue-graph-pntr }
  527. Residue-id ::= INTEGER
  528. -- Residue graphs from different sources may be referenced within a molecule
  529. -- graph.  The allowed choices are the nonstandard residue graphs included in 
  530. -- the present biostruc, residue graphs within other biostrucs, or residue 
  531. -- graphs within tables of standard residue definitions.
  532. Residue-graph-pntr ::= CHOICE {
  533. local Residue-graph-id,
  534. biostruc Biostruc-graph-pntr,
  535. standard Biostruc-residue-graph-set-pntr }
  536. Biostruc-graph-pntr ::= SEQUENCE {
  537. biostruc-id Biostruc-id,
  538. residue-graph-id Residue-graph-id }
  539. Biostruc-residue-graph-set-pntr ::= SEQUENCE {
  540. biostruc-residue-graph-set-id Biostruc-id,
  541. residue-graph-id Residue-graph-id } 
  542. -- Residue graphs define atomic formulae, connectivity, chirality, and names.
  543. -- For standard residue graphs from the MMDB dictionary the PDB-assigned 
  544. -- residue-type code appears as the name within the residue graph description,
  545. -- and the full trivial name of the residue as a comment within that 
  546. -- description.  For any nonstandard residue graphs provided with an MMDB 
  547. -- biostruc the PDB-assigned residue-type code similarly appears as the name 
  548. -- within the description, and any information provided on PDB HET records as 
  549. -- a pdb-comment within that description.  
  550. -- Note that nonstandard residue graphs for a PDB-derived biostruc may be 
  551. -- incomplete. Current PDB format cannot represent connectivity for groups 
  552. -- which are disordered, and for which no coordinates are given.  In these 
  553. -- cases the residue graph defined in MMDB represents only the subgraph that 
  554. -- could be identified from available ATOM, HETATM and CONECT records.
  555. Residue-graph ::= SEQUENCE {
  556. id Residue-graph-id,
  557. descr SEQUENCE OF Biomol-descr OPTIONAL,
  558. residue-type INTEGER { deoxyribonucleotide(1),
  559. ribonucleotide(2),
  560. amino-acid(3),
  561. other(255) } OPTIONAL,
  562. iupac-code SEQUENCE OF VisibleString OPTIONAL,
  563. atoms SEQUENCE OF Atom,
  564. bonds SEQUENCE OF Intra-residue-bond,
  565. chiral-centers SEQUENCE OF Chiral-center OPTIONAL }
  566. Residue-graph-id ::= INTEGER
  567. -- Atoms in residue graphs are defined by elemental symbols and names.  PDB-
  568. -- assigned atom names appear here in the name field, except in cases of known 
  569. -- PDB synonyms.  In these cases atom names are mapped to the names used in the
  570. -- MMDB standard dictionary. This occurs primarily for hydrogen atoms, where 
  571. -- PDB practice allows synonyms for several atom types.  For PDB atoms the 
  572. -- elemental symbol is obtained by parsing the PDB atom name field, allowing 
  573. -- for known special-semantics cases where the atom name does not follow the
  574. -- documented encoding rule.  Ionizable protons are identified within standard 
  575. -- residue graphs in the MMDB dictionary, but not within automatically-defined
  576. -- nonstandard graphs.
  577. Atom ::= SEQUENCE {
  578. id Atom-id,
  579. name VisibleString OPTIONAL,
  580. iupac-code SEQUENCE OF VisibleString OPTIONAL,
  581. element ENUMERATED {
  582. h(1),   he(2),  li(3),  be(4),  b(5), 
  583. c(6),   n(7),   o(8),   f(9),   ne(10), 
  584. na(11), mg(12), al(13), si(14), p(15), 
  585. s(16),  cl(17), ar(18), k(19),  ca(20), 
  586. sc(21), ti(22), v(23),  cr(24), mn(25), 
  587. fe(26), co(27), ni(28), cu(29), zn(30), 
  588. ga(31), ge(32), as(33), se(34), br(35), 
  589. kr(36), rb(37), sr(38), y(39),  zr(40),
  590. nb(41), mo(42), tc(43), ru(44), rh(45),
  591. pd(46), ag(47), cd(48), in(49), sn(50),
  592. sb(51), te(52), i(53),  xe(54), cs(55),
  593. ba(56), la(57), ce(58), pr(59), nd(60),
  594. pm(61), sm(62), eu(63), gd(64), tb(65),
  595. dy(66), ho(67), er(68), tm(69), yb(70),
  596. lu(71), hf(72), ta(73), w(74),  re(75),
  597. os(76), ir(77), pt(78), au(79), hg(80),
  598. tl(81), pb(82), bi(83), po(84), at(85),
  599. rn(86), fr(87), ra(88), ac(89), th(90),
  600. pa(91), u(92),  np(93), pu(94), am(95),
  601. cm(96), bk(97), cf(98), es(99), 
  602. fm(100), md(101), no(102), lr(103),
  603. other(254), unknown(255) },
  604. ionizable-proton ENUMERATED {
  605. true(1),
  606. false(2),
  607. unknown(255) } OPTIONAL }
  608. Atom-id ::= INTEGER
  609. -- Intra-residue-bond specifies connectivity between atoms in Residue-graph.
  610. -- Unlike Inter-residue-bond defined later, its participating atoms are part of
  611. -- a residue subgraph dictionary, not part of a specific biostruc-graph.
  612. -- For residue graphs in the standard MMDB dictionary bonds are defined from
  613. -- the known chemical structures of amino acids and nucleotides.  For 
  614. -- nonstandard residue graphs bonds are defined from PDB CONECT records, with
  615. -- validation for consistency with coordinate data, and from stereochemical
  616. -- calculation to identify unreported bonds.  Validation and bond identification
  617. -- are based on comparison of inter-atomic distances to the sum of covalent
  618. -- radii for the corresponding elements. 
  619. Intra-residue-bond ::= SEQUENCE {
  620. atom-id-1 Atom-id,
  621. atom-id-2 Atom-id,
  622. bond-order INTEGER {
  623. single(1), 
  624. partial-double(2),
  625. aromatic(3), 
  626. double(4),
  627. triple(5),
  628. other(6),
  629. unknown(255)} OPTIONAL }
  630. -- Chiral centers are atoms with tetrahedral geometry.  Chirality is defined
  631. -- by a chiral volume involving the chiral center and 3 other atoms bonded to 
  632. -- it.  For any coordinates assigned to atoms c, n1, n2, and n3, the vector 
  633. -- triple product (n1-c) dot ( (n2-c) cross (n3-c) ) must have the indicated
  634. -- sign.  The calculation assumes an orthogonal right-handed coordinate system
  635. -- as is used for MMDB model structures.  
  636. -- Chirality is defined for standard residues in the MMDB dictionary, but is 
  637. -- not assigned automatically for PDB-derived nonstandard residues. If assigned
  638. -- for nonstandard residues, the source of chirality information is described 
  639. -- by a citation within the residue description.
  640. Chiral-center ::= SEQUENCE {
  641. c Atom-id,
  642. n1 Atom-id,
  643. n2 Atom-id,
  644. n3 Atom-id,
  645. sign ENUMERATED { positive(1),
  646.      negative(2) } }
  647. -- Inter-residue bonds are defined by a reference to two atoms. For PDB-derived 
  648. -- structures bonds are identified from biopolymer connectivity according to
  649. -- SEQRES and from other connectivity information on SSBOND and CONECT 
  650. -- records. These data are validated and unreported bonds identified by
  651. -- stereochemical calculation, using the same criteria as for intra-residue 
  652. -- bonds.
  653. Inter-residue-bond ::= SEQUENCE {
  654. atom-id-1 Atom-pntr,
  655. atom-id-2 Atom-pntr,
  656. bond-order INTEGER {
  657. single(1), 
  658. partial-double(2),
  659. aromatic(3), 
  660. double(4),
  661. triple(5),
  662. other(6),
  663. unknown(255)} OPTIONAL }
  664. -- Atoms, residues and molecules within the current biostruc are referenced 
  665. -- by hierarchical pointers.
  666. Atom-pntr ::= SEQUENCE {
  667. molecule-id Molecule-id,
  668. residue-id Residue-id,
  669. atom-id Atom-id }
  670. Atom-pntr-set ::= SEQUENCE OF Atom-pntr
  671. END
  672. --$Revision: 1000.1 $
  673. --**********************************************************************
  674. --
  675. --  Biological Macromolecule 3-D Structure Data Types for MMDB,
  676. --                A Molecular Modeling Database
  677. --
  678. --  Definitions for structural models
  679. --
  680. --  By Hitomi Ohkawa, Jim Ostell, Chris Hogue and Steve Bryant 
  681. --
  682. --  National Center for Biotechnology Information
  683. --  National Institutes of Health
  684. --  Bethesda, MD 20894 USA
  685. --
  686. --  July, 1996
  687. --
  688. --**********************************************************************
  689. MMDB-Structural-model DEFINITIONS ::=
  690. BEGIN
  691. EXPORTS Biostruc-model, Model-id, Model-coordinate-set-id;
  692. IMPORTS Chem-graph-pntrs, Atom-pntrs, Chem-graph-alignment,
  693. Sphere, Cone, Cylinder, Brick, Transform FROM MMDB-Features
  694. Biostruc-id FROM MMDB
  695. Pub FROM NCBI-Pub;
  696. -- A structural model maps chemical components into a measured three-
  697. -- dimensional space. PDB-derived biostrucs generally contain 4 models, 
  698. -- corresponding to "views" of the structure of a biomolecular assemble with 
  699. -- increasing levels of complexity.  Model types indicate the complexity of the
  700. -- view.  
  701. -- The model named "NCBI all atom" represents a view suitable for most 
  702. -- computational biology applications.  It provides complete atomic coordinate 
  703. -- data for a "single best" model, omitting statistical disorder information 
  704. -- and/or ensemble structure descriptions provided in the source PDB file.  
  705. -- Construction of the single best model is based on the assumption that the 
  706. -- contents of the "alternate conformation" field from pdb imply no correlation
  707. -- among the occupancies of multiple sites assigned to sets of atoms: the best 
  708. -- site is chosen only on the basis of highest occupancy. Note, however, that 
  709. -- alternate conformation sets where correlation is implied are generally 
  710. -- constrained in crystallographic refinement to have uniform occupancy, and 
  711. -- will thus be selected as a set. For ensemble models the model which assigns 
  712. -- coordinates to the most atoms is chosen.  If numbers of coordinates are the 
  713. -- same, the model occurring first in the PDB file is selected.  The single 
  714. -- best model includes complete coordinates for all nonpolymer components, but 
  715. -- omits those classified as "solvent".  Model type is 3 for this model. 
  716. -- The model named "NCBI backbone" represents a simple view intended for 
  717. -- graphic displays and rapid transmission over a network.  It includes only 
  718. -- alpha carbon or backbone phosphate coordinates for biopolymers. It is based 
  719. -- on selection of alpha-carbon and backbone phosphate atoms from the "NCBI
  720. -- all atom" model. The model type is set to 2.  An even simpler model gives 
  721. -- only a cartoon representation, using cylinders corresponding to secondary 
  722. -- structure elements.  This is named "NCBI vector", and has model type 1.
  723. -- The models named "PDB Model 1", "PDB Model 2", etc. represent the complete
  724. -- information provided by PDB, including full descriptions of statistical
  725. -- disorder.  The name of the model is based on the contents of the PDB MODEL
  726. -- record, with a default name of "PDB Model 1" for PDB files which contain 
  727. -- only a single model.  Construction of these models is based on the 
  728. -- assumption that contents of the PDB "alternate conformation" field are 
  729. -- intended to imply correlation among the occupancies of atom sets flagged by
  730. -- the same identifier.  The special flag " " (blank) is assumed to indicate 
  731. -- sites occupied in all alternate conformations, and sites flagged otherwise,
  732. -- together with " ", to indicate a distinct member of an ensemble of 
  733. -- alternate conformations.  Note that construction of ensemble members 
  734. -- according to these assumption requires two validation checks on PDB 
  735. -- "alternate conformation" flags: they must be unique among sites assigned to 
  736. -- the same atom, and that the special " " flag must occur only for unique
  737. -- sites.  Sites which violate the first check are flagged as "u", for 
  738. -- "unknown"; they are omitted from all ensemble definitions but are 
  739. -- nontheless retained in the coordinate list.  Sites which violate the second
  740. -- check are flagged "b" for "blank", and are included in an appropriately
  741. -- named ensemble.  The model type for pdb all models is 4.
  742. -- Note that in the MMDB database models are stored in the ASN.1 stream in
  743. -- order of increasing model type value.  Since models occur as the last item
  744. -- in a biostruc, parsers may avoid reading the entire stream if the desired
  745. -- model is one of the simplified types, which occur first in the stream. This
  746. -- can save considerable I/O time, particularly for large ensemble models from 
  747. -- NMR determinations.
  748. Biostruc-model ::= SEQUENCE {
  749. id Model-id,
  750. type Model-type,
  751. descr SEQUENCE OF Model-descr OPTIONAL,
  752. model-space Model-space OPTIONAL,
  753. model-coordinates SEQUENCE OF Model-coordinate-set OPTIONAL }
  754. Model-id ::= INTEGER
  755. Model-type ::= INTEGER {
  756. ncbi-vector(1),
  757. ncbi-backbone(2),
  758. ncbi-all-atom(3),
  759. pdb-model(4),
  760. other(255)}
  761. Model-descr ::= CHOICE {
  762. name VisibleString,
  763. pdb-reso                VisibleString,
  764. pdb-method              VisibleString,
  765. pdb-comment VisibleString,
  766. other-comment VisibleString,
  767. attribution Pub }
  768. -- The model space defines measurement units and any external reference frame.
  769. -- Coordinates refer to a right-handed orthogonal system defined on axes 
  770. -- tagged x, y and z in the coordinate and feature definitions of a biostruc.
  771. -- Coordinates from PDB-derived structures are reported without change, in
  772. -- angstrom units.  The units of temperature and occupancy factors are not
  773. -- defined explicitly in PDB, but are inferred from their value range.
  774. Model-space ::= SEQUENCE {
  775. coordinate-units ENUMERATED {
  776. angstroms(1),
  777. nanometers(2),
  778. other(3),
  779. unknown(255)},
  780. thermal-factor-units ENUMERATED {
  781. b(1),
  782. u(2),
  783. other(3),
  784. unknown(255)} OPTIONAL,
  785. occupancy-factor-units ENUMERATED {
  786. fractional(1),
  787. electrons(2),
  788. other(3),
  789. unknown(255)} OPTIONAL,
  790. density-units ENUMERATED {
  791. electrons-per-unit-volume(1),
  792. arbitrary-scale(2),
  793. other(3),
  794. unknown(255)} OPTIONAL,
  795. reference-frame Reference-frame OPTIONAL }
  796. -- An external reference frame is a pointer to another biostruc, with an 
  797. -- optional operator to rotate and translate coordinates into its model space.
  798. -- This item is intended for representation of homology-derived model 
  799. -- structures, and is not present for structures from PDB.
  800. Reference-frame ::= SEQUENCE {
  801. biostruc-id Biostruc-id,
  802. rotation-translation Transform OPTIONAL }
  803. -- Atomic coordinates may be assigned literally or by reference to another
  804. -- biostruc.  The reference coordinate type is used to represent homology-
  805. -- derived model structures.  PDB-derived structures have literal coordinates.
  806. -- Referenced coordinates identify another biostruc, any transformation to be 
  807. -- applied to coordinates from that biostruc, and a mapping of the chemical
  808. -- graph of the present biostruc onto that of the referenced biostruc.  They
  809. -- give an "alignment" of atoms in the current biostruc with those in another,
  810. -- from which the coordinates of matched atoms may be retrieved.  For non-
  811. -- atomic models "alignment" may also be represented by molecule and residue
  812. -- equivalence lists.  Referenced coordinates are a data item inteded for 
  813. -- representation of homology models, with an explicit pointer to their source
  814. -- information. They do not occur in PDB-derived models.
  815. Model-coordinate-set ::= SEQUENCE {
  816. id Model-coordinate-set-id OPTIONAL,
  817. descr SEQUENCE OF Model-descr OPTIONAL,
  818. coordinates CHOICE {
  819. literal Coordinates,
  820. reference Chem-graph-alignment } }
  821. Model-coordinate-set-id ::= INTEGER
  822. -- Literal coordinates map chemical components into the model space.  Three 
  823. -- mapping types are allowed, atomic coordinate models, density-grid models,
  824. -- and surface models. A model consists of a sequence of such coordinate sets, 
  825. -- and may thus combine coordinate subsets which have a different source.  
  826. -- PDB-derived models contain a single atomic coordinate set, as they by
  827. -- definition represent information from a single source.
  828. Coordinates ::= CHOICE {
  829. atomic Atomic-coordinates,
  830. surface Surface-coordinates,
  831. density Density-coordinates }
  832. -- Literal atomic coordinate values give location, occupancy and order
  833. -- parameters, and a pointer to a specific atom defined in the biostruc graph.
  834. -- Temperature and occupancy factors have their conventional crystallographic
  835. -- definitions, with units defined in the model space declaration.  Atoms,
  836. -- sites, temperature-factors, occupancies and alternate-conformation-ids
  837. -- are parallel arrays, i.e. the have the same number of values as given by
  838. -- number-of-points. Conformation ensembles represent distinct correlated-
  839. -- disorder subsets of the coordinates.  They will be present only for certain 
  840. -- "views" of PDB structures, as described above. Their derivation from PDB-
  841. -- supplied "alternate-conformation" ids is described below. 
  842. Atomic-coordinates ::= SEQUENCE {
  843. number-of-points INTEGER,
  844. atoms Atom-pntrs,
  845. sites Model-space-points,
  846. temperature-factors Atomic-temperature-factors OPTIONAL,
  847. occupancies Atomic-occupancies OPTIONAL, 
  848. alternate-conf-ids Alternate-conformation-ids OPTIONAL,
  849. conf-ensembles SEQUENCE OF Conformation-ensemble OPTIONAL }
  850. -- The atoms whose location is described by each coordinate are identified
  851. -- via a hierarchical pointer to the chemical graph of the biomolecular
  852. -- assembly.  Coordinates may be matched with atoms in the chemical structure
  853. -- by the values of the molecule, residue and atom id's given here,  which 
  854. -- match exactly the items of the same type defined in Biostruc-graph.
  855. -- Coordinates are given as integer values, with a scale factor to convert 
  856. -- to real values for each x, y or z, in the units indicated in model-space.
  857. -- Integer values must be divided by the the scale factor.  This use of integer
  858. -- values reduces the ASN.1 stream size. The scale factors for temperature 
  859. -- factors and occupancies are given separately, but must be used in the same 
  860. -- fashion to produce properly scaled real values.
  861. Model-space-points ::= SEQUENCE {
  862. scale-factor INTEGER,
  863. x SEQUENCE OF INTEGER,
  864. y SEQUENCE OF INTEGER,
  865. z SEQUENCE OF INTEGER } 
  866. Atomic-temperature-factors ::= CHOICE {
  867. isotropic Isotropic-temperature-factors,
  868. anisotropic Anisotropic-temperature-factors }
  869. Isotropic-temperature-factors ::= SEQUENCE {
  870. scale-factor INTEGER,
  871. b SEQUENCE OF INTEGER }
  872. Anisotropic-temperature-factors ::= SEQUENCE {
  873. scale-factor INTEGER,
  874. b-11 SEQUENCE OF INTEGER,
  875. b-12 SEQUENCE OF INTEGER,
  876. b-13 SEQUENCE OF INTEGER,
  877. b-22 SEQUENCE OF INTEGER,
  878. b-23 SEQUENCE OF INTEGER,
  879. b-33 SEQUENCE OF INTEGER }
  880. Atomic-occupancies ::= SEQUENCE {
  881. scale-factor INTEGER,
  882. o SEQUENCE OF INTEGER }
  883. -- An alternate conformation id is optionally associated with each coordinate. 
  884. -- Aside from corrections due to the validation checks described above, the 
  885. -- contents of MMDB Alternate-conformation-ids are identical to the PDB 
  886. -- "alternate conformation" field.
  887. Alternate-conformation-ids ::= SEQUENCE OF Alternate-conformation-id 
  888. Alternate-conformation-id ::= VisibleString 
  889. -- Correlated disorder ensemble is defined by a set of alternate conformation 
  890. -- id's which identify coordinates relevant to that ensemble. These are 
  891. -- defined from the validated and corrected contents of the PDB "alternate
  892. -- conformation" field as described above.  A given ensemble, for example, may
  893. -- consist of atom sites flagged by " " and "A" Alternate-conformation-ids. 
  894. -- Names for ensembles are constructed from these flags. This example would be
  895. -- named, in its description, "PDB Ensemble blank plus A".
  896. -- Note that this interpretation is consistent with common PDB usage of the 
  897. -- "alternate conformation" field, but that PDB specifications do not formally
  898. -- distinguish between correlated and uncorrelated disorder in crystallographic
  899. -- models. Ensembles identified in MMDB thus may not correspond to the meaning
  900. -- intended by PDB or the depositor.  No information is lost, however, and
  901. -- if the intended meaning is known alternative ensemble descriptions may be
  902. -- reconstructed directly from the Alternate-conformation-ids.
  903. -- Note that correlated disorder as defined here is allowed within an atomic 
  904. -- coordinate set but not between the multiple sets which may define a model. 
  905. -- Multiple sets within the same model are intended as a means to represent 
  906. -- assemblies modeled from different experimentally determined structures,
  907. -- where correlated disorder between coordinate sets is not relevant.
  908. Conformation-ensemble ::= SEQUENCE {
  909. name VisibleString,
  910. alt-conf-ids SEQUENCE OF Alternate-conformation-id }
  911. -- Literal surface coordinates define the chemical components whose structure
  912. -- is described by a surface, and the surface itself.  The surface may be
  913. -- either a regular geometric solid or a triangle-mesh of arbitrary shape.
  914. Surface-coordinates ::= SEQUENCE {
  915. contents Chem-graph-pntrs,
  916. surface CHOICE { sphere Sphere,
  917. cone Cone,
  918. cylinder Cylinder,
  919. brick Brick,
  920. tmesh T-mesh,
  921. triangles Triangles } }
  922. T-mesh ::= SEQUENCE {
  923. number-of-points INTEGER,
  924. scale-factor INTEGER,
  925. swap SEQUENCE OF BOOLEAN,
  926. x SEQUENCE OF INTEGER,
  927. y SEQUENCE OF INTEGER,
  928. z         SEQUENCE OF INTEGER }
  929. Triangles ::= SEQUENCE {
  930. number-of-points INTEGER,
  931. scale-factor INTEGER,
  932. x SEQUENCE OF INTEGER,
  933. y SEQUENCE OF INTEGER,
  934. z SEQUENCE OF INTEGER,
  935. number-of-triangles     INTEGER,
  936. v1 SEQUENCE OF INTEGER, 
  937. v2 SEQUENCE OF INTEGER,
  938. v3 SEQUENCE OF INTEGER }
  939. -- Literal density coordinates define the chemical components whose structure
  940. -- is described by a density grid, parameters of this grid, and density values.
  941. Density-coordinates ::= SEQUENCE {
  942. contents Chem-graph-pntrs,
  943. grid-corners Brick,
  944. grid-steps-x INTEGER,
  945. grid-steps-y INTEGER,
  946. grid-steps-z INTEGER,
  947. fastest-varying ENUMERATED {
  948. x(1),
  949. y(2),
  950. z(3)},
  951. slowest-varying ENUMERATED {
  952. x(1),
  953. y(2),
  954. z(3)},
  955. scale-factor INTEGER,
  956. density SEQUENCE OF INTEGER }
  957. END
  958. --$Revision: 1000.1 $
  959. --**********************************************************************
  960. --
  961. --  Biological Macromolecule 3-D Structure Data Types for MMDB,
  962. --                A Molecular Modeling Database
  963. --
  964. --  Definitions for structural features and biostruc addressing
  965. --
  966. --  By Hitomi Ohkawa, Jim Ostell, Chris Hogue and Steve Bryant 
  967. --
  968. --  National Center for Biotechnology Information
  969. --  National Institutes of Health
  970. --  Bethesda, MD 20894 USA
  971. --
  972. --  July, 1996
  973. --
  974. --**********************************************************************
  975. MMDB-Features DEFINITIONS ::=
  976. BEGIN
  977. EXPORTS Biostruc-feature-set, Chem-graph-pntrs, Atom-pntrs,
  978. Chem-graph-alignment, Sphere, Cone, Cylinder, Brick, Transform,
  979. Biostruc-feature-set-id, Biostruc-feature-id;
  980. IMPORTS Biostruc-id FROM MMDB
  981. Molecule-id, Residue-id, Atom-id FROM MMDB-Chemical-graph
  982. Model-id, Model-coordinate-set-id FROM MMDB-Structural-model
  983. User-object FROM NCBI-General
  984. Pub FROM NCBI-Pub;
  985. -- Named model features refer to sets of residues or atoms, or a region in 
  986. -- the model space.  A few specific feature types are allowed for compatibility
  987. -- with PDB usage, but the purpose of a named model feature is simply to
  988. -- associate various types of information with a set of atoms or 
  989. -- residues, or a spatially-defined region of the model structure.  They also
  990. -- support association of various properties with each residue or atom of a
  991. -- set.
  992. -- PDB-derived secondary structure defines a single feature, represented as a
  993. -- sequence of residue motifs, as are the contents of PDB SITE and
  994. -- FTNOTE records.  NCBI-assigned core and secondary structure descriptions
  995. -- are also represented as a sequence of residue motifs.
  996. Biostruc-feature-set ::= SEQUENCE {
  997. id Biostruc-feature-set-id,
  998. descr SEQUENCE OF Biostruc-feature-set-descr OPTIONAL,
  999. features SEQUENCE OF Biostruc-feature }
  1000. Biostruc-feature-set-id ::= INTEGER
  1001. Biostruc-feature-set-descr ::= CHOICE {
  1002. name VisibleString,
  1003. pdb-comment VisibleString,
  1004. other-comment VisibleString,
  1005. attribution Pub }
  1006. -- An explicitly specified type in Biostruc-feature allows for
  1007. -- efficient extraction and indexing of feature sets of a specific type. 
  1008. -- Special types are provided for coloring and rendering, as
  1009. -- as needed by molecular graphics programs.
  1010.  
  1011. Biostruc-feature ::= SEQUENCE {
  1012. id Biostruc-feature-id OPTIONAL,
  1013. name VisibleString OPTIONAL,
  1014. type INTEGER { helix(1),
  1015. strand(2),
  1016. sheet(3),
  1017. turn(4),
  1018. site(5),
  1019. footnote(6),
  1020. comment(7),      -- new 
  1021. subgraph(100),   -- NCBI domain reserved
  1022. region(101), 
  1023. core(102),       -- user core definition
  1024. supercore(103),  -- NCBI reserved
  1025. color(150),      -- new
  1026. render(151),     -- new
  1027. label(152),      -- new
  1028. transform(153),  -- new
  1029. camera(154),     -- new
  1030. script(155),      -- for scripts
  1031. alignment(200),  -- VAST reserved 
  1032. similarity(201),
  1033. multalign(202),  -- multiple alignment
  1034.                                 indirect(203),   -- new
  1035. cn3dstate(254),  -- Cn3D reserved
  1036. other(255) } OPTIONAL,
  1037. property CHOICE { 
  1038. color Color-prop,
  1039. render Render-prop,
  1040. transform Transform,
  1041. camera Camera,
  1042. script Biostruc-script,
  1043. user User-object } OPTIONAL,
  1044. location CHOICE {
  1045. subgraph Chem-graph-pntrs,
  1046. region Region-pntrs,   
  1047. alignment Chem-graph-alignment,
  1048. similarity Region-similarity, 
  1049. indirect Other-feature } OPTIONAL } -- new
  1050. -- Other-feature allows for specifying location via reference to another
  1051. -- Biostruc-feature and its location.
  1052. Other-feature ::= SEQUENCE {
  1053. biostruc-id Biostruc-id,
  1054. set Biostruc-feature-set-id,
  1055. feature Biostruc-feature-id }
  1056.                         
  1057. Biostruc-feature-id ::= INTEGER
  1058. -- Atom, residue or molecule motifs describe a substructure defined by a set
  1059. -- of nodes from the chemical graph. PDB secondary structure features are
  1060. -- described as a residue motif, since they are not associated with any one of
  1061. -- the multiple models that may be provided in a PDB file.  NCBI-assigned
  1062. -- secondary structure is represented in the same way, even though it is
  1063. -- model specific, since this allows for simple mapping of the structural 
  1064. -- feature onto a sequence-only representation. This addressing mode may also 
  1065. -- be used to describe features to be associated with particular atoms, 
  1066. -- as, for example, the chemical shift observed in an NMR experiment.
  1067. Chem-graph-pntrs ::= CHOICE {
  1068. atoms Atom-pntrs,
  1069. residues Residue-pntrs,
  1070. molecules Molecule-pntrs }
  1071. Atom-pntrs ::= SEQUENCE {
  1072. number-of-ptrs INTEGER,
  1073. molecule-ids SEQUENCE OF Molecule-id,
  1074. residue-ids SEQUENCE OF Residue-id,
  1075. atom-ids SEQUENCE OF Atom-id }
  1076. Residue-pntrs ::= CHOICE {
  1077. explicit Residue-explicit-pntrs,
  1078. interval SEQUENCE OF Residue-interval-pntr }
  1079. Residue-explicit-pntrs ::= SEQUENCE {
  1080. number-of-ptrs INTEGER,
  1081. molecule-ids SEQUENCE OF Molecule-id,
  1082. residue-ids SEQUENCE OF Residue-id }
  1083. Residue-interval-pntr ::= SEQUENCE {
  1084. molecule-id Molecule-id,
  1085. from Residue-id,
  1086. to Residue-id }
  1087. Molecule-pntrs ::= SEQUENCE {
  1088. number-of-ptrs INTEGER,
  1089. molecule-ids SEQUENCE OF Molecule-id }
  1090. -- Region motifs describe features defined by spatial location, such as the
  1091. -- site specified by a coordinate value, or a rgeion within a bounding volume.
  1092. Region-pntrs ::= SEQUENCE {
  1093. model-id Model-id,
  1094. region CHOICE {
  1095. site SEQUENCE OF Region-coordinates,
  1096. boundary SEQUENCE OF Region-boundary } }
  1097. -- Coordinate sites describe a region in space by reference to individual 
  1098. -- coordinates, in a particular model.  These coordinates may be either the
  1099. -- x, y and z values of atomic coordinates, the triangles of a surface mesh, 
  1100. -- or the grid points of a density model. All are addressed in the same manner,
  1101. -- as coordinate indices which give offsets from the beginning of the 
  1102. -- coordinate data arrays.  A coordinate-index of 5, for example, refers to 
  1103. -- the 5th x, y and z values of an atomic coordinate set, the 5th v1, v2, and v3
  1104. -- values of a triangle mesh, or the 5th value in a density grid.
  1105. -- PDB SITE and FTNOTE records refer to particular atomic coordinates, and they
  1106. -- are represented as a region motif with addresses of type Region-coordinates.
  1107. -- Any names or descriptions provided by PDB are thus associated with the
  1108. -- indicated sites, in the indicated model. 
  1109. Region-coordinates ::= SEQUENCE {
  1110. model-coord-set-id Model-coordinate-set-id,
  1111. number-of-coords INTEGER OPTIONAL,
  1112. coordinate-indices SEQUENCE OF INTEGER OPTIONAL }
  1113. -- Region boundaries are defined by regular solids located in the model space.  
  1114. Region-boundary ::= CHOICE { sphere Sphere,
  1115. cone Cone,
  1116. cylinder Cylinder,
  1117. brick Brick }
  1118. -- A biostruc alignment establishes an equivalence of nodes in the chemical
  1119. -- graphs of two or more biostrucs. This may be mapped to a sequence
  1120. -- alignment in the case of biopolymers.
  1121. -- The 'dimension' component indicates the number of participants
  1122. -- in the alignment.  For pairwise alignments, such as VAST 
  1123. -- structure-structure alignments, the dimension will be always 2, with
  1124. -- biostruc-ids, alignment, and domain each containing two entries for an  
  1125. -- aligned pair.  The 'alignment' component contains a pair of Chem-graph-pntrs
  1126. -- specifying a like number of corresponding residues in each structure.
  1127. -- The 'domain' component specifies a region of each structure considered 
  1128. -- in the alignment.  Only one transform (for the second structure) and
  1129. -- one aligndata (for the pair) are provided for each VAST alignment.
  1130. --
  1131. -- For multiple alignments, a set of components are treated as
  1132. -- parallel arrays of length 'dimension'.
  1133. -- The 'transform' component moves each structure to align it with
  1134. -- the structure specified as the first element in the "parallel" array,
  1135. -- so necessarily the first transform is a NULL transform.
  1136. -- Align-stats are placeholders for scores.
  1137. Chem-graph-alignment ::= SEQUENCE {
  1138. dimension INTEGER DEFAULT 2,
  1139. biostruc-ids SEQUENCE OF Biostruc-id,
  1140. alignment SEQUENCE OF Chem-graph-pntrs,
  1141. domain SEQUENCE OF Chem-graph-pntrs OPTIONAL, 
  1142. transform SEQUENCE OF Transform OPTIONAL,
  1143. aligndata SEQUENCE OF Align-stats OPTIONAL }
  1144. Align-stats ::= SEQUENCE {
  1145. descr VisibleString OPTIONAL,
  1146. scale-factor INTEGER OPTIONAL,
  1147. vast-score INTEGER OPTIONAL,
  1148. vast-mlogp INTEGER OPTIONAL,
  1149. align-res INTEGER OPTIONAL,
  1150.   rmsd INTEGER OPTIONAL,
  1151. blast-score INTEGER OPTIONAL,
  1152. blast-mlogp INTEGER OPTIONAL,
  1153. other-score INTEGER OPTIONAL }         
  1154. -- A biostruc similarity describes spatial features which are similar between
  1155. -- two or more biostrucs.  Similarities are model dependent, and the model and
  1156. -- coordinate set ids of the biostrucs must be specified.  They do not 
  1157. -- necessarily map to a sequence alignment, as the regions referenced may
  1158. -- be pieces of a surface or grid, and thus not uniquely mapable to particular
  1159. -- chemical components.
  1160. Region-similarity ::= SEQUENCE {
  1161. dimension INTEGER DEFAULT 2,
  1162. biostruc-ids SEQUENCE OF Biostruc-id,
  1163. similarity SEQUENCE OF Region-pntrs,
  1164. transform SEQUENCE OF Transform }
  1165. -- Geometrical primitives are used in the definition of region motifs, and 
  1166. -- also non-atomic coordinates.  Spheres, cones, cylinders and bricks are 
  1167. -- defined by a few points in the model space.
  1168. Sphere ::= SEQUENCE { 
  1169. center Model-space-point,
  1170. radius RealValue }
  1171. Cone ::= SEQUENCE { 
  1172. axis-top Model-space-point,
  1173. axis-bottom Model-space-point,
  1174. radius-bottom RealValue }
  1175. Cylinder ::= SEQUENCE { 
  1176. axis-top Model-space-point,
  1177. axis-bottom Model-space-point,
  1178. radius RealValue }
  1179. -- A brick is defined by the coordinates of eight corners.  These are assumed
  1180. -- to appear in the order 000, 001, 010, 011, 100, 101, 110, 111, where the 
  1181. -- digits 0 and 1 refer to respectively to the x, y and z axes of a unit cube.
  1182. -- Opposite edges are assumed to be parallel. 
  1183. Brick ::= SEQUENCE {
  1184. corner-000 Model-space-point,
  1185. corner-001 Model-space-point,
  1186. corner-010 Model-space-point,
  1187. corner-011 Model-space-point,
  1188. corner-100 Model-space-point,
  1189. corner-101 Model-space-point,
  1190. corner-110 Model-space-point,
  1191. corner-111 Model-space-point }
  1192. Model-space-point ::= SEQUENCE {
  1193. scale-factor INTEGER,
  1194. x INTEGER,
  1195. y INTEGER,
  1196. z INTEGER } 
  1197. RealValue ::= SEQUENCE {
  1198. scale-factor INTEGER,
  1199. scaled-integer-value INTEGER }
  1200. Transform ::=  SEQUENCE {
  1201.             id  INTEGER,
  1202.             moves SEQUENCE OF Move }
  1203.             
  1204. Move ::= CHOICE {
  1205. rotate Rot-matrix,
  1206. translate Trans-matrix }
  1207.           
  1208. -- A rotation matrix is defined by 9 numbers, given by row, i.e.,
  1209. -- with column indices varying fastest.
  1210. -- Coordinates, as a matrix with columns x, y, an z, are rotated 
  1211. -- via multiplication with the rotation matrix. 
  1212. -- A translation matrix is defined by 3 numbers, which is added to
  1213. -- the rotated coordinates for specified amount of translation. 
  1214. Rot-matrix ::= SEQUENCE {
  1215. scale-factor INTEGER,
  1216. rot-11 INTEGER,
  1217. rot-12 INTEGER,
  1218. rot-13 INTEGER,
  1219. rot-21 INTEGER,
  1220. rot-22 INTEGER,
  1221. rot-23 INTEGER,
  1222. rot-31 INTEGER,
  1223. rot-32 INTEGER,
  1224. rot-33 INTEGER }
  1225. Trans-matrix ::= SEQUENCE {
  1226. scale-factor INTEGER,
  1227. tran-1 INTEGER,
  1228. tran-2 INTEGER,
  1229. tran-3 INTEGER }
  1230. -- The camera is a position relative to the world coordinates
  1231. -- of the structure referred to by a location.  
  1232. -- this is used to set the initial position of the
  1233. -- camera using OpenGL.  scale is the value used to scale the
  1234. -- other values from floating point to integer
  1235. Camera ::= SEQUENCE {
  1236. x INTEGER,
  1237. y INTEGER,
  1238. distance INTEGER,
  1239. angle INTEGER,
  1240. scale INTEGER,
  1241.     modelview   GL-matrix }
  1242.     
  1243.     
  1244. GL-matrix ::= SEQUENCE {
  1245. scale INTEGER,
  1246. m11 INTEGER,
  1247. m12 INTEGER,
  1248. m13 INTEGER,
  1249. m14 INTEGER,
  1250. m21 INTEGER,
  1251. m22 INTEGER,
  1252. m23 INTEGER,
  1253. m24 INTEGER,
  1254. m31 INTEGER,
  1255. m32 INTEGER,
  1256. m33 INTEGER,
  1257. m34 INTEGER,
  1258. m41 INTEGER,
  1259. m42 INTEGER,
  1260. m43 INTEGER,
  1261. m44 INTEGER }
  1262. Color-prop ::= SEQUENCE {
  1263. r INTEGER OPTIONAL, 
  1264. g INTEGER OPTIONAL,
  1265. b INTEGER OPTIONAL,
  1266. name VisibleString OPTIONAL }
  1267. -- Note that Render-prop is compatible with the Annmm specification,
  1268. -- i.e., its numbering schemes do not clash with those in Render-prop.
  1269. Render-prop ::= INTEGER {
  1270. default (0),  -- Default view
  1271. wire (1),  -- use wireframe 
  1272. space (2),  -- use spacefill
  1273. stick (3),  -- use stick model (thin cylinders)
  1274. ballNStick (4),  -- use ball & stick model
  1275. thickWire (5),  -- thicker wireframe
  1276. hide (9),  -- don't show this
  1277. name (10), -- display its name next to it
  1278. number  (11), -- display its number next to it 
  1279. pdbNumber (12), -- display its PDB number next to it
  1280. objWireFrame (150), -- display MMDB surface object as wireframe
  1281. objPolygons (151), -- display MMDB surface object as polygons   
  1282. colorsetCPK (225), -- color atoms like CPK models
  1283. colorsetbyChain (226), -- color each chain different
  1284. colorsetbyTemp (227), -- color using isotropic Temp factors 
  1285. colorsetbyRes (228), -- color using residue properties
  1286. colorsetbyLen (229), -- color changes along chain length
  1287. colorsetbySStru (230), -- color by secondary structure
  1288. colorsetbyHydro (231), -- color by hydrophobicity
  1289. colorsetbyObject(246), -- color each object differently
  1290. colorsetbyDomain(247), -- color each domain differently
  1291. other           (255)  
  1292. }
  1293. --  When a Biostruc-Feature with a Biostruc-script is initiated,
  1294. --  it should play the specified steps one at a time, setting the feature-do
  1295. --  list as the active display.
  1296. --  The camera can be set using a feature-do, 
  1297. --  but it may be moved independently with
  1298. --  camera-move, which specifies how to move
  1299. --  the camera dynamically during the step along the path defined (e.g.,
  1300. --  a zoom, a rotate).
  1301. --  Any value of pause (in 1:10th's of a second) will force a pause
  1302. --  after an image is shown.
  1303. --  If waitevent is TRUE, it will await a mouse or keypress and ignore 
  1304. --  the pause value.
  1305. Biostruc-script ::= SEQUENCE OF Biostruc-script-step
  1306. Biostruc-script-step ::= SEQUENCE {
  1307. step-id Step-id,
  1308. step-name VisibleString OPTIONAL, 
  1309. feature-do SEQUENCE OF Other-feature OPTIONAL,
  1310. camera-move Transform OPTIONAL,
  1311. pause INTEGER DEFAULT 10,
  1312. waitevent BOOLEAN,
  1313. extra INTEGER, 
  1314. jump Step-id OPTIONAL }
  1315. Step-id ::= INTEGER
  1316. END
  1317. --$Revision: 1000.1 $
  1318. --**********************************************************************
  1319. --
  1320. --  Definitions for CDD's 
  1321. --
  1322. --  NCBI Structure Group
  1323. --
  1324. --  National Center for Biotechnology Information
  1325. --  National Institutes of Health
  1326. --  Bethesda, MD 20894 USA
  1327. --
  1328. --  October 1999
  1329. --
  1330. --  asntool -m cdd.asn -w 100 -o cdd.h
  1331. --  asntool -B objcdd -m cdd.asn -G -w 100 -I objseq.h objsset.h -K cdd.h -M asn.all
  1332. --**********************************************************************
  1333. NCBI-Cdd DEFINITIONS ::=
  1334. -- NCBI Conserved Domain Definition
  1335. BEGIN
  1336. EXPORTS  Cdd-id, Cdd-id-set, Cdd, Cdd-set, Cdd-tree, Cdd-tree-set;
  1337. IMPORTS  Date                 FROM NCBI-General
  1338.          Pub                  FROM NCBI-Pub
  1339.          Biostruc-annot-set   FROM MMDB
  1340.          Bioseq               FROM NCBI-Sequence
  1341.          Seq-annot            FROM NCBI-Sequence
  1342.          Seq-entry            FROM NCBI-Seqset
  1343.          Org-ref              FROM NCBI-Organism
  1344.          Seq-interval         FROM NCBI-Seqloc
  1345.          Score-set            FROM NCBI-Seqalign;
  1346. -- Cdd's should not exist without a unique integer id, but alternative 
  1347. -- id's may be present as well.
  1348. Global-id ::= SEQUENCE {
  1349.              accession      VisibleString,
  1350.              release        VisibleString OPTIONAL,
  1351.              version        INTEGER       OPTIONAL, -- version 0 is the seed
  1352.              database       VisibleString OPTIONAL  -- this is NOT the source!
  1353.              }                                      -- rather the database the
  1354.                                                     -- object resides in
  1355. Cdd-id ::= CHOICE {
  1356.              uid            INTEGER,
  1357.              gid            Global-id
  1358.              }
  1359. Cdd-id-set ::= SEQUENCE OF Cdd-id
  1360. -- The description of CDD's refers to the specific set of aligned sequences,
  1361. -- the region that is being aligned and the information contained in the
  1362. -- alignment. It may contain a lengthy comment
  1363. -- describing the function of the domain as well as its origin and all
  1364. -- other anecdotal information that can't be pressed into a rigid scheme.
  1365. -- Crosslinks to reference papers available in PubMed are possible as well.
  1366. -- There can be as many of these as you want in the CDD.
  1367. Cdd-descr ::= CHOICE {
  1368.                 othername   VisibleString, -- alternative names for the CDD
  1369.                 category    VisibleString, -- intracellular, extracellular, etc.
  1370.                 comment     VisibleString, -- this is where annotations go
  1371.                 reference   Pub,           -- a citation 
  1372.                 create-date Date,          -- valid for the current version
  1373.                 tax-source  Org-ref,       -- holds the highest common node
  1374.                 source      VisibleString, -- the database the seeds were created
  1375.                                            -- from, e.g. SMART, PFAM, etc..
  1376.                 status      INTEGER { unassigned(0),
  1377.                                       finished-ok(1),     -- to indicate
  1378.                                       pending-release(2), -- processing status
  1379.                                       other-asis(3),      -- or final type
  1380.                                       matrix-only(4),     -- 
  1381.                                       other(255) }        -- for CD production
  1382.               }
  1383. Cdd-descr-set ::= SET OF Cdd-descr
  1384. -- the Cdd-tree contains the hierarchy of CDDs.  This object is separate from
  1385. -- the Cdd's themselves to allow it to be retrieved separately and to
  1386. -- operate as an index.
  1387. Cdd-tree ::= SEQUENCE {
  1388.             name          VisibleString,
  1389.             id            Cdd-id-set,
  1390.             description   Cdd-descr-set OPTIONAL,
  1391.             parents       Cdd-id-set OPTIONAL,
  1392.             children      Cdd-id-set OPTIONAL,
  1393.             siblings      Cdd-id-set OPTIONAL
  1394.             }
  1395. Cdd-tree-set ::= SEQUENCE OF Cdd-tree
  1396. -- Matrix definitions, these are supposed to store PSSMs and corresponding 
  1397. -- matrices of relative residue frequencies.
  1398. -- the number of columns and rows is listed explicitly, values in columns
  1399. -- are stored column by column, i.e. in groups of nrows values for each column
  1400. Matrix ::= SEQUENCE {
  1401.   ncolumns      INTEGER,
  1402.   nrows         INTEGER,
  1403.   row-labels    SEQUENCE OF VisibleString OPTIONAL,
  1404.   scale-factor  INTEGER,
  1405.   columns       SEQUENCE OF INTEGER
  1406. }
  1407. -- definition for matrix of pairwise "distances", stored as the upper 
  1408. -- triangle of a sqared n x n matrix (excluding the diagonal), this is
  1409. -- supposed to store pairwise percentages of identical residues, pairwise
  1410. -- alignment scores or E-values from pairwise BLAST sequence comparisons
  1411. Triangle ::= SEQUENCE {
  1412.   nelements     INTEGER,
  1413.   scores        Score-set
  1414. }
  1415. -- the Cdd is the basic ASN.1 object storing an annotated and curated
  1416. -- set of alignments (formulated as a set of pairwise master-slave
  1417. -- alignments). 
  1418. -- The alignment data are contained in Seq-align-sets and Biostruc-feature-sets.
  1419. -- Version numbers in Global-ids are meant to be updated every time the Cdd is changed
  1420. -- in a way that does not require Global-ids to be changed (sequences added in update
  1421. -- cycle, annotation changed)
  1422. Cdd ::= SEQUENCE {
  1423.   name          VisibleString,
  1424.   id            Cdd-id-set,
  1425.   description   Cdd-descr-set OPTIONAL,
  1426.   seqannot      SEQUENCE OF Seq-annot OPTIONAL, -- contains the alignment
  1427.   features      Biostruc-annot-set OPTIONAL, -- contains structure alignments
  1428.                                              -- or "core" definitions
  1429.   sequences     Seq-entry OPTIONAL,          -- store as bioseq-set inside seq-entry
  1430.   profile-range Seq-interval OPTIONAL,       -- profile for this region only
  1431.                                              -- also stores the Seq-id of the master
  1432.   trunc-master  Bioseq OPTIONAL,             -- holds the truncated master
  1433.                                              -- which may be something like a
  1434.                                              -- consensus, but still refers to the
  1435.                                              -- sequence coord. frame in profile-range
  1436.   posfreq       Matrix OPTIONAL,             -- relative residue frequencies
  1437.   scoremat      Matrix OPTIONAL,             -- Position dependent score matrix
  1438.   distance      Triangle OPTIONAL            -- pairwise distances for all seqs.
  1439. }
  1440. Cdd-set ::= SET OF Cdd
  1441. END
  1442. --$Revision: 1000.1 $
  1443. --****************************************************************
  1444. --
  1445. --  NCBI MIME type (chemical/ncbi-asn1-ascii and chemical/ncbi-asn1-binary)
  1446. --  by Jonathan Epstein, February 1996
  1447. --
  1448. --****************************************************************
  1449. NCBI-Mime DEFINITIONS ::=
  1450. BEGIN
  1451. EXPORTS Ncbi-mime-asn1;
  1452. IMPORTS Biostruc, Biostruc-annot-set FROM MMDB
  1453. Seq-entry FROM NCBI-Seqset
  1454. Seq-annot FROM NCBI-Sequence
  1455. Medline-entry FROM NCBI-Medline;
  1456. Ncbi-mime-asn1 ::= CHOICE {
  1457. entrez Entrez-general, -- just a structure
  1458. alignstruc Biostruc-align, -- structures & sequences & alignments
  1459. alignseq Biostruc-align-seq, -- sequence alignment
  1460.     strucseq    Biostruc-seq, -- structure & sequences
  1461.     strucseqs   Biostruc-seqs     -- structure & sequences & alignments 
  1462. -- others may be added here in the future
  1463. }
  1464. Biostruc-align ::= SEQUENCE {
  1465. master Biostruc,
  1466. slaves SET OF Biostruc,
  1467. alignments Biostruc-annot-set, -- structure alignments
  1468. sequences SET OF Seq-entry, -- sequences
  1469. seqalign SET OF Seq-annot }
  1470. Biostruc-align-seq ::= SEQUENCE { -- display seq structure align only
  1471. sequences SET OF Seq-entry, -- sequences
  1472. seqalign SET OF Seq-annot }
  1473. Biostruc-seq ::= SEQUENCE { -- display  structure seq added by yanli 
  1474.     structure Biostruc,
  1475. sequences SET OF Seq-entry }
  1476. Biostruc-seqs ::= SEQUENCE { -- display blast alignment along with neighbor's structure added by yanli 
  1477.     structure Biostruc,
  1478. sequences SET OF Seq-entry, -- sequences
  1479. seqalign SET OF Seq-annot }
  1480. Entrez-style ::= ENUMERATED {
  1481. docsum (1),
  1482. genbank (2) ,
  1483. genpept (3) ,
  1484. fasta (4) ,
  1485. asn1 (5) ,
  1486. graphic (6) ,
  1487. alignment (7) ,
  1488. globalview (8) ,
  1489. report (9) ,
  1490. medlars (10) ,
  1491. embl (11) ,
  1492. pdb (12) ,
  1493. kinemage (13) }
  1494. Entrez-general ::= SEQUENCE {
  1495. title VisibleString OPTIONAL,
  1496. data CHOICE {
  1497. ml Medline-entry ,
  1498. prot Seq-entry ,
  1499. nuc Seq-entry ,
  1500. genome Seq-entry ,
  1501. structure Biostruc ,
  1502. strucAnnot Biostruc-annot-set } ,
  1503. style Entrez-style ,
  1504. location VisibleString OPTIONAL }
  1505. END
  1506. --$Revision: 1000.1 $
  1507. --*********************************************************************
  1508. --
  1509. --  access.asn
  1510. --
  1511. --     messages for data access
  1512. --
  1513. --*********************************************************************
  1514. NCBI-Access DEFINITIONS ::=
  1515. BEGIN
  1516. EXPORTS Link-set;
  1517.     -- links between same class = neighbors
  1518.     -- links between other classes = links
  1519. Link-set ::= SEQUENCE {
  1520.     num INTEGER ,                         -- number of links to this doc type
  1521.     uids SEQUENCE OF INTEGER OPTIONAL ,     -- the links
  1522.     weights SEQUENCE OF INTEGER OPTIONAL }  -- the weights
  1523. END
  1524. --$Revision: 1000.1 $
  1525. --**********************************************************************
  1526. --
  1527. --  NCBI Sequence Feature Definition Module
  1528. --  by James Ostell, 1994
  1529. --
  1530. --**********************************************************************
  1531. NCBI-FeatDef DEFINITIONS ::=
  1532. BEGIN
  1533. EXPORTS FeatDef, FeatDefSet, FeatDispGroup, FeatDispGroupSet;
  1534. FeatDef ::= SEQUENCE {
  1535.     typelabel VisibleString ,    -- short label for type eg "CDS"
  1536.     menulabel VisibleString ,    -- label for a menu eg "Coding Region"
  1537.     featdef-key INTEGER ,    -- unique for this feature definition
  1538.     seqfeat-key INTEGER ,    -- SeqFeat.data.choice from objfeat.h
  1539.     entrygroup INTEGER ,    -- Group for data entry
  1540.     displaygroup INTEGER ,    -- Group for data display
  1541.     molgroup FeatMolType           -- Type of Molecule used for
  1542. }
  1543. FeatMolType ::= ENUMERATED {
  1544. aa (1),  -- proteins
  1545.     na (2),  -- nucleic acids
  1546.     both (3) }  -- both
  1547. FeatDefSet ::= SEQUENCE OF FeatDef   -- collections of defintions
  1548. FeatDispGroup ::= SEQUENCE {
  1549. groupkey INTEGER ,
  1550.     groupname VisibleString }
  1551. FeatDispGroupSet ::= SEQUENCE OF FeatDispGroup
  1552. FeatDefGroupSet ::= SEQUENCE {
  1553. groups FeatDispGroupSet ,
  1554. defs FeatDefSet }
  1555. END
  1556.     
  1557. --$Revision: 1000.1 $
  1558. --********************************************************************
  1559. --
  1560. --  Print Templates
  1561. --  James Ostell, 1993
  1562. --
  1563. --
  1564. --********************************************************************
  1565. NCBI-ObjPrt DEFINITIONS ::=
  1566. BEGIN
  1567. EXPORTS PrintTemplate, PrintTemplateSet;
  1568. PrintTemplate ::= SEQUENCE {
  1569.     name TemplateName ,  -- name for this template
  1570.     labelfrom VisibleString OPTIONAL,    -- ASN.1 path to get label from
  1571.     format PrintFormat }
  1572. TemplateName ::= VisibleString
  1573. PrintTemplateSet ::= SEQUENCE OF PrintTemplate
  1574. PrintFormat ::= SEQUENCE {
  1575.     asn1 VisibleString ,    -- ASN.1 partial path for this
  1576.     label VisibleString OPTIONAL ,   -- printable label
  1577.     prefix VisibleString OPTIONAL,
  1578.     suffix VisibleString OPTIONAL,
  1579.     form PrintForm }
  1580. PrintForm ::=   CHOICE {      -- Forms for various ASN.1 components
  1581.     block PrintFormBlock,
  1582.     boolean PrintFormBoolean,
  1583.     enum PrintFormEnum,
  1584.     text PrintFormText,
  1585.     use-template TemplateName,
  1586.     user UserFormat ,
  1587.     null NULL }               -- rarely used
  1588. UserFormat ::= SEQUENCE {
  1589.     printfunc VisibleString ,
  1590.     defaultfunc VisibleString OPTIONAL }
  1591. PrintFormBlock ::= SEQUENCE {  -- for SEQUENCE, SET
  1592.     separator VisibleString OPTIONAL ,
  1593.     components SEQUENCE OF PrintFormat }
  1594. PrintFormBoolean ::= SEQUENCE {
  1595.     true VisibleString OPTIONAL ,
  1596.     false VisibleString OPTIONAL }
  1597. PrintFormEnum ::= SEQUENCE {
  1598.     values SEQUENCE OF VisibleString OPTIONAL }
  1599. PrintFormText ::= SEQUENCE {
  1600.     textfunc VisibleString OPTIONAL }
  1601.     
  1602. END
  1603. --$Revision: 1000.1 $
  1604. --  *********************************************************************
  1605. --
  1606. --  These are code and conversion tables for NCBI sequence codes
  1607. --  ASN.1 for the sequences themselves are define in seq.asn
  1608. --
  1609. --  Seq-map-table and Seq-code-table REQUIRE that codes start with 0
  1610. --    and increase continuously.  So IUPAC codes, which are upper case
  1611. --    letters will always have 65 0 cells before the codes begin.  This
  1612. --    allows all codes to do indexed lookups for things
  1613. --
  1614. --  Valid names for code tables are:
  1615. --    IUPACna
  1616. --    IUPACaa
  1617. --    IUPACeaa
  1618. --    IUPACaa3     3 letter amino acid codes : parallels IUPACeaa
  1619. --                   display only, not a data exchange type
  1620. --    NCBI2na
  1621. --    NCBI4na
  1622. --    NCBI8na
  1623. --    NCBI8aa
  1624. --    NCBIstdaa
  1625. --     probability types map to IUPAC types for display as characters
  1626. NCBI-SeqCode DEFINITIONS ::=
  1627. BEGIN
  1628. EXPORTS Seq-code-table, Seq-map-table, Seq-code-set;
  1629. Seq-code-type ::= ENUMERATED {              -- sequence representations
  1630.     iupacna (1) ,              -- IUPAC 1 letter nuc acid code
  1631.     iupacaa (2) ,              -- IUPAC 1 letter amino acid code
  1632.     ncbi2na (3) ,              -- 2 bit nucleic acid code
  1633.     ncbi4na (4) ,              -- 4 bit nucleic acid code
  1634.     ncbi8na (5) ,              -- 8 bit extended nucleic acid code
  1635.     ncbipna (6) ,              -- nucleic acid probabilities
  1636.     ncbi8aa (7) ,              -- 8 bit extended amino acid codes
  1637.     ncbieaa (8) ,              -- extended ASCII 1 letter aa codes
  1638.     ncbipaa (9) ,              -- amino acid probabilities
  1639.     iupacaa3 (10) ,            -- 3 letter code only for display
  1640.     ncbistdaa (11) }           -- consecutive codes for std aas, 0-25
  1641. Seq-map-table ::= SEQUENCE { -- for tables of sequence mappings 
  1642.     from Seq-code-type ,      -- code to map from
  1643.     to Seq-code-type ,        -- code to map to
  1644.     num INTEGER ,             -- number of rows in table
  1645.     start-at INTEGER DEFAULT 0 ,   -- index offset of first element
  1646.     table SEQUENCE OF INTEGER }  -- table of values, in from-to order
  1647. Seq-code-table ::= SEQUENCE { -- for names of coded values
  1648.     code Seq-code-type ,      -- name of code
  1649.     num INTEGER ,             -- number of rows in table
  1650.     one-letter BOOLEAN ,   -- symbol is ALWAYS 1 letter?
  1651.     start-at INTEGER DEFAULT 0 ,   -- index offset of first element
  1652.     table SEQUENCE OF
  1653.         SEQUENCE {
  1654.             symbol VisibleString ,      -- the printed symbol or letter
  1655.             name VisibleString } ,      -- an explanatory name or string
  1656.     comps SEQUENCE OF INTEGER OPTIONAL } -- pointers to complement nuc acid
  1657. Seq-code-set ::= SEQUENCE {    -- for distribution
  1658.     codes SET OF Seq-code-table OPTIONAL ,
  1659.     maps SET OF Seq-map-table OPTIONAL }
  1660. END