Matlab ode solver and Simbiology gives different results on the same model
Afficher commentaires plus anciens
Hello! I'm a PhD student from EPFL, I'm currently working with Matlab to try to model a simple double feedback loop in order to observe bistability, for this purpose I've built this set of ODEs:
function dy = model_equation(t,y)
dy = zeros(4,1);
sCDC2i=1.0;
dCDC2i=1.0;
sWEE1i=1.0;
dWEE1i=1.0;
a1=1.0;
a2=1.0;
b1=200.0;
b2=10.0;
v=1.0;
g1=4.0;
g2=4.0;
k1=30.0;
k2=1.0;
CDC2a=y(1);
CDC2i=y(2);
WEE1a=y(3);
WEE1i=y(4);
dy(1)=a1*CDC2i-b1*CDC2a*(v*WEE1a)^g1/(k1+(v*WEE1a)^g1);
dy(2)=sCDC2i-dCDC2i*CDC2i-a1*CDC2i+b1*CDC2a*(v*WEE1a)^g1/(k1+(v*WEE1a)^g1);
dy(3)=a2*WEE1i-b2*WEE1a*CDC2a^g2/(k2+CDC2a^g2);
dy(4)=sWEE1i-dWEE1i*WEE1i-a2*WEE1i+b2*WEE1a*CDC2a^g2/(k2+CDC2a^g2);
this set of ODEs is solved and plotted with the following commands:
function A = modelSim(time)
[T,Y]=ode15s(@model_equation,[0 time],[0 1.0 0 1.0]);
plot(T,Y(:,1),T,Y(:,2),T,Y(:,3),T,Y(:,4));hold on;
hleg1=legend('CDC2a','CDC2i','WEE1a','WEE1i');
set(hleg1,'Location','NorthEastOutside');
hold off;
A=[T,Y];
Now the problem is that the system is not bistable, but I've a species (CDC2a) that tends to accumulate and never reaches steady state. I was thinking that I had made some mistake while I was writing the model, but after several controls, I found that there aren't mistakes in the model. So I've tried to use simbiology, I copied and pasted the ODEs from the .m file to Simbiology, set all the parameters as in the ODEs file, and the model started to work correctly, I got exactly the results I wanted! So I started to check for difference between the Simbiology model and the .m file, this is what I've found:
- ODEs are exactly the same
- parameters and costants are exactly the same
- ode solver and its options are equal
- the ODEs system in the .m file is solved trough "[T,Y]=ode15s(@model_equation,[0 time],[0 1.0 0 1.0],options);" while in simbiology the given command is "data = sbiosimulate(m2, cs, [], []);" (where m2 is the model and cs the options for the solver)
Now I can't figure out what is happening, I've tried in many different ways to get those results to be the same but I wasn't able to do it. In order to continue my project I need to know at least why I obtain different results, and which one to trust. Any help will be much appreciated because at this point I'm running out of ideas! thank you very much in advance!
5 commentaires
Tolutola
le 7 Nov 2012
Have you tried the problem with simulink(using perhaps state space box or integrators)? It might shed more light on the problem.
Jan
le 7 Nov 2012
Posting code as unordered list is very creative, but the standard formatting would be more convenient. Simply add an empty line before and after the code, mark the code and hit the "{} Code" button.
Tiziano
le 7 Nov 2012
SARANYA SK
le 4 Nov 2020
how to solve simbiology ode equation in matlab
SARANYA SK
le 4 Nov 2020
d/dt (EGFR) = 1/compartment*((compartment*(re1k1*[pro EGFR]-re1k2*[EGFR])) - (compartment*(re2 k1*[EGF]*[EGFR]-re2_k2*[L_EGFR])))
Réponse acceptée
Plus de réponses (0)
Communautés
Plus de réponses dans SimBiology Community
Catégories
En savoir plus sur Scan Parameter Ranges dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!