Simulation description:

This is a simulation of apoptosis using a discrete/boolean network
formalism (BNET ARTIFICIAL_CELL C/NMODL code in bnet.mod). Nodes in
the network can be in one of two states (ON,OFF). Each node in the
network specifies a molecule/protein/enzyme and each rule specifies an
interaction between a set of source nodes and a single target
node. The nodes and rules are specified in text files: (names in
apopnames.txt; rules in apoprules.txt). The specification is loaded
using a python class (bnet) in bnet.py, or using the
readnames/readrules functions located there. network.py has a apopnet
class for a model of apoptosis that inherits from the bnet
class. Nodes in apopnames.txt come in a few forms: input nodes,
regular nodes, special nodes. Input nodes have the word "input" after
them. These nodes have fixed values for a simulation and provide input
to the rest of the network. Regular nodes (one name per line) have
their states changed based on the rules described in [1]. Special
nodes (DNADamage, Apoptosis) have their states specified based on a
special rule that integrates inputs over several iterations of the
model. Rules are specified in the following format (see apoprules.txt
for examples):

 SOURCENAMES:SOURCESTATES:WEIGHT -> TARGET

SOURCENAMES are the names of source nodes and can be comma-separated
when there are multiple source nodes. SOURCESTATES are the states the
sources must be in (single or comma-separated ON,OFF). TARGET is the
target name. WEIGHT is the activation level that is changed in the
target when a rule is turned on. These rules are more fully described
in [1].

Instructions:
This simulation was tested/developed on LINUX systems, but may run on Microsoft Windows or Mac OS. To run, you will need the NEURON simulator (available at http://www.neuron.yale.edu) compiled with python enabled. Unzip the contents of the zip file to a new directory. compile the mod files from the command line with: nrnivmodl *.mod That will produce an architecture-dependent folder with a script called special. On 64 bit systems the folder is x86_64. To run the simulation from the command line: ./x86_64/special -python mosinit.py then NEURON will start with the python interpreter and load the mechanisms and simulation. Next, the network and inputs will be setup. Then the simulation will run 40,000 times for 10,000 random initializations of network state and 4 input conditions (all combinations of TNF and GF ON/OFF). Once the simulation has run to completion (a few minutes on an Intel Xeon 2.27 GHz CPU), the output will be displayed in textual format. The output measures how often the network reaches an apoptotic state (apoptosis ratio), in each of the 4 input conditions, under the random initializations to network state. In this model, GF represents a growth factor (pro-survival) and TNF represents tumor necrosis factor (pro-apoptotic). The output will have values similar to these ([1]): TNF: 0 GF: 0 apop ratio: 0.4733 TNF: 0 GF: 1 apop ratio: 0.4679 TNF: 1 GF: 0 apop ratio: 0.9715 TNF: 1 GF: 1 apop ratio: 0.6398 Visualization of network state: The software provided makes use of the Graphviz and ImageMagick software packages (if they are already installed) to draw the network state over time, as an animated gif. An example of how to do this in a simulation loop is in the myanim function in network.py . myanim also requires a directory to store the individual frames in. This directory should be called frames, and be present in the current working directory. A temporary file, __junk__.dot will be written to as well. An example rendering of a network and its state is provided here: netstate.gif : network state In this rendering, regular (special) nodes are drawn with circles (triangles) with the name of the node indicated. Color represents node state (off:gray, on:black). Solid (dotted) lines represent that a source node must be ON (OFF) to activate the rule. Lines indicate interaction rules (red:activating; blue:inhibiting). Thick (thin) lines indicate a currently active (inactive) rule. References: This simulation is based on the article: [1] Boolean network-based analysis of the apoptosis network: Irreversible apoptosis and stable surviving Journal of Theoretical Biology volume 259, pages 760-769. by Mai Z and Liu, H (2009). For questions/comments email: samuel dot neymotin at yale dot edu or samn at neurosim dot downstate dot edu Changelog: 20160920 This updated version from the Lytton lab allows this model to run on the mac. 20220523 Updated MOD files to contain valid C++ and be compatible with the upcoming versions 8.2 and 9.0 of NEURON. Updated to use post ~2011 signature of mcell_ran4_init function. 20221216 Python3 migration via 2to3.