Exemplo n.º 1
0
    def test_empty_table(self):
        table = biom.Table(np.array([[]]), [], [])

        core_features(self.output_dir, table)

        self.assertBasicVizValidity(self.output_dir, exp_sample_count=0,
                                    exp_feature_count=0, exp_no_core=True)

        self.assertFalse(glob.glob(os.path.join(self.output_dir, '*.tsv')))
Exemplo n.º 2
0
    def test_defaults(self):
        core_features(self.output_dir, self.table)

        self.assertBasicVizValidity(self.output_dir)

        core_50_fp = os.path.join(self.output_dir, 'core-features-0.500.tsv')
        self.assertCoreFeaturesPresent(core_50_fp, ['O1', 'O2'], [])

        core_100_fp = os.path.join(self.output_dir, 'core-features-1.000.tsv')
        self.assertCoreFeaturesPresent(core_100_fp, ['O2'], ['O1'])
Exemplo n.º 3
0
    def test_equal_min_max_fractions(self):
        core_features(self.output_dir, self.table, min_fraction=0.55,
                      max_fraction=0.55)

        self.assertBasicVizValidity(self.output_dir, exp_no_plot=True)

        core_55_fp = os.path.join(self.output_dir, 'core-features-0.550.tsv')
        tsv_files = glob.glob(os.path.join(self.output_dir, '*.tsv'))
        self.assertEqual(tsv_files, [core_55_fp])

        self.assertCoreFeaturesPresent(core_55_fp, ['O1', 'O2'], [])
Exemplo n.º 4
0
    def test_minimum_number_of_steps(self):
        core_features(self.output_dir, self.table, min_fraction=0.55,
                      max_fraction=0.95, steps=2)

        self.assertBasicVizValidity(self.output_dir)

        core_55_fp = os.path.join(self.output_dir, 'core-features-0.550.tsv')
        core_95_fp = os.path.join(self.output_dir, 'core-features-0.950.tsv')
        tsv_files = sorted(glob.glob(os.path.join(self.output_dir, '*.tsv')))
        self.assertEqual(tsv_files, [core_55_fp, core_95_fp])

        self.assertCoreFeaturesPresent(core_55_fp, ['O1', 'O2'], [])
        self.assertCoreFeaturesPresent(core_95_fp, ['O2'], ['O1'])
Exemplo n.º 5
0
    def test_no_core_features(self):
        table = biom.Table(np.array([[0, 11, 11], [11, 11, 0]]), ['O1', 'O2'],
                           ['S1', 'S2', 'S3'])

        core_features(self.output_dir, table)

        self.assertBasicVizValidity(self.output_dir, exp_no_core=True)

        core_50_fp = os.path.join(self.output_dir, 'core-features-0.500.tsv')
        self.assertCoreFeaturesPresent(core_50_fp, ['O1', 'O2'], [])

        # No core features exist at fraction=1.0
        core_100_fp = os.path.join(self.output_dir, 'core-features-1.000.tsv')
        self.assertFalse(os.path.exists(core_100_fp))
Exemplo n.º 6
0
    def test_fraction_range(self):
        core_features(self.output_dir, self.table, min_fraction=0.55,
                      max_fraction=0.95, steps=9)

        self.assertBasicVizValidity(self.output_dir)

        core_50_fp = os.path.join(self.output_dir, 'core-features-0.500.tsv')
        self.assertFalse(os.path.exists(core_50_fp))

        core_55_fp = os.path.join(self.output_dir, 'core-features-0.550.tsv')
        self.assertCoreFeaturesPresent(core_55_fp, ['O1', 'O2'], [])

        core_95_fp = os.path.join(self.output_dir, 'core-features-0.950.tsv')
        self.assertCoreFeaturesPresent(core_95_fp, ['O2'], ['O1'])

        core_100_fp = os.path.join(self.output_dir, 'core-features-1.000.tsv')
        self.assertFalse(os.path.exists(core_100_fp))
Exemplo n.º 7
0
    def test_tiny_steps_precision(self):
        # Bug in a previous iteration of the code used a fixed number of digits
        # in the "feature list" TSV filenames, causing files to be overwritten
        # with the wrong data if a small enough step size was used.
        core_features(self.output_dir, self.table, min_fraction=0.1,
                      max_fraction=0.11, steps=101)

        self.assertBasicVizValidity(self.output_dir)

        fp = os.path.join(self.output_dir, 'core-features-0.1000.tsv')
        self.assertTrue(os.path.exists(fp))

        fp = os.path.join(self.output_dir, 'core-features-0.1001.tsv')
        self.assertTrue(os.path.exists(fp))

        fp = os.path.join(self.output_dir, 'core-features-0.1099.tsv')
        self.assertTrue(os.path.exists(fp))

        fp = os.path.join(self.output_dir, 'core-features-0.1100.tsv')
        self.assertTrue(os.path.exists(fp))
Exemplo n.º 8
0
 def test_invalid_parameters(self):
     with self.assertRaisesRegex(ValueError, 'fraction'):
         core_features(self.output_dir,
                       self.table,
                       min_fraction=0.75,
                       max_fraction=0.5)