def simulate_with_bioscrape_via_sbml(self, timepoints, filename=None, initial_condition_dict=None, return_dataframe=True, stochastic=False, safe=False, return_model=False, check_validity=True, **kwargs): """Simulate CRN model with bioscrape via writing a SBML file temporarily. [Bioscrape on GitHub](https://github.com/biocircuits/bioscrape). Returns the data for all species as Pandas dataframe. """ result = None m = None try: from bioscrape.simulator import py_simulate_model from bioscrape.types import Model if filename is None: self.write_sbml_file(file_name="temp_sbml_file.xml", stochastic_model=stochastic, for_bioscrape=True, check_validity=check_validity) file_name = "temp_sbml_file.xml" elif isinstance(filename, str): file_name = filename else: raise ValueError( f"filename must be None or a string. Recievied: {filename}" ) if 'sbml_warnings' in kwargs: sbml_warnings = kwargs.get('sbml_warnings') else: sbml_warnings = False m = Model(sbml_filename=file_name, sbml_warnings=sbml_warnings) # m.write_bioscrape_xml('temp_bs'+ file_name + '.xml') # Uncomment if you want a bioscrape XML written as well. if initial_condition_dict is not None: processed = process_initial_concentration_dict( initial_condition_dict) m.set_species(processed) result = py_simulate_model(timepoints, Model=m, stochastic=stochastic, safe=safe, return_dataframe=return_dataframe) except ModuleNotFoundError: warnings.warn('bioscrape was not found, please install bioscrape') if return_model: return result, m else: return result
def simulate_with_bioscrape(self, timepoints, initial_condition_dict={}, stochastic=False, return_dataframe=True, safe=False, via_sbml=True): from bioscrape.simulator import py_simulate_model m = self.create_bioscrape_model() m.set_species(initial_condition_dict) if not stochastic and safe: safe = False result = py_simulate_model(timepoints, Model=m, stochastic=stochastic, return_dataframe=return_dataframe, safe=safe) return result
def simulate_with_bioscrape(self, timepoints, initial_condition_dict = {}, stochastic = False, return_dataframe = True, safe = False, **kwargs): ''' Simulate CRN model with bioscrape (https://github.com/biocircuits/bioscrape). Returns the data for all species as Pandas dataframe. ''' from bioscrape.simulator import py_simulate_model m = self.create_bioscrape_model() m.set_species(initial_condition_dict) if not stochastic and safe: safe = False result = py_simulate_model(timepoints, Model = m, stochastic = stochastic, return_dataframe = return_dataframe, safe = safe) return result
CRN = CRNs[i] CRN.write_sbml_file(file_name=fname) print("Saved") from bioscrape.types import Model from bioscrape.simulator import py_simulate_model from bioscrape.sbmlutil import * M = Model(sbml_filename=fname) A_list = [0, 1, 2, 5, 10] for ind in range(len(A_list)): x0[repr(A)] = A_list[ind] M.set_species(x0) R = py_simulate_model(timepoints, Model=M) plt.plot(timepoints, R["protein_X"], label="A=" + str(A_list[ind]), color='blue', alpha=(ind + 1) / len(A_list)) txt = "" for rxn in CRN.reactions: txt += repr(rxn) + "\n" plt.title(txt[:-1], fontsize=8) plt.legend() plt.show() #CRN.simulate_with_bioscrape(timepoints, initial_condition_dict = x0)
from bioscrape.types import import_sbml, read_model_from_sbml, Model from bioscrape.simulator import py_simulate_model import numpy as np import matplotlib.pyplot as plt # Import SBML M_sbml = import_sbml('models/sbml_test.xml') # Load SBML using the old method that works with strings - # M_sbml = read_model_from_sbml('models/sbml_test.xml') # Write it to bioscrape M_sbml.write_bioscrape_xml('models/sbml_test_bioscrape.xml') timepoints = np.linspace(0, 100, 1000) result = py_simulate_model(timepoints, Model=M_sbml) plt.figure() for s in M_sbml.get_species_list(): plt.plot(timepoints, result[s], label=s) plt.legend() plt.show()