Как мне сопоставить экспериментальные данные с уравнением ODE (michaelis-menten), чтобы получить константы? - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь получить kf kr и kcat из уравнений ОДУ, полученных при выводе уравнения Михаэлиса-Ментена. (https://en.wikipedia.org/wiki/Michaelis%E2%80%93Menten_kinetics). У меня есть экспериментальные данные из моделирования и приблизительные значения k. Мне нужно получить хорошую подгонку для k, и я не знаю, как это сделать, я пытаюсь с lsqcurvefit, проблема в том, что у меня есть 2 уравнения и слишком много переменных, и я не смог найти ни одного примера с аналогами. Если вы выполняете код, вы можете видеть как графики уравнения, так и экспериментальные, но я не знаю, как их собрать.

Заранее спасибо

(участок взят из кода)

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')
...