package affectors; import main.Node; import main.Globals; /** This is one half of an affector that dephosphorylates a single node. Use this affector in the product species. Use the A version in the phosphorylated species. For either membrane-bound or cytoplasmic phosphatases, as long as target is cytoplasmic.

Formula
dPRODUCT/dt = Pmax * SUBSTRATE_P * PHOSPHO

Parameters
Substrate [SUBSTRATE_P] The unphosphorylated Node
Phosphotase [PHOSPHO] The phosphatase Node.
Max reaction rate [P_PHOSPHO] The maximum reaction rate.

Usage
&SUBSTRATE_P

&Dephosphor1StepB_ICAff SUBSTRATE_P PHOSPHO P_PHOSPHO
&endSUBSTRATE_P

@see Dephosphor1StepA_ICAff
@see Phosphor1StepA_ICAff */ public class Dephosphor1StepB_ICAff extends Affector { /** The maximal reaction rate. */ int dMaxParam; static final String desc = "Intracellular dephosphorylation of a substrate; version B for product"; static final String [] nodeDescriptions = {"Phosphorylated substrate", "Phosphatase"}; static final String [] paramDescriptions = {"Dmax: maximal reaction rate"}; public Dephosphor1StepB_ICAff() {} protected void setLabelsAndTypes() { setDescriptions(this.desc, nodeDescriptions, paramDescriptions); this.Type[GUI_CAPABLE] = 1; this.Type[CERTIFICATION] = Affector.RETURNS_DERIV; this.Type[MATHTYPE] = Affector.FF; this.Type[TERMTYPE] = Affector.CONVERSION; } public void setParameterNumbers(int [] param_nums) { dMaxParam = param_nums[0]; } public float getValue(Node which_node) { float total_phosphatase = Nodes[1].getIntegrationValue(); float source = Nodes[0].getIntegrationValue(); float theTerm = params[dMaxParam] * source * total_phosphatase; return Globals.characteristicTime * theTerm; } }