mxlpy 0.8.0__py3-none-any.whl → 0.9.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mxlpy/mc.py +29 -13
- mxlpy/mca.py +13 -1
- mxlpy/scan.py +34 -5
- {mxlpy-0.8.0.dist-info → mxlpy-0.9.0.dist-info}/METADATA +1 -1
- {mxlpy-0.8.0.dist-info → mxlpy-0.9.0.dist-info}/RECORD +7 -7
- {mxlpy-0.8.0.dist-info → mxlpy-0.9.0.dist-info}/WHEEL +0 -0
- {mxlpy-0.8.0.dist-info → mxlpy-0.9.0.dist-info}/licenses/LICENSE +0 -0
mxlpy/mc.py
CHANGED
@@ -22,6 +22,7 @@ from typing import TYPE_CHECKING, Protocol, cast
|
|
22
22
|
import pandas as pd
|
23
23
|
|
24
24
|
from mxlpy import mca, scan
|
25
|
+
from mxlpy.integrators import DefaultIntegrator
|
25
26
|
from mxlpy.parallel import Cache, parallelise
|
26
27
|
from mxlpy.scan import (
|
27
28
|
ProtocolWorker,
|
@@ -33,6 +34,8 @@ from mxlpy.scan import (
|
|
33
34
|
_update_parameters_and,
|
34
35
|
)
|
35
36
|
from mxlpy.types import (
|
37
|
+
ArrayLike,
|
38
|
+
IntegratorProtocol,
|
36
39
|
McSteadyStates,
|
37
40
|
ProtocolByPars,
|
38
41
|
ResponseCoefficientsByPars,
|
@@ -52,6 +55,8 @@ __all__ = [
|
|
52
55
|
]
|
53
56
|
|
54
57
|
if TYPE_CHECKING:
|
58
|
+
from collections.abc import Callable
|
59
|
+
|
55
60
|
from mxlpy.model import Model
|
56
61
|
from mxlpy.types import Array
|
57
62
|
|
@@ -76,6 +81,7 @@ class ParameterScanWorker(Protocol):
|
|
76
81
|
*,
|
77
82
|
parameters: pd.DataFrame,
|
78
83
|
rel_norm: bool,
|
84
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
79
85
|
) -> SteadyStates:
|
80
86
|
"""Call the worker function."""
|
81
87
|
...
|
@@ -87,6 +93,7 @@ def _parameter_scan_worker(
|
|
87
93
|
*,
|
88
94
|
parameters: pd.DataFrame,
|
89
95
|
rel_norm: bool,
|
96
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
90
97
|
) -> SteadyStates:
|
91
98
|
"""Worker function for parallel steady state scanning across parameter sets.
|
92
99
|
|
@@ -117,6 +124,7 @@ def _parameter_scan_worker(
|
|
117
124
|
y0=y0,
|
118
125
|
parallel=False,
|
119
126
|
rel_norm=rel_norm,
|
127
|
+
integrator=integrator,
|
120
128
|
)
|
121
129
|
|
122
130
|
|
@@ -129,6 +137,7 @@ def steady_state(
|
|
129
137
|
cache: Cache | None = None,
|
130
138
|
rel_norm: bool = False,
|
131
139
|
worker: SteadyStateWorker = _steady_state_worker,
|
140
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
132
141
|
) -> SteadyStates:
|
133
142
|
"""Monte-carlo scan of steady states.
|
134
143
|
|
@@ -156,6 +165,7 @@ def steady_state(
|
|
156
165
|
worker,
|
157
166
|
y0=y0,
|
158
167
|
rel_norm=rel_norm,
|
168
|
+
integrator=integrator,
|
159
169
|
),
|
160
170
|
model=model,
|
161
171
|
),
|
@@ -163,11 +173,9 @@ def steady_state(
|
|
163
173
|
max_workers=max_workers,
|
164
174
|
cache=cache,
|
165
175
|
)
|
166
|
-
concs = {k: v.variables for k, v in res.items()}
|
167
|
-
fluxes = {k: v.fluxes for k, v in res.items()}
|
168
176
|
return SteadyStates(
|
169
|
-
variables=pd.concat(
|
170
|
-
fluxes=pd.concat(fluxes, axis=1).T,
|
177
|
+
variables=pd.concat({k: v.variables for k, v in res.items()}, axis=1).T,
|
178
|
+
fluxes=pd.concat({k: v.fluxes for k, v in res.items()}, axis=1).T,
|
171
179
|
parameters=mc_parameters,
|
172
180
|
)
|
173
181
|
|
@@ -180,6 +188,7 @@ def time_course(
|
|
180
188
|
max_workers: int | None = None,
|
181
189
|
cache: Cache | None = None,
|
182
190
|
worker: TimeCourseWorker = _time_course_worker,
|
191
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
183
192
|
) -> TimeCourseByPars:
|
184
193
|
"""MC time course.
|
185
194
|
|
@@ -207,6 +216,7 @@ def time_course(
|
|
207
216
|
worker,
|
208
217
|
time_points=time_points,
|
209
218
|
y0=y0,
|
219
|
+
integrator=integrator,
|
210
220
|
),
|
211
221
|
model=model,
|
212
222
|
),
|
@@ -214,12 +224,11 @@ def time_course(
|
|
214
224
|
max_workers=max_workers,
|
215
225
|
cache=cache,
|
216
226
|
)
|
217
|
-
|
218
|
-
fluxes = {k: v.fluxes.T for k, v in res.items()}
|
227
|
+
|
219
228
|
return TimeCourseByPars(
|
220
229
|
parameters=mc_parameters,
|
221
|
-
variables=pd.concat(
|
222
|
-
fluxes=pd.concat(fluxes, axis=1).T,
|
230
|
+
variables=pd.concat({k: v.variables.T for k, v in res.items()}, axis=1).T,
|
231
|
+
fluxes=pd.concat({k: v.fluxes.T for k, v in res.items()}, axis=1).T,
|
223
232
|
)
|
224
233
|
|
225
234
|
|
@@ -232,6 +241,7 @@ def time_course_over_protocol(
|
|
232
241
|
max_workers: int | None = None,
|
233
242
|
cache: Cache | None = None,
|
234
243
|
worker: ProtocolWorker = _protocol_worker,
|
244
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
235
245
|
) -> ProtocolByPars:
|
236
246
|
"""MC time course.
|
237
247
|
|
@@ -260,6 +270,7 @@ def time_course_over_protocol(
|
|
260
270
|
worker,
|
261
271
|
protocol=protocol,
|
262
272
|
y0=y0,
|
273
|
+
integrator=integrator,
|
263
274
|
time_points_per_step=time_points_per_step,
|
264
275
|
),
|
265
276
|
model=model,
|
@@ -288,6 +299,7 @@ def scan_steady_state(
|
|
288
299
|
cache: Cache | None = None,
|
289
300
|
rel_norm: bool = False,
|
290
301
|
worker: ParameterScanWorker = _parameter_scan_worker,
|
302
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
291
303
|
) -> McSteadyStates:
|
292
304
|
"""Parameter scan of mc distributed steady states.
|
293
305
|
|
@@ -317,6 +329,7 @@ def scan_steady_state(
|
|
317
329
|
cache: Cache object for storing results
|
318
330
|
rel_norm: Whether to use relative normalization in the steady state calculations
|
319
331
|
worker: Worker function for parallel steady state scanning across parameter sets
|
332
|
+
integrator: Function producing an integrator for the simulation.
|
320
333
|
|
321
334
|
Returns:
|
322
335
|
McSteadyStates: Object containing the steady state solutions for the given parameter
|
@@ -330,6 +343,7 @@ def scan_steady_state(
|
|
330
343
|
parameters=parameters,
|
331
344
|
y0=y0,
|
332
345
|
rel_norm=rel_norm,
|
346
|
+
integrator=integrator,
|
333
347
|
),
|
334
348
|
model=model,
|
335
349
|
),
|
@@ -487,6 +501,7 @@ def response_coefficients(
|
|
487
501
|
disable_tqdm: bool = False,
|
488
502
|
max_workers: int | None = None,
|
489
503
|
rel_norm: bool = False,
|
504
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
490
505
|
) -> ResponseCoefficientsByPars:
|
491
506
|
"""Calculate response coefficients using Monte Carlo analysis.
|
492
507
|
|
@@ -513,6 +528,7 @@ def response_coefficients(
|
|
513
528
|
disable_tqdm: Whether to disable the tqdm progress bar
|
514
529
|
max_workers: Maximum number of workers for parallel processing
|
515
530
|
rel_norm: Whether to use relative normalization in the steady state calculations
|
531
|
+
integrator: Function producing an integrator for the simulation.
|
516
532
|
|
517
533
|
Returns:
|
518
534
|
ResponseCoefficientsByPars: Object containing the response coefficients for the given parameters
|
@@ -530,6 +546,7 @@ def response_coefficients(
|
|
530
546
|
rel_norm=rel_norm,
|
531
547
|
disable_tqdm=disable_tqdm,
|
532
548
|
parallel=False,
|
549
|
+
integrator=integrator,
|
533
550
|
),
|
534
551
|
model=model,
|
535
552
|
),
|
@@ -538,11 +555,10 @@ def response_coefficients(
|
|
538
555
|
max_workers=max_workers,
|
539
556
|
)
|
540
557
|
|
541
|
-
crcs = {k: v.variables for k, v in res.items()}
|
542
|
-
frcs = {k: v.fluxes for k, v in res.items()}
|
543
|
-
|
544
558
|
return ResponseCoefficientsByPars(
|
545
|
-
variables=cast(
|
546
|
-
|
559
|
+
variables=cast(
|
560
|
+
pd.DataFrame, pd.concat({k: v.variables for k, v in res.items()})
|
561
|
+
),
|
562
|
+
fluxes=cast(pd.DataFrame, pd.concat({k: v.fluxes for k, v in res.items()})),
|
547
563
|
parameters=mc_parameters,
|
548
564
|
)
|
mxlpy/mca.py
CHANGED
@@ -22,9 +22,10 @@ from typing import TYPE_CHECKING
|
|
22
22
|
|
23
23
|
import pandas as pd
|
24
24
|
|
25
|
+
from mxlpy.integrators import DefaultIntegrator
|
25
26
|
from mxlpy.parallel import parallelise
|
26
27
|
from mxlpy.scan import _steady_state_worker
|
27
|
-
from mxlpy.types import ResponseCoefficients
|
28
|
+
from mxlpy.types import ArrayLike, ResponseCoefficients
|
28
29
|
|
29
30
|
__all__ = [
|
30
31
|
"parameter_elasticities",
|
@@ -33,6 +34,9 @@ __all__ = [
|
|
33
34
|
]
|
34
35
|
|
35
36
|
if TYPE_CHECKING:
|
37
|
+
from collections.abc import Callable
|
38
|
+
|
39
|
+
from mxlpy import IntegratorProtocol
|
36
40
|
from mxlpy.model import Model
|
37
41
|
|
38
42
|
|
@@ -165,6 +169,7 @@ def _response_coefficient_worker(
|
|
165
169
|
normalized: bool,
|
166
170
|
rel_norm: bool,
|
167
171
|
displacement: float = 1e-4,
|
172
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
168
173
|
) -> tuple[pd.Series, pd.Series]:
|
169
174
|
"""Calculate response coefficients for a single parameter.
|
170
175
|
|
@@ -182,6 +187,7 @@ def _response_coefficient_worker(
|
|
182
187
|
normalized: Whether to normalize the coefficients
|
183
188
|
rel_norm: Whether to use relative normalization
|
184
189
|
displacement: Relative perturbation size (default: 1e-4)
|
190
|
+
integrator: Integrator function to use for steady state calculation
|
185
191
|
|
186
192
|
Returns:
|
187
193
|
tuple[pd.Series, pd.Series]: Tuple containing:
|
@@ -196,6 +202,7 @@ def _response_coefficient_worker(
|
|
196
202
|
model,
|
197
203
|
y0=y0,
|
198
204
|
rel_norm=rel_norm,
|
205
|
+
integrator=integrator,
|
199
206
|
)
|
200
207
|
|
201
208
|
model.update_parameters({parameter: old * (1 - displacement)})
|
@@ -203,6 +210,7 @@ def _response_coefficient_worker(
|
|
203
210
|
model,
|
204
211
|
y0=y0,
|
205
212
|
rel_norm=rel_norm,
|
213
|
+
integrator=integrator,
|
206
214
|
)
|
207
215
|
|
208
216
|
conc_resp = (upper.variables - lower.variables) / (2 * displacement * old)
|
@@ -214,6 +222,7 @@ def _response_coefficient_worker(
|
|
214
222
|
model,
|
215
223
|
y0=y0,
|
216
224
|
rel_norm=rel_norm,
|
225
|
+
integrator=integrator,
|
217
226
|
)
|
218
227
|
conc_resp *= old / norm.variables
|
219
228
|
flux_resp *= old / norm.fluxes
|
@@ -231,6 +240,7 @@ def response_coefficients(
|
|
231
240
|
parallel: bool = True,
|
232
241
|
max_workers: int | None = None,
|
233
242
|
rel_norm: bool = False,
|
243
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
234
244
|
) -> ResponseCoefficients:
|
235
245
|
"""Calculate response coefficients.
|
236
246
|
|
@@ -250,6 +260,7 @@ def response_coefficients(
|
|
250
260
|
parallel: Whether to parallelize the computation
|
251
261
|
max_workers: Maximum number of workers
|
252
262
|
rel_norm: Whether to use relative normalization
|
263
|
+
integrator: Integrator function to use for steady state calculation
|
253
264
|
|
254
265
|
Returns:
|
255
266
|
ResponseCoefficients object containing:
|
@@ -267,6 +278,7 @@ def response_coefficients(
|
|
267
278
|
normalized=normalized,
|
268
279
|
displacement=displacement,
|
269
280
|
rel_norm=rel_norm,
|
281
|
+
integrator=integrator,
|
270
282
|
),
|
271
283
|
inputs=list(zip(parameters, parameters, strict=True)),
|
272
284
|
cache=None,
|
mxlpy/scan.py
CHANGED
@@ -15,6 +15,8 @@ Functions:
|
|
15
15
|
|
16
16
|
from __future__ import annotations
|
17
17
|
|
18
|
+
from mxlpy.integrators import DefaultIntegrator
|
19
|
+
|
18
20
|
__all__ = [
|
19
21
|
"ProtocolWorker",
|
20
22
|
"SteadyStateWorker",
|
@@ -35,7 +37,13 @@ import pandas as pd
|
|
35
37
|
|
36
38
|
from mxlpy.parallel import Cache, parallelise
|
37
39
|
from mxlpy.simulator import Result, Simulator
|
38
|
-
from mxlpy.types import
|
40
|
+
from mxlpy.types import (
|
41
|
+
ArrayLike,
|
42
|
+
IntegratorProtocol,
|
43
|
+
ProtocolByPars,
|
44
|
+
SteadyStates,
|
45
|
+
TimeCourseByPars,
|
46
|
+
)
|
39
47
|
|
40
48
|
if TYPE_CHECKING:
|
41
49
|
from collections.abc import Callable
|
@@ -278,6 +286,7 @@ class SteadyStateWorker(Protocol):
|
|
278
286
|
y0: dict[str, float] | None,
|
279
287
|
*,
|
280
288
|
rel_norm: bool,
|
289
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
281
290
|
) -> TimePoint:
|
282
291
|
"""Call the worker function."""
|
283
292
|
...
|
@@ -291,6 +300,8 @@ class TimeCourseWorker(Protocol):
|
|
291
300
|
model: Model,
|
292
301
|
y0: dict[str, float] | None,
|
293
302
|
time_points: Array,
|
303
|
+
*,
|
304
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
294
305
|
) -> TimeCourse:
|
295
306
|
"""Call the worker function."""
|
296
307
|
...
|
@@ -304,6 +315,8 @@ class ProtocolWorker(Protocol):
|
|
304
315
|
model: Model,
|
305
316
|
y0: dict[str, float] | None,
|
306
317
|
protocol: pd.DataFrame,
|
318
|
+
*,
|
319
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
307
320
|
time_points_per_step: int = 10,
|
308
321
|
) -> TimeCourse:
|
309
322
|
"""Call the worker function."""
|
@@ -315,6 +328,7 @@ def _steady_state_worker(
|
|
315
328
|
y0: dict[str, float] | None,
|
316
329
|
*,
|
317
330
|
rel_norm: bool,
|
331
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
318
332
|
) -> TimePoint:
|
319
333
|
"""Simulate the model to steady state and return concentrations and fluxes.
|
320
334
|
|
@@ -322,6 +336,7 @@ def _steady_state_worker(
|
|
322
336
|
model: Model instance to simulate.
|
323
337
|
y0: Initial conditions as a dictionary {species: value}.
|
324
338
|
rel_norm: Whether to use relative normalization.
|
339
|
+
integrator: Function producing an integrator for the simulation.
|
325
340
|
|
326
341
|
Returns:
|
327
342
|
TimePoint: Object containing steady-state concentrations and fluxes.
|
@@ -329,7 +344,7 @@ def _steady_state_worker(
|
|
329
344
|
"""
|
330
345
|
try:
|
331
346
|
res = (
|
332
|
-
Simulator(model, y0=y0)
|
347
|
+
Simulator(model, y0=y0, integrator=integrator)
|
333
348
|
.simulate_to_steady_state(rel_norm=rel_norm)
|
334
349
|
.get_result()
|
335
350
|
)
|
@@ -342,6 +357,7 @@ def _time_course_worker(
|
|
342
357
|
model: Model,
|
343
358
|
y0: dict[str, float] | None,
|
344
359
|
time_points: Array,
|
360
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol],
|
345
361
|
) -> TimeCourse:
|
346
362
|
"""Simulate the model to steady state and return concentrations and fluxes.
|
347
363
|
|
@@ -349,6 +365,7 @@ def _time_course_worker(
|
|
349
365
|
model: Model instance to simulate.
|
350
366
|
y0: Initial conditions as a dictionary {species: value}.
|
351
367
|
time_points: Array of time points for the simulation.
|
368
|
+
integrator: Integrator function to use for steady state calculation
|
352
369
|
|
353
370
|
Returns:
|
354
371
|
TimePoint: Object containing steady-state concentrations and fluxes.
|
@@ -356,7 +373,7 @@ def _time_course_worker(
|
|
356
373
|
"""
|
357
374
|
try:
|
358
375
|
res = (
|
359
|
-
Simulator(model, y0=y0)
|
376
|
+
Simulator(model, y0=y0, integrator=integrator)
|
360
377
|
.simulate_time_course(time_points=time_points)
|
361
378
|
.get_result()
|
362
379
|
)
|
@@ -373,6 +390,8 @@ def _protocol_worker(
|
|
373
390
|
model: Model,
|
374
391
|
y0: dict[str, float] | None,
|
375
392
|
protocol: pd.DataFrame,
|
393
|
+
*,
|
394
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
376
395
|
time_points_per_step: int = 10,
|
377
396
|
) -> TimeCourse:
|
378
397
|
"""Simulate the model over a protocol and return concentrations and fluxes.
|
@@ -381,7 +400,8 @@ def _protocol_worker(
|
|
381
400
|
model: Model instance to simulate.
|
382
401
|
y0: Initial conditions as a dictionary {species: value}.
|
383
402
|
protocol: DataFrame containing the protocol steps.
|
384
|
-
|
403
|
+
integrator: Integrator function to use for steady state calculation
|
404
|
+
time_points_per_step: Number of time points per protocol step.
|
385
405
|
|
386
406
|
Returns:
|
387
407
|
TimeCourse: Object containing protocol series concentrations and fluxes.
|
@@ -389,7 +409,7 @@ def _protocol_worker(
|
|
389
409
|
"""
|
390
410
|
try:
|
391
411
|
res = (
|
392
|
-
Simulator(model, y0=y0)
|
412
|
+
Simulator(model, y0=y0, integrator=integrator)
|
393
413
|
.simulate_over_protocol(
|
394
414
|
protocol=protocol,
|
395
415
|
time_points_per_step=time_points_per_step,
|
@@ -420,6 +440,7 @@ def steady_state(
|
|
420
440
|
rel_norm: bool = False,
|
421
441
|
cache: Cache | None = None,
|
422
442
|
worker: SteadyStateWorker = _steady_state_worker,
|
443
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
423
444
|
) -> SteadyStates:
|
424
445
|
"""Get steady-state results over supplied parameters.
|
425
446
|
|
@@ -431,6 +452,7 @@ def steady_state(
|
|
431
452
|
rel_norm: Whether to use relative normalization (default: False).
|
432
453
|
cache: Optional cache to store and retrieve results.
|
433
454
|
worker: Worker function to use for the simulation.
|
455
|
+
integrator: Integrator function to use for steady state calculation
|
434
456
|
|
435
457
|
Returns:
|
436
458
|
SteadyStates: Steady-state results for each parameter set.
|
@@ -464,6 +486,7 @@ def steady_state(
|
|
464
486
|
worker,
|
465
487
|
y0=y0,
|
466
488
|
rel_norm=rel_norm,
|
489
|
+
integrator=integrator,
|
467
490
|
),
|
468
491
|
model=model,
|
469
492
|
),
|
@@ -492,6 +515,7 @@ def time_course(
|
|
492
515
|
parallel: bool = True,
|
493
516
|
cache: Cache | None = None,
|
494
517
|
worker: TimeCourseWorker = _time_course_worker,
|
518
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
495
519
|
) -> TimeCourseByPars:
|
496
520
|
"""Get time course for each supplied parameter.
|
497
521
|
|
@@ -536,6 +560,7 @@ def time_course(
|
|
536
560
|
cache: Optional cache to store and retrieve results.
|
537
561
|
parallel: Whether to execute in parallel (default: True).
|
538
562
|
worker: Worker function to use for the simulation.
|
563
|
+
integrator: Integrator function to use for steady state calculation
|
539
564
|
|
540
565
|
Returns:
|
541
566
|
TimeCourseByPars: Time series results for each parameter set.
|
@@ -549,6 +574,7 @@ def time_course(
|
|
549
574
|
worker,
|
550
575
|
time_points=time_points,
|
551
576
|
y0=y0,
|
577
|
+
integrator=integrator,
|
552
578
|
),
|
553
579
|
model=model,
|
554
580
|
),
|
@@ -575,6 +601,7 @@ def time_course_over_protocol(
|
|
575
601
|
parallel: bool = True,
|
576
602
|
cache: Cache | None = None,
|
577
603
|
worker: ProtocolWorker = _protocol_worker,
|
604
|
+
integrator: Callable[[Callable, ArrayLike], IntegratorProtocol] = DefaultIntegrator,
|
578
605
|
) -> ProtocolByPars:
|
579
606
|
"""Get protocol series for each supplied parameter.
|
580
607
|
|
@@ -599,6 +626,7 @@ def time_course_over_protocol(
|
|
599
626
|
parallel: Whether to execute in parallel (default: True).
|
600
627
|
cache: Optional cache to store and retrieve results.
|
601
628
|
worker: Worker function to use for the simulation.
|
629
|
+
integrator: Integrator function to use for steady state calculation
|
602
630
|
|
603
631
|
Returns:
|
604
632
|
TimeCourseByPars: Protocol series results for each parameter set.
|
@@ -612,6 +640,7 @@ def time_course_over_protocol(
|
|
612
640
|
protocol=protocol,
|
613
641
|
y0=y0,
|
614
642
|
time_points_per_step=time_points_per_step,
|
643
|
+
integrator=integrator,
|
615
644
|
),
|
616
645
|
model=model,
|
617
646
|
),
|
@@ -4,8 +4,8 @@ mxlpy/fit.py,sha256=M8F5s9RUoUPr2s-pCLFZD_ebP2uGvajNCn7XYh1w7Tc,8078
|
|
4
4
|
mxlpy/fns.py,sha256=ct_RFj9koW8vXHyr27GnbZUHUS_zfs4rDysybuFiOaU,4599
|
5
5
|
mxlpy/label_map.py,sha256=urv-QTb0MUEKjwWvKtJSB8H2kvhLn1EKfRIH7awQQ8Y,17769
|
6
6
|
mxlpy/linear_label_map.py,sha256=2lgERcUVDLXruRI08HBYJo_wK654y46voLUeBTzBy3k,10312
|
7
|
-
mxlpy/mc.py,sha256=
|
8
|
-
mxlpy/mca.py,sha256=
|
7
|
+
mxlpy/mc.py,sha256=GIuJJ-9QRqGsd2xl1LmjmMc-bOdihVShbFmXvu4o5p4,17305
|
8
|
+
mxlpy/mca.py,sha256=MjhH0CcHmXGTR4PCHTTeCbZWGBUa5TyXWtWzcg7M4Vs,9453
|
9
9
|
mxlpy/model.py,sha256=-BmS4bGCq_fMUnRLZG5uwl86ip_SiaWxsbgLPeV0nHQ,57656
|
10
10
|
mxlpy/npe.py,sha256=oiRLA43-qf-AcS2KpQfJIOt7-Ev9Aj5sF6TMq9bJn84,8747
|
11
11
|
mxlpy/parallel.py,sha256=kX4Td5YoovDwZp6kX_3cfO6QtHSS9ieJ0bMZiKs3Xv8,5002
|
@@ -13,7 +13,7 @@ mxlpy/parameterise.py,sha256=2jMhhO-bHTFP_0kXercJekeATAZYBg5FrK1MQ_mWGpk,654
|
|
13
13
|
mxlpy/paths.py,sha256=TK2wO4N9lG-UV1JGfeB64q48JVDbwqIUj63rl55MKuQ,1022
|
14
14
|
mxlpy/plot.py,sha256=1sI18HAQXeBNo_H6ctS9pwLdmp3MSkGgaGQK7IrTUBc,23498
|
15
15
|
mxlpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
|
-
mxlpy/scan.py,sha256=
|
16
|
+
mxlpy/scan.py,sha256=3k4084d4eg-3Ok24cL8KWPF7P1L6fbEtiaOM9VC5Eko,19210
|
17
17
|
mxlpy/simulator.py,sha256=T9t2jZ6U5NyK1ICF1UkST8M8v4EPV_H98kzZ4TvQK-w,20115
|
18
18
|
mxlpy/types.py,sha256=ksdn76Sdw0XhQEpQepcETvuGqcJolfrmbIRBT0R_2Bg,13612
|
19
19
|
mxlpy/experimental/__init__.py,sha256=kZTE-92OErpHzNRqmgSQYH4CGXrogGJ5EL35XGZQ81M,206
|
@@ -42,7 +42,7 @@ mxlpy/surrogates/_torch.py,sha256=E_1eDUlPSVFwROkdMDCqYwwHE-61pjNMJWotnhjzge0,58
|
|
42
42
|
mxlpy/symbolic/__init__.py,sha256=3hQjCMw8-6iOxeUdfnCg8449fF_BRF2u6lCM1GPpkRY,222
|
43
43
|
mxlpy/symbolic/strikepy.py,sha256=r6nRtckV1nxKq3i1bYYWZOkzwZ5XeKQuZM5ck44vUo0,20010
|
44
44
|
mxlpy/symbolic/symbolic_model.py,sha256=YL9noEeP3_0DoKXwMPELtfmPuP6mgNcLIJgDRCkyB7A,2434
|
45
|
-
mxlpy-0.
|
46
|
-
mxlpy-0.
|
47
|
-
mxlpy-0.
|
48
|
-
mxlpy-0.
|
45
|
+
mxlpy-0.9.0.dist-info/METADATA,sha256=LThtovqTN7iDo4vJSmmuhP6rZ9no5IlOrRkMjN4vJTU,4245
|
46
|
+
mxlpy-0.9.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
47
|
+
mxlpy-0.9.0.dist-info/licenses/LICENSE,sha256=bEzjyjy1stQhfRDVaVHa3xV1x-V8emwdlbMvYO8Zo84,35073
|
48
|
+
mxlpy-0.9.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|