Пример #1
0
    def test_save_to_file(self):
        """ Tests if one can save a set of experiments to a file. """
        times = [1, 2, 3, 4, 5]
        measure1 = 'ax + b'
        measure2 = 'e = mc ** 2'
        values1 = [123, 44, 3.2, 4, 30]
        values2 = [321, 44, 2.3, 4, 3]
        experiment1 = Experiment(times, values1, measure1)
        experiment2 = Experiment(times, values2, measure2)

        experiment_set = ExperimentSet()
        experiment_set.add(experiment1)
        experiment_set.add(experiment2)

        out_file = 'tmp_exp_set.xml'
        experiment_set.save_to_file(out_file)

        f = open(out_file, 'r')
        data = f.read()
        f.close()
        os.remove(out_file)
        measures = [measure1, measure2]
        values = values1 + values2
        assert all([str(t) in data for t in times])
        assert all([m in data for m in measures])
        assert all([str(v) in data for v in values])
Пример #2
0
 def test_write_then_read(self):
     """ Tests if one can save experiments to a file and then
         read. """
     exp1 = Experiment([1, 2, 3, 4], [.1, .2, .3, .4], 'x1')
     exp2 = Experiment([1, 3, 9, 27], [.1, .2, .3, .4], 'x2')
     exp_set = ExperimentSet()
     exp_set.add(exp1)
     exp_set.add(exp2)
     out_file = 'tmp_exp_set_file.xml'
     exp_set.save_to_file(out_file)
     read_exp_set = ExperimentSet(out_file)
     self.assertEqual(read_exp_set.get_size(), 2)
     exp0 = read_exp_set[0]
     exp1 = read_exp_set[1]
     self.assertListEqual(list(exp0.times), [1, 2, 3, 4])
     self.assertListEqual(list(exp0.values), [.1, .2, .3, .4])
     self.assertEqual(exp0.measure_expression, 'x1')
     self.assertListEqual(list(exp1.times), [1, 3, 9, 27])
     self.assertListEqual(list(exp1.values), [.1, .2, .3, .4])
     self.assertEqual(exp1.measure_expression, 'x2')
     os.remove(out_file)
Пример #3
0
sbml = SBML ()
sbml.load_file ('final_model.sbml')
odes = sbml_to_odes (sbml)
time = [30, 60, 180, 300, 900, 1800]


# Simple experiment: run final_model simulations adding a Gaussian noise
values = odes.evaluate_exp_on ('MAPK_PP + MAPK_P', time)
experiment_set = ExperimentSet ()
for i in range (3):
    noised_values = list (values)
    add_noise (noised_values)
    experiment = Experiment (time, noised_values, 
            'MAPK_PP + MAPK_P')
    experiment_set.add (experiment)
experiment_set.save_to_file ('gauss_noise.data')
with open ('gaus_noise_abcsysbio.data', 'w') as f:
    f.write (experiment_set.get_as_abcsysbio_syntax ())
    f.close ()


# More complex experiment: run final_model with perturbations on 
# catalytic constants
perturbation_exp = ExperimentSet ()

# First perturbation experiments
theta = odes.get_all_parameters ()
changed_param = ''
changed_param_value = 0
for p in theta:
    original_name = sbml.get_original_param_name (p)
from marginal_likelihood.SBMLtoODES import sbml_to_odes
from experiment.ExperimentSet import ExperimentSet
from experiment.Experiment import Experiment
import numpy as np


def add_noise(values):
    for i in range(len(values)):
        eps = np.random.normal(0, .01)
        if values[i] + eps > 0:
            values[i] += eps


sbml = SBML()
sbml.load_file('model1.xml')
odes = sbml_to_odes(sbml)
time = [0, 2, 5, 10, 20, 40, 60, 100]
values = odes.evaluate_on(time)

experiment_set = ExperimentSet()
for i in range(3):
    noised_values = {}
    for x in values:
        noised_values[x] = list(values[x])

    add_noise(noised_values["Rpp"])
    experiment = Experiment(time[1:], noised_values["Rpp"][1:], "Rpp")
    experiment_set.add(experiment)

experiment_set.save_to_file('experiment.data')