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)); } }