Exemple #1
0
    def setUp(self):
        res = random_multinomial_model(
            num_samples=50,
            num_features=5,
            reps=1,
            low=-1,
            high=1,
            beta_mean=0,
            beta_scale=1,
            mu=1000,  # sequencing depth
            sigma=0.5,
            seed=0)
        self.table, self.md, self.beta = res

        tf.set_random_seed(0)
        md = self.md
        md.name = 'sampleid'
        md = qiime2.Metadata(md)
        self.ref_beta, self.ref_stats = multinomial(table=self.table,
                                                    metadata=md,
                                                    summary_interval=1,
                                                    formula="X",
                                                    epoch=50000)

        self.base_beta, self.base_stats = multinomial(table=self.table,
                                                      metadata=md,
                                                      summary_interval=1,
                                                      formula="1",
                                                      epoch=50000)
        self.results = "results"
        if not os.path.exists(self.results):
            os.mkdir(self.results)
Exemple #2
0
    def test_fit_consistency(self):
        md = self.md

        md.name = 'sampleid'
        md = qiime2.Metadata(md)

        res_beta1, res_stats1, res_biplot1 = multinomial(table=self.table,
                                                         metadata=md,
                                                         min_sample_count=0,
                                                         min_feature_count=0,
                                                         formula="X",
                                                         epochs=1000)

        res_beta2, res_stats2, res_biplot2 = multinomial(table=self.table,
                                                         metadata=md,
                                                         min_sample_count=0,
                                                         min_feature_count=0,
                                                         formula="X",
                                                         epochs=1000)

        npt.assert_array_equal(res_beta1, res_beta2)
        end_res_stats1 = res_stats1.to_dataframe().iloc[-1]
        end_res_stats2 = res_stats2.to_dataframe().iloc[-1]
        npt.assert_array_equal(end_res_stats1, end_res_stats2)
        npt.assert_array_equal(res_biplot1.eigvals, res_biplot2.eigvals)
        npt.assert_array_equal(res_biplot1.samples, res_biplot2.samples)
        npt.assert_array_equal(res_biplot1.features, res_biplot2.features)
Exemple #3
0
 def test_fit(self):
     tf.set_random_seed(0)
     md = self.md
     md.name = 'sampleid'
     md = qiime2.Metadata(md)
     exp_beta = clr(clr_inv(np.hstack((np.zeros((2, 1)), self.beta.T))))
     res_beta = multinomial(table=self.table,
                            metadata=md,
                            formula="X",
                            epoch=50000)
     npt.assert_allclose(exp_beta, res_beta.T, atol=0.5, rtol=0.5)
Exemple #4
0
    def _silent_helper(self, silent):
        tf.set_random_seed(0)
        md = self.md

        md.name = 'sampleid'
        md = qiime2.Metadata(md)

        f = io.StringIO()
        with contextlib.redirect_stderr(f):
            res_beta, res_stats, res_biplot = multinomial(table=self.table,
                                                          metadata=md,
                                                          min_sample_count=0,
                                                          min_feature_count=0,
                                                          formula="X",
                                                          epochs=1000,
                                                          silent=silent)
        return f
Exemple #5
0
    def test_fit(self):
        tf.set_random_seed(0)
        md = self.md

        md.name = 'sampleid'
        md = qiime2.Metadata(md)

        exp_beta = clr(clr_inv(np.hstack((np.zeros((2, 1)), self.beta.T))))

        res_beta, res_stats, res_biplot = multinomial(table=self.table,
                                                      metadata=md,
                                                      min_sample_count=0,
                                                      min_feature_count=0,
                                                      formula="X",
                                                      epochs=1000)

        # test biplot
        self.assertIsInstance(res_biplot, OrdinationResults)
        u = res_biplot.samples.values
        v = res_biplot.features.values.T
        npt.assert_allclose(u @ v, res_beta.values, atol=0.5, rtol=0.5)

        npt.assert_allclose(exp_beta, res_beta.T, atol=0.6, rtol=0.6)
        self.assertGreater(len(res_stats.to_dataframe().index), 1)