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 intracellular compartment. 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
dI_NODEX/dt = -exo_NODEX * I_NODEX

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
&I_NODEX

&ExoIAff I_NODEX E_NODEX exo_NODEX
&endI_NODEX @see ExoEAff */ public class ExoIAff extends Affector { /** Rate of exocytosis. */ int exoParam; static final String desc = "Exocytosis; version I for the Node that gets exocytosed"; static final String [] nodeDescriptions = {"Intracellular form", "Extracellular form"}; static final String [] paramDescriptions = {"Rate of exocytosis"}; public ExoIAff() {} protected void setLabelsAndTypes() { setDescriptions(this.desc, nodeDescriptions, paramDescriptions); setContainsTarget(true); this.Type[GUI_CAPABLE] = 1; this.Type[CERTIFICATION] = Affector.RETURNS_DERIV; this.Type[MATHTYPE] = Affector.HH; 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)); } public float getNCValue(Node which_node) { return -Globals.characteristicTime * (params[exoParam]); } }