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