# Team:Paris/Modeling/More f1 Algo

(Difference between revisions)
 Revision as of 03:43, 30 October 2008 (view source)Hugo (Talk | contribs) (→Inv_ƒ1)← Older edit Latest revision as of 03:47, 30 October 2008 (view source)Hugo (Talk | contribs) (→find_ƒ1) Line 17: Line 17:

-                                                                                                 function act_pTet = f1(TetR, aTc)                   +                                                                                              function optimal_parameters = find_f1(X_data, Y_data, initial_parameters)
-                                                                                                 % activity of pTet in function of TetR and aTc             +                                                                                              % gives the 'best parameters' involved in f1 by least-square optimisation

-                                                                                                 global beta16 K13 n13 K12 n12;                      +                                                                                              % X_data = vector of given values of a [aTc]i (experimentally
-                                                                                                 % parameters                                               +                                                                                              % controled)
+                                                                                              % Y_data = vector of experimentally measured values f1 corresponding of
+                                                                                              % the X_data
+                                                                                              % initial_parameters = values of the parameters proposed by the literature
+                                                                                              %                       or simply guessed
+                                                                                              %                    = [beta16, (K13 -> (gamma.K13)/(coefTet.f0)), n13, K12, n12]

-                                                                                                 act_pTet = beta16 * ( 1 - hill( TetR*(1 - hill( aTc, K13, n13 )), K12, n12 ) );  +                                                                                              % Warning : in the global parameters, K20 -> K20/coefTet
+
+                                                                                              function output = expr_pTet(parameters, X_data)
+                                                                                              for k = 1:length(X_data)
+                                                                                              output(k) = parameters(1) * (1 - ...
+                                                                                              hill((1 - hill(X_data(k),parameters(4),parameters(5))),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_pTet(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                                                                                                                                                end

## find_ƒ1

```function optimal_parameters = find_f1(X_data, Y_data, initial_parameters)
% gives the 'best parameters' involved in f1 by least-square optimisation

% X_data = vector of given values of a [aTc]i (experimentally
% controled)
% Y_data = vector of experimentally measured values f1 corresponding of
% the X_data
% initial_parameters = values of the parameters proposed by the literature
%                       or simply guessed
%                    = [beta16, (K13 -> (gamma.K13)/(coefTet.f0)), n13, K12, n12]

% Warning : in the global parameters, K20 -> K20/coefTet

function output = expr_pTet(parameters, X_data)
for k = 1:length(X_data)
output(k) = parameters(1) * (1 - ...
hill((1 - hill(X_data(k),parameters(4),parameters(5))),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_pTet(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
```

## Inv_ƒ1

```function quant_aTc = Inv_f1(inducer_quantity)
% gives the quantity of [aTc]i needed to get inducer_quantity of a protein
% throught a gene behind pTet

global gamma, f0;
% parameters

function equa = F(x)
equa = f1( (f0/gamma) , x ) - inducer_quantity;
end

options=optimset('LevenbergMarquardt','on','TolX',1e-10,'MaxFunEvals',1e10,'TolFun',1e-10,'MaxIter',1e4);

quant_aTc = fsolve(F,1,options);

end
```