Ejemplo n.º 1
0
 def test_named_model_variants(self):
     simulation_models = [("hudson", msprime.StandardCoalescent),
                          ("smc", msprime.SmcApproxCoalescent),
                          ("smc_prime", msprime.SmcPrimeApproxCoalescent),
                          ("dtwf", msprime.DiscreteTimeWrightFisher),
                          ("wf_ped", msprime.WrightFisherPedigree)]
     for name, model_class in simulation_models:
         model = msprime.model_factory(model=name.upper())
         self.assertIsInstance(model, model_class)
         model = msprime.model_factory(model=name.title())
         self.assertIsInstance(model, model_class)
         model = msprime.model_factory(model=name)
         self.assertIsInstance(model, model_class)
Ejemplo n.º 2
0
    def test_reference_size_instance(self):
        for size in range(1, 10):
            existing_model = msprime.StandardCoalescent()
            model = msprime.model_factory(existing_model, reference_size=size)
            self.assertEqual(model.reference_size, size)

            existing_model = msprime.StandardCoalescent(None)
            model = msprime.model_factory(existing_model, reference_size=size)
            self.assertEqual(model.reference_size, size)

            # If the size is already set, the model isn't changed.
            existing_model = msprime.StandardCoalescent(10**4)
            model = msprime.model_factory(existing_model, reference_size=size)
            self.assertEqual(model.reference_size, 10**4)
Ejemplo n.º 3
0
 def test_model_instances(self):
     models = [
         msprime.StandardCoalescent(100),
         msprime.SmcApproxCoalescent(30),
         msprime.SmcPrimeApproxCoalescent(2132),
         msprime.DiscreteTimeWrightFisher(500),
         msprime.SweepGenicSelection(
             reference_size=500, position=0.5, start_frequency=0.1,
             end_frequency=0.9, alpha=0.1, dt=0.01),
         msprime.DiracCoalescent(),
         msprime.BetaCoalescent(),
     ]
     for model in models:
         new_model = msprime.model_factory(model=model)
         self.assertFalse(new_model is model)
         self.assertEqual(new_model.__dict__, model.__dict__)
Ejemplo n.º 4
0
 def test_model_instances(self):
     models = [
         msprime.StandardCoalescent(),
         msprime.SmcApproxCoalescent(),
         msprime.SmcPrimeApproxCoalescent(),
         msprime.DiscreteTimeWrightFisher(),
         msprime.WrightFisherPedigree(),
         msprime.SweepGenicSelection(
             position=0.5,
             start_frequency=0.1,
             end_frequency=0.9,
             alpha=0.1,
             dt=0.01,
         ),
         msprime.BetaCoalescent(alpha=2),
         msprime.DiracCoalescent(psi=1, c=1),
     ]
     for model in models:
         new_model = msprime.model_factory(model=model)
         self.assertTrue(new_model is model)
         self.assertEqual(new_model.__dict__, model.__dict__)
Ejemplo n.º 5
0
 def test_reference_size_inherited(self):
     for Ne in [1, 10, 100]:
         models = [
             msprime.DiracCoalescent(psi=0.5, c=0),
             msprime.StandardCoalescent(),
             msprime.SmcApproxCoalescent(),
             msprime.SmcPrimeApproxCoalescent(),
             msprime.DiscreteTimeWrightFisher(),
             msprime.WrightFisherPedigree(),
             msprime.SweepGenicSelection(
                 position=0.5,
                 start_frequency=0.1,
                 end_frequency=0.9,
                 alpha=0.1,
                 dt=0.01,
             ),
             msprime.BetaCoalescent(alpha=2),
             msprime.DiracCoalescent(psi=1, c=1),
         ]
         for model in models:
             new_model = msprime.model_factory(model, reference_size=Ne)
             self.assertEqual(new_model.reference_size, Ne)
Ejemplo n.º 6
0
 def test_named_parametric_models_fail(self):
     parametric_models = ["beta", "dirac"]
     for name in parametric_models:
         with self.assertRaises(ValueError):
             msprime.model_factory(model=name)
Ejemplo n.º 7
0
 def test_reference_size_string(self):
     for size in range(1, 10):
         model = msprime.model_factory("hudson", reference_size=size)
         self.assertEqual(model.reference_size, size)