def run_as_libsbmlsim_time_course(self, model, res): if res is None: res = result.TimeSeries() steps = self.get_number_of_points() start = self.get_output_start_time() end = self.get_output_end_time() step = (end - start) / steps mod = model.get_sbml_doc() # TODO: acquire KiSAO description of the algorithm r = libsbmlsim.simulateSBMLFromString( mod.toSBML(), end, step, 1, 0, libsbmlsim.MTHD_RUNGE_KUTTA, 0) res.import_from_libsbmlsim(r, start) return res
# Simulation conditions model_file = "FEBS_antimony.xml" start = 0.0 end = 20.0 steps = 100.0 step = (end - start) / steps # Open SBML file reader = libsbml.SBMLReader() doc = reader.readSBMLFromFile(model_file) # Simulate model with stiff solver r_stiff = libsbmlsim.simulateSBMLFromString( doc.toSBML(), end, step, 1, 0, libsbmlsim.MTHD_RUNGE_KUTTA, 0) stiff_result = result.TimeSeries() stiff_result.import_from_libsbmlsim(r_stiff, 0.0) # Simulate model with non-stiff solver r_non_stiff = libsbmlsim.simulateSBMLFromString( doc.toSBML(), end, step, 1, 0, libsbmlsim.MTHD_ADAMS_MOULTON_2, 0)