def test_preeq_guesses(): """ Test whether optimization with preequilibration guesses works, asserts that steadystate guesses are written and checks that gradient is still correct with guesses set """ petab_problem = petab.Problem.from_yaml( folder_base + "Zheng_PNAS2012/Zheng_PNAS2012.yaml") petab_problem.model_name = "Zheng_PNAS2012" importer = pypesto.PetabImporter(petab_problem) obj = importer.create_objective() problem = importer.create_problem(obj) optimizer = pypesto.ScipyOptimizer('ls_trf') result = pypesto.minimize( problem=problem, optimizer=optimizer, n_starts=2, ) assert problem.objective.steadystate_guesses['fval'] < np.inf assert len(obj.steadystate_guesses['data']) == 1 df = obj.check_grad( result.optimize_result.list[0]['x'], eps=1e-3, verbosity=0, mode=pypesto.objective.constants.MODE_FUN ) print("relative errors MODE_FUN: ", df.rel_err.values) print("absolute errors MODE_FUN: ", df.abs_err.values) assert np.all((df.rel_err.values < RTOL) | (df.abs_err.values < ATOL))
def test_1_compile(self): for petab_problem in self.petab_problems: importer = pypesto.PetabImporter(petab_problem, force_compile=True) self.petab_importers.append(importer) # check model model = importer.model # observable ids model_obs_ids = list(model.getObservableIds()) problem_obs_ids = list(petab_problem.get_observables().keys()) self.assertEqual(set(model_obs_ids), set(problem_obs_ids))
def test_1_compile(self): for petab_problem in self.petab_problems: importer = pypesto.PetabImporter(petab_problem) self.petab_importers.append(importer) # check model model = importer.create_model(force_compile=False) # observable ids model_obs_ids = list(model.getObservableIds()) problem_obs_ids = list(petab_problem.get_observable_ids()) self.assertEqual(set(model_obs_ids), set(problem_obs_ids))
compute_converged_points, \ compute_model_selection_criteria import LogicleScale from LogicleScale import logicleInverseTransform, logicleInverseGradient # IMPORT MODEL__________________________________________________________________________________________________________ folder_base = "models/" model_name = "Crauste_full_logicle5_1" petab_problem = petab.Problem.from_folder(folder_base + model_name) petab_problem.model_name = 'Crauste_full_logicle5_1' importer = pypesto.PetabImporter(petab_problem) importer.compile_model() model = importer.create_model() print("Model parameters:", list(model.getParameterIds()), '\n') print('Optimization parameters:', petab_problem.get_optimization_to_simulation_parameter_mapping(), '\n') print("Model outputs: ", list(model.getObservableIds()), '\n') print("Model states: ", list(model.getStateIds()), '\n') print('sigmas', petab_problem.get_sigmas()) # SOLVER OPTIONS _______________________________________________________________________________________________________ solver = importer.create_solver(model)
cell_line = sys.argv[2] agent = sys.argv[3] regpar = np.float(sys.argv[4]) setting = f'{model_name}__{cell_line}__{agent}__lambda{regpar}' n_threads = int(sys.argv[5]) basedir = os.path.dirname(os.path.realpath(__file__)) petab_problem = petab.Problem.from_yaml( os.path.join(basedir, 'petab', f'{setting}.yaml') ) importer = pypesto.PetabImporter( petab_problem, output_folder=os.path.join(basedir, 'models', model_name, model_name), model_name=model_name, ) obj = importer.create_objective() obj.n_threads = n_threads obj.use_amici_petab_simulate = False problem = importer.create_problem(obj) optim_options = { 'xtol': 1e-12, 'gtol': 1e-4, } optimizer = pypesto.ScipyOptimizer( method='ls_trf',