1+ import petab
2+ import amici
3+ import pypesto
4+ import pypesto .petab
5+ import pypesto .optimize
6+ import pypesto .store
7+ from pathlib import Path
8+
9+ model_name = "Fiedler_BMCSystBiol2016"
10+ petab_problem = petab .Problem .from_yaml (f"../{ model_name } .yaml" )
11+ petab_problem_flat = petab .Problem .from_yaml (f"../{ model_name } .yaml" )
12+ petab .flatten_timepoint_specific_output_overrides (petab_problem_flat )
13+ petab_problem_flat .visualization_df = None
14+
15+ pypesto_importer = pypesto .petab .PetabImporter (petab_problem_flat )
16+ pypesto_problem = pypesto_importer .create_problem ()
17+
18+ result = pypesto .optimize .minimize (
19+ pypesto_problem ,
20+ optimizer = pypesto .optimize .FidesOptimizer (),
21+ n_starts = 1000 ,
22+ )
23+
24+ # Save result object in hdf5 file
25+ pypesto .store .save_to_hdf5 .write_result (result , 'result.hdf5' , overwrite = True )
26+
27+ # Visualization
28+ import pypesto .visualize as vis
29+ import matplotlib .pyplot as plt
30+
31+ vis .waterfall (result , size = (8 , 4 ))
32+ plt .savefig ('waterfall.png' )
33+ plt .close ()
34+
35+ from pypesto .visualize .model_fit import visualize_optimized_model_fit
36+ visualize_optimized_model_fit (
37+ petab_problem = petab_problem_flat ,
38+ result = result ,
39+ pypesto_problem = pypesto_problem ,
40+ return_dict = False ,
41+ start_index = n ,
42+ unflattened_petab_problem = petab_problem ,
43+ )
44+ plt .savefig ("fit.png" )
45+ plt .close ()
46+
47+ FITS_PATH = Path (__file__ ).resolve ().parent / "fits"
48+ FITS_PATH .mkdir (exist_ok = True )
49+ for n in range (1 , 20 ):
50+ visualize_optimized_model_fit (
51+ petab_problem = petab_problem_flat ,
52+ result = result ,
53+ pypesto_problem = pypesto_problem ,
54+ return_dict = False ,
55+ start_index = n ,
56+ unflattened_petab_problem = petab_problem ,
57+ )
58+ plt .savefig (FITS_PATH / f"fit_{ str (n ).rjust (2 , '0' )} .png" )
59+ plt .close ()
60+
61+
62+ vis .parameters (
63+ result ,
64+ legends = "optimizer" ,
65+ start_indices = [0 , 1 , 2 , 3 ],
66+ )
67+ plt .savefig ('parameters.png' )
68+ plt .close ()
0 commit comments