package affectors; import main.Node; import main.Globals; import main.Cell; /** The simplest regulated transcription affector. Transcription rate is a sigmoid function of activator concentration with transcription proceeding at half its maximum possible rate when the activator concentration equals the half-max parameter, and with the rates on either side of this half-max dependent on how non-linear the sigmoid is. The activator may be either membrane-bound or intracellular, as long as it is on the same cell as the target mRNA.
Formula
dnodex/dt = (1 / H_nodex) * ACTIVATOR^nu / (K^nu + ACTIVATOR^nu)
Parameters
Activator [ACTIVATOR] | The transcriptional activator Node |
Half-max activation level [K_ACTIVATORnodex] | The concentration of activator at which transcription proceeds at half its maximal rate |
Cooperativity [nu_ACTIVATORnodex] | The non-linearity of the activating function. The higher the value, the sharper the curves in the S-shaped activation function |
mRNA Half-life [H_nodex] | The half life of the product mRNA |
Usage
*/
public class Txn1Aff extends Affector {
/** The level of activator at which transcription proceeds half-maximally. */
int kParam;
/** The "cooperativity" exponent for activation. */
int nuParam;
/** The half-life of the transcript. */
int halfLifeParam;
static final String desc = "Transcription dependent on an activator";
static final String [] nodeDescriptions = {"Activator"};
static final String [] paramDescriptions = {"Kappa: half-maximal level of activator",
"nu: cooperativity of activation",
"Half-life of transcript produced"};
public Txn1Aff() {}
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)
{
kParam = param_nums[0];
nuParam = param_nums[1];
halfLifeParam = param_nums[2];
}
public float getValue(Node which_node) {
return ((Globals.characteristicTime / params[halfLifeParam]) *
Phi(Nodes[0].getIntegrationValue(),params[kParam],params[nuParam]));
}
}
&nodex
&Txn1Aff ACTIVATOR K_ACTIVATORnodex nu ACTIVATORnodex H_nodex
&endnodex