package affectors; import main.Node; import main.Globals; /** For endocytosis to an intracellular node - non-sided; 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 = endo_NODEX * E_NODEX

Parameters
Intracellular Node [I_NODEX] The extracellular Node that is being endocytosed
Extracellular Node [E_NODEX] The intracellular Node representing the now intracellular protein
Endocytosis rate [endo_NODEX] The rate at which Node is endocytosed.

Usage
&I_NODEX

&EndoEAff E_NODEX I_NODEX endo_NODEX
&endI_NODEX

@see EndoEAff */ public class EndoIAff extends Affector { /** Rate of endocytosis. */ int endoParam; static final String desc = "Endocytosis; version I for the intracellular Node"; static final String [] nodeDescriptions = {"Intracellular form", "Extracellular form"}; static final String [] paramDescriptions = {"Rate of endocytosis"}; public EndoIAff() {} 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) { endoParam = param_nums[0]; } public float getValue(Node which_node) { float total_ec=0; for(int i = 0; i < Globals.cellNumSides; i++) { total_ec += Nodes[1].getIntegrationValue(i); } return Globals.characteristicTime * (params[endoParam]*total_ec); } }