コード例 #1
0
ファイル: diffusion_field.py プロジェクト: U8NWXD/vivarium
def test_diffusion_field(config=get_gaussian_config(), time=10):
    diffusion = DiffusionField(config)
    settings = {
        'return_raw_data': True,
        'total_time': time,
        'timestep': 1}
    return simulate_process(diffusion, settings)
コード例 #2
0
def run_template_process():
    '''Run a simulation of the process.

    Returns:
        The simulation output.
    '''

    # initialize the process by passing in parameters
    parameters = {}
    template_process = Template(parameters)

    # declare the initial state, mirroring the ports structure
    initial_state = {
        'internal': {
            'A': 0.0
        },
        'external': {
            'A': 1.0
        },
    }

    # run the simulation
    sim_settings = {'total_time': 10, 'initial_state': initial_state}
    output = simulate_process(template_process, sim_settings)

    return output
コード例 #3
0
def test_output_port() -> None:
    a_default = 1
    b_default = 2

    class InputOutput(Process):
        def ports_schema(self) -> Schema:
            return {
                'input': {
                    'A': {
                        '_default': a_default,
                        '_emit': True,
                    }
                },
                'output': {
                    '_output': True,
                    'B': {
                        '_default': b_default,
                        '_emit': True,
                    }
                }
            }

        def next_update(self, timestep: Union[float, int],
                        states: State) -> Update:
            assert not states['output'], 'outputs should be masked'
            return {}

    total_time = 10
    data = simulate_process(InputOutput(), {'total_time': total_time})
    assert data['input']['A'] == [a_default for _ in range(total_time + 1)]
    assert data['output']['B'] == [b_default for _ in range(total_time + 1)]
コード例 #4
0
def test_toy_metabolism(total_time=15):
    regulation_logic = {
        'R4': 'if (external, O2) > 0.1 and not (external, F) < 0.1'
    }
    toy_config = get_toy_configuration()
    toy_config['regulation'] = regulation_logic
    toy_config['target_added_mass'] = None
    toy_metabolism = COBRA_FBA(toy_config)

    # simulate toy model
    interval = int(total_time / 3)
    timeline = [(interval, {
        ('external', 'A'): 1
    }), (2 * interval, {
        ('external', 'F'): 0
    }), (total_time, {})]

    settings = {
        'initial_state': toy_metabolism.initial_state(),
        # 'total_time': total_time,
        'timeline': {
            'timeline': timeline,
            'time_step': 10
        }
    }
    return simulate_process(toy_metabolism, settings)
コード例 #5
0
def run_injector():
    parameters = {
        'substrate_rate_map': {
            'toy': 1.0
        },
    }
    injector = Injector(parameters)
    settings = {
        'total_time': 10,
    }
    timeseries = simulate_process(injector, settings)
    return timeseries
コード例 #6
0
def test_diffusion_field(
        config={},
        initial_state={},
        time=10,
):
    diffusion = DiffusionField(config)
    settings = {
        'return_raw_data': True,
        'initial_state': initial_state,
        'total_time': time,
        'timestep': 1}
    return simulate_process(diffusion, settings)
コード例 #7
0
def run_process():

    parameters = {
        'nodes': ['D', 'I'],
        'edges': [(('D', 0), ('I', 0))],
        'conditional_probabilities': {}
    }
    process = DynamicBayesianNetwork(parameters)

    initial_state = {}
    sim_settings = {'total_time': 10, 'initial_state': initial_state}
    output = simulate_process(process, sim_settings)

    return output
コード例 #8
0
def run_bioscrape_process():
    #Create a bioscrape process
    initial_parameters = {'sbml_file': 'Notebooks/model1.xml'}
    bioscrape_process = Bioscrape(initial_parameters)

    # run the simulation
    sim_settings = {
        'total_time': 10,
        'initial_state': bioscrape_process.initial_state()
    }
    output = simulate_process(bioscrape_process, sim_settings)

    # Return the data from the simulation.
    return output
コード例 #9
0
def run_process():

    parameters = {
        'network': [('D', 'G'), ('I', 'G'), ('G', 'L'), ('I', 'S')],
        'conditional_probabilities': {
            'D': [[0.6], [0.4]],
            'I': [[0.7], [0.3]],
            'G': [[0.3, 0.05, 0.9, 0.5], [0.4, 0.25, 0.08, 0.3],
                  [0.3, 0.7, 0.02, 0.2]],
            'L': [[0.1, 0.4, 0.99], [0.9, 0.6, 0.01]],
            'S': [[0.95, 0.2], [0.05, 0.8]],
        }
    }
    process = PGM(parameters)

    initial_state = {}
    sim_settings = {'total_time': 10, 'initial_state': initial_state}
    output = simulate_process(process, sim_settings)

    return output
コード例 #10
0
def test_rna_degradation(end_time=10):
    rna_degradation = RnaDegradation(TOY_CONFIG)

    # initial state
    proteins = {protein: 10 for protein in rna_degradation.protein_order}
    molecules = {molecule: 10 for molecule in rna_degradation.molecule_order}
    transcripts = {
        transcript: 10
        for transcript in rna_degradation.transcript_order
    }

    settings = {
        'total_time': end_time,
        'initial_state': {
            'molecules': molecules,
            'proteins': proteins,
            'transcripts': transcripts
        }
    }

    return simulate_process(rna_degradation, settings)
コード例 #11
0
def run_dynamic_modeler():
    epsilon = 10
    initial_pmf = -140
    recalculate = RecalculateFlagella(epsilon, initial_pmf)
    parameters = {
        'generate_source': FlagellaMotor,
        'generate_target': DynamicBayesian,
        'recalculate_condition': recalculate.recalculate,
        'learn_structure': learn_dynamic_bayesian,
        'transform_target': bayesian_flagella,
    }

    process = DynamicModeler(parameters)

    initial_state = {}
    sim_settings = {
        'total_time': 10,
        'initial_state': initial_state}
    output = simulate_process(process, sim_settings)

    return output
コード例 #12
0
def run_inclusion_body(out_dir='out'):

    # initialize the process by passing initial_parameters
    initial_parameters = {'growth_rate': 1e-1}
    inclusion_body_process = InclusionBody(initial_parameters)

    # get initial state
    initial_state = inclusion_body_process.initial_state({
        'initial_mass': 1.0,
        'molecules': {
            'biomass': 1.0
        }
    })

    # run the simulation
    sim_settings = {'initial_state': initial_state, 'total_time': 100}
    output = simulate_process(inclusion_body_process, sim_settings)

    # plot the simulation output
    plot_settings = {}
    plot_simulation_output(output, plot_settings, out_dir)
コード例 #13
0
def test_load_file():
    parameters = {
        'file': 'vivarium_smoldyn/examples/template.txt'
    }
    smoldyn = Smoldyn(parameters)
    
    # declare the initial state
    initial_state = {
        'molecules': {
            'E': 10,
            'S': 1000}}

    # run the simulation
    sim_settings = {
        'total_time': 100,
        'initial_state': initial_state}

    output = simulate_process(
        smoldyn,
        sim_settings)

    import ipdb; ipdb.set_trace()
コード例 #14
0
def test_smoldyn_process(
        animate=False
):
    # initialize the process by passing in parameters
    parameters = {
        'animate': animate,
        'species': {
            'X': {'difc': 0},
            'A': {'difc': 1},
            'B': {'difc': 1},
            'A2': {'difc': 1},
            'B2': {'difc': 1}},
        'reactions': {
            'express': {
                'subs': ['X'],
                'prds': [
                    'X', 'A', 'B'],
                'rate': 1},
            'Adimer': {
                'subs': ['A', 'A'],
                'prds': ['A2'],
                'rate': 1},
            'Adimer_reverse': {
                'subs': ['A2'],
                'prds': ['A', 'A'],
                'rate': 1},
            'Bdimer': {
                'subs': ['B', 'B'],
                'prds': ['B2'],
                'rate': 1},
            'Bdimer_reverse': {
                'subs': ['B2'],
                'prds': ['B', 'B'],
                'rate': 1},
            'AxB': {
                'subs': ['A2', 'B'],
                'prds': ['A2'],
                'rate': 1},
            'Adegrade': {
                'subs': ['A'],
                'prds': [],
                'rate': 1},
            'Bdegrade': {
                'subs': ['B'],
                'prds': [],
                'rate': 1}}}

    process = Smoldyn(parameters)

    # declare the initial state
    initial_state = {
        'molecules': {
            'X': 10}}

    # run the simulation
    sim_settings = {
        'total_time': 100,
        'initial_state': initial_state}
    output = simulate_process(
        process,
        sim_settings)

    return output
コード例 #15
0
def run_CPM(cpm_config=get_cpm_minimum_config(), time=5):
    # load process
    CPM = CellularPotts(cpm_config)
    settings = {'return_raw_data': True, 'total_time': 10, 'timestep': 1}
    return simulate_process(CPM, settings)
コード例 #16
0
                    '_emit': True,
                }
            },
            'global': {},
        }

    def derivers(self):
        return {
            'my_deriver': {
                'deriver': 'mass_deriver',
                'port_mapping': {
                    'global': 'global',
                },
                'config': {},
            },
        }


if __name__ == '__main__':
    parameters = {
        'k_cat': 1.5,
    }
    my_process = GlucosePhosphorylation(parameters)

    settings = {
        'total_time': 10,
        'timestep': 0.1,
    }
    timeseries = simulate_process(my_process, settings)
    plot_simulation_output(timeseries, {}, './')
コード例 #17
0
ファイル: toxin-antitoxin.py プロジェクト: U8NWXD/vivarium
def test_toxin_antitoxin(time=10):
    toxin_antitoxin = ToxinAntitoxin({})
    settings = {'total_time': time}
    return simulate_process(toxin_antitoxin, settings)