package affectors; import main.Node; import main.Globals; /** This is one half of an affector that phosphrylates a single node. Use this affector in the product species. Use the A version in the unphosphorylated species. For either membrane-bound or cytoplasmic kinases, as long as target is cytoplasmic.
Formula
dPRODUCT/dt = Pmax * SUBSTRATE * (KINASE^nu / (K_KINASE^nu + KINASE^nu))
Parameters
Substrate [SUBSTRATE] | The unphosphorylated Node |
Kinase [KINASE] | The kinase Node. |
Half-max activation [K_KINASE_SUBSTRATE] | The concentration of kinase at which it phosphorylates at half its maximum rate. |
Cooperativity [nu_KINASE_SUBSTRATE] | The non-linearity in kinase activity as kinase concentration increases. |
Max reaction rate [P_KINASE] | The maximum reaction rate. |
Usage
&PRODUCT
&PhosphorylationB_ICAff SUBSTRATE KINASE K_KINASE_SUBSTRATE nu_KINASE_SUBSTRATE P_KINASE
&endPRODUCT
@see PhosphorylationA_ICAff
@see DephosphorylationA_ICAff
*/
public class Phosphor1StepB_ICAff extends Affector {
/** The level of kinase at which phosphorylation proceeds at half-maximally. */
int kappaParam;
/** The "cooperativity" exponent for the reaction. */
int nuParam;
/** The maximal reaction rate. */
int pMaxParam;
static final String desc = "Intracellular direct phosphorylation of a substrate by a kinase; version B for product";
static final String [] nodeDescriptions = {"Unphosphorylated substrate", "Kinase"};
static final String [] paramDescriptions = {"Pmax: maximal reaction rate"};
static final int [] whichSides = {-1, -1};
public Phosphor1StepB_ICAff() {}
protected void setLabelsAndTypes() {
setDescriptions(this.desc, nodeDescriptions, paramDescriptions);
setSided(true, whichSides);
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)
{
pMaxParam = param_nums[0];
}
public float getValue(Node which_node) {
float total_kinase = Nodes[1].getIntegrationValue();
float source = Nodes[0].getIntegrationValue();
float theTerm = params[pMaxParam] * source * total_kinase;
return Globals.characteristicTime * theTerm;
}
}