Exemplo n.º 1
0
    def test_with_exclude_ids_filter_all(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        with self.assertRaisesRegex(ValueError, "All samples.*filtered"):
            filter_distance_matrix(dm, metadata, where=None, exclude_ids=True)
Exemplo n.º 2
0
    def test_without_where_all_filtered(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S4', 'S5', 'S6'])

        with self.assertRaisesRegex(ValueError, 'All samples.*filtered'):
            filter_distance_matrix(dm, metadata)
Exemplo n.º 3
0
    def test_without_where_all_filtered(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S4', 'S5', 'S6'])

        with self.assertRaisesRegex(ValueError, 'All samples.*filtered'):
            filter_distance_matrix(dm, metadata)
Exemplo n.º 4
0
    def test_with_exclude_ids_filter_all(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        with self.assertRaisesRegex(ValueError, "All samples.*filtered"):
            filter_distance_matrix(dm, metadata, where=None, exclude_ids=True)
Exemplo n.º 5
0
    def test_with_where_no_filtering(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(
            dm, metadata, where="SampleType='gut' OR SampleType='tongue'")

        self.assertEqual(self._sorted(filtered), dm)
Exemplo n.º 6
0
    def test_without_where_some_filtered(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1'],
                           'SampleType': ['gut', 'tongue']},
                          index=pd.Index(['S1', 'S2'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(dm, metadata)

        expected = skbio.DistanceMatrix([[0, 1], [1, 0]], ['S1', 'S2'])
        self.assertEqual(self._sorted(filtered), expected)
Exemplo n.º 7
0
    def test_with_exclude_ids_filter_nothing(self):
        df = pd.DataFrame({'Subject': ['subject-1'],
                           'SampleType': ['tongue']},
                          index=pd.Index(['S2000'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(dm, metadata,
                                          where=None,
                                          exclude_ids=True)
        self.assertEqual(self._sorted(filtered), dm)
Exemplo n.º 8
0
    def test_with_where_no_filtering(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(
            dm, metadata, where="SampleType='gut' OR SampleType='tongue'")

        self.assertEqual(self._sorted(filtered), dm)
Exemplo n.º 9
0
    def test_without_where_some_filtered(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1'],
                           'SampleType': ['gut', 'tongue']},
                          index=pd.Index(['S1', 'S2'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(dm, metadata)

        expected = skbio.DistanceMatrix([[0, 1], [1, 0]], ['S1', 'S2'])
        self.assertEqual(self._sorted(filtered), expected)
Exemplo n.º 10
0
    def test_with_exclude_ids_filter_nothing(self):
        df = pd.DataFrame({'Subject': ['subject-1'],
                           'SampleType': ['tongue']},
                          index=pd.Index(['S2000'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(dm, metadata,
                                          where=None,
                                          exclude_ids=True)
        self.assertEqual(self._sorted(filtered), dm)
Exemplo n.º 11
0
    def test_without_where_no_filtering(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(dm, metadata)

        # There is no guaranteed order to output. Sort by ID before comparing
        # to expected.
        self.assertEqual(self._sorted(filtered), dm)
Exemplo n.º 12
0
    def test_without_where_no_filtering(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(dm, metadata)

        # There is no guaranteed order to output. Sort by ID before comparing
        # to expected.
        self.assertEqual(self._sorted(filtered), dm)
Exemplo n.º 13
0
    def test_with_where_some_filtered(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=['S1', 'S2', 'S3'])
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        filtered = filter_distance_matrix(dm, metadata,
                                          where="Subject='subject-2'")

        expected = skbio.DistanceMatrix([[0]], ['S3'])
        self.assertEqual(filtered, expected)
Exemplo n.º 14
0
    def test_with_exclude_ids_where_filter_two(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['elbow', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        where = "SampleType='tongue' OR SampleType='gut'"

        filtered = filter_distance_matrix(dm, metadata,
                                          where,
                                          exclude_ids=True)
        expected = skbio.DistanceMatrix([[0]], ['S1'])
        self.assertEqual(filtered, expected)
Exemplo n.º 15
0
    def test_with_exclude_ids_where_filter_two(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['elbow', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime2.Metadata(df)

        dm = skbio.DistanceMatrix([[0, 1, 2], [1, 0, 3], [2, 3, 0]],
                                  ['S1', 'S2', 'S3'])

        where = "SampleType='tongue' OR SampleType='gut'"

        filtered = filter_distance_matrix(dm, metadata,
                                          where,
                                          exclude_ids=True)
        expected = skbio.DistanceMatrix([[0]], ['S1'])
        self.assertEqual(filtered, expected)