1NCBI-VariationIRep DEFINITIONS AUTOMATIC TAGS ::=
2BEGIN
3
4
5--EXPORTS VariantExpression, SimpleVariant;
6
7VariantExpression ::= SEQUENCE {
8    input-expr VisibleString, -- contains the input expression to be parsed
9    reference-id VisibleString, -- contains the accession id or other identifier for the reference sequence
10    sequence-variant SequenceVariant
11}
12
13
14SequenceVariant ::= SEQUENCE {
15    seqtype VariantSeqType,
16    subvariants SEQUENCE OF Variant,
17    complex INTEGER {
18        mosaic  (1),
19        chimera (2)
20    } OPTIONAL
21}
22
23
24Variant ::= CHOICE {
25    simple SimpleVariant,
26    special SpecialVariant
27}
28
29
30VariantSeqType ::= INTEGER {
31    g (0), --genomic
32    m (1), --mitochondrial
33    c (2), --coding
34    r (3), --rna
35    n (4), --non-coding rna
36    p (5), --protein
37    u (6)  --unknown
38}
39
40
41SpecialVariant ::= INTEGER {
42    unknown            (0), -- ?
43    not-analyzed       (1), -- (?) Not sure about this
44    nochange           (2), -- =
45    nochange-expected  (3), -- (=)
46    noseq              (4), -- 0
47    noseq-expected     (5), -- 0?
48    splice-expected    (6), -- spl?
49    splice-possible    (7)  -- (spl?)
50}
51
52
53-- SimpleVarSeq is deprecated and should go
54SimpleVariantSeq ::= SEQUENCE {
55    variants SEQUENCE OF SimpleVariant,
56    sisters BOOLEAN DEFAULT FALSE,
57    fuzzy BOOLEAN DEFAULT FALSE
58}
59
60
61SimpleVariant ::= SEQUENCE {
62    type  CHOICE {
63        na-identity NaIdentity,
64        na-sub NaSub,
65        prot-sub ProteinSub,
66        prot-silent AaLocation,
67        del Deletion,
68        dup Duplication,
69        inv Inversion,
70        ins Insertion,
71        conv Conversion,
72        delins Delins,
73        repeat Repeat, --short-sequence repeat (ssr)
74        prot-ext ProteinExtension,
75        frameshift Frameshift
76    },
77    fuzzy BOOLEAN DEFAULT FALSE
78}
79
80
81Delins ::= SEQUENCE {
82    loc SeqLocation,
83    deleted-raw-seq VisibleString OPTIONAL, -- can optionally specify the deleted sequence
84    inserted-seq-info CHOICE {
85        identifier VisibleString, -- A sequence identifier (e.g. an accession id)
86        raw-seq VisibleString, -- The actual nucleotide / amino-acid sequence
87        count Count, -- The number of elements inserted
88        subseq Subsequence -- A subsequence specified by an id, type descriptor, and a range
89    }
90}
91
92
93NaSub ::= SEQUENCE {
94    loc NtLocation,
95    initial VisibleString,
96    final VisibleString
97}
98
99NaIdentity ::= SEQUENCE {
100    loc NtLocation,
101    nucleotide VisibleString OPTIONAL
102}
103
104
105ProteinSub ::= SEQUENCE {
106    type INTEGER {
107        missense(0),
108        nonsense(1),
109        unknown(2)
110    },
111    initial AaSite,
112    final VisibleString OPTIONAL
113}
114
115
116ProteinExtension ::= CHOICE {
117    nterm-ext NtermExtension,
118    cterm-ext CtermExtension
119}
120
121
122NtermExtension ::= SEQUENCE {
123    newStart Count,
124    newAa VisibleString OPTIONAL
125}
126
127
128CtermExtension ::= SEQUENCE {
129    refStop INTEGER,
130    newAa VisibleString,
131    length Count
132}
133
134
135Frameshift ::= CHOICE {
136    aasite AaSite,
137    stopcodon NULL
138}
139
140
141Deletion ::= SEQUENCE {
142    loc SeqLocation,
143    raw-seq VisibleString OPTIONAL -- can optionally specify the deleted sequence
144}
145
146
147Duplication ::= SEQUENCE {
148    loc SeqLocation,
149    raw-seq VisibleString OPTIONAL -- can optionally specify the sequence duplicated sequence
150}
151
152
153Inversion ::= SEQUENCE {
154    ntint NtInterval,
155    raw-seq VisibleString OPTIONAL,
156    size  INTEGER OPTIONAL -- optionall specify the size of the inverted sequence
157}
158
159
160Insertion ::= SEQUENCE {
161    int SeqInterval,
162
163    seqinfo CHOICE {
164        identifier VisibleString, -- A sequence identifier (e.g. an accession id)
165        raw-seq VisibleString, -- The actual nucleotide / amino-acid sequence
166        count Count, -- The number of elements inserted
167        subseq Subsequence -- A subsequence specified by an id, type descriptor, and a range
168    }
169}
170
171
172Conversion ::= SEQUENCE {
173    loc NtLocation,
174    origin NtLocation
175}
176
177
178Subsequence ::= SEQUENCE {
179    identifier VisibleString, -- For example, an accession id
180    type VariantSeqType,
181    int SeqInterval
182}
183
184
185Repeat ::= SEQUENCE {
186    loc SeqLocation,
187    count Count,
188    raw-seq VisibleString OPTIONAL --Used if ntloc is a site, not an interval
189}
190
191
192SeqLocation ::= CHOICE {
193    aaloc AaLocation,
194    ntloc NtLocation
195}
196
197SeqInterval ::= CHOICE {
198    aaint AaInterval,
199    ntint NtInterval
200}
201
202
203AaLocation ::= CHOICE {
204    site AaSite,
205    range AaSiteRange,
206    int AaInterval
207}
208
209
210AaInterval ::= SEQUENCE {
211    start AaSite,
212    stop AaSite
213}
214
215
216AaSiteRange ::= SEQUENCE {
217    start AaSite,
218    stop  AaSite
219}
220
221
222    AaSite ::= SEQUENCE {
223        index INTEGER,
224        aa VisibleString
225    }
226
227
228    NtLocation ::= CHOICE {
229        site NtSite,
230        range NtSiteRange,
231        int NtInterval
232    }
233
234
235    NtIntLimit ::= CHOICE {
236        site NtSite,
237        range NtSiteRange
238    }
239
240    NtInterval ::= SEQUENCE {
241        start NtIntLimit,
242        stop NtIntLimit
243    }
244
245
246    NtSiteRange ::= SEQUENCE {
247        start NtSite,
248        stop  NtSite
249    }
250
251
252    NtSite ::= SEQUENCE {
253        seqid VisibleString OPTIONAL,
254        seqtype VariantSeqType OPTIONAL,
255
256        base CHOICE {
257            val INTEGER,
258            unknown NULL
259        },
260
261        offset CHOICE {
262            val INTEGER,
263            plus-unknown NULL,
264            minus-unknown NULL
265        } OPTIONAL,
266
267        utr CHOICE {
268            five-prime NULL,
269            three-prime NULL
270        } OPTIONAL,
271
272
273        strand-minus BOOLEAN DEFAULT FALSE, -- TRUE implies opposite transcriptional orientation to
274                                                -- to the reference sequence
275        fuzzy BOOLEAN DEFAULT FALSE, -- TRUE implies HGVS subexpression of the form (base + offset),
276        fuzzy-offset BOOLEAN DEFAULT FALSE -- TRUE implies HGVS subexpression of the form base+(offset)
277    }
278
279
280    Count ::= CHOICE {
281        unknown NULL,
282        val INTEGER,
283        fuzzy-val INTEGER,
284        range SEQUENCE {
285            start CHOICE {
286                val INTEGER,
287                unknown NULL
288            },
289            stop CHOICE {
290                val INTEGER,
291                unknown NULL
292            }
293        }
294    }
295
296    END
297
298