The IP3 receptor modelIn the IP3 receptor model, reactions (i.e. receptor binding of IP3andcalcium molecules) take place on the membrane separating theendoplasmicreticulum (ER) and the cytosol. Therefore, we will useSurface Reaction objects to describe the reactions.In the figure below we can see a schematic diagram of the states andtransitions in the model.
This manual is a practical guide for th e use of the general-purpose Monte Carlo code MCNP. The previous version of the manual (LA-13709-M, March 2000) has been corrected and updated to include the new features found in MCNP Version 5 (MCNP5). The manual has also been split into 3 volumes. Is anyone familiar with Volumetric Reactions in Fluent? Like I selected Volumetric Reactions in the. Of fuel cell which are surface reactions in nature and i used same macros in my UDF to.
We see that our reactions take place on themembrane between the cytosol and the Endoplasmic Reticulum (ER) andtherefore must be described by an SReac object, with each “binding”reaction described by a second order surface reaction and each“unbinding” reaction by a first order surface reaction. # Calcium Ca = smodel. Spec ( 'Ca', mdl ) # IP3 IP3 = smodel. Spec ( 'IP3', mdl ) ############### receptor state objects ############### # receptor state: 'naive' state (no bound ligands) R = smodel. Spec ( 'R', mdl ) # receptor state: bound IP3 RIP3 = smodel.
Spec ( 'RIP3', mdl ) # receptor state: bound IP3 and Ca (open) Ropen = smodel. Spec ( 'Ropen', mdl ) # receptor state: Ca bound to one inactivation site RCa = smodel. Spec ( 'RCa', mdl ) # receptor state: Ca bound to two inactivation sites R2Ca = smodel. Spec ( 'R2Ca', mdl ) # receptor state: Ca bound to three inactivation sites R3Ca = smodel.
Spec ( 'R3Ca', mdl ) # receptor state: Ca bound to four inactivation sites R4Ca = smodel. Spec ( 'R4Ca', mdl ). Surface SystemNext we create a surface system. The function of a surface system issimilar to the volume system used to groupobjects we saw inthe. Basically,surface systems group a set of reaction rules that are described byobjects. It isoften the case that such reactions are modeled as taking place on amembrane surface and not within a volume, although this is actually nota necessity.
We need to create an object of type. Thearguments to the class constructor are an identifier string and areference to the parentobject. # The 'forward' binding reactions: RbindIP3f = smodel.
SReac ( 'RbindIP3b', surfsys, slhs = RIP3 , orhs = IP3 , srhs = R ) RIP3bindCab = smodel. SReac ( 'RIP3bindCab', surfsys, slhs = Ropen , orhs = Ca , srhs = RIP3 ) RbindCab = smodel. SReac ( 'RbindCab', surfsys, slhs = RCa , orhs = Ca , srhs = R ) RCabindCab = smodel. SReac ( 'RCabindCab', surfsys, slhs = R2Ca , orhs = Ca , srhs = RCa ) R2CabindCab = smodel. SReac ( 'R2CabindCab', surfsys, slhs = R3Ca , orhs = Ca , srhs = R2Ca ) R3CabindCab = smodel. SReac ( 'R3Cabindcab', surfsys, slhs = R4Ca , orhs = Ca , srhs = R3Ca )We model our calcium flux from the ER to the cytosol simply as a secondorder reaction. In effect we are saying, when such a reaction takesplace, a calcium ion from the ER passes instantaneously through an openreceptor to the cytosol.
Geometry specificationThe next step is to create the geometry for the model. We will chosewell-mixed geometry, as in the, but we now have two compartments which areconnected by a surface ‘patch’.
We create twoobjects to representthe Endoplasmic Reticulum (which we intend to label the ‘inner’compartment) and the cytosol (‘outer’ compartment), and aobject to representthe ER membrane between the ER and cytosol. We then add thestoichiometry we previously defined and grouped in our surface systemobject to the patch object. Note that any volume-reactions we definedwith Reac objects and grouped in Volsyscontainers would beadded to the Compartments at this stage.First we create the two well-mixed compartments. With more than onecompartment in the model we must make sure that the identifier stringsare be unique amongst all compartments in the geometry container.
Wecreate the cytosol compartment with the minimum information (identifierstring and reference to container), setting the volume with class method, butset the volume of the ER during object construction purely todemonstrate the two possible ways to achieve the task. Import steps.geom as swm wmgeom = swm. Geom # Create the cytosol compartment cyt = swm. Comp ( 'cyt', wmgeom ) cyt. SetVol ( 1.6572e-19 ) # Create the Endoplasmic Reticulum compartment ER = swm. Comp ( 'ER', wmgeom, vol = 1.968e-20 )We now create aobject, defining the ‘inner’ and ‘outer’ compartments.
We wish to labelthe ER as the ‘inner’ compartment and the cytosol as the ‘outer’compartment, which we achieve by their order to the patch objectconstructor. The 3rd (required) argument to the constructor (here I amcalling the string Id the 1st argument, not the ‘zeroth’) is a referenceto the ‘inner’ compartment and the 4th (optional) argument is areference to the ‘outer’ compartment. It is vital that care is taken inthe order of theobjects to the constructor, so that the required labelling from orsurface reaction definitions is maintained. Note: A Patch must havean inner compartment by convention, but does not require an outercompartment.
This is an easy way to remember the order to theconstructor; since an inner compartment is always required it must comefirst to the constructor, and the optional outer compartment comesafter. Obviously any surface reaction rules that contain reactants orproducts in the outer compartment cannot be added to a Patch thatdoesn’t have an outer compartment.We can check the labelling is as desired after object construction if welike with methodsand.Note: Typically, get functions return references to the object, notthe identifier string, so we can use any of the object methods on thereturned reference to access information about the object. Here we usemethod getID, which returns the identifier string of the object.We also set the surface area of the patch.
Import steps.solver as ssolver sim = ssolver. Wmdirect ( mdl, wmgeom, r )To run the simulation and plot the data, we import modules fromnumpy and create arrays to store the data, as we also didpreviously. We also import modules from matplotlib in order to plotthe results. This time we also want to plot the standard deviation so wecreate arrays to store that data too. Here we create variable NITERand assign it the value 100, the number of iterations we wish to run.Note: It is perhaps better to group simulation parameters togetherat the beginning of the script (such as number of iterations, simulationend time, data collection time step, etc) so we can change a parametersimply by changing one variable, which reduces the amount of typing andreduces the scope for error. This is an approach we will adopt in the.
NITER = 100 import numpy as np% matplotlib inlineimport matplotlib.pyplot as plt tpnt = np. Arange ( 0.0, 0.201, 0.001 ) res = np.
Zeros ( NITER, 201, 2 ) resstd = np. Zeros ( 201, 2 ) resstd1 = np. Zeros ( 201, 2 ) resstd2 = np. Zeros ( 201, 2 )At the beginning of the simulation, we reset the solver state and setthe initial concentration or count (by “count” we mean the number ofmolecules) of each species (any species we don’t explicitly assign aconcentration or count to will be initialized with the default value ofzero which was set when we called the reset function) and run thesimulation for NITER number of iterations.
In the following examplecode, we record the number of IP3 receptors in open state (‘Ropen’ in‘memb’) and the concentration of calcium in the cytosol (‘Ca’ in ‘cyt’).We include a pylab.plot call within our main loop to plot the numberof open receptors for each individual iteration. Figure ( figsize = ( 12, 7 )) for i in range ( 0, NITER ): sim. Reset sim. SetCompConc ( 'cyt', 'Ca', 3.30657e-8 ) sim.
SetCompClamped ( 'ER', 'Ca', True ) sim. SetPatchCount ( 'memb', 'R', 160 ) for t in range ( 0, 201 ): sim. Run ( tpnt t ) res i, t, 0 = sim. GetPatchCount ( 'memb', 'Ropen' ) res i, t, 1 = sim.