如何将实验数据拟合到ODE(michaelis-menten)方程以获取常数?

时间:2019-04-22 18:08:52

标签: matlab ode data-fitting

我正试图从由Michaelis-Menten方程的推导给出的ODE方程中获得kf kr和kcat。 (https://en.wikipedia.org/wiki/Michaelis%E2%80%93Menten_kinetics)。 我有一个模拟的实验数据和k的近似值。我需要非常适合k,但我不知道该怎么做,我尝试使用lsqcurvefit的问题是我有2个方程式和太多的变量,并且找不到sth的任何示例。如果执行代码,则可以看到方程式和实验图之一,但我不知道如何将其组合在一起。

提前谢谢

(plot taked from the code)

close all; clear all; clc

%Michaelis Menten Kinetics
%Simple Model for Single Substrate Catalyzed Reactions

% Initial Data
global e0 s0 c0 volum
volum=50^3;
e0=10/volum;
s0=500/volum;
c0=0;

% Load experimental data
data=dlmread("rk_output.txt");

% Assign the data vectors
global timeR subs enz compl prod

timeR=data(:,2);            % time
subs=data(:,3)/volum;       % Substrate
enz=data(:,4)/volum;        % Enzyme
compl=data(:,5)/volum;      % Complex
prod=data(:,6)/volum;       % Product

% Unknown coefficients
global k
k=[1.66, 7.1E-4, 3.5E-4];   %k1 k2 k-1 

% Fitting Curves to Data using Nonlinear Regression
fun=@(t,sc) [k(3)*sc(2)-k(1)*sc(1)*(e0-sc(2)); k(1)*sc(1)*(e0-sc(2))-(k(3)+k(2))*sc(2) ];

time_period=linspace(0,1000,500);
initial=[s0,c0];
[t,sc]=ode45(fun,time_period,initial);

% Assign the data vectors
substrate=sc(:,1);
complex=sc(:,2);
enzyme=(e0-complex);
product=(initial(1)-substrate-complex);

% Plot the raw data
figure(1)
plot(timeR,enz,timeR,compl,t,enzyme,t,complex)
xlabel ('time (ns)')
ylabel ('Particles')
title ('Figure 1')
legend('EnzymeReal','ComplexReal','Enzyme','Complex')

0 个答案:

没有答案