package affectors; import main.Node; import main.Globals; /** This is one half of an affector that cleaves a single node into two other nodes. Use this affector in the uncleaved species. Use the B version in each of the product species. This one is opposite to CleavageA_ICAff in that the regulator inhibits cleavage rather than activates it. Otherwise they are identical.
Formula
dNODEX/dt = - CMax * SUBSTRATE * ( 1 - (INHIBITOR ^ nu) / ( K ^ nu + INHIBITOR ^ nu) )
Parameters
Substrate [SUBSTRATE] | The uncleaved Node |
Inhibitor [INHIBITOR] | The regulator Node which is inhibiting cleavage |
Kappa [K_INHIBITOR_SUBSTRATE] | The level of the inhibitor at which it acts half-maximally. |
nu [nu_INHIBITOR_SUBSTRATE] | Cooperativity of the inhibitory term. |
CMax [CMax_SUBSTRATE] | Maximal rate of cleavage. |
Usage
*/
public class Cleavage2A_ICAff extends Affector {
/** The level of inhibitor at which the cleavage reaction proceeds half-maximally. */
int kappaParam;
/** The "cooperativity" exponent for the reaction. */
int nuParam;
/** The maximal rate of cleavage. */
int cMaxParam;
static final String desc = "Intracellular cleavage of a substrate, regulated by an inhibitor; version A for substrate";
static final String [] nodeDescriptions = {"Uncleaved substrate", "Inhibitor of cleavage"};
static final String [] paramDescriptions = {"Kappa: half-maximal activity of the inhibitor of cleavage",
"nu: cooperativity of inhibitory term",
"Cmax: maximal rate of cleavage"};
public Cleavage2A_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)
{
kappaParam = param_nums[0];
nuParam = param_nums[1];
cMaxParam = param_nums[2];
}
public float getValue(Node which_node) {
float total_inhibitor = Nodes[1].getIntegrationValue();
float source = Nodes[0].getIntegrationValue();
float theTerm = params[cMaxParam] * source *
Psi(total_inhibitor, params[kappaParam], params[nuParam]);
return -Globals.characteristicTime * theTerm;
}
public float getNCValue(Node which_node) {
float total_inhibitor = Nodes[1].getIntegrationValue();
float theTerm = params[cMaxParam] *
Psi(total_inhibitor, params[kappaParam], params[nuParam]);
return -Globals.characteristicTime * theTerm;
}
}
&SUBSTRATE
&Cleavage2A_IC SUBSTRATE INHIBITOR K_INHIBITOR_SUBSTRATE nu_INHIBITOR_SUBSTRATE C_SUBSTRATE
&endSUBSTRATE