def run_fba_minimized(self, reaction):
epsilon = self._args.epsilon<EOL>solver = self._get_solver()<EOL>p = fluxanalysis.FluxBalanceProblem(self._mm, solver)<EOL>start_time = time.time()<EOL>try:<EOL><INDENT>p.maximize(reaction)<EOL><DEDENT>except fluxanalysis.FluxBalanceError as e:<EOL><INDENT>self.report_flux_balance_error(e)<EOL><DEDENT>fluxes = {r: p.get_flux(r) for r in self._mm.reactions}<EOL>flux_var = p.get_flux_var(reaction)<EOL>p.prob.add_linear_constraints(flux_var == p.get_flux(reaction))<EOL>p.minimize_l1()<EOL>logger.info('<STR_LIT>'.format(<EOL>time.time() - start_time))<EOL>count = <NUM_LIT:0><EOL>for reaction_id in self._mm.reactions:<EOL><INDENT>flux = p.get_flux(reaction_id)<EOL>if abs(flux - fluxes[reaction_id]) > epsilon:<EOL><INDENT>count += <NUM_LIT:1><EOL><DEDENT>yield reaction_id, flux<EOL><DEDENT>logger.info('<STR_LIT>'.format(count))<EOL>
Run normal FBA and flux minimization on model.