%-------------------------------------------
%Text S2. Function definition for a simple model.
%-------------------------------------------

%-------------------------------------------
% File name: mdmx_p53_mdm2_model.m
%
% This is function definition file. Please rename this file as above.
%-------------------------------------------

function dxdt=f(t,x,flag, params)

%--------------------------------
% function definition file for a initial model.
% Sohyoung Kim. Jul 2009
%--------------------------------

% set parameter values
% the description of the each parameter can be found in the paper.
k1=params(1);
k2=params(2);
k3=params(3);
k4=params(4);
k5=params(5);
k6=params(6);
k7=params(7);
k8=params(8);
k9=params(9);
k10=params(10);
k11=params(11);
k12=params(12);
k13=params(13);
k14=params(14);
k15=params(15);
k16=params(16);
k17=params(17);
k18=params(18);
k19=params(19);
k20=params(20);
k21=params(21);
k22=params(22);
k23=params(23);
k24=params(24);
k25=params(25);
k26=params(26);
k27=params(27);
k28=params(28);
k29=params(29);
k30=params(30);
k31=params(31);
k32=params(32);
k33=params(33);

% set initial values
x1=x(1); % p53
x2=x(2); % p53p
x3=x(3); % Mdm2
x4=x(4); % Mdm2p
x5=x(5); % MdmX
x6=x(6); % MdmXp
x7=x(7); % p53:Mdm2
x8=x(8); % Mdm2:MdmXp
x9=x(9); % Mdm2:MdmX
x10=x(10); % p53:MdmX
x11=x(11); % p53p:p53p
x12=x(12); % (p53p:p53p):(p53p:p53p)
x13=x(13); % Promoter
x14=x(14); % Promoter:[(p53p:p53p):(p53p:p53p)]

dxdt=zeros(14,1);

% ODE
dxdt(1)=	k1-k2*x1-k3*x1+k4*x2 -k11*x1*x3+k12*x7+k14*x7-k25*x1*x5+k26*x10;
dxdt(2)=	k3*x1-k4*x2-k5*x2-2*k27*x2 *x2+2*k28*x11;
dxdt(3)=	k6-k7*x3-k8*x3+k9*x4-k11*x1*x3+k12*x7+k13*x7-k20*x3*x6+k21*x8+k22*x8-k23*x3*x5+k24*x9+k33*x14;
dxdt(4)=	k8*x3-k9*x4 -k10*x4;
dxdt(5)=	k15-k16*x5 -k17*x5+k18*x6-k23*x3 *x5+k24*x9-k25*x1*x5+k26*x10;
dxdt(6)=	k17*x5 -k18*x6-k19*x6-k20*x3*x6+k21*x8;
dxdt(7)=	k11*x1*x3-k12*x7-k13*x7-k14*x7;
dxdt(8)=	k20*x3*x6-k21*x8-k22*x8;
dxdt(9)=	k23*x3*x5-k24*x9;
dxdt(10)=	k25*x1*x5-k26*x10;
dxdt(11)=	k27*x2*x2-k28*x11-2*k29*x11*x11+2*k30*x12;
dxdt(12)=	k29*x11*x11 -k30*x12-k31*x12*x13+k32*x14;
dxdt(13)=	-k31*x12*x13+k32*x14;
dxdt(14)=	k31*x12*x13-k32*x14;