|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/asn/seqtable.asn |
source navigation diff markup identifier search freetext search file search |
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
|
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |