NCBI C Toolkit Cross Reference

C/asn/seqtable.asn


  1 --$Revision: 1.5 $
  2 --  ----------------------------------------------------------------------------
  3 --
  4 --                            PUBLIC DOMAIN NOTICE
  5 --                National Center for Biotechnology Information
  6 --
  7 --  This software/database is a "United States Government Work" under the terms
  8 --  of the United States Copyright Act.  It was written as part of the author's
  9 --  official duties as a United States Government employee and thus cannot be
 10 --  copyrighted.  This software/database is freely available to the public for
 11 --  use.  The National Library of Medicine and the U.S. Government have not
 12 --  placed any restriction on its use or reproduction.
 13 --
 14 --  Although all reasonable efforts have been taken to ensure the accuracy and
 15 --  reliability of the software and data, the NLM and the U.S. Government do not
 16 --  and cannot warrant the performance or results that may be obtained by using
 17 --  this software or data.  The NLM and the U.S. Government disclaim all
 18 --  warranties, express or implied, including warranties of performance,
 19 --  merchantability or fitness for any particular purpose.
 20 --
 21 --  Please cite the authors in any work or product based on this material.
 22 --
 23 --  ----------------------------------------------------------------------------
 24 --
 25 --  Authors: Mike DiCuccio, Eugene Vasilchenko
 26 --
 27 --  ASN.1 interface to table readers
 28 --
 29 --  ----------------------------------------------------------------------------
 30 
 31 NCBI-SeqTable DEFINITIONS ::=
 32 
 33 BEGIN
 34 
 35 EXPORTS
 36     SeqTable-column-info, SeqTable-column, Seq-table;
 37     
 38 IMPORTS
 39     Seq-id, Seq-loc, Seq-interval   FROM NCBI-Seqloc;
 40 
 41 
 42 SeqTable-column-info ::= SEQUENCE {
 43     -- user friendly column name, can be skipped
 44     title VisibleString OPTIONAL,
 45 
 46     -- identification of the column data in the objects described by the table
 47     field-id INTEGER { -- known column data types
 48         -- position types
 49         location        (0), -- location as Seq-loc
 50         location-id     (1), -- location Seq-id
 51         location-gi     (2), -- gi
 52         location-from   (3), -- interval from
 53         location-to     (4), -- interval to
 54         location-strand (5), -- location strand
 55         location-fuzz-from-lim (6),
 56         location-fuzz-to-lim   (7),
 57 
 58         product         (10), -- product as Seq-loc
 59         product-id      (11), -- product Seq-id
 60         product-gi      (12), -- product gi
 61         product-from    (13), -- product interval from
 62         product-to      (14), -- product interval to
 63         product-strand  (15), -- product strand
 64         product-fuzz-from-lim (16),
 65         product-fuzz-to-lim   (17),
 66         
 67         -- main feature fields
 68         id-local        (20), -- id.local.id
 69         xref-id-local   (21), -- xref.id.local.id
 70         partial         (22),
 71         comment         (23),
 72         title           (24),
 73         ext             (25), -- field-name must be "E.xxx", see below
 74         qual            (26), -- field-name must be "Q.xxx", see below
 75         dbxref          (27), -- field-name must be "D.xxx", see below
 76 
 77         -- various data fields
 78         data-imp-key        (30),
 79         data-region         (31),
 80         data-cdregion-frame (32),
 81 
 82         -- extra fields, see also special values for str below
 83         ext-type        (40),
 84         qual-qual       (41),
 85         qual-val        (42),
 86         dbxref-db       (43),
 87         dbxref-tag      (44)
 88     } OPTIONAL,
 89 
 90     -- any column can be identified by ASN.1 text locator string
 91     -- with omitted object type.
 92     -- examples:
 93     --   "data.gene.locus" for Seq-feat.data.gene.locus
 94     --   "data.imp.key" for Seq-feat.data.imp.key
 95     --   "qual.qual"
 96     --    - Seq-feat.qual is SEQUENCE so several columns are allowed
 97     --      see also "Q.xxx" special value for shorter qual representation
 98     --   "ext.type.str"
 99     --   "ext.data.label.str"
100     --   "ext.data.data.int"
101     --      see also "E.xxx" special value for shorter ext representation
102     -- special values start with capital letter:
103     --   "E.xxx" - ext.data.label.str = xxx, ext.data.data = data
104     --    - Seq-feat.ext.data is SEQUENCE so several columns are allowed
105     --   "Q.xxx" - qual.qual = xxx, qual.val = data
106     --    - Seq-feat.qual is SEQUENCE so several columns are allowed
107     --   "D.xxx" - dbxref.id = xxx, dbxref.tag = data
108     --    - Seq-feat.dbxref is SET so several columns are allowed
109     field-name  VisibleString OPTIONAL
110 }
111 
112 
113 CommonString-table ::= SEQUENCE {
114     -- set of possible values
115     strings     SEQUENCE OF VisibleString,
116 
117     -- indexes of values
118     indexes     SEQUENCE OF INTEGER
119 }
120 
121 
122 CommonBytes-table ::= SEQUENCE {
123     -- set of possible values
124     bytes       SEQUENCE OF OCTET STRING,
125 
126     -- indexes of values
127     indexes     SEQUENCE OF INTEGER
128 }
129 
130 
131 SeqTable-multi-data ::= CHOICE {
132     -- a set of integers, one per row
133     int         SEQUENCE OF INTEGER,
134     
135     -- a set of reals, one per row
136     real        SEQUENCE OF REAL,
137 
138     -- a set of strings, one per row
139     string      SEQUENCE OF VisibleString,
140 
141     -- a set of byte arrays, one per row
142     bytes       SEQUENCE OF OCTET STRING,
143 
144     -- a set of string with small set of possible values
145     common-string   CommonString-table,
146 
147     -- a set of byte arrays with small set of possible values
148     common-bytes    CommonBytes-table,
149 
150     -- a set of bits, one per row
151     -- this uses bm::bvector<> as its storage mechanism
152     bit         OCTET STRING,
153 
154     -- a set of locations, one per row
155     loc         SEQUENCE OF Seq-loc,
156     id          SEQUENCE OF Seq-id,
157     interval    SEQUENCE OF Seq-interval
158 }
159 
160 
161 SeqTable-single-data ::= CHOICE {
162     -- integer
163     int         INTEGER,
164     
165     -- real
166     real        REAL,
167 
168     -- string
169     string      VisibleString,
170 
171     -- byte array
172     bytes       OCTET STRING,
173 
174     -- bit
175     bit         BOOLEAN,
176 
177     -- location
178     loc         Seq-loc,
179     id          Seq-id,
180     interval    Seq-interval
181 }
182 
183 
184 SeqTable-sparse-index ::= CHOICE {
185     -- indexed of rows with values
186     indexes SEQUENCE OF INTEGER,
187 
188     -- bitset of rows with values
189     bit-set OCTET STRING
190 }
191 
192 
193 SeqTable-column ::= SEQUENCE {
194     -- column description or reference to previously defined info
195     header      SeqTable-column-info,   -- information about data
196 
197     -- row data
198     data        SeqTable-multi-data OPTIONAL,
199 
200     -- in case not all rows contain data this field will contain sparse info
201     sparse      SeqTable-sparse-index OPTIONAL,
202 
203     -- default value for sparse table, or if row data is too short
204     default     SeqTable-single-data OPTIONAL,
205 
206     -- single value for indexes not listed in sparse table
207     sparse-other SeqTable-single-data OPTIONAL
208 }
209 
210 
211 Seq-table ::= SEQUENCE {
212     -- type of features in this table, equal to Seq-feat.data variant index
213     feat-type   INTEGER,
214 
215     -- subtype of features in this table, defined in header SeqFeatData.hpp
216     feat-subtype INTEGER OPTIONAL,
217 
218     -- number of rows
219     num-rows    INTEGER,
220 
221     -- data in columns
222     columns     SEQUENCE OF SeqTable-column
223 }
224 
225 
226 END

source navigation ]   [ diff markup ]   [ identifier search ]   [ freetext search ]   [ file search ]  

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.