package affectors; import main.Node; import main.Globals; /**Diploid version of CleaveageA_ICAff. Reduces to same result if the two alleles are * identical. Assumptions for diploidizing: (1) Two alleles catalyze reactions instantly * so there's no chance that one allele is able to bind and not cleave (thus inhibiting * the other). (2) There is no synergy or cooperativity between the two (i.e. the two * alleles don't see each other or interact) and the total activity is simply the sum of * the individual activities. It would be interesting to compare this * where the nonlinearity depends on some function of the sum of the concentrations * *
This is one half of an affector that cleaves a single node into two other
* nodes. The rate of cleavage is regulated by a separate activator node (an enzyme).
* Use this affector in the uncleaved species. Use the B version in each
* of the product species.
*
*
dNODEX/dt = -0.5*SUBSTRATE(CMax1 * ( (ACTIVATOR1 ^ nu1) / ( K1 ^ nu1 + ACTIVATOR1 ^ nu1) )+
* CMax2 * ( (ACTIVATOR2 ^ nu2) / ( K2 ^ nu2 + ACTIVATOR2 ^ nu2) )
*
*
Parameters *
Substrate [SUBSTRATE] | The uncleaved Node |
Activator1 [ACTIVATOR1] | The regulator Node allele 1 which is activating cleavage |
Activator1 [ACTIVATOR1] | The regulator Node allele 2 which is activating cleavage |
Kappa1 [K_ACTIVATOR1_SUBSTRATE] | The level of the activator allele 1 at * which it acts half-maximally. |
Kappa2 [K_ACTIVATOR2_SUBSTRATE] | The level of the activator allele 2 at * which it acts half-maximally. |
nu1 [nu_ACTIVATOR1_SUBSTRATE] | Cooperativity of the activation allele 1. |
nu2 [nu_ACTIVATOR2_SUBSTRATE] | Cooperativity of the activation allele 2. |
CMax1 [CMax1_SUBSTRATE] | Maximal rate of cleavage for allele 1. |
CMax2 [CMax2_SUBSTRATE] | Maximal rate of cleavage for allele 2. |
Usage
*
*/
public class CleavageA_ICDipAff extends Affector {
/** The level of activator allele 1 at which the cleavage reaction proceeds half-maximally. */
int kappaParam1;
/** The level of activator allele 2 at which the cleavage reaction proceeds half-maximally. */
int kappaParam2;
/** The "cooperativity" exponent for activation of allele 1. */
int nuParam1;
/** The "cooperativity" exponent for activation of allele 2. */
int nuParam2;
/** The maximal rate of cleavage of allele 1. */
int cMaxParam1;
/** The maximal rate of cleavage of allele 2. */
int cMaxParam2;
static final String desc = "Diploid Intracellular cleavage of a substrate, regulated by an activator; version A for substrate";
static final String [] nodeDescriptions = {"Uncleaved substrate",
"Activator of cleavage allele 1",
"Activator of cleavage allele 2"};
static final String [] paramDescriptions ={"Kappa: half-maximal activity of the activator of cleavage allele 1",
"Kappa: half-maximal activity of the activator of cleavage allele 2",
"nu: cooperativity of activating allele 1",
"nu: cooperativity of activating allele 2",
"Cmax: maximal rate of cleavage allele 1",
"Cmax: maximal rate of cleavage allele 2"};
public CleavageA_ICDipAff() {}
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)
{
kappaParam1 = param_nums[0];
kappaParam2 = param_nums[1];
nuParam1 = param_nums[2];
nuParam2 = param_nums[3];
cMaxParam1 = param_nums[4];
cMaxParam2 = param_nums[5];
}
public float getValue(Node which_node) {
float total_cleaver1 = Nodes[1].getIntegrationValue();
float total_cleaver2 = Nodes[2].getIntegrationValue();
float source = Nodes[0].getIntegrationValue();
float theTerm1 = params[cMaxParam1] * source *
Phi(total_cleaver1, params[kappaParam1], params[nuParam1]);
float theTerm2 = params[cMaxParam2] * source *
Phi(total_cleaver2, params[kappaParam2], params[nuParam2]);
return -0.5f*Globals.characteristicTime * (theTerm1+theTerm2);
}
public float getNCValue(Node which_node) {
float total_cleaver1 = Nodes[1].getIntegrationValue();
float total_cleaver2 = Nodes[2].getIntegrationValue();
float theTerm1 = params[cMaxParam1] *
Phi(total_cleaver1, params[kappaParam1], params[nuParam1]);
float theTerm2 = params[cMaxParam2] *
Phi(total_cleaver2, params[kappaParam2], params[nuParam2]);
return -0.5f*Globals.characteristicTime * (theTerm1+theTerm2);
}
}
&CLEAVED_NODE
* &CleavageB_IC SUBSTRATE ACTIVATOR1 ACTIVATOR2 K_ACTIVATOR1_SUBSTRATE
* K_ACTIVATOR2_SUBSTRATE nu_ACTIVATOR1_SUBSTRATE nu_ACTIVATOR2_SUBSTRATE C1_SUBSTRATE C2_SUBSTRATE
*
* &endCLEAVED_NODE