1--$Revision: 601576 $
2--**********************************************************************
3--
4--  NCBI Sequence location and identifier elements
5--  by James Ostell, 1990
6--
7--  Version 3.0 - 1994
8--
9--**********************************************************************
10
11NCBI-Seqloc DEFINITIONS ::=
12BEGIN
13
14EXPORTS Seq-id, Seq-loc, Seq-interval, Packed-seqint, Seq-point, Packed-seqpnt,
15        Na-strand, Giimport-id;
16
17IMPORTS Object-id, Int-fuzz, Dbtag, Date FROM NCBI-General
18        Id-pat FROM NCBI-Biblio
19        Feat-id FROM NCBI-Seqfeat;
20
21--*** Sequence identifiers ********************************
22--*
23
24Seq-id ::= CHOICE {
25    local Object-id ,            -- local use
26    gibbsq INTEGER ,             -- Geninfo backbone seqid
27    gibbmt INTEGER ,             -- Geninfo backbone moltype
28    giim Giimport-id ,           -- Geninfo import id
29    genbank Textseq-id ,
30    embl Textseq-id ,
31    pir Textseq-id ,
32    swissprot Textseq-id ,
33    patent Patent-seq-id ,
34    other Textseq-id ,           -- for historical reasons, 'other' = 'refseq'
35    general Dbtag ,              -- for other databases
36    gi INTEGER ,                 -- GenInfo Integrated Database
37    ddbj Textseq-id ,            -- DDBJ
38    prf Textseq-id ,             -- PRF SEQDB
39    pdb PDB-seq-id ,             -- PDB sequence
40    tpg Textseq-id ,             -- Third Party Annot/Seq Genbank
41    tpe Textseq-id ,             -- Third Party Annot/Seq EMBL
42    tpd Textseq-id ,             -- Third Party Annot/Seq DDBJ
43    gpipe Textseq-id ,           -- Internal NCBI genome pipeline processing ID
44    named-annot-track Textseq-id -- Internal named annotation tracking ID
45}
46
47Seq-id-set ::= SET OF Seq-id
48
49
50Patent-seq-id ::= SEQUENCE {
51    seqid INTEGER ,         -- number of sequence in patent
52    cit Id-pat }           -- patent citation
53
54Textseq-id ::= SEQUENCE {
55    name VisibleString OPTIONAL ,
56    accession VisibleString OPTIONAL ,
57    release VisibleString OPTIONAL ,
58    version INTEGER OPTIONAL }
59
60Giimport-id ::= SEQUENCE {
61    id INTEGER ,                     -- the id to use here
62    db VisibleString OPTIONAL ,      -- dbase used in
63    release VisibleString OPTIONAL } -- the release
64
65PDB-seq-id ::= SEQUENCE {            --
66      mol PDB-mol-id ,                    -- the molecule name
67      chain INTEGER DEFAULT 32 ,          -- Deprecated:  'chain' can't support multiple character
68                                          -- PDB chain identifiers (introduced in 2015).
69                                          -- 'chain-id' stores chain identifiers of any length.
70      rel Date OPTIONAL ,                 -- release date, month and year
71      chain-id VisibleString OPTIONAL }   -- chain identifier; length-independent generalization of 'chain'
72                                          -- NB: unlike 'chain', 'chain-id' has no default
73
74PDB-mol-id ::= VisibleString  -- name of mol, 4 chars
75
76--*** Sequence locations **********************************
77--*
78
79Seq-loc ::= CHOICE {
80    null NULL ,           -- not placed
81    empty Seq-id ,        -- to NULL one Seq-id in a collection
82    whole Seq-id ,        -- whole sequence
83    int Seq-interval ,    -- from to
84    packed-int Packed-seqint ,
85    pnt Seq-point ,
86    packed-pnt Packed-seqpnt ,
87    mix Seq-loc-mix ,
88    equiv Seq-loc-equiv ,  -- equivalent sets of locations
89    bond Seq-bond ,
90    feat Feat-id }         -- indirect, through a Seq-feat
91
92
93Seq-interval ::= SEQUENCE {
94    from INTEGER ,
95    to INTEGER ,
96    strand Na-strand OPTIONAL ,
97    id Seq-id ,    -- WARNING: this used to be optional
98    fuzz-from Int-fuzz OPTIONAL ,
99    fuzz-to Int-fuzz OPTIONAL }
100
101Packed-seqint ::= SEQUENCE OF Seq-interval
102
103Seq-point ::= SEQUENCE {
104    point INTEGER ,
105    strand Na-strand OPTIONAL ,
106    id Seq-id ,     -- WARNING: this used to be optional
107    fuzz Int-fuzz OPTIONAL }
108
109Packed-seqpnt ::= SEQUENCE {
110    strand Na-strand OPTIONAL ,
111    id Seq-id ,
112    fuzz Int-fuzz OPTIONAL ,
113    points SEQUENCE OF INTEGER }
114
115Na-strand ::= ENUMERATED {          -- strand of nucleic acid
116    unknown (0) ,
117    plus (1) ,
118    minus (2) ,
119    both (3) ,                -- in forward orientation
120    both-rev (4) ,            -- in reverse orientation
121    other (255) }
122
123Seq-bond ::= SEQUENCE {         -- bond between residues
124    a Seq-point ,           -- connection to a least one residue
125    b Seq-point OPTIONAL }  -- other end may not be available
126
127Seq-loc-mix ::= SEQUENCE OF Seq-loc   -- this will hold anything
128
129Seq-loc-equiv ::= SET OF Seq-loc      -- for a set of equivalent locations
130
131END
132
133
134