You are on page 1of 17

function mc589

clear;
format short e
global model r p V0 RTP Vout kpropus tmax procent

% program simulare modele re reglare homeostatica proteina celulara


% in ipoteza volumului variabil si a presiunii osmotice constante
% (c) G. Maria, 2003

% 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

model=input('Model MC nr. 8 sau 9 ? =');


perturb=input('Solutie stationara (0) sau perturbata (1) ? =');
if perturb==1
procent=input('Raport [P]perturbat/[P]s (0.9-1.1) =');
end

% 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)

% concentratii stationare nominale (nM)


Croutt=1e+5; % NutG/NutP = betastar (setare in 'mc5sim')
if model==9
CPS=1000;
CGS=1; CGtot=CGS;
CMETGS=1e+4; CMETPS=1e+4;
end
if model==8
CPS=1000;
CGS=1/2; CGPS=1/2; CGtot=CGS+CGPS;

1
CMETGS=1e+4; CMETPS=1e+4;
end
% end iputs

RGbeta=[ betastar ] ; % raport Rout1s/Rout2s


npoint=max(size(RGbeta));
Css=zeros(npoint+1,r);
key=0;

%-- Model MC59 - MC[GP(0)]------------------------------------


if model==9
final=1; % doar o simulare dinamica

% calcul constante cinetice din conditiile de concentratii stationare


syms r12 r13 r14 r15 sumnj
syms Crin1s Crin2s Crout1s Crout2s Cp1s Cg1s
syms k12 k13 k14 k15
syms eqrin1 eqrin2 eqp1 eqg1
syms f1 f2 f3 f4 f1p f2p f3p f4p
syms FAC alfa RTP J B X

%formuleaza sistemul QSS de ecuatii de bilant


r12=k12*Crout1s*Cp1s;
r13=k13*Crout2s*Cp1s;
r14=k14*Crin1s*Cp1s;
r15=k15*Crin2s*Cg1s;
eqrin1=(r12-r14);
eqrin2=(r13-r15);
eqp1=(r15);
eqg1=(r14);
f1=-Crin1s*FAC + eqrin1;
f2=-Crin2s*FAC + eqrin2;
f3=-Cp1s*FAC + eqp1;
f4=-Cg1s*FAC + eqg1;
sumnj=eqrin1+eqrin2+eqp1+eqg1;
alfa=RTP*sumnj;
f1p=-Crin1s*alfa + eqrin1;
f2p=-Crin2s*alfa + eqrin2;
f3p=-Cp1s*alfa + eqp1;
f4p=-Cg1s*alfa + eqg1;

2
% estimare [k]-uri din concentratii-QSS
[k12,k13,k14,k15]=solve(f1,f2,f3,f4);

% construieste Jacobianul modelului cinetic [df(i)/dC(j)]


J= jacobian( [f1p;f2p;f3p;f4p], [Crin1s,Crin2s,Cp1s,Cg1s] );
B1=-jacobian( [f1p;f2p;f3p;f4p], [Crout1s] );
B2=-jacobian( [f1p;f2p;f3p;f4p], [Crout2s] );

% salveaza estimatul [kpropus] si celelalte date in fisierul 'temp'


FAC=double(alfas);
Crout1s=betastar*Croutt/(1+betastar);
Crout2s=Croutt/(1+betastar);
Cp1s=double(CPS); Cg1s=double(CGS);
Crin1s=double(CMETGS); Crin2s=double(CMETPS);
Css(:,10)=Crin1s; Css(:,11)=Crin2s;
Css(:,12)=Crout1s; Css(:,13)=Crout2s;
Css(:,3)=Cp1s; Css(:,4)=Cg1s;
disp('Concentratii stationare nominale (nM):')
fprintf('Rin=%11.4e Rout=%11.4e P1=%11.4e G1=%11.4e G1P1=%11.4e \n',Css(1,1:5))
fprintf('RinP1=%11.4e G1RinP1=%11.4e D1=%11.4e D2=%11.4e \n',Css(1,6:9))
fprintf('Rin1=%11.4e Rin2=%11.4e\n',Css(1,10:11))
fprintf('Rout1=%11.4e Rout2=%11.4e P2=%11.4e G1P2=%11.4e G1P4=%11.4e \n',Css(1,12:16))
fprintf('M=%11.4e MP1=%11.4e \n',Css(1,17:r))

RTP=1/(Crin1s+Crin2s+Cp1s+CGtot); % grupul (RT/presiune)=constant


k12=vpa(subs(k12)); k13=vpa(subs(k13));
k14=vpa(subs(k14)); k15=vpa(subs(k15));
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 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

% calculeaza senzitivitatile / pantele D(Cjs)/D(Crouts)


J=vpa(subs(J)); B1=vpa(subs(B1)); B2=vpa(subs(B2));
slop1=J\B1; slop2=J\B2;
fprintf('Slope D(Cp1s)/D(Crout1s) at QSS-average = %14.6e \n', double(vpa(slop1(3))) )
fprintf('Slope D(Cp1s)/D(Crout2s) at QSS-average = %14.6e \n', double(vpa(slop2(3))) )
% calculeaza valorile proprii Jacobian la QSS
fprintf('Jacobian DF(j)/D[Crin1s,Crin2s,Cp1s,Cg1s] eigenvalues (ascending order) = \n')
xxx=eig(J);

3
for i=1:max(size(xxx))
fprintf('Real(Eigenvalue) = %12.4e \n', double(vpa(real(xxx(i)))) )
end

% simulare dinamica din punctul initial C0=Css(average,1:r) ;


% datele se transmit prin fisierul 'temp'

if all(kpropus)>=0
Cout=mc5sim(betastar,perturb);
end

end % model==9

%-- Model MC58 - MC[GP(1)]--------------------------------------


if model==8
final=1; % doar o simulare dinamica

% calcul constante cinetice din conditiile de concentratii stationare


syms r2 r3 r12 r13 r14 r15 sumnj
syms Crin1s Crin2s Crout1s Crout2s Cp1s Cg1s Cg1p1s
syms k2 k3 k12 k13 k14 k15
syms eqrin1 eqrin2 eqp1 eqg1 eqg1p1
syms f1 f2 f3 f4 f5 f1p f2p f3p f4p f5p
syms FAC alfa RTP J B X

%formuleaza sistemul QSS de ecuatii de bilant


r2=k2*Cp1s*Cg1s;
r3=k3*Cg1p1s;
r12=k12*Crout1s*Cp1s;
r13=k13*Crout2s*Cp1s;
r14=k14*Crin1s*Cp1s;
r15=k15*Crin2s*Cg1s;
eqrin1=(r12-r14);
eqrin2=(r13-r15);
eqp1=(r15-r2+r3);
eqg1=(r14-r2+r3);
eqg1p1=(r2-r3);
f1=-Crin1s*FAC + eqrin1;
f2=-Crin2s*FAC + eqrin2;
f3=-Cp1s*FAC + eqp1;

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;

% estimare [k]-uri din concentratii-QSS


% (solutie cu k14 fixat de MC59)
k12 = Crin1s*(FAC+k14*Cp1s)/(Crout1s*Cp1s);
k13 = (Cp1s*FAC+Crin2s*FAC-Cg1s*FAC+k14*Crin1s*Cp1s)/(Crout2s*Cp1s);
k2 = (-Cg1s*FAC+k14*Crin1s*Cp1s+k3*Cg1p1s)/(Cp1s*Cg1s);
k15 = (Cp1s*FAC-Cg1s*FAC+k14*Crin1s*Cp1s)/(Crin2s*Cg1s);
k14 = (Cg1s+Cg1p1s)*FAC/(Crin1s*Cp1s);

% construieste Jacobianul modelului cinetic [df(i)/dC(j)]


J= jacobian( [f1p;f2p;f3p;f4p;f5p], [Crin1s,Crin2s,Cp1s,Cg1s,Cg1p1s] );
B1=-jacobian( [f1p;f2p;f3p;f4p;f5p], [Crout1s] );
B2=-jacobian( [f1p;f2p;f3p;f4p;f5p], [Crout2s] );

% salveaza estimatul [kpropus] si celelalte date in fisierul 'temp'


FAC=double(alfas);
Crout1s=betastar*Croutt/(1+betastar);
Crout2s=Croutt/(1+betastar);
Cp1s=double(CPS); Cg1s=double(CGS);
Cg1p1s=double(CGPS);
Crin1s=double(CMETGS); Crin2s=double(CMETPS);
Css(:,10)=double(Crin1s); Css(:,11)=double(Crin2s);
Css(:,12)=double(Crout1s); Css(:,13)=double(Crout2s);
Css(:,3)=double(Cp1s); Css(:,4)=double(Cg1s);
Css(:,5)=double(Cg1p1s);
disp('Concentratii stationare nominale (nM):')
fprintf('Rin=%11.4e Rout=%11.4e P1=%11.4e G1=%11.4e G1P1=%11.4e \n',Css(1,1:5))
fprintf('RinP1=%11.4e G1RinP1=%11.4e D1=%11.4e D2=%11.4e \n',Css(1,6:9))
fprintf('Rin1=%11.4e Rin2=%11.4e\n',Css(1,10:11))
fprintf('Rout1=%11.4e Rout2=%11.4e P2=%11.4e G1P2=%11.4e G1P4=%11.4e \n',Css(1,12:16))
fprintf('M=%11.4e MP1=%11.4e \n',Css(1,17:r))

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

% calculeaza senzitivitatile / pantele D(Cjs)/D(Crouts)


J=vpa(subs(J)); B1=vpa(subs(B1)); B2=vpa(subs(B2));
slop1=J\B1; slop2=J\B2;
fprintf('Slope D(Cp1s)/D(Crout1s) at QSS-average = %14.6e \n', double(vpa(slop1(3))) )
fprintf('Slope D(Cp1s)/D(Crout2s) at QSS-average = %14.6e \n', double(vpa(slop2(3))) )
disp(' Slope D(Crin1s,Crin2s,Cp1s,Cg1s,Cg1p1s) / D(Crout1s) at QSS-average')
double(vpa(slop1))
disp(' Slope D(Crin1s,Crin2s,Cp1s,Cg1s,Cg1p1s) / D(Crout2s) at QSS-average')
double(vpa(slop2))
% calculeaza valorile proprii Jacobian la QSS
fprintf('Jacobian DF(j)/D[Crin1s,Crin2s,Cp1s,Cg1s] eigenvalues (ascending order) = \n')
xxx=eig(J);
for i=1:max(size(xxx))
fprintf('Real(Eigenvalue) = %12.4e \n', double(vpa(real(xxx(i)))) )
end

% simulare dinamica din punctul initial C0=Css(average,1:r) ;


% datele se transmit prin fisierul 'temp'

if all(kpropus)>=0
Cout=mc5sim(betastar,perturb);
end

end % model==8

% end program

6
-----------------------------------------------------------------------------
function Cout=mc5sim(beta,perturb)

% Program simulare dinamica modele de reglare (volum variabil)


% cu constante cinetice evaluate anterior
% G. Maria, 2003

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

%setare NutG si NutP (constanti in timpul integrarii)


Crout1s=beta*Croutt/(1+beta); C0(12)=Crout1s;
Crout2s=Croutt/(1+beta); C0(13)=Crout2s;

% domeniul de timp [tmin,tmax,nr.incremente](min)


x=linspace(0,tmax,3000);

% generare numar de moli initial al speciilor: vecor (y); (n-moli)


y(1,1:r)=C0(1:r)*V0;
% calcul volum mediu exterior (conc. exterioara 1e+8 nM)
Vout=V0*1e+8/(sum(C0(1:r))-C0(2)-C0(12)-C0(13)); %(L)
y(1,2)=C0(2)*Vout; y(1,12)=C0(12)*Vout; y(1,13)=C0(13)*Vout;

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));

% genereaza curbele de concentratie (numar moli / volum)


for i=1:nn
V(i)=( sum(ym(i,1:r)) - ym(i,2) - ym(i,12) - ym(i,13) )*RTP;
Cm(i,1:r)= abs(ym(i,1:r))/V(i); %(nM)
Cm(i,2)=ym(i,2)/Vout;
Cm(i,12)=ym(i,12)/Vout;
Cm(i,13)=ym(i,13)/Vout;
end

disp('Vectori concentratii simulate (nM) pentru speciile:')


disp('[Rin, Rout, P1, G1, G1P1, RinP1, G1RinP1, D1, D2, Rin1, Rin2, Rout1, Rout2, P2, G1P2, G1P4, M, MP1]')
for i=1:round(nn/10):nn
fprintf('t=%5.1f V(L)=%11.4e Conc.=',tm(i),V(i));
fprintf(' %11.4e ',Cm(i,1:r));
fprintf('\n');
end
fprintf('t=%5.1f V(L)=%11.4e Conc.=',tm(nn),V(nn));
fprintf(' %11.4e ',Cm(nn,1:r));
fprintf('\n');

%plot curbe cinetice simulate


figure(1)
subplot(2,2,1),plot(tm,ym(:,3),'r-'); ylabel('P (nmoli)');
axis([min(tm) max(tm) min(ym(:,3)) max(ym(:,3))])
title(['Model MC',num2str(model)])
subplot(2,2,2),plot(tm,ym(:,4),'b-'); ylabel('G (nmoli)');
axis([min(tm) max(tm) min(ym(:,4)) max(ym(:,4))])
subplot(2,2,3),plot(tm,ym(:,11),'r-'); ylabel('MetP (nmoli)'); xlabel('timp (min)');
axis([min(tm) max(tm) min(ym(:,11)) max(ym(:,11))])
subplot(2,2,4),plot(tm,ym(:,10),'b-'); ylabel('MetG (nmoli)'); xlabel('timp (min)');
axis([min(tm) max(tm) min(ym(:,10)) max(ym(:,10))])

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])

% calcul timpi de recover specii


% specia P
error=0.01; % eroare de recover (relativa)
Cp1s=1000;
nmin=20;
Pmin=Cp1s*(1-error); Pmax=Cp1s*(1+error);
nP=min(find(Cm(nmin:nn,3)>Pmin & Cm(nmin:nn,3)<Pmax));
if isempty(tm(nP))~=1
fprintf( 't-rec-P = %11.3e \n',tm(nP))
else
fprintf( 't-rec-P = negligible \n')
end

% 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

% specia R1= MetG


error=0.01; % eroare de recover (relativa)
Cr1s=1e+4;
R1min=Cr1s*(1-error); R1max=Cr1s*(1+error);
nR1=min(find(Cm(nmin:nn,10)>R1min & Cm(nmin:nn,10)<R1max));
if isempty(tm(nR1))~=1
fprintf( 't-rec-R1 = %11.3e \n',tm(nR1))
else
fprintf( 't-rec-R1 = negligible \n')
end

% specia R2= MetP


error=0.01; % eroare de recover (relativa)
Cr2s=1e+4;
R2min=Cr2s*(1-error); R2max=Cr2s*(1+error);
nR2=min(find(Cm(nmin:nn,11)>R2min & Cm(nmin:nn,11)<R2max));
if isempty(tm(nR2))~=1
fprintf( 't-rec-R2 = %11.3e \n',tm(nR2))

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

% rutina evaluare derivate modele cinetice de reglare MC8-MC9


% volum variabil (in termeni de numar de n-moli)
% Notatii:
% dy= vector derivate concentratii specii
% (evaluate pentru modelul curent 'model' si vectorul constantelor
% cinetice k*ky)
% k[p] = vectorul constantelor cinetice
% ky[p]= vector Boolean (0,1) ce multiplica constantele cinetice
% (c) G. Maria, 2003

% verifica pozitivitatea nr. de moli


for i=1:r
if N(i)<0 N(i)=1e-40; else; end;
end

% 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)

% setare constante cinetice


k(1:p)=kpropus(1:p);

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;

% evaluare vector viteze de reactie [v] (nM/min)


v=[k(1)*Rin*G1/V, k(2)*G1*P1/V, k(3)*G1P1, k(4)*Rin*P1/V, k(5)*RinP1, k(6)*G1*RinP1/V, k(7)*G1RinP1, k(8)*Rout/Vout*P1,
k(9)*Rin*P1/V, k(10)*G1P1, k(11)*G1RinP1, k(12)*Rout1/Vout*P1, k(13)*Rout2/Vout*P1, k(14)*Rin1/V*P1, k(15)*Rin2/V*G1,
k(16)*P1*P1/V, k(17)*P2, k(18)*G1*P2/V, k(19)*G1P2, k(20)*G1P2*P2/V, k(21)*G1P4, k(22)*Rin2*G1/V, k(23)*Rin2*M/V, k(24)*M*P1/V,
k(25)*MP1, k(26)*MP1, k(27)*Rin1 ];

% vy= matrice coeficienti stoiciometrici [nr.specii x nr. reactii]


% Reactiile sunt in ordinea elementelor vectorului 'v'
nv=max(size(v));
vy(1:r,1:nv)=...
[ -1, 0, 0, -1, +1, 0, 0, +1, -1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; %Rin
zeros(1,nv)
; %Rout
+1, -1, +1, -1, +1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+1, -2, +2, 0, 0, 0, 0, 0, +1, -1, +1, +1, 0 ; %P1
0, -1, +1, 0, 0, -1, +1, 0, +1, +1, +1, 0, 0, +1,
0, 0, 0, -1, +1, 0, 0, 0, 0, 0, 0, 0, +1 ; %G1
0, +1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; %G1P1
0, 0, 0, +1, -1, -1, +1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; %RinP1
0, 0, 0, 0, 0, +1, -1, 0, 0, 0, -1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; %G1RinP1
0, 0, 0, 0, 0, 0, 0, 0, 0, +1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +1, 0 ; %D1
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; %D2
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +1, +1, 0, -1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1 ; %Rin1
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +1, 0, +1, 0,
-1, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0 ; %Rin2
zeros(1,nv)
; %Rout1
zeros(1,nv)
; %Rout2
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, +1, -1, -1, +1, -1, +1, 0, 0, 0, 0, 0, 0 ; %P2
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, +1, -1, -1, +1, 0, 0, 0, 0, 0, 0 ; %G1P2
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, +1, -1, 0, 0, 0, 0, 0, 0 ; %G1P4
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, +1, 0, -1, +1, 0, 0 ; %M
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, +1, -1, -1, 0 ]; %MP1

% evalueaza derivatele (nM/min)


dy=zeros(1,r);

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

Model MC nr. 8 sau 9 ? =9


Solutie stationara (0) sau perturbata (1) ? =1
Raport [P]perturbat/[P]s (0.9-1.1) =0.9
t-rec-P = 1.548e+002
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

Slope D(Crin1s,Crin2s,Cp1s,Cg1s,Cg1p1s) / D(Crout2s) at QSS-average

ans =

-5.2430e-002
5.6472e-002
-4.0314e-003
-4.2354e-006
-6.2511e-006

Jacobian DF(j)/D[Crin1s,Crin2s,Cp1s,Cg1s] eigenvalues (ascending order) =


Real(Eigenvalue) = -2.0005e+005
Real(Eigenvalue) = -1.8025e-002
Real(Eigenvalue) = -6.9319e-003
Real(Eigenvalue) = -6.9315e-003
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 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

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

Model MC nr. 8 sau 9 ? =8


Solutie stationara (0) sau perturbata (1) ? =1
Raport [P]perturbat/[P]s (0.9-1.1) =0.9
t-rec-P = 1.246e+002
t-rec-G = 1.163e+002
t-rec-GP = 6.802e+001
t-rec-R1 = 0.000e+000
t-rec-R2 = 0.000e+000
------------------------------------------------------------------------

17

You might also like