summaryrefslogtreecommitdiff
path: root/network/id2arch/seqsplit.asn
blob: 451170c8f1aad4346cc56737524c727bd2d176b0 (plain)
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