Hello all,

I'm trying to do kinetic modeling of sequential dissociations with DE. I'm hitting a snag when modeling the third dissociation. The population should start at zero at t=0, but some of my model functions are non-zero at t=0. Is there anyway to fix this to force the funtions to go through zero?

Scheme:

PPPP -> intermediates -> PPP -> intermediates -> PP -> intermediates -> P

(where P is a subunit and intermediates are confirmational changes before dissociation of a subunit)

a'..d' is the first dissociation

e' is the second dissociation

f'..l' is the third dissociation

Fits are evaluated by the residual sum of squares.

sol := dsolve([a' = -k1*a(x), b' = k1*a(x)-k1*b(x), c' = k1*b(x)-k1*c(x), d' = k1*c(x)-k1*d(x),

e' = k1*d(x)-k2*e(x),

f' = k2*e(x)-k3*f(x), g' = k3*f(x)-k3*g(x), h' = k3*g(x)-k3*h(x), i' = k3*h(x)-k3*i(x), j' = k3*i(x)-k3*j(x), k' = k3*j(x)-k3*k(x), l' = k3*k(x)-k3*l(x),

a(0) = 1, b(0) = 0, c(0) = 0, d(0) = 0, e(0) = 0, f(0) = 0, g(0) = 0, h(0) = 0, i(0) = 0, j(0) = 0, k(0) = 0, l(0) = 0],

{a(x), b(x), c(x), d(x), e(x), f(x), g(x), h(x), i(x), j(x), k(x), l(x)}, method = laplace);

f1 := sol[6];

f1 := rhs(f1);

g1 := sol[7];

g1 := rhs(g1);

h1 := sol[8];

h1 := rhs(h1);

i1 := sol[9];

i1 := rhs(i1);

j1 := sol[10];

j1 := rhs(j1);

kk := sol[11];

kk := rhs(kk);

l1 := sol[12];

l1 := rhs(l1);

xdata := Vector([0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400], datatype = float);

ydata := Vector([0.0034,0.00392,0.00184,0.00782,0.01873,0.03683,0.11016,0.09838,0.18402,0.24727,0.20901,0.2972,0.37635,0.49235,0.57845,0.4457,0.50285,0.5672,0.62783,0.57264,0.54918,0.44792,0.49795,0.55218,0.47512,0.46473,0.37989,0.32236,0.3323,0.20894,0.28473,0.21273,0.19855,0.13548,0.12725,0.13277,0.0784,0.07969,0.06162,0.03855], datatype = float);

k1 := 0.391491454107626e-1;

k2 := 0.222503562261129e-1;

z1:=f1;

z2:=f1+g1;

z3:=f1+g1+h1;

z4:=f1+g1+h1+i1;

z5:=f1+g1+h1+i1+j1;

z6:=f1+g1+h1+i1+j1+kk;

z7:=f1+g1+h1+i1+j1+kk+l1;

Statistics[NonlinearFit](z1,xdata, ydata, x, initialvalues = [k3=0.1], output = [parametervalues, residualsumofsquares]);

A:=plot(xdata, ydata, style=point, symbol=solidcircle, color=blue, symbolsize=12,labels = ["time (minutes)", "Relative Abundance"], labeldirections = [horizontal, vertical]):

F:=Statistics[NonlinearFit](z1,xdata, ydata, x,initialvalues = [k3=0.1]):

B:=plot(F, x=xdata[1]..xdata[-1], color=red):

plots[display](A, B);

Statistics[NonlinearFit](z2,xdata, ydata, x, initialvalues = [k3=0.1], output = [parametervalues, residualsumofsquares]);

A:=plot(xdata, ydata, style=point, symbol=solidcircle, color=blue, symbolsize=12,labels = ["time (minutes)", "Relative Abundance"], labeldirections = [horizontal, vertical]):

F:=Statistics[NonlinearFit](z2,xdata, ydata, x,initialvalues = [k3=0.1]):

B:=plot(F, x=xdata[1]..xdata[-1], color=red):

plots[display](A, B);

Statistics[NonlinearFit](z3,xdata, ydata, x, initialvalues = [k3=0.1], output = [parametervalues, residualsumofsquares]);

A:=plot(xdata, ydata, style=point, symbol=solidcircle, color=blue, symbolsize=12,labels = ["time (minutes)", "Relative Abundance"], labeldirections = [horizontal, vertical]):

F:=Statistics[NonlinearFit](z3,xdata, ydata, x,initialvalues = [k3=0.1]):

B:=plot(F, x=xdata[1]..xdata[-1], color=red):

plots[display](A, B);

Statistics[NonlinearFit](z4,xdata, ydata, x, initialvalues = [k3=0.1], output = [parametervalues, residualsumofsquares]);

A:=plot(xdata, ydata, style=point, symbol=solidcircle, color=blue, symbolsize=12,labels = ["time (minutes)", "Relative Abundance"], labeldirections = [horizontal, vertical]):

F:=Statistics[NonlinearFit](z4,xdata, ydata, x,initialvalues = [k3=0.1]):

B:=plot(F, x=xdata[1]..xdata[-1], color=red):

plots[display](A, B);

Statistics[NonlinearFit](z5,xdata, ydata, x, initialvalues = [k3=0.1], output = [parametervalues, residualsumofsquares]);

A:=plot(xdata, ydata, style=point, symbol=solidcircle, color=blue, symbolsize=12,labels = ["time (minutes)", "Relative Abundance"], labeldirections = [horizontal, vertical]):

F:=Statistics[NonlinearFit](z5,xdata, ydata, x,initialvalues = [k3=0.1]):

B:=plot(F, x=xdata[1]..xdata[-1], color=red):

plots[display](A, B);

Statistics[NonlinearFit](z6,xdata, ydata, x, initialvalues = [k3=0.1], output = [parametervalues, residualsumofsquares]);

A:=plot(xdata, ydata, style=point, symbol=solidcircle, color=blue, symbolsize=12,labels = ["time (minutes)", "Relative Abundance"], labeldirections = [horizontal, vertical]):

F:=Statistics[NonlinearFit](z6,xdata, ydata, x,initialvalues = [k3=0.1]):

B:=plot(F, x=xdata[1]..xdata[-1], color=red):

plots[display](A, B);

Statistics[NonlinearFit](z7,xdata, ydata, x, initialvalues = [k3=0.1], output = [parametervalues, residualsumofsquares]);

A:=plot(xdata, ydata, style=point, symbol=solidcircle, color=blue, symbolsize=12,labels = ["time (minutes)", "Relative Abundance"], labeldirections = [horizontal, vertical]):

F:=Statistics[NonlinearFit](z7,xdata, ydata, x,initialvalues = [k3=0.1]):

B:=plot(F, x=xdata[1]..xdata[-1], color=red):

plots[display](A, B);

3rd_diss.mw