package affectors; import main.Node; import main.Globals; /** For exocytosis from an intracellular to a membrane-bound Node. Use this one in the Node representing the membrane-bound (or extracellular) compartment. Each face of the cell gets 1/num_sides of the exocytosed material. Note that a separate Node is used for the intracellular and the extracellular protein pools, even though the protein itself may be identical in both locations.

Formula
dE_NODEX/dt = exo_NODEX * I_NODEX / num_sides_per_cell

Parameters
Intracellular Node [I_NODEX] The intracellular Node that is being exocytosed
Extracellular Node [E_NODEX] The extracellular Node representing the now membrane-bound protein
Exocytosis rate [exo_NODEX] The rate at which Node is exocytosed.

Usage
&E_NODEX

&ExoEAff I_NODEX E_NODEX exo_NODEX
&endE_NODEX

@see ExoIAff */ public class ExoEAff extends Affector { /** Rate of exocytosis. */ int exoParam; static final String desc = "Exocytosis; version E for the Node on the outside"; static final String [] nodeDescriptions = {"Intracellular form", "Extracellular form"}; static final String [] paramDescriptions = {"Rate of exocytosis"}; public ExoEAff() {} protected void setLabelsAndTypes() { setDescriptions(this.desc, nodeDescriptions, paramDescriptions); this.Type[GUI_CAPABLE] = 1; this.Type[CERTIFICATION] = Affector.RETURNS_DERIV; this.Type[MATHTYPE] = Affector.KK; this.Type[TERMTYPE] = Affector.CONVERSION; } public void setParameterNumbers(int [] param_nums) { exoParam = param_nums[0]; } public float getValue(Node which_node) { return Globals.characteristicTime * ((params[exoParam]*Nodes[0].getIntegrationValue(0))/Globals.cellNumSides); } }