function dX = BistableSwitch(t,X) %X1: mRNA from gene #1 %X2: Repressor from gene #1 %X3: mRNA from gene #2 %X4: Repressor from gene #2 %Time is in minutes. Inducer1=0; Inducer2=0; ktrans1=10; ktrans2=10; delta_mRNA1 = log(2) / 15; delta_mRNA2 = log(2) / 15; delta_Protein1 = log(2) / 60; delta_Protein2 = log(2) / 60; dilution = log(2) / 30; %mRNA production from gene #1 dX(1) = Gene_Repression(X(4),X(4),Inducer1,Inducer2) - X(1)*delta_mRNA1 - X(1)*dilution; %Protein production from gene #1 dX(2) = ktrans1*X(1) - X(2)*delta_Protein1 - X(2)*dilution; %mRNA production from gene #2 dX(3) = Gene_Repression(X(2),X(2),Inducer1,Inducer2) - X(3)*delta_mRNA2 - X(3)*dilution; %Protein production from gene #2 dX(4) = ktrans2*X(3) - X(4)*delta_Protein2 - X(4)*dilution; dX=dX';