Team:Paris/Modeling/Implementation
From 2008.igem.org
(Difference between revisions)
(→Parameters Finder for our Example) |
|||
Line 25: | Line 25: | ||
<html><pre class="codeinput"> | <html><pre class="codeinput"> | ||
<span class="keyword">function</span> optimal_parameters = find_FP(X_data, Y_data, initial_parameters) | <span class="keyword">function</span> optimal_parameters = find_FP(X_data, Y_data, initial_parameters) | ||
- | + | <span class="comment">%gives the <span class="string">'best parameters<span class="string">' involved in f4, f5, f6, f7 or f8 | |
- | <span class="comment">% gives the 'best parameters' involved in f4, f5, f6, f7 or f8 | + | </span><span class="comment">%with FlhDC = 0 or FliA = 0 by least-square optimisation |
- | </span><span class="comment">% with FlhDC = 0 or FliA = 0 by least-square optimisation | + | </span> |
- | </span> | + | <span class="comment">%X_data = vector of given values of [FliA]i or [FlhDC]i (experimentally |
- | <span class="comment">% X_data = vector of given values of [FliA]i or [FlhDC]i (experimentally | + | </span><span class="comment">%controled) |
- | </span><span class="comment">% controled) | + | </span><span class="comment">%Y_data = vector of experimentally measured values f4, f5, f6, f7 or f8 |
- | </span><span class="comment">% Y_data = vector of experimentally measured values f4, f5, f6, f7 or f8 | + | </span><span class="comment">%corresponding of the X_data |
- | </span><span class="comment">% corresponding of the X_data | + | </span><span class="comment">%initial_parameters = values of the parameters proposed by the literature |
- | </span><span class="comment">% initial_parameters = values of the parameters proposed by the literature | + | </span><span class="comment">% or simply guessed |
- | </span><span class="comment">% | + | </span><span class="comment">% = [beta, K -> (K)/(coef), n] |
- | </span><span class="comment">% | + | </span> |
- | </span> | + | |
<span class="keyword">function</span> output = expr_pProm(parameters, X_data) | <span class="keyword">function</span> output = expr_pProm(parameters, X_data) | ||
<span class="keyword">for</span> k = 1:length(X_data) | <span class="keyword">for</span> k = 1:length(X_data) | ||
- | output(k) = parameters(1)*hill(X_data(k), parameters(2), | + | output(k) = parameters(1)*hill(X_data(k), parameters(2), parameters(3)); |
- | + | ||
end | end | ||
end | end | ||
- | options = optimset(<span class="string">'LevenbergMarquardt'</span>,<span class="string">'on'</span>,<span class="string">'TolX'</span>,1e-10, | + | options = optimset(<span class="string">'LevenbergMarquardt'</span>,<span class="string">'on'</span>,<span class="string">'TolX'</span>,1e-10,<span class="string">'MaxFunEvals'</span>,1e10,<span class="string">'TolFun'</span>,1e-10,<span class="string">'MaxIter'</span>,1e4); |
- | + | <span class="comment">%options <span class="keyword">for</span> the <span class="keyword">function</span> lsqcurvefit | |
- | <span class="comment">% options for the function lsqcurvefit | + | </span> |
- | </span> | + | optimal_parameters = lsqcurvefit( @(parameters, X_data) expr_pProm(parameters, X_data),... |
- | optimal_parameters = lsqcurvefit( @(parameters, X_data) | + | initial_parameters, X_data, Y_data, 1/10*initial_parameters, 10*initial_parameters, options ); |
- | + | <span class="comment">%search <span class="keyword">for</span> the fittest parameters, between 1/10 and 10 times the initial | |
- | + | </span><span class="comment">%parameters | |
- | <span class="comment">% search for the fittest parameters, between 1/10 and 10 times the initial | + | </span> |
- | </span><span class="comment">% parameters | + | |
- | </span> | + | |
<span class="keyword">end</span> | <span class="keyword">end</span> | ||
</pre></html> | </pre></html> |
Revision as of 22:07, 27 October 2008
Implementation
[Back to "Workflow on an Example"] We use Matlab for all implementations. Parameters Finder Programsthe datasThe experimental datas consist typically in two tables, X_data (various concentrations of the transcription factor) and Y_data (corresponding output values).
Parameters Finder for our ExampleWe just write here the annoted program find_FP that is used to estimate, for instance, the parameters in :
function optimal_parameters = find_FP(X_data, Y_data, initial_parameters) %gives the 'best parameters' involved in f4, f5, f6, f7 or f8 %with FlhDC = 0 or FliA = 0 by least-square optimisation %X_data = vector of given values of [FliA]i or [FlhDC]i (experimentally %controled) %Y_data = vector of experimentally measured values f4, f5, f6, f7 or f8 %corresponding of the X_data %initial_parameters = values of the parameters proposed by the literature % or simply guessed % = [beta, K -> (K)/(coef), n] function output = expr_pProm(parameters, X_data) for k = 1:length(X_data) output(k) = parameters(1)*hill(X_data(k), parameters(2), parameters(3)); end end options = optimset('LevenbergMarquardt','on','TolX',1e-10,'MaxFunEvals',1e10,'TolFun',1e-10,'MaxIter',1e4); %options for the function lsqcurvefit optimal_parameters = lsqcurvefit( @(parameters, X_data) expr_pProm(parameters, X_data),... initial_parameters, X_data, Y_data, 1/10*initial_parameters, 10*initial_parameters, options ); %search for the fittest parameters, between 1/10 and 10 times the initial %parameters end |