Skip to content

Commit d39b922

Browse files
working on sensitivity
1 parent 74be6d3 commit d39b922

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/sbmlsim/sensitivity/global_sensitivity.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ class SensitivityAnalysis:
106106
"""
107107

108108
sensitivity_simulation: SensitivitySimulation
109+
parameters: list[str]
109110

110111
def __init__(self, sensitivity_simulation: SensitivitySimulation,
111112
parameters: list[str]) -> None:
@@ -161,6 +162,7 @@ def calculate_sensitivity(self):
161162

162163
raise NotImplemented
163164

165+
164166
@dataclass
165167
class LocalSensitivityAnalysis(SensitivityAnalysis):
166168
"""Local sensitivity analysis based on local differences."""
@@ -171,6 +173,7 @@ class LocalSensitivityAnalysis(SensitivityAnalysis):
171173
def __init__(self, sensitivity_simulation: SensitivitySimulation,
172174
parameters: list[str], difference: float = 0.1):
173175

176+
super().__init__(sensitivity_simulation, parameters)
174177
self.sensitivity = np.zeros(shape=(self.num_parameters, self.num_outputs))
175178
self.difference = difference
176179
self.samples = self.create_samples()
@@ -184,8 +187,19 @@ def num_samples(self) -> int:
184187

185188
def create_samples(self) -> np.ndarray:
186189

187-
for key, value in p_ref.items():
190+
# Calculate the parameter values in the reference state
191+
parameter_values = self.sensitivity_simulation.parameter_values(
192+
changes=self.sensitivity_simulation.changes_simulation
193+
)
194+
195+
# (num_samples x num_outputs)
196+
samples = np.empty(shape=(self.num_samples, self.num_parameters))
197+
198+
for key, value in :
188199
values = np.ones(shape=(2 * num_pars,)) * value.magnitude
200+
201+
202+
189203
# change parameters in correct position
190204
values[index] = value.magnitude * (1.0 + difference)
191205
values[index + num_pars] = value.magnitude * (1.0 - difference)

0 commit comments

Comments
 (0)