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))
Exemple #2
0
    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))
Exemple #4
0
                                           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',