/*
visualization_output.mdl" */
/* This MDL statement block
specifies the content, format, and timing of simulation data to be output for
3-D visualization. */
VIZ_DATA_OUTPUT {
MODE = DX
/* 3-D rendering requires use of
an external rendering software package, and is a complex issue in and of
itself. The choice of MODE here
primarily determines the format of the output data, aimed at a particular
choice of rendering software (see book Chapter 4, note 6 for rendering software
URLs). At present the choices include:
DX (IBM DataExplorer), RENDERMAN (Pixar RenderMan or Blue Moon Rendering
Tools), IRIT, RAYSHADE, or POVRAY. The
preferred format (from an MCell perspective) is DX because: (1) the output data
can be organized hierarchically, similar to the way that the MCell objects are
organized; (2) the output data can be much more compact than for the other
choices; (3) DX is actually a high-dimensional data analysis and manipulation
tool in addition to a renderer. It has
a graphical user interface that is a powerful visual programming environment,
and can be extremely useful for designing and modifying MCell structures. */
STATE_VALUES { /* These are arbitrary values
that are assigned to surfaces and molecules.
If output for rendering purposes, they can be used to assign colors and
other surface properties, and/or to selectively render only a subset of the
data. Particular physical objects
instantiated within a metaobject hierarchy can be selected by a top-down list
of object names separated by periods.
If the last (lower_most) named object is itself a metaobject, all of its
own subobjects are included in the MDL operation. */
nmj.nerve_layer = 1
nmj.lamina_layer = 2
nmj.muscle_layer.top = 3
nmj.muscle_layer.middle = 4
nmj.muscle_layer.bottom = 5
nmj.sampling_boxes = 6 /* All
5 subobjects (boxes) that are part of "nmj.sampling_boxes" will be
included and will receive a value of 6. */
AChR.R0 = 1 /* Names for molecules defined
implicitly by reaction mechanism states are used as described in the
ADD_EFFECTOR block in "nerve_membrane.mdl". */
AChR.AR1 = 2
AChR.AR2 = 2 /* Since the two single-bound
AChR states are statistically identical in this example, they are given the
same state value. */
AChR.A2R3 = 3
AChR.A2R4 = 4
AChE.E = 5
AChE.AE = 6
AChE.AcE = 7
AChE.AAcE = 8
ChR.R0 = 9
ChR.AR1 = 10
ChR.AR2 = 11
ACh = 12 /* Explicitly defined molecule
name (DEFINE_LIGAND block in "rat_nmj.main.mdl"). */
Ch = 13
}
/* Visualization output data is
written into different files containing surface and molecule positions and
states, and these sets of files must be output for each desired time-step
iteration. To organize the output files
according to the MCell objects that they contain, different objects can be
assigned different prefixes for the associated sets of visualization output
file names. */
MOLECULE_FILE_PREFIX = "viz" /* All
output files for molecules that are not effector sites will have the prefix
"viz". */
OBJECT_FILE_PREFIXES {
nmj = "viz" /* All
surfaces and effector sites included in "nmj" (which in this example
includes all instantiated objects) will be output to data files that have the
prefix "viz". For DX
rendering this method is efficient and convenient. For other rendering modes, it is generally desirable to subdivide
the objects, e.g.:
nmj.nerve_layer =
"viz.nerve"
nmj.lamina_layer =
"viz.basal_lamina"
nmj.muscle_layer.top =
"viz.postsynaptic.top"
nmj.muscle_layer.middle =
"viz.postsynaptic.middle"
nmj.muscle_layer.bottom =
"viz.postsynaptic.bottom"
nmj.sampling_boxes =
"viz.sampling_boxes"
*/
}
/* For the most part, surface
and effector site positions do not change during a simulation, and therefore do
not need to be output repeatedly for imaging purposes. It is also generally true that changing
molecule positions and states only need to be visualized for a subset of
simulation time-step iterations. A
snapshot of the simulation at the end of one particular iteration constitutes
one frame of an animation, and the following statement block specifies what
visualization data should be output for one or more iteration frames. */
ITERATION_FRAME_DATA {
SURFACE_POSITIONS = [0] /*
Output surface position data files only after iteration 0, i.e., after surfaces
and molecules are initialized but before any movements or transitions occur. */
SURFACE_STATES = [0] /*
Output surface states data files only after iteration 0. */
EFFECTOR_POSITIONS = [0] /*
Output effector site position data files only after iteration 0. */
EFFECTOR_STATES = [0,[2 TO 598 STEP
2],[600 TO 2600 STEP 100],5000,10000,14000]
/* Output effector states into
data files after each of the listed iteration numbers. */
LIGAND_POSITIONS = [0,[2 TO 598 STEP
2],[600 TO 2600 STEP 100],5000,10000,14000]
/* Output positions of molecules
into data files after each of the listed iteration numbers. */
LIGAND_STATES = [0,[2 TO 598 STEP 2],[600
TO 2600 STEP 100],5000,10000,14000] /* Output states of molecules into data files after each of the
listed iteration numbers. */
}
/* A shortcut to output of all
position and state data (very inefficient for large simulation structures) can
be used in place of ITERATION_FRAME_DATA, e.g.:
ITERATION_LIST = [0,[2 TO
598 STEP 2],[600 TO 2600 STEP 100],5000,10000,14000]
*/
}