package affectors; import main.Node; import main.Globals; /** Txn3a takes two activators which synergize such that only in the presence of both can the target achieve full activity. Parameters include as usual the half-life of the target and the K's and nu's for each regulator, but also a "leak" parameter delta which enables one to specify that one of the two activators can reach some fraction (equal to delta) in the absence of the other (which behaves as a non-essential cofactor). Delta should range from 0 (no leak in the absence of cofactor) to at most 1.0 (cofactor has no effect). All inputs may be either cytoplasmic or membrane-bound as long as they reside in the same cell as the target.
Formula
ACTIVATION1 = ACTIVATOR1^nu_ACT1 / (K_ACT1^nu_ACT1 + ACTIVATOR1^nu_ACT1)
ACTIVATION2 = ACTIVATOR2^nu_ACT2 / (K_ACT2^nu_ACT2 + ACTIVATOR2^nu_ACT2)
dnodex/dt = (1 / H_nodex) * ACTIVATION1 * (delta + (1 - delta) * ACTIVATION2)
Parameters
Activator1 [ACTIVATOR1] | The first transcriptional activator Node |
Activator2 [ACTIVATOR2] | The second transcriptional activator Node, the "cofactor" |
mRNA Half-life [H_nodex] | The half life of the product mRNA |
Half-max activation level for first activator [K_ACTIVATOR1nodex] | The half-maximal concentration of the first activator |
Activator 1 cooperativity [nu_ACTIVATOR1nodex] | The non-linearity for the first activator. The higher the value, the sharper the curves in the S-shaped activation function |
Half-max activation level for second activator [K_ACTIVATOR2nodex] | The half-maximal concentration of the cofactor |
Activator 2 cooperativity [nu_ACTIVATOR2nodex] | The non-linearity for the second activator. The higher the value, the sharper the curves in the S-shaped activation function |
Leak fraction [delta_ACTIVATOR1nodex] | The fraction of activation achievable in the absence of the cofactor |
Usage
*/
public class Txn3aAff extends Affector {
/** The half-life of the transcript. */
int halfLifeParam;
/** The level of activator 1 at which transcription proceeds half-maximally. */
int kA1Param;
/** The "cooperativity" exponent for activator 1. */
int nuA1Param;
/** The level of activator 2 at which transcription proceeds half-maximally. */
int kA2Param;
/** The "cooperativity" exponent for activator 2. */
int nuA2Param;
/** The leak fraction. */
int deltaParam;
static final String desc = "Transcription dependent on two synergizing activators, one able to achieve a fractional output in the absence of the second";
static final String [] nodeDescriptions = {"Activator 1", "Activator 2"};
static final String [] paramDescriptions = {"Half-life of transcript produced",
"Kappa activator 1: half-maximal level of activator 1",
"nu1: cooperativity of activator 1",
"Kappa activator 2: half-maximal level of activator 2",
"nu2: cooperativity of activator 2",
"delta: leak fraction"};
public Txn3aAff() {}
protected void setLabelsAndTypes() {
setDescriptions(this.desc, nodeDescriptions, paramDescriptions);
this.Type[GUI_CAPABLE] = 1;
this.Type[CERTIFICATION] = Affector.RETURNS_DERIV;
this.Type[MATHTYPE] = Affector.FF;
this.Type[TERMTYPE] = Affector.PRODUCTION;
}
public void setParameterNumbers(int [] param_nums)
{
halfLifeParam = param_nums[0];
kA1Param = param_nums[1];
nuA1Param = param_nums[2];
kA2Param = param_nums[3];
nuA2Param = param_nums[4];
deltaParam = param_nums[5];
}
public float getValue(Node which_node) {
float phi_A1=0, phi_A2=0;
phi_A1 = Phi(Nodes[0].getIntegrationValue(), params[kA1Param], params[nuA1Param]);
phi_A2 = Phi(Nodes[1].getIntegrationValue(), params[kA2Param], params[nuA2Param]);
return ((Globals.characteristicTime / params[halfLifeParam]) * phi_A1 * (params[deltaParam] + ((1 - params[deltaParam]) * phi_A2)));
}
}
&nodex
&Txn3aAff ACTIVATOR1 ACTIVATOR2 H_nodex K_ACTIVATOR1nodex nu_ACTIVATOR1nodex K_ACTIVATOR2nodex nu_ACTIVATOR2nodex delta_ACTIVATOR1nodex
&endnodex