1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
|
--$Revision: 1.6 $
--********************************************************************
--
-- Network Id server network access
-- Vasilchenko 2003
--
--
--*********************************************************************
--
-- seqsplit.asn
--
-- representation of split sequences
--
--*********************************************************************
NCBI-Seq-split DEFINITIONS ::=
BEGIN
EXPORTS ID2S-Chunk-Id, ID2S-Seq-annot-Info;
IMPORTS Seq-id FROM NCBI-Seqloc
Bioseq, Seq-annot, Seq-descr, Seq-literal FROM NCBI-Sequence
Seq-align FROM NCBI-Seqalign;
----------------------------------------------------------------------------
-- Blob split info types
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-- Chunks split description
ID2S-Split-Info ::= SEQUENCE {
bioseqs-info SET OF ID2S-Bioseqs-Info OPTIONAL,
chunks SET OF ID2S-Chunk-Info
}
ID2S-Bioseqs-Info ::= SEQUENCE {
info ID2S-Bioseq-Info,
bioseqs ID2S-Bioseq-Ids
}
ID2S-Bioseq-Info ::= SEQUENCE {
gap-count INTEGER OPTIONAL,
seq-map-has-ref BOOLEAN OPTIONAL
}
ID2S-Chunk-Info ::= SEQUENCE {
id ID2S-Chunk-Id,
content SET OF ID2S-Chunk-Content
}
-- Description of information in this chunk
-- Place means id of Bioseq or Bioseq-set
ID2S-Chunk-Content ::= CHOICE {
-- place of Seq-descrs
seq-descr ID2S-Seq-descr-Info,
-- locations and types of annotations
seq-annot ID2S-Seq-annot-Info,
-- place of assembly history
seq-assembly ID2S-Seq-assembly-Info,
-- place of sequence map
seq-map ID2S-Seq-map-Info,
-- place of sequence data
seq-data ID2S-Seq-data-Info,
-- place of Seq-annots
seq-annot-place ID2S-Seq-annot-place-Info,
-- place of Bioseqs
bioseq-place SET OF ID2S-Bioseq-place-Info
}
ID2S-Seq-descr-Info ::= SEQUENCE {
type-mask INTEGER, -- mask of Seq-descr types,
bioseqs ID2S-Bioseq-Ids OPTIONAL,
bioseq-sets ID2S-Bioseq-set-Ids OPTIONAL
}
ID2S-Seq-annot-Info ::= SEQUENCE {
-- name is set if this is named annot
-- name may be empty which differ from unnamed annot
name VisibleString OPTIONAL,
align NULL OPTIONAL,
graph NULL OPTIONAL,
feat SET OF ID2S-Feat-type-Info OPTIONAL,
seq-loc ID2S-Seq-loc OPTIONAL
}
ID2S-Seq-annot-place-Info ::= SEQUENCE {
name VisibleString OPTIONAL,
bioseqs ID2S-Bioseq-Ids OPTIONAL,
bioseq-sets ID2S-Bioseq-set-Ids OPTIONAL
}
ID2S-Feat-type-Info ::= SEQUENCE {
type INTEGER,
subtypes SET OF INTEGER OPTIONAL
}
ID2S-Seq-assembly-Info ::= SEQUENCE {
bioseqs ID2S-Bioseq-Ids
}
ID2S-Seq-map-Info ::= ID2S-Seq-loc
ID2S-Seq-data-Info ::= ID2S-Seq-loc
ID2S-Bioseq-place-Info ::= SEQUENCE {
bioseq-set INTEGER,
seq-ids ID2S-Bioseq-Ids
}
ID2S-Chunk ::= SEQUENCE {
data SET OF ID2S-Chunk-Data
}
ID2S-Chunk-Data ::= SEQUENCE {
-- place of data to insert
id CHOICE {
-- Bioseq-set id
bioseq-set INTEGER,
-- Bioseq id
gi INTEGER,
-- Bioseq id
seq-id Seq-id
},
-- Seq-descr, for Bioseq and Bioseq-set
descr Seq-descr OPTIONAL,
-- Seq-annot, for Bioseq and Bioseq-set
annots SET OF Seq-annot OPTIONAL,
-- assembly history Seq-align, for Bioseq
assembly SET OF Seq-align OPTIONAL,
-- sequence map, for Bioseq
seq-map SEQUENCE OF ID2S-Sequence-Piece OPTIONAL,
-- sequence data, for Bioseq
seq-data SEQUENCE OF ID2S-Sequence-Piece OPTIONAL,
-- Bioseq, for Bioseq-set
bioseqs SET OF Bioseq OPTIONAL
}
ID2S-Sequence-Piece ::= SEQUENCE {
start INTEGER, -- start position on sequence
data SEQUENCE OF Seq-literal
}
----------------------------------------------------------------------------
-- utility types
----------------------------------------------------------------------------
ID2S-Chunk-Id ::= INTEGER
ID2S-Bioseq-set-Ids ::= SET OF INTEGER
ID2S-Bioseq-Ids ::= SET OF CHOICE {
gi INTEGER,
seq-id Seq-id,
gi-range ID2S-Gi-Range
}
ID2S-Gi-Range ::= SEQUENCE {
start INTEGER, -- start gi in this gi range
count INTEGER DEFAULT 1 -- number of sequential gis
}
-- ID2S-Seq-loc is used to represent unordered and unstranded
-- set of intervals on set of sequences.
-- It's optimized for compact encoding of several common cases:
-- Seq-ids of type gi,
-- intervals covering whole sequences,
-- whole sequences with sequential gis,
-- set of intervals on the same sequence (Seq-id sharing).
ID2S-Seq-loc ::= CHOICE {
whole-gi INTEGER, -- whole sequence by gi
whole-seq-id Seq-id, -- whole sequence by Seq-id
whole-gi-range ID2S-Gi-Range, -- set of whole sequences by gis
gi-interval ID2S-Gi-Interval, -- interval on sequence by gi
seq-id-interval ID2S-Seq-id-Interval,-- interval on sequence by Seq-id
gi-ints ID2S-Gi-Ints, -- set of intervals on the same gi
seq-id-ints ID2S-Seq-id-Ints, -- set of intervals on the same id
loc-set SET OF ID2S-Seq-loc -- combination of locations
}
ID2S-Gi-Interval ::= SEQUENCE {
gi INTEGER,
start INTEGER,
length INTEGER DEFAULT 1
}
ID2S-Seq-id-Interval ::= SEQUENCE {
seq-id Seq-id,
start INTEGER,
length INTEGER DEFAULT 1
}
ID2S-Interval ::= SEQUENCE {
start INTEGER,
length INTEGER DEFAULT 1
}
ID2S-Gi-Ints ::= SEQUENCE {
gi INTEGER,
ints SET OF ID2S-Interval
}
ID2S-Seq-id-Ints ::= SEQUENCE {
seq-id Seq-id,
ints SET OF ID2S-Interval
}
END
|