package affectors; import main.Node; import main.Globals; /** This is one half of an affector that dephosphorylates a single node at a speed determined by a phosphatase enzyme according to a sigmoid curve. Use this affector in the phosphorylated species. Use the B version in the product species. For either membrane-bound or cytoplasmic phosphatases, as long as target is cytoplasmic.
Formula
dSUBSTRATE_P/dt = -Pmax * SUBSTRATE_P * (PHOSPHO^nu / (K_PHOSPHO^nu + PHOSPHO^nu))
Parameters
Substrate [SUBSTRATE_P] | The unphosphorylated Node |
Phosphotase [PHOSPHO] | The phosphatase Node. |
Half-max activation [K_PHOSPHO_SUBSTRATE_P] | The concentration of phosphatase at which it de-phosphorylates at half its maximum rate. |
Cooperativity [nu_PHOSPHO_SUBSTRATE_P] | The non-linearity in phosphatase activity as phosphatase concentration increases. |
Max reaction rate [P_PHOSPHO] | The maximum reaction rate. |
Usage
@see DephosphorylationB_ICAff
@see PhosphorylationB_ICAff
*/
public class Dephosphor1StepA_ICAff extends Affector {
/** The level of phosphatase at which the reaction proceeds half-maximally. */
int kappaParam;
/** The "cooperativity" exponent for the reaction. */
int nuParam;
/** The maximal reaction rate. */
int dMaxParam;
static final String desc = "Intracellular direct dephosphorylation of a substrate by a phosphatase; version A for substrate";
static final String [] nodeDescriptions = {"Phosphorylated substrate", "Phosphatase"};
static final String [] paramDescriptions = {"Dmax: maximal reaction rate"};
public Dephosphor1StepA_ICAff() {}
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.GG;
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;
}
public float getNCValue(Node which_node) {
float total_phosphatase = Nodes[1].getIntegrationValue();
float theTerm = params[dMaxParam] * total_phosphatase;
return -Globals.characteristicTime * theTerm;
}
}
&SUBSTRATE_P
&DephosphorylationA_ICAff SUBSTRATE_P PHOSPHO K_PHOSPHO_SUBSTRATE_P nu_PHOSPHO_SUBSTRATE_P P_PHOSPHO
&endSUBSTRATE_P