Skip to content

Commit 4f4ab92

Browse files
authored
Add petab.Problem.__str__ (#178)
... providing some high-level summary of the given problem.
1 parent f73d915 commit 4f4ab92

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

petab/problem.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,31 @@ def __setattr__(self, name, value):
104104
else:
105105
super().__setattr__(name, value)
106106

107+
def __str__(self):
108+
model = f"with model ({self.model})" if self.model else "without model"
109+
conditions = f"{self.condition_df.shape[0]} conditions" \
110+
if self.condition_df is not None else "without conditions table"
111+
112+
observables = f"{self.observable_df.shape[0]} observables" \
113+
if self.observable_df is not None else "without observables table"
114+
115+
measurements = f"{self.measurement_df.shape[0]} measurements" \
116+
if self.measurement_df is not None \
117+
else "without measurements table"
118+
119+
if self.parameter_df is not None:
120+
num_estimated_parameters = sum(self.parameter_df[ESTIMATE] == 1) \
121+
if ESTIMATE in self.parameter_df \
122+
else self.parameter_df.shape[0]
123+
parameters = f"{num_estimated_parameters} estimated parameters"
124+
else:
125+
parameters = "without parameter_df table"
126+
127+
return (
128+
f"PEtab Problem {model}, {conditions}, {observables}, "
129+
f"{measurements}, {parameters}"
130+
)
131+
107132
@staticmethod
108133
def from_files(
109134
sbml_file: Union[str, Path] = None,

0 commit comments

Comments
 (0)