|
From: giuseppe a. <apr...@gm...> - 2009-02-07 21:27:46
|
Hi Moriyoshi,
thanks for your help. Since your answer I guess I missed something about
ecell's internal ode machinery.
Actually I set up Processes and em files thinking that the total delta for
each variable is the sum of the velocities of the processes for which it has
a +1 entry. I'll make an example: in my em file I have 4 processes entries
".........
Process ODE1Process( ODE1 )
{
mu1 0.303;
n1 3.5938;
n2 2.213;
ks1 22.836;
ks2 0.234;
sm1 90.11;
sm2 10.11;
a1 3.19;
a2 0.97;
VariableReferenceList[X1 Variable:.:BIOMASS 1]
[X3 Variable:.:NUTRIENT -1]
[X4 Variable:.:INHIBITOR -1];
}
Process ODE2Process( ODE2 )
{
mu1 0.303;
n1 3.5938;
n2 2.213;
ks1 22.836;
ks2 0.234;
sm1 90.11;
sm2 10.11;
a1 3.19;
a2 0.97;
k1 0.008;
k2 0.034;
VariableReferenceList[X1 Variable:.:BIOMASS -1]
[X2 Variable:.:PHA 1]
[X3 Variable:.:NUTRIENT -1]
[X4 Variable:.:INHIBITOR -1];
}
Process ODE3Process( ODE3 )
{
mu1 0.303;
n1 3.5938;
n2 2.213;
ks1 22.836;
ks2 0.234;
sm1 90.11;
sm2 10.11;
a1 3.19;
a2 0.97;
alp 0.48;
gam 0.0348;
VariableReferenceList[X1 Variable:.:BIOMASS -1]
[X3 Variable:.:NUTRIENT 1]
[X4 Variable:.:INHIBITOR -1];
}
Process ODE4Process( ODE4 )
{
mu1 0.303;
n1 3.5938;
n2 2.213;
ks1 22.836;
ks2 0.234;
sm1 90.11;
sm2 10.11;
a1 3.19;
a2 0.97;
yRS2 16.7;
mS2 0.0000045;
VariableReferenceList[X1 Variable:.:BIOMASS -1]
[X3 Variable:.:NUTRIENT -1]
[X4 Variable:.:INHIBITOR 1];
}
.........."
As far as I understood the four DELTAs were:
DELTA[X1]=velocity[PROCESS1]
DELTA[X2]=velocity[PROCESS2]
DELTA[X3]=velocity[PROCESS3]
DELTA[X4]=velocity[PROCESS4]
And I would have got t the initial ODE system.
But from your words and your second file I guess the answer is that my em file
gives:
DELTA[X1]=velocity[PROCESS1]-velocity[PROCESS2]-velocity[PROCESS3]-velocity[PROCESS4]
DELTA[X2]=velocity[PROCESS2]
DELTA[X3]=-velocity[PROCESS1]-velocity[PROCESS2]+velocity[PROCESS3]-velocity[PROCESS4]
DELTA[X4]=-velocity[PROCESS1]-velocity[PROCESS2]-velocity[PROCESS3]+velocity[PROCESS4]
(But in this case I would have missed not just a "-1" entry).
Now I have changed every "-1" with "0" and the results are the same of matlab.
It was a stupid error since I would have recognized that those species
acted like enzymes.
thanks a lot for your help (as always).
g
2009/2/6 Moriyoshi Koizumi <mo...@sf...>:
> On Fri, Feb 6, 2009 at 12:51 AM, giuseppe aprea
> <apr...@gm...> wrote:
>
>> I guess ecell will associate ODE2Process' velocity to X2 Variable (PHA).
>> Is that right?
>
> Right, X2 is accumulated according to the value of the ODE2Process's activity.
>
>> Now I have 2 problems:
>>
>> - during compilation I get los of warnings of the kind:
>> "/usr/include/ecell-3.1/libecs/Entity.hpp:73: warning: comparison with
>> string literal results in unspecified behaviour"
>> I don't really understand if I am doing some fatal error in the code,
>> anyway I successfully get my .so objacts. Can I ignore this warning?
>
> Those warnings are basically harmless, but it was addressed in the
> newer releases. Give 3.1.107rc2 a try.
>
>> - if I compare the results with matlab ones they are quite different
>> both quantitatively (~20%) and qualitatively after "only" 60 sec.
>
> You apparently specified an wrong coeffient (-1). Each process denotes
> a flux, so variables given with negative coefficients have negative
> deltas.
>
>> By the way, does anybody know if there is some documentation about
>> Stepper settings (timestep, tolerance) or about how to make your own Stepper?
>
> Assuming you took a look at the E-Cell manual, there has been no
> comprehensive document known that elaborates on Stepper
> specifications. Sorry.
>
> By the way, you can write such simple equations with
> ExpressionFluxProcess'es. Attached is a version rewritten with them.
>
> Regards,
> Moriyoshi
>
|