Professional Documents
Culture Documents
clear;
format short e
global model r p V0 RTP Vout kpropus tmax procent
% Legenda specii:
% (1)Rin, (2)Rout, (3)P=P1, (4)G=G1, (5)GP=G1P1,
% (6)RP=RinP1, (7)GRP=G1RinP1, (8)D1, (9)D2,
% (10)R1=Rin1=MetG, (11)R2=Rin2=MetP,
% (12)Rout1=NutG, (13)Rout2=NutP, (14)PP=P2,
% (15)GPP=G1P2, (16)GPPPP=G1P4, (17)M, (18)MP=MP1
% input data
r=18; % nr. maxim de specii posibil a fi incluse in modelele cinetice
C0(1:r)=0; % setare concentratii
p=27; % nr. maxim constante cinetice in modele
kpropus(1:p)=0; % initializare constante cinetice
betastar=1e-3;
alfas=log(2)/100; % viteza medie de crestere celulara (1/min)
tmax=300; % timp maxim de integrare
V0=1.660434503e-15; % volum initial (L)
1
CMETGS=1e+4; CMETPS=1e+4;
end
% end iputs
2
% estimare [k]-uri din concentratii-QSS
[k12,k13,k14,k15]=solve(f1,f2,f3,f4);
3
for i=1:max(size(xxx))
fprintf('Real(Eigenvalue) = %12.4e \n', double(vpa(real(xxx(i)))) )
end
if all(kpropus)>=0
Cout=mc5sim(betastar,perturb);
end
end % model==9
4
f4=-Cg1s*FAC + eqg1;
f5=-Cg1p1s*FAC + eqg1p1;
sumnj=eqrin1+eqrin2+eqp1+eqg1+eqg1p1;
alfa=RTP*sumnj;
f1p=-Crin1s*alfa + eqrin1;
f2p=-Crin2s*alfa + eqrin2;
f3p=-Cp1s*alfa + eqp1;
f4p=-Cg1s*alfa + eqg1;
f5p=-Cg1p1s*alfa + eqg1p1;
5
RTP=1/(Crin1s+Crin2s+Cp1s+CGtot); % grupul (RT/presiune)=constant
k14=vpa(subs(k14));
k15=vpa(subs(k15));
k3=1e+5; % adoptat
k2=vpa(subs(k2));
k12=vpa(subs(k12));
k13=vpa(subs(k13));
kpropus(2)=double(k2); kpropus(3)=double(k3); kpropus(12)=double(k12);
kpropus(13)=double(k13); kpropus(14)=double(k14); kpropus(15)=double(k15);
fprintf('Model= MC5%1.0f \n',model)
fprintf('Estimat k2=%24.16e k3=%24.16e \n',kpropus(2),kpropus(3))
fprintf('Estimat k12=%24.16e k13=%24.16e \n',kpropus(12),kpropus(13))
fprintf('Estimat k14=%24.16e k15=%24.16e \n',kpropus(14),kpropus(15))
save temp model C0 kpropus RTP Css RGbeta Croutt betastar key npoint
if all(kpropus)>=0
Cout=mc5sim(betastar,perturb);
end
end % model==8
% end program
6
-----------------------------------------------------------------------------
function Cout=mc5sim(beta,perturb)
format short e
global model r p V0 RTP Vout kpropus tmax procent
load temp
for i=1:p
if kpropus(i)<0
disp('AVERTISMENT ! PARAMETRII NEGATIVI')
pause
end
end
iloc=1;
C0=Css(iloc,1:r); % concentratii initiale
if perturb==1
CPs=C0(3); % conc. stationara nominala P
levelP=CPs*procent; % nivel de perurbatie Dirac [P1]s
% recalculare conc. perturbata dupa contractie volum
C0(3)=levelP*RTP*(sum(C0(1:r))-C0(2)-C0(12)-C0(13)-C0(3))/(1-levelP*RTP);
%C0(4)=1; % pentru levelP=900, se impune fortat G=1, pentru a determina limita minima t-recover
%C0(4)=0; % pentru levelP=1100, se impune fortat G=0, pentru a determina limita minima t-recover
end
7
% integrare model cinetic in termeni de moli: ym[n,r]
options=odeset('Abstol',[ones(1,r)*1e-40]);
[tm,ym]=ode15s('mc5simf',x,y(1,1:r),options);
nn=max(size(tm));
figure(2)
subplot(3,2,1),plot(tm,V/V(1),'g-'); ylabel('V/V0');
8
title(['Model MC',num2str(model)])
axis([min(tm) max(tm) min(V/V(1)) max(V/V(1))])
subplot(3,2,2),plot(tm,Cm(:,5),'b-',tm,ones(1,nn)*Css(iloc,5),'k:');ylabel('[GP] (nM)');
subplot(3,2,3),plot(tm,Cm(:,3),'r-',tm,ones(1,nn)*Css(iloc,3),'k:');ylabel('[P] (nM)');
axis([min(tm) max(tm) min(Cm(:,3))*0.98 max(Cm(:,3))*1.02])
subplot(3,2,4),plot(tm,Cm(:,4),'b-',tm,ones(1,nn)*Css(iloc,4),'k:');ylabel('[G] (nM)');
axis([min(tm) max(tm) min(Cm(:,4))*0.98 max(Cm(:,4))*1.02])
subplot(3,2,5),plot(tm,Cm(:,10),'r-',tm,ones(1,nn)*Css(iloc,10),'k:');ylabel('[MetG] (nM)'); xlabel('timp (min)')
axis([min(tm) max(tm) min(Cm(:,10))*0.98 max(Cm(:,10))*1.02])
subplot(3,2,6),plot(tm,Cm(:,11),'b-',tm,ones(1,nn)*Css(iloc,11),'k:');ylabel('[MetP] (nM)'); xlabel('timp (min)')
axis([min(tm) max(tm) min(Cm(:,11))*0.98 max(Cm(:,11))*1.02])
% specia G
error=0.01; % eroare de recover (relativa)
Cg1s=0.5;
Gmin=Cg1s*(1-error); Gmax=Cg1s*(1+error);
nG=min(find(Cm(nmin:nn,4)>Gmin & Cm(nmin:nn,4)<Gmax));
if isempty(tm(nG))~=1
fprintf( 't-rec-G = %11.3e \n',tm(nG))
else
fprintf( 't-rec-G = negligible \n')
end
% specia GP
error=0.01; % eroare de recover (relativa)
Cg1p1s=0.5; % model MC8
GPmin=Cg1p1s*(1-error); GPmax=Cg1p1s*(1+error);
9
nGP1=min(find(Cm(nmin:nn,5)>GPmin & Cm(nmin:nn,5)<GPmax));
nGP=nGP1;
nGP2=1;
non= (find(Cm(nmin+nGP1:nn,5)>GPmin & Cm(nmin+nGP1:nn,5)<GPmax));
nonm=max(non);
nGP2=nonm;
nonk=max(size(non));
if nonk>2
for i=1:nonk
kk=nonk-i;
if(kk<1) break; end;
nxxx= non(kk);
if abs(nxxx-nGP2)~=1 break; end;
nGP2=nxxx;
end
end
nGP=max(nGP1,nGP2);
if isempty(tm(nGP))~=1
fprintf( 't-rec-GP = %11.3e \n',tm(nGP))
else
fprintf( 't-rec-GP = negligible \n')
end
10
else
fprintf( 't-rec-R2 = negligible \n')
end
Cout(1:r)=Cm(nn,1:r);
return
------------------------------------------------------------------------------
function dy=mc5simf(t,N)
format short e
global model r p V0 RTP Vout kpropus tmax procent
% Noteaza speciile
% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18
% [Rin, Rout, P=P1, G=G1, GP=G1P1, RP=RinP1, GRP=G1RinP1, D1, D2, R1=Rin1, R2=Rin2, Rout1, Rout2, PP=P2, GPP=G1P2, GPPPP=G1P4, M,
MP=MP1]
Rin=N(1); Rout=N(2); P1=N(3); G1=N(4); G1P1=N(5); RinP1=N(6);
G1RinP1=N(7); D1=N(8); D2=N(9); Rin1=N(10); Rin2=N(11);
Rout1=N(12); Rout2=N(13); P2=N(14); G1P2=N(15); G1P4=N(16);
M=N(17); MP1=N(18);
% evaluare volum instantaneu
V= (sum(N(1:r))-N(2)-N(12)-N(13))*RTP; %(L)
11
% setare apartenenta parametrilor [k] la modelul ales
if model==8 ky=[0, 1, 1, zeros(1,8), 1, 1, 1, 1, zeros(1,p-15)]; end;
if model==9 ky=[zeros(1,11), 1, 1, 1, 1, zeros(1,p-15)]; end;
k=k.*ky;
12
for i=1:r
dy(i)= sum( v.*vy(i,:) );
end
dy=dy';
return
------------------------------------------------------------------------------
>> mc589
Model MC nr. 8 sau 9 ? =9
Solutie stationara (0) sau perturbata (1) ? =0
Concentratii stationare nominale (nM):
Rin=0.0000e+000 Rout=0.0000e+000 P1=1.0000e+003 G1=1.0000e+000 G1P1=0.0000e+000
RinP1=0.0000e+000 G1RinP1=0.0000e+000 D1=0.0000e+000 D2=0.0000e+000
Rin1=1.0000e+004 Rin2=1.0000e+004
Rout1=9.9900e+001 Rout2=9.9900e+004 P2=0.0000e+000 G1P2=0.0000e+000 G1P4=0.0000e+000
M=0.0000e+000 MP1=0.0000e+000
Model= MC59
Estimat k12= 6.9390971177327925e-004 k13= 7.6322436051455580e-007
Estimat k14= 6.9314718055994532e-010 k15= 6.9314718055994533e-004
Slope D(Cp1s)/D(Crout1s) at QSS-average = -4.539943e+000
Slope D(Cp1s)/D(Crout2s) at QSS-average = -4.992914e-003
Jacobian DF(j)/D[Crin1s,Crin2s,Cp1s,Cg1s] eigenvalues (ascending order) =
Real(Eigenvalue) = -6.9322e-003
Real(Eigenvalue) = -6.9315e-003
Real(Eigenvalue) = -1.4556e-002
Real(Eigenvalue) = -6.9315e-003
Vectori concentratii simulate (nM) pentru speciile:
[Rin, Rout, P1, G1, G1P1, RinP1, G1RinP1, D1, D2, Rin1, Rin2, Rout1, Rout2, P2, G1P2, G1P4, M, MP1]
t= 0.0 V(L)=1.6604e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t= 30.0 V(L)=2.0450e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t= 60.0 V(L)=2.5183e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t= 90.0 V(L)=3.1014e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
13
t=120.0 V(L)=3.8193e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=150.1 V(L)=4.7033e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=180.1 V(L)=5.7919e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=210.1 V(L)=7.1318e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=240.1 V(L)=8.7815e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=270.1 V(L)=1.0812e-014 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=300.0 V(L)=1.3303e-014 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 1.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t-rec-P = 0.000e+000
t-rec-G = negligible
t-rec-GP = negligible
t-rec-R1 = 0.000e+000
t-rec-R2 = 0.000e+000
------------------------------------------
>> mc589
Model MC nr. 8 sau 9 ? =8
Solutie stationara (0) sau perturbata (1) ? =0
Concentratii stationare nominale (nM):
14
Rin=0.0000e+000 Rout=0.0000e+000 P1=1.0000e+003 G1=5.0000e-001 G1P1=5.0000e-001
RinP1=0.0000e+000 G1RinP1=0.0000e+000 D1=0.0000e+000 D2=0.0000e+000
Rin1=1.0000e+004 Rin2=1.0000e+004
Rout1=9.9900e+001 Rout2=9.9900e+004 P2=0.0000e+000 G1P2=0.0000e+000 G1P4=0.0000e+000
M=0.0000e+000 MP1=0.0000e+000
Model= MC58
Estimat k2= 1.0000000693147180e+002 k3= 1.0000000000000000e+005
Estimat k12= 6.9390971177327935e-004 k13= 7.6325905253094267e-007
Estimat k14= 6.9314718055994532e-010 k15= 1.3869875083004507e-003
Slope D(Cp1s)/D(Crout1s) at QSS-average = -3.667259e+000
Slope D(Cp1s)/D(Crout2s) at QSS-average = -4.031426e-003
Slope D(Crin1s,Crin2s,Cp1s,Cg1s,Cg1p1s) / D(Crout1s) at QSS-average
ans =
5.2436e+001
-4.8770e+001
-3.6673e+000
1.1552e-003
-6.7841e-004
ans =
-5.2430e-002
5.6472e-002
-4.0314e-003
-4.2354e-006
-6.2511e-006
15
t= 30.0 V(L)=2.0450e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t= 60.0 V(L)=2.5183e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t= 90.0 V(L)=3.1014e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=120.0 V(L)=3.8193e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=150.1 V(L)=4.7033e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=180.1 V(L)=5.7919e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=210.1 V(L)=7.1318e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=240.1 V(L)=8.7815e-015 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=270.1 V(L)=1.0812e-014 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
t=300.0 V(L)=1.3303e-014 Conc.= 0.0000e+000 0.0000e+000 1.0000e+003 5.0000e-001 5.0000e-001 0.0000e+000 0.0000e+000
0.0000e+000 0.0000e+000 1.0000e+004 1.0000e+004 9.9900e+001 9.9900e+004 0.0000e+000 0.0000e+000 0.0000e+000 0.0000e+000
0.0000e+000
Warning: Requested axes limit range too small; rendering with minimum range allowed by machine precision.
> In C:\MATLABR12\toolbox\matlab\graph2d\ylabel.m at line 16
In C:\matlabR12\work\mc5sim.m at line 91
In C:\matlabR12\work\mc589.m at line 248
Warning: Requested axes limit range too small; rendering with minimum range allowed by machine precision.
> In C:\MATLABR12\toolbox\matlab\graph2d\xlabel.m at line 16
In C:\matlabR12\work\mc5sim.m at line 91
In C:\matlabR12\work\mc589.m at line 248
t-rec-P = 0.000e+000
t-rec-G = 0.000e+000
t-rec-GP = 0.000e+000
t-rec-R1 = 0.000e+000
16
t-rec-R2 = 0.000e+000
17