Team:Paris/Modeling/More f2 Algo
From 2008.igem.org
find_2
function optimal_parameters = find_f2(X_data, Y_data, initial_parameters) % gives the 'best parameters' involved in f2 by least-square optimisation % X_data = vector of given values of a [arab]i (experimentally % controled) % Y_data = vector of experimentally measured values f2 corresponding of % the X_data % initial_parameters = values of the parameters proposed by the literature % or simply guessed % = [betabad, (Kbad -> (gamma.Kbad)/(const.expr(pBad))), nbad, Kara, nara] function output = expr_pBad(parameters, X_data) for k = 1:length(X_data) output(k) = parameters(1) * ( hill( ... (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_pBad(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_2
function quant_ara = Inv_f2(inducer_quantity) % gives the quantity of [ara]i needed to get inducer_quantity of a protein % throught a gene behind pBad function equa = F(x) equa = f2( x ) - inducer_quantity; end options=optimset('LevenbergMarquardt','on','TolX',1e-10,'MaxFunEvals',1e10,'TolFun',1e-10,'MaxIter',1e4); quant_ara = fsolve(F,1,options); end