2
--**********************************************************************
4
-- Biological Macromolecule 3-D Structure Data Types for MMDB,
5
-- A Molecular Modeling Database
7
-- Definitions for structural features and biostruc addressing
9
-- By Hitomi Ohkawa, Jim Ostell, Chris Hogue and Steve Bryant
11
-- National Center for Biotechnology Information
12
-- National Institutes of Health
13
-- Bethesda, MD 20894 USA
17
--**********************************************************************
19
MMDB-Features DEFINITIONS ::=
23
EXPORTS Biostruc-feature-set, Chem-graph-pntrs, Atom-pntrs,
24
Chem-graph-alignment, Sphere, Cone, Cylinder, Brick, Transform,
25
Biostruc-feature-set-id, Biostruc-feature-id;
27
IMPORTS Biostruc-id FROM MMDB
28
Molecule-id, Residue-id, Atom-id FROM MMDB-Chemical-graph
29
Model-id, Model-coordinate-set-id FROM MMDB-Structural-model
30
User-object FROM NCBI-General
33
-- Named model features refer to sets of residues or atoms, or a region in
34
-- the model space. A few specific feature types are allowed for compatibility
35
-- with PDB usage, but the purpose of a named model feature is simply to
36
-- associate various types of information with a set of atoms or
37
-- residues, or a spatially-defined region of the model structure. They also
38
-- support association of various properties with each residue or atom of a
41
-- PDB-derived secondary structure defines a single feature, represented as a
42
-- sequence of residue motifs, as are the contents of PDB SITE and
43
-- FTNOTE records. NCBI-assigned core and secondary structure descriptions
44
-- are also represented as a sequence of residue motifs.
46
Biostruc-feature-set ::= SEQUENCE {
47
id Biostruc-feature-set-id,
48
descr SEQUENCE OF Biostruc-feature-set-descr OPTIONAL,
49
features SEQUENCE OF Biostruc-feature }
51
Biostruc-feature-set-id ::= INTEGER
53
Biostruc-feature-set-descr ::= CHOICE {
55
pdb-comment VisibleString,
56
other-comment VisibleString,
59
-- An explicitly specified type in Biostruc-feature allows for
60
-- efficient extraction and indexing of feature sets of a specific type.
61
-- Special types are provided for coloring and rendering, as
62
-- as needed by molecular graphics programs.
64
Biostruc-feature ::= SEQUENCE {
65
id Biostruc-feature-id OPTIONAL,
66
name VisibleString OPTIONAL,
67
type INTEGER { helix(1),
74
subgraph(100), -- NCBI domain reserved
76
core(102), -- user core definition
77
supercore(103), -- NCBI reserved
81
transform(153), -- new
83
script(155), -- for scripts
84
alignment(200), -- VAST reserved
86
multalign(202), -- multiple alignment
88
cn3dstate(254), -- Cn3D reserved
89
other(255) } OPTIONAL,
95
script Biostruc-script,
96
user User-object } OPTIONAL,
98
subgraph Chem-graph-pntrs,
100
alignment Chem-graph-alignment,
101
similarity Region-similarity,
102
indirect Other-feature } OPTIONAL } -- new
104
-- Other-feature allows for specifying location via reference to another
105
-- Biostruc-feature and its location.
107
Other-feature ::= SEQUENCE {
108
biostruc-id Biostruc-id,
109
set Biostruc-feature-set-id,
110
feature Biostruc-feature-id }
112
Biostruc-feature-id ::= INTEGER
114
-- Atom, residue or molecule motifs describe a substructure defined by a set
115
-- of nodes from the chemical graph. PDB secondary structure features are
116
-- described as a residue motif, since they are not associated with any one of
117
-- the multiple models that may be provided in a PDB file. NCBI-assigned
118
-- secondary structure is represented in the same way, even though it is
119
-- model specific, since this allows for simple mapping of the structural
120
-- feature onto a sequence-only representation. This addressing mode may also
121
-- be used to describe features to be associated with particular atoms,
122
-- as, for example, the chemical shift observed in an NMR experiment.
124
Chem-graph-pntrs ::= CHOICE {
126
residues Residue-pntrs,
127
molecules Molecule-pntrs }
129
Atom-pntrs ::= SEQUENCE {
130
number-of-ptrs INTEGER,
131
molecule-ids SEQUENCE OF Molecule-id,
132
residue-ids SEQUENCE OF Residue-id,
133
atom-ids SEQUENCE OF Atom-id }
135
Residue-pntrs ::= CHOICE {
136
explicit Residue-explicit-pntrs,
137
interval SEQUENCE OF Residue-interval-pntr }
139
Residue-explicit-pntrs ::= SEQUENCE {
140
number-of-ptrs INTEGER,
141
molecule-ids SEQUENCE OF Molecule-id,
142
residue-ids SEQUENCE OF Residue-id }
144
Residue-interval-pntr ::= SEQUENCE {
145
molecule-id Molecule-id,
149
Molecule-pntrs ::= SEQUENCE {
150
number-of-ptrs INTEGER,
151
molecule-ids SEQUENCE OF Molecule-id }
153
-- Region motifs describe features defined by spatial location, such as the
154
-- site specified by a coordinate value, or a rgeion within a bounding volume.
156
Region-pntrs ::= SEQUENCE {
159
site SEQUENCE OF Region-coordinates,
160
boundary SEQUENCE OF Region-boundary } }
162
-- Coordinate sites describe a region in space by reference to individual
163
-- coordinates, in a particular model. These coordinates may be either the
164
-- x, y and z values of atomic coordinates, the triangles of a surface mesh,
165
-- or the grid points of a density model. All are addressed in the same manner,
166
-- as coordinate indices which give offsets from the beginning of the
167
-- coordinate data arrays. A coordinate-index of 5, for example, refers to
168
-- the 5th x, y and z values of an atomic coordinate set, the 5th v1, v2, and v3
169
-- values of a triangle mesh, or the 5th value in a density grid.
171
-- PDB SITE and FTNOTE records refer to particular atomic coordinates, and they
172
-- are represented as a region motif with addresses of type Region-coordinates.
173
-- Any names or descriptions provided by PDB are thus associated with the
174
-- indicated sites, in the indicated model.
176
Region-coordinates ::= SEQUENCE {
177
model-coord-set-id Model-coordinate-set-id,
178
number-of-coords INTEGER OPTIONAL,
179
coordinate-indices SEQUENCE OF INTEGER OPTIONAL }
181
-- Region boundaries are defined by regular solids located in the model space.
183
Region-boundary ::= CHOICE { sphere Sphere,
188
-- A biostruc alignment establishes an equivalence of nodes in the chemical
189
-- graphs of two or more biostrucs. This may be mapped to a sequence
190
-- alignment in the case of biopolymers.
191
-- The 'dimension' component indicates the number of participants
192
-- in the alignment. For pairwise alignments, such as VAST
193
-- structure-structure alignments, the dimension will be always 2, with
194
-- biostruc-ids, alignment, and domain each containing two entries for an
195
-- aligned pair. The 'alignment' component contains a pair of Chem-graph-pntrs
196
-- specifying a like number of corresponding residues in each structure.
197
-- The 'domain' component specifies a region of each structure considered
198
-- in the alignment. Only one transform (for the second structure) and
199
-- one aligndata (for the pair) are provided for each VAST alignment.
201
-- For multiple alignments, a set of components are treated as
202
-- parallel arrays of length 'dimension'.
203
-- The 'transform' component moves each structure to align it with
204
-- the structure specified as the first element in the "parallel" array,
205
-- so necessarily the first transform is a NULL transform.
206
-- Align-stats are placeholders for scores.
208
Chem-graph-alignment ::= SEQUENCE {
209
dimension INTEGER DEFAULT 2,
210
biostruc-ids SEQUENCE OF Biostruc-id,
211
alignment SEQUENCE OF Chem-graph-pntrs,
212
domain SEQUENCE OF Chem-graph-pntrs OPTIONAL,
213
transform SEQUENCE OF Transform OPTIONAL,
214
aligndata SEQUENCE OF Align-stats OPTIONAL }
216
Align-stats ::= SEQUENCE {
217
descr VisibleString OPTIONAL,
218
scale-factor INTEGER OPTIONAL,
219
vast-score INTEGER OPTIONAL,
220
vast-mlogp INTEGER OPTIONAL,
221
align-res INTEGER OPTIONAL,
222
rmsd INTEGER OPTIONAL,
223
blast-score INTEGER OPTIONAL,
224
blast-mlogp INTEGER OPTIONAL,
225
other-score INTEGER OPTIONAL }
227
-- A biostruc similarity describes spatial features which are similar between
228
-- two or more biostrucs. Similarities are model dependent, and the model and
229
-- coordinate set ids of the biostrucs must be specified. They do not
230
-- necessarily map to a sequence alignment, as the regions referenced may
231
-- be pieces of a surface or grid, and thus not uniquely mapable to particular
232
-- chemical components.
234
Region-similarity ::= SEQUENCE {
235
dimension INTEGER DEFAULT 2,
236
biostruc-ids SEQUENCE OF Biostruc-id,
237
similarity SEQUENCE OF Region-pntrs,
238
transform SEQUENCE OF Transform }
240
-- Geometrical primitives are used in the definition of region motifs, and
241
-- also non-atomic coordinates. Spheres, cones, cylinders and bricks are
242
-- defined by a few points in the model space.
244
Sphere ::= SEQUENCE {
245
center Model-space-point,
249
axis-top Model-space-point,
250
axis-bottom Model-space-point,
251
radius-bottom RealValue }
253
Cylinder ::= SEQUENCE {
254
axis-top Model-space-point,
255
axis-bottom Model-space-point,
258
-- A brick is defined by the coordinates of eight corners. These are assumed
259
-- to appear in the order 000, 001, 010, 011, 100, 101, 110, 111, where the
260
-- digits 0 and 1 refer to respectively to the x, y and z axes of a unit cube.
261
-- Opposite edges are assumed to be parallel.
264
corner-000 Model-space-point,
265
corner-001 Model-space-point,
266
corner-010 Model-space-point,
267
corner-011 Model-space-point,
268
corner-100 Model-space-point,
269
corner-101 Model-space-point,
270
corner-110 Model-space-point,
271
corner-111 Model-space-point }
273
Model-space-point ::= SEQUENCE {
274
scale-factor INTEGER,
279
RealValue ::= SEQUENCE {
280
scale-factor INTEGER,
281
scaled-integer-value INTEGER }
284
Transform ::= SEQUENCE {
286
moves SEQUENCE OF Move }
290
translate Trans-matrix }
292
-- A rotation matrix is defined by 9 numbers, given by row, i.e.,
293
-- with column indices varying fastest.
294
-- Coordinates, as a matrix with columns x, y, an z, are rotated
295
-- via multiplication with the rotation matrix.
296
-- A translation matrix is defined by 3 numbers, which is added to
297
-- the rotated coordinates for specified amount of translation.
299
Rot-matrix ::= SEQUENCE {
300
scale-factor INTEGER,
311
Trans-matrix ::= SEQUENCE {
312
scale-factor INTEGER,
317
-- The camera is a position relative to the world coordinates
318
-- of the structure referred to by a location.
319
-- this is used to set the initial position of the
320
-- camera using OpenGL. scale is the value used to scale the
321
-- other values from floating point to integer
323
Camera ::= SEQUENCE {
329
modelview GL-matrix }
332
GL-matrix ::= SEQUENCE {
352
Color-prop ::= SEQUENCE {
356
name VisibleString OPTIONAL }
358
-- Note that Render-prop is compatible with the Annmm specification,
359
-- i.e., its numbering schemes do not clash with those in Render-prop.
361
Render-prop ::= INTEGER {
362
default (0), -- Default view
363
wire (1), -- use wireframe
364
space (2), -- use spacefill
365
stick (3), -- use stick model (thin cylinders)
366
ballNStick (4), -- use ball & stick model
367
thickWire (5), -- thicker wireframe
368
hide (9), -- don't show this
369
name (10), -- display its name next to it
370
number (11), -- display its number next to it
371
pdbNumber (12), -- display its PDB number next to it
372
objWireFrame (150), -- display MMDB surface object as wireframe
373
objPolygons (151), -- display MMDB surface object as polygons
374
colorsetCPK (225), -- color atoms like CPK models
375
colorsetbyChain (226), -- color each chain different
376
colorsetbyTemp (227), -- color using isotropic Temp factors
377
colorsetbyRes (228), -- color using residue properties
378
colorsetbyLen (229), -- color changes along chain length
379
colorsetbySStru (230), -- color by secondary structure
380
colorsetbyHydro (231), -- color by hydrophobicity
381
colorsetbyObject(246), -- color each object differently
382
colorsetbyDomain(247), -- color each domain differently
386
-- When a Biostruc-Feature with a Biostruc-script is initiated,
387
-- it should play the specified steps one at a time, setting the feature-do
388
-- list as the active display.
389
-- The camera can be set using a feature-do,
390
-- but it may be moved independently with
391
-- camera-move, which specifies how to move
392
-- the camera dynamically during the step along the path defined (e.g.,
393
-- a zoom, a rotate).
394
-- Any value of pause (in 1:10th's of a second) will force a pause
395
-- after an image is shown.
396
-- If waitevent is TRUE, it will await a mouse or keypress and ignore
399
Biostruc-script ::= SEQUENCE OF Biostruc-script-step
401
Biostruc-script-step ::= SEQUENCE {
403
step-name VisibleString OPTIONAL,
404
feature-do SEQUENCE OF Other-feature OPTIONAL,
405
camera-move Transform OPTIONAL,
406
pause INTEGER DEFAULT 10,
409
jump Step-id OPTIONAL }