Team:Paris/Modeling/Implementation

From 2008.igem.org

(Difference between revisions)
(Parameters Finder for our Example)
(Parameters Finder for our Example)
Line 22: Line 22:
* <span style="color:#0000FF;">&#131;5( [''FlhDC''], 0 ) = ''&beta;<sub>24</sub> * &#131;<sub>hill</sub>''( [''FlhDC''], ''K<sub>2</sub>'', ''n<sub>2</sub>'' )</span> and  
* <span style="color:#0000FF;">&#131;5( [''FlhDC''], 0 ) = ''&beta;<sub>24</sub> * &#131;<sub>hill</sub>''( [''FlhDC''], ''K<sub>2</sub>'', ''n<sub>2</sub>'' )</span> and  
* <span style="color:#0000FF;">&#131;5( 0, [''FliA''] ) = ''&beta;<sub>25</sub> * &#131;<sub>hill</sub>''( [''FliA''], ''K<sub>8</sub>'', ''n<sub>8</sub>'' )</span>
* <span style="color:#0000FF;">&#131;5( 0, [''FliA''] ) = ''&beta;<sub>25</sub> * &#131;<sub>hill</sub>''( [''FliA''], ''K<sub>8</sub>'', ''n<sub>8</sub>'' )</span>
 +
 +
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

Revision as of 18:54, 27 October 2008

Implementation


[Back to "Workflow on an Example"]

We use Matlab for all implementations.

Parameters Finder Programs

the datas

The experimental datas consist typically in two tables, X_data (various concentrations of the transcription factor) and Y_data (corresponding output values).

  • controlling X_data : thanks to the prior characterization of the inductible promoters that control the transcription factor concentrations, we can deduce from the Inv_f1.m and Inv_f2.m functions the necessary concentrations of aTc and arabinose to introduce in the medium to get the wanted concentrations of transcription factor.
  • getting Y_data : the linear conversion between the fluorescence of GFP at maturation and its concentration gives us directly the expected datas.

Parameters Finder for our Example

We just write here the annoted program find_FP that is used to estimate, for instance, the parameters in :

  • ƒ5( [FlhDC], 0 ) = β24 * ƒhill( [FlhDC], K2, n2 ) and
  • ƒ5( 0, [FliA] ) = β25 * ƒhill( [FliA], K8, n8 )
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