package affectors; import main.Node; import main.Globals; /** The other half of a pair of affectors which recycles proteins from one state back to another. Use this one in the recycled state. Use the A version in the pre-recycled state. The two versions are just negations of each other. This can be used for both cytoplasmic and membrane-bound proteins. DOES NOT substitute for the Dissociation_Aff pair unless you don't care about the ligand.

Formula
dNODEX_Recycled/dt = NODEX / H_NODEX

Parameters
Recyclee [NODEX] The Node that is going to be recycled back to this Node.
Half-life [H_NODEX] The time it takes for half of the recyclee node to be recycled.

Usage
&NODEX_Recycled

&RecycleBAff NODEX H_NODEX
&endNODEX_Recycled/code> */ public class RecycleBAff extends Affector { int side; /** The half-life in minutes for disappearance of the pre-recycled state. */ int halfLifeParam; static final String desc = "Recycler; version B for product"; static final String [] nodeDescriptions = {"Recyclee"}; static final String [] paramDescriptions = {"Half-life of recyclee"}; static final int [] whichSides = {-1}; public RecycleBAff() {} 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.CONVERSION; //??? } public void setParameterNumbers(int [] param_nums) { halfLifeParam = param_nums[0]; } public float getValue(Node which_node) { return ((Globals.characteristicTime / params[halfLifeParam]) * Nodes[0].getIntegrationValue(side)); } }