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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
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()