package affectors; import main.Node; import main.Globals; /** Translation of an mRNA into protein. Put this affector in the protein, not the mRNA, as it is changing the concentration of the protein. This affector works for both cytoplasmic and membrane proteins. If the protein will be membrane-bound, this affector divides the translation rate by the number of sides that the protein node has so each side gets 1 / num_sides of the total translation. Note that there is no translation rate because this has been "non-dimensionalized" out of the equations.
Formula
dNODEX/dt = nodex
Parameters
Messenger [nodex] | The mRNA Node |
Half-life [H_NODEX] | The half-life of the protein Node. |
Usage
*/
public class TlnAff extends Affector {
/** Half-life of the protein product; don't ask why. */
int halfLifeParam;
static final String desc = "Unregulated translation";
static final String [] nodeDescriptions = {"Messenger RNA"};
static final String [] paramDescriptions = {"Half-life of protein product"};
static final int [] whichSides = {-1};
public TlnAff() {}
protected void setLabelsAndTypes() {
setDescriptions(this.desc, nodeDescriptions, paramDescriptions);
setSided(true, whichSides);
this.Type[GUI_CAPABLE] = 1;
this.Type[CERTIFICATION] = Affector.RETURNS_DERIV;
this.Type[MATHTYPE] = Affector.KK;
this.Type[TERMTYPE] = Affector.PRODUCTION;
}
public void setParameterNumbers(int [] param_nums)
{
halfLifeParam = param_nums[0];
}
public float getValue(Node which_node) {
return (((Globals.characteristicTime / params[halfLifeParam]) / which_node.numSides) * Nodes[0].getIntegrationValue(0));
}
}
&NODEX
&TlnAff nodex H_NODEX
&endNODEX