package affectors; import main.Node; import main.Globals; /**Diploid version of Txn4Aff. Reduces to same result if the two alleles are * identical. Assumptions for diploidizing: * * Txn4 takes two activators and one inhibitor which titrates away the *second* activator. * Parameters include not just the half-life of the target and the K's and nu's for each regulator, * but also the weights alpha and beta, which determine the relative effectiveness of each activator. * All inputs may be either cytoplasmic or membrane-bound as long as they reside in the same cell * as the target. * *

Formula *
INHIBITION_LEVEL = ( 1 - (INHIBITOR^nu_INHIB / (K_INHIBITOR^nu_INHIB + INHIBITOR^nu_INHIB)) ) *
ACTIVATION1 = ACTIVATOR1^nu_ACT1 / (K_ACT1^nu_ACT1 + ACTIVATOR1^nu_ACT1) *
ACTIVATION2 = (ACTIVATOR2 * INHIBITION_LEVEL)^nu_ACT2 / (K_ACT2^nu_ACT2 + (ACTIVATOR2 * INHIBITION_LEVEL)^nu_ACT2) *
dnodex/dt = (1 / H_nodex) * (alpha * ACTIVATION1) + (beta * ACTIVATION2) / (1 + (alpha * ACTIVATION1) + (beta * ACTIVATION2)) * *

Parameters * * * * * * * * * * * * * *
Inhibitor [INHIBITOR] The inhibitor Node
Activator1 [ACTIVATOR1] The first transcriptional activator Node
Activator2 [ACTIVATOR2] The second transcriptional activator Node, the target of the inhibitor
mRNA Half-life [H_nodex] The half life of the product mRNA
Half-max activation level for first activator [K_ACTIVATOR1nodex] The concentration of the first activator at which transcription proceeds at half its maximal rate
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
Saturability coefficient for Activator 1 [alpha_nodex] determines how completely the first activator can saturate the promoter
Half-max activation level for second activator [K_ACTIVATOR2nodex] The concentration of the second activator at which transcription proceeds at half its maximal rate
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
Saturability coefficient for Activator 2 [beta_nodex] determines how completely the second activator can saturate the promoter
Half-max inhibition level [K_INHIBITOR] The concentration of inhibitor at which transcription proceeds at half the rate it would have otherwise
Inhibition Cooperativity [nu_INHIBITOR] The non-linearity of the inhibiting function. The higher the value, the sharper the curves in the upside-down S-shaped inhibition function
* *

Usage *
&nodex *

&Txn4Aff INHIBITOR ACTIVATOR1 ACTIVATOR2 H_nodex K_ACTIVATOR1nodex nu_ACTIVATOR1nodex alpha K_ACTIVATOR2nodex nu_ACTIVATOR2nodex beta K_INHIBITORnodex nu_INHIBITORnodex
* &endnodex * *

NOTE - you can accomplish this same function using the meta-enhancers, and those are a * more general framework for putting together transcription terms. */ public class Txn4DipAff extends Affector { /** The half-life of the transcript. */ int halfLifeParam; /** The level of activator 1 allele 1 at which transcription proceeds half-maximally. */ int kA11Param; /** The level of activator 1 allele 2 at which transcription proceeds half-maximally. */ int kA12Param; /** The "cooperativity" exponent for activator 1 allele 1. */ int nuA11Param; /** The "cooperativity" exponent for activator 1 allele 2. */ int nuA12Param; /** The weight for the first activation complex. */ int alphaParam; /** The level of activator 2 at which transcription proceeds half-maximally. */ int kA21Param; /** The level of activator 2 at which transcription proceeds half-maximally. */ int kA22Param; /** The "cooperativity" exponent for activator 2. */ int nuA21Param; /** The "cooperativity" exponent for activator 2. */ int nuA22Param; /** The weight for the second activation complex. */ int betaParam; /** The level of inhibitor allele 1 at which half the activator allele 1 has been neutralized. */ int kL11Param; /** The level of inhibitor allele 1 at which half the activator allele 2 has been neutralized. */ int kL12Param; /** The level of inhibitor allele 2 at which half the activator allele 1 has been neutralized. */ int kL21Param; /** The level of inhibitor allele 2 at which half the activator allele 2 has been neutralized. */ int kL22Param; /** The "cooperativity" exponent for inhibition. */ int nuLParam; static final String desc = "Diploid Transcription dependent on two activators, one competing with an inhibitor"; static final String [] nodeDescriptions = {"Inhibitor of activator 2 allele 1", "Inhibitor of activator 2 allele 2", "Activator 1 allele 1", "Activator 1 allele 2", "Activator 2 allele 1", "Activator 2 allele 2"}; static final String [] paramDescriptions ={"Half-life of transcript produced", "Kappa activator 1: half-maximal level of activator 1", "nu1: cooperativity of activator 1", "alpha: weight for activation complex 1", "Kappa activator 2: half-maximal level of activator 2", "nu2: cooperativity of activator 2", "beta: weight for activation complex 2", "Kappa inhibitor: half-maximal level of inhibitor", "nu_I: cooperativity of inhibition"}; public Txn4DipAff() {} 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]; } public float getValue(Node which_node) { float phi_A1=0, phi_A2=0, psi_I=0; return ((Globals.characteristicTime / params[halfLifeParam]) * Phi((params[alphaParam]*phi_A1 + params[betaParam]*phi_A2), 1, 1)); } }