def test_convert_objective_to_constraint(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': milp_model = deepcopy(self.model) else: milp_model = self.model.copy() gim3e.convert_to_irreversible_with_indicators( milp_model, mutually_exclusive_directionality_constraint=True) constraint_test_model = gim3e.convert_objective_to_constraint( milp_model, objective_sense='maximize', fraction_of_optimum=0.9, copy_model=True, bound_best_optimum=False, new_reaction_name="test_objective", solver=the_solver, tolerance_optimality=solver_tolerance, tolerance_feasibility=solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer=tolerance_integer) constraint_test_model.reactions.get_by_id( "test_objective").objective_coefficient = 1. gim3e.gim3e_optimize(milp_model, objective_sense='maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality=solver_tolerance, tolerance_feasibility=solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer=tolerance_integer) solution = milp_model.solution self.assertEqual(solution.status, "optimal")
def test_optimize_turnover_metabolite(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': milp_model = deepcopy(self.model) else: milp_model = self.model.copy() gim3e.convert_to_irreversible_with_indicators( milp_model, mutually_exclusive_directionality_constraint=False) epsilon = 1.01 * solver_tolerance gim3e.add_turnover_metabolites(milp_model, ['glc__D_c'], epsilon) for x in milp_model.reactions: x.objective_coefficient = 0 milp_model.reactions.get_by_id( 'TMS_glc__D_c').objective_coefficient = 1 gim3e.gim3e_optimize(milp_model, objective_sense='maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality=solver_tolerance, tolerance_feasibility=solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer=tolerance_integer) solution = milp_model.solution self.assertEqual(solution.status, "optimal")
def test_convert_objective_to_constraint(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': milp_model = deepcopy(self.model) else: milp_model = self.model.copy() gim3e.convert_to_irreversible_with_indicators(milp_model, mutually_exclusive_directionality_constraint = True) constraint_test_model = gim3e.convert_objective_to_constraint(milp_model, objective_sense = 'maximize', fraction_of_optimum = 0.9, copy_model = True, bound_best_optimum = False, new_reaction_name = "test_objective", solver=the_solver, tolerance_optimality = solver_tolerance, tolerance_feasibility = solver_tolerance, tolerance_barrier = 0.0001 * solver_tolerance, tolerance_integer = tolerance_integer) constraint_test_model.reactions.get_by_id("test_objective").objective_coefficient = 1. gim3e.gim3e_optimize(milp_model, objective_sense = 'maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality = solver_tolerance, tolerance_feasibility = solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer = tolerance_integer) solution = milp_model.solution self.assertEqual(solution.status, "optimal")
def test_solve_feasible(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': test_model = deepcopy(self.model) else: test_model = self.model.copy() gim3e.gim3e_optimize(test_model, objective_sense = 'maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality = solver_tolerance, tolerance_feasibility = solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer = tolerance_integer) solution = test_model.solution self.assertEqual(solution.status, "optimal")
def test_solve_milp_feasible(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': milp_model = deepcopy(self.model) else: milp_model = self.model.copy() gim3e.convert_to_irreversible_with_indicators(milp_model, mutually_exclusive_directionality_constraint = True) gim3e.gim3e_optimize(milp_model,objective_sense = 'maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality = solver_tolerance, tolerance_feasibility = solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer = tolerance_integer) solution = milp_model.solution self.assertEqual(solution.status, "optimal")
def test_solve_feasible(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': test_model = deepcopy(self.model) else: test_model = self.model.copy() gim3e.gim3e_optimize(test_model, objective_sense='maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality=solver_tolerance, tolerance_feasibility=solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer=tolerance_integer) solution = test_model.solution self.assertEqual(solution.status, "optimal")
def test_solve_milp_feasible(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': milp_model = deepcopy(self.model) else: milp_model = self.model.copy() gim3e.convert_to_irreversible_with_indicators( milp_model, mutually_exclusive_directionality_constraint=True) gim3e.gim3e_optimize(milp_model, objective_sense='maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality=solver_tolerance, tolerance_feasibility=solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer=tolerance_integer) solution = milp_model.solution self.assertEqual(solution.status, "optimal")
def test_optimize_turnover_metabolite(self): the_solver = gim3e.check_solver() tolerance_integer = gim3e.integer_tolerances[the_solver] if cobra_version == '0.2.0': milp_model = deepcopy(self.model) else: milp_model = self.model.copy() gim3e.convert_to_irreversible_with_indicators(milp_model, mutually_exclusive_directionality_constraint = False) epsilon = 1.01 * solver_tolerance gim3e.add_turnover_metabolites(milp_model, ['glc__D_c'], epsilon) for x in milp_model.reactions: x.objective_coefficient = 0 milp_model.reactions.get_by_id('TMS_glc__D_c').objective_coefficient = 1 gim3e.gim3e_optimize(milp_model, objective_sense = 'maximize', the_problem=None, solver=the_solver, error_reporting=None, tolerance_optimality = solver_tolerance, tolerance_feasibility = solver_tolerance, tolerance_barrier=0.0001 * solver_tolerance, tolerance_integer = tolerance_integer) solution = milp_model.solution self.assertEqual(solution.status, "optimal")
gim3e_dir = gim3e.__file__ n_remove_chars = len('/core/gim3e.py') gim3e_dir = gim3e_dir[:(-1 * (n_remove_chars))] data_dir = gim3e_dir + "data/" # develop the sampling algorithm with E coli core as a first approach sbml_file = 'E_coli_core_M9.xml' cobra_model = create_cobra_model_from_sbml_file(data_dir + 'E_coli_core_M9.xml', print_time=True) cobra_model.reactions.get_by_id('ATPM').objective_coefficient = 1 cobra_model.optimize() cobra_model.solution.f gim3e.gim3e_optimize(cobra_model, objective_sense = 'maximize', the_problem = None, solver = 'cplex', error_reporting = None, tolerance_optimality = selected_tolerance, tolerance_feasibility = selected_tolerance, tolerance_barrier = 0.0001 * selected_tolerance, tolerance_integer = 0) cobra_model.solution.f # Make this into a GIM3E model gim3e_model, gim3e_FVA, penalty_score = gim3e.gim3e(cobra_model, expression_dict = {}, expression_threshold = 0, metabolite_list = [], fraction_growth = selected_growth, relative_penalty_bound = selected_penalty, solver_tolerance = selected_tolerance, metabolite_flux_requirement = False, monitor_all_cellular_metabolites = True, MILP_formulation = True,
data_dir = gim3e_dir + "data/" # develop the sampling algorithm with E coli core as a first approach sbml_file = 'E_coli_core_M9.xml' cobra_model = create_cobra_model_from_sbml_file(data_dir + 'E_coli_core_M9.xml', print_time=True) cobra_model.reactions.get_by_id('ATPM').objective_coefficient = 1 cobra_model.optimize() cobra_model.solution.f gim3e.gim3e_optimize(cobra_model, objective_sense='maximize', the_problem=None, solver='cplex', error_reporting=None, tolerance_optimality=selected_tolerance, tolerance_feasibility=selected_tolerance, tolerance_barrier=0.0001 * selected_tolerance, tolerance_integer=0) cobra_model.solution.f # Make this into a GIM3E model gim3e_model, gim3e_FVA, penalty_score = gim3e.gim3e( cobra_model, expression_dict={}, expression_threshold=0, metabolite_list=[], fraction_growth=selected_growth, relative_penalty_bound=selected_penalty, solver_tolerance=selected_tolerance,