Skip to content

Commit e6b608b

Browse files
Simulation despite missing nominal Value. (#238)
1 parent 0741e58 commit e6b608b

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

src/petab_gui/controllers/mother_controller.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,6 +1555,49 @@ def simulate(self):
15551555
# obtain petab problem
15561556
petab_problem = self.model.current_petab_problem
15571557

1558+
# Check if nominalValue column exists, if not add it from SBML model
1559+
parameter_df = petab_problem.parameter_df.copy()
1560+
if (
1561+
parameter_df is not None
1562+
and not parameter_df.empty
1563+
and petab.C.NOMINAL_VALUE not in parameter_df.columns
1564+
):
1565+
self.logger.log_message(
1566+
"nominalValue column missing in parameter table. "
1567+
"Extracting nominal values from SBML model...",
1568+
color="orange",
1569+
)
1570+
# Extract parameter values from SBML model
1571+
sbml_model = self.model.sbml.get_current_sbml_model()
1572+
if sbml_model is not None:
1573+
nominal_values = []
1574+
for param_id in parameter_df.index:
1575+
try:
1576+
value = sbml_model.get_parameter_value(param_id)
1577+
nominal_values.append(value)
1578+
except Exception:
1579+
# If parameter not found in SBML, use default value of 1
1580+
nominal_values.append(1.0)
1581+
1582+
# Add nominalValue column to parameter_df
1583+
parameter_df[petab.C.NOMINAL_VALUE] = nominal_values
1584+
self.logger.log_message(
1585+
f"Successfully extracted {len(nominal_values)} "
1586+
f"nominal values from SBML model. Add nominalValue "
1587+
f"column to parameter table to set values manually.",
1588+
color="green",
1589+
)
1590+
1591+
# Update the petab problem with the modified parameter_df
1592+
petab_problem = petab.Problem(
1593+
condition_df=petab_problem.condition_df,
1594+
measurement_df=petab_problem.measurement_df,
1595+
observable_df=petab_problem.observable_df,
1596+
parameter_df=parameter_df,
1597+
visualization_df=petab_problem.visualization_df,
1598+
model=petab_problem.model,
1599+
)
1600+
15581601
# import petabsimualtor
15591602
import basico
15601603
from basico.petab import PetabSimulator

0 commit comments

Comments
 (0)