package affectors; import main.Node; import main.Globals; /** * This is one half of an affector that cleaves a single cytoplasmic node into two other * cytoplasmic nodes. The rate of cleavage is not regulated by any other species and follow * simple enzymne kinetics. Use this affector in the dimer. Use {@link CleaveB_Aff} * in each of the product species. *

* Formula *
dDIMER/dt = -k_cleaveage * DIMER *

* Parameters * * * *
Dimer [DIMER] The dimer being cleaved
Kappa [k_cleaveage] The rate for cleveage
*

* Usage *
&DIMER *

* &CleaveA_Aff DIMER k_cleveage *
* &endDIMER * * @author Kerry Kim * @see CleaveB_Aff */ public class CleaveA_Aff extends Affector { /** The rate constant for cleaveage. */ int k_cleaveage; static final String affectorDescription = "Cleavage of a cytoplasmic dimer, unregulated; version A for dimer"; static final String [] paramDescriptions = {"Rate of cleaveage"}; static final String [] nodeDescriptions = {"Dimer"}; static final int [] whichSides = { -1 }; public CleaveA_Aff() {} protected void setLabelsAndTypes() { setDescriptions(affectorDescription, 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) { k_cleaveage = param_nums[0]; } public float getValue(Node which_node) { return -Globals.characteristicTime *(Nodes[0].getIntegrationValue() * params[k_cleaveage]); } public float getNCValue(Node which_node) { return -Globals.characteristicTime * params[k_cleaveage]; } }