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 *
&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 */ 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); } }