-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
I am trying to use PySCeS for a very simple chemical reaction, the goal is to define a model, perform a parameter scan and finally run simulations with the fitted parameters.
I followed the documentation for a 2D parameter scan, but unfortunately, I ran into a problem. There is probably a problem with my code, but at the moment I'm not exactly sure what the problem is in detail
My model is:
Modelname: simulatio_metaraminol
Description: Kinetic model to describe the synthesis of metaraminol from 3-OH-PAC
R1:
x0 = s0
k1*x0 - k2*s0
# parameters
k1 = 0.2
k2 = 0.1
# init values
x0 = 35.0
s0 = 0
The code for the parameter fit is:
import pysces
model = pysces.model('simulatio_metaraminol')
time_values = [0,1,2,3,4,5,6,7,8,23.6,24]
concentrations_s0 = [0, 6.27, 8.47, 10.77, 11.58,10.97, 11.75, 12.09, 12.10,14.55, 14.09]
concentrations_x0 = [35.16, 27.30,26.12, 28.45, 29.27, 25.90,24.29, 25.24,24.86,24.51,24.55]
scan = pysces.Scanner(model)
output = ['k1', 'k2']
p1 = ["x0", 35, 24.55, concentrations_x0]
p2 = ["s0", 0,14.09,concentrations_s0]
model.Scan2D(p1,p2, output, log=False)
At the moment I get as an error message:
Details
Info: No reagents have been fixed
Calculating L matrix . . . . . . . done.
Calculating K matrix . . . . . . . no flux conservation
done.
MaxMode 0
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_32904\2699428414.py in <module>
14 p2 = ["s0", 0,14.09,concentrations_s0]
15
---> 16 model.Scan2D(p1,p2, output, log=False)
~\anaconda3\envs\pysces2\lib\site-packages\pysces\PyscesModel.py in Scan2D(self, p1, p2, output, log)
9213 sc1.addScanParameter(*p2)
9214 sc1.addUserOutput(output)
-> 9215 sc1.Run()
9216
9217 self.__scan2d_pars__ = [p1[0], p2[0], output]
~\anaconda3\envs\pysces2\lib\site-packages\pysces\PyscesScan.py in Run(self, ReRun)
273 for gen in self.GenOrder:
274 if self.GenDict[gen][4] == False: # don't increase Tsteps for follower
--> 275 Tsteps *= self.GenDict[gen][2]
276 print(next(self.scanT.RUN))
277 analysis_counter = 0
TypeError: can't multiply sequence by non-int of type 'list'
I'm unfortunately also a little bit confused with the Syntax of the 2D parameter scan:
p1 is a list of [model parameter 1, start value, end value, points]
p2 is a list of [model parameter 2, start value, end value, points]
output the steady-state variable e.g. 'J_R1' or 'A_ss'
log if True scan using log ranges for both axes
- Are the start and end values the time or the measured values?
- Are the points only the measured values or do they have to be submitted as for example data frame together with the time?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels