Exemplo n.º 1
0
 def test_provide_event_counts(self):
     model = MakeModel.make_test_model(
         '2 species, 1 reaction, with rates given by reactant population')
     simulation = Simulation(model)
     self.assertTrue('execute run() to obtain event counts' in
                     simulation.provide_event_counts())
     with CaptureOutput(relay=False):
         simulation.run(time_max=100)
     self.assertTrue('Event type' in simulation.provide_event_counts())
Exemplo n.º 2
0
    def test_growth_transcription(self):

        # Construct model
        env = EnvironmentVarGuard()
        env.set('CONFIG__DOT__wc_kb__DOT__io__DOT__strict', '0')
        with env:
            self.kb = wc_kb.io.Reader().run(
                'tests/fixtures/min_model_kb.xlsx',
                'tests/fixtures/min_model_kb_seq.fna',
            )[wc_kb.KnowledgeBase][0]

        self.model = prokaryote.ProkaryoteModelGenerator(
            knowledge_base=self.kb,
            component_generators=[
                prokaryote.InitalizeModel,
                prokaryote.TranscriptionSubmodelGenerator,
                prokaryote.RnaDegradationSubmodelGenerator,
                prokaryote.MetabolismSubmodelGenerator
            ],
            options={
                'component': {
                    'TranscriptionSubmodelGenerator': {
                        'beta': 1.
                    },
                    'RnaDegradationSubmodelGenerator': {
                        'beta': 1.
                    }
                }
            }).run()

        # Simulate model
        checkpoint_period = 10
        end_time = 100
        simulation = Simulation(self.model)
        results = simulation.run(end_time, self.dir, checkpoint_period)
        self.assertIsInstance(results, tuple)

        # Check results
        num_events = results[0]
        run_results_dir = results[1]
        run_results = RunResults(run_results_dir)
        df = run_results.get('populations')

        cytosol = self.model.compartments.get_one(id='c')
        rna_ids = []
        for rna in self.model.species_types.get(
                type=wc_ontology['WC:RNA']):  # RNA
            rna_ids.append(rna.species.get_one(compartment=cytosol).id)

        avg_init_rna_cn = np.mean(df.loc[0.0, rna_ids].values)
        avg_final_rna_cn = np.mean(df.loc[100.0, rna_ids].values)

        print(simulation.provide_event_counts())
        print('\n INIT AVG RNA COPY NUMBERS:', avg_init_rna_cn)
        print('\n FINAL AVG RNA COPY NUMBERS:', avg_final_rna_cn)

        self.assertGreater(avg_final_rna_cn,
                           2 * avg_init_rna_cn - avg_init_rna_cn * 0.15)
        self.assertLess(avg_final_rna_cn,
                        2 * avg_init_rna_cn + avg_init_rna_cn * 0.15)