package affectors; import main.Node; import main.Globals; /** *
This is one half of an affector that phosphorylates a single node based on a kinase * activity. Use this affector in the unphosphorylated species. Use {@link PhosphorylateB_Aff} * in the product (phosphorylated) species. For cytoplasmic proteins.
* * Formula
*
dNODE/dt = -PMax * NODE Phi(KINASE,K_kinase,nu_kinase)
*
*
Parameters *
Node [NODE] | The unphosphorylated Node |
Kinase [KINASE] | The kinase Node |
Pmax [Pmax] | Maximal rate of phosporylation. |
k_kinase [K_Kinase] | Concentration of kinase where activity is half maximal. |
nu_kinase [nu_Kinase] | Apparent cooperativity of kinase activity. |
Usage
*
*
* @author Kerry Kim
* @see PhosphorylateB_Aff
*
*/
public class PhosphorylateA_Aff extends Affector {
int pmax;
int k_kinase;
int nu_kinase;
static final String affectorDescription = "Phosphorylation of cytoplasmic protein, use version B for phosphorylated";
static final String [] nodeDescriptions = {"Protein to be phosphorylated", "Kinase"};
static final String [] paramDescriptions = {"Maximal rate of phosphorylation",
"half maximal kinase concentration",
"Cooperativity of kinase"};
static final int [] whichSides = { -1,-1 };
public PhosphorylateA_Aff() {}
protected void setLabelsAndTypes() {
setDescriptions(affectorDescription, 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)
{
pmax = param_nums[0];
k_kinase = param_nums[1];
nu_kinase = param_nums[2];
}
public float getValue(Node which_node) {
float total_kinase = Nodes[1].getIntegrationValue();
float source = Nodes[0].getIntegrationValue();
float theTerm = params[pmax] * source *
Phi(total_kinase, params[k_kinase], params[nu_kinase]);
return -Globals.characteristicTime * theTerm;
}
public float getNCValue(Node which_node) {
float total_kinase = Nodes[1].getIntegrationValue();
float theTerm = params[pmax] *
Phi(total_kinase, params[k_kinase], params[nu_kinase]);
return -Globals.characteristicTime * theTerm;
}
}
&Node
*
* &PhosphorylateA_Aff Node Kinase Pmax k_kinase nu_kinase
*
* &endNode