Contents
Script to process FRET experimental data
Nonlinear fit
Suitable for multiple sets of data (different protein concentration)
k1,k2,k3,A are parameters to be estimated;
Author: Chang Lu (lu-c12@mails.tsinghua.edu.cn)
Paper: Quantitative analysis of ligand induced Hetero-dimerization
function nlm_fkbp_frb_data
data input
data: Experiment data
data(:,1) is ligand concentration
data(:,2~n) is fluorescence intensity for each experiment
data = importdata('1010_3data.txt');
total_conc = [39.6 39; 55.4 39; 71.3 39];
data_length = [12 12 12];
[a,b]=size(data);
s0=zeros(a*(b-1),3);
p1lp2=zeros(a*(b-1),1);
count=0;
n=b-1;
for i=1:n
s0(count+1:count+a,1)=total_conc(i,1);
s0(count+1:count+a,2)=total_conc(i,2);
s0(count+1:count+a,3)=data(:,1);
p1lp2(count+1:count+a)=data(:,i+1);
count=count+a;
end
initial parameters
k1=1;
k2=1000;
k3=10;
A0=10;
c0=[k1 k2 k3 A0];
nonlinear regression
options = statset(...
'MaxIter',1000000,...
'TolFun',1e-26,'DerivStep',1,...
'TolX',1e-20);
mdl = NonLinearModel.fit(s0,p1lp2,@ihetero_nlinfit_k3,c0,'Options',options,'CoefficientNames',{'k1','k2','k3','A'});
mdl
mdl =
Nonlinear regression model:
y ~ ihetero_nlinfit_k3(b,X)
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ ______ __________
k1 2.0589 1.9095 1.0783 0.28898
k2 1434.8 461.48 3.109 0.0039249
k3 12.358 6.2576 1.9749 0.056959
A 10.541 0.94649 11.137 1.5249e-12
Number of observations: 36, Error degrees of freedom: 32
Root Mean Squared Error: 8.72
R-Squared: 0.991, Adjusted R-Squared 0.99
F-statistic vs. zero model: 5.15e+03, p-value = 1.9e-44
figure generation
X2=10.^linspace(-0.5,4,500)';
c=mdl.Coefficients.Estimate;
for i=1:n
YMatrix2(:,i)=ihetero_nlinfit_k3(total_conc(i,1),total_conc(i,2),c,X2);
end
createfigure2(data_length, [s0(:,3), p1lp2], X2, YMatrix2,[],[])
end