Example #1
0
    def test_parse_otu_table(self):
        """parse otu_table works"""
        otu_table = """#Full OTU Counts
#OTU ID\tsample1\tsample2\tsample3
0\t0\t2\t0
1\t1\t0\t0
2\t1\t1\t1""".split('\n')
        result, num_samples, taxonomy_info = parse_otu_table(otu_table)
        self.assertEqual(result['1'], {
            'sample1': '1',
            'sample3': '0',
            'sample2': '0'
        })
        self.assertEqual(result['0'], {
            'sample1': '0',
            'sample3': '0',
            'sample2': '2'
        })
        self.assertEqual(result['2'], {
            'sample1': '1',
            'sample3': '1',
            'sample2': '1'
        })
        self.assertEqual(num_samples, 3)
        self.assertEqual(taxonomy_info, {})

        #test that it parses otu tables with taxonomy fields appropriately
        otu_table = """#Full OTU Counts
#OTU ID\tsample1\tsample2\tsample3\tConsensus Lineage
0\t0\t2\t0\tBacteria; Bacteroidetes; Bacteroidales; Parabacteroidaceae; Unclassified; otu_475
1\t1\t0\t0\tBacteria; Bacteroidetes; Bacteroidales; adhufec77-25; Barnesiella; Barnesiella_viscericola; otu_369
2\t1\t1\t1\tBacteria; Firmicutes; Clostridia; Clostridiales; Faecalibacterium; Unclassified; otu_1121""".split(
            '\n')
        result, num_samples, taxonomy_info = parse_otu_table(otu_table)
        self.assertEqual(result['1'], {
            'sample1': '1',
            'sample3': '0',
            'sample2': '0'
        })
        self.assertEqual(result['0'], {
            'sample1': '0',
            'sample3': '0',
            'sample2': '2'
        })
        self.assertEqual(result['2'], {
            'sample1': '1',
            'sample3': '1',
            'sample2': '1'
        })
        self.assertEqual(num_samples, 3)
        self.assertEqual(
            taxonomy_info, {
                '1':
                'Bacteria; Bacteroidetes; Bacteroidales; adhufec77-25; Barnesiella; Barnesiella_viscericola; otu_369',
                '0':
                'Bacteria; Bacteroidetes; Bacteroidales; Parabacteroidaceae; Unclassified; otu_475',
                '2':
                'Bacteria; Firmicutes; Clostridia; Clostridiales; Faecalibacterium; Unclassified; otu_1121'
            })
    def test_parse_otu_table(self):
        """parse otu_table works"""
        otu_table = """#Full OTU Counts
#OTU ID\tsample1\tsample2\tsample3
0\t0\t2\t0
1\t1\t0\t0
2\t1\t1\t1""".split(
            "\n"
        )
        result, num_samples, taxonomy_info = parse_otu_table(otu_table)
        self.assertEqual(result["1"], {"sample1": "1", "sample3": "0", "sample2": "0"})
        self.assertEqual(result["0"], {"sample1": "0", "sample3": "0", "sample2": "2"})
        self.assertEqual(result["2"], {"sample1": "1", "sample3": "1", "sample2": "1"})
        self.assertEqual(num_samples, 3)
        self.assertEqual(taxonomy_info, {})

        # test that it parses otu tables with taxonomy fields appropriately
        otu_table = """#Full OTU Counts
#OTU ID\tsample1\tsample2\tsample3\tConsensus Lineage
0\t0\t2\t0\tBacteria; Bacteroidetes; Bacteroidales; Parabacteroidaceae; Unclassified; otu_475
1\t1\t0\t0\tBacteria; Bacteroidetes; Bacteroidales; adhufec77-25; Barnesiella; Barnesiella_viscericola; otu_369
2\t1\t1\t1\tBacteria; Firmicutes; Clostridia; Clostridiales; Faecalibacterium; Unclassified; otu_1121""".split(
            "\n"
        )
        result, num_samples, taxonomy_info = parse_otu_table(otu_table)
        self.assertEqual(result["1"], {"sample1": "1", "sample3": "0", "sample2": "0"})
        self.assertEqual(result["0"], {"sample1": "0", "sample3": "0", "sample2": "2"})
        self.assertEqual(result["2"], {"sample1": "1", "sample3": "1", "sample2": "1"})
        self.assertEqual(num_samples, 3)
        self.assertEqual(
            taxonomy_info,
            {
                "1": "Bacteria; Bacteroidetes; Bacteroidales; adhufec77-25; Barnesiella; Barnesiella_viscericola; otu_369",
                "0": "Bacteria; Bacteroidetes; Bacteroidales; Parabacteroidaceae; Unclassified; otu_475",
                "2": "Bacteria; Firmicutes; Clostridia; Clostridiales; Faecalibacterium; Unclassified; otu_1121",
            },
        )
    def test_filter_OTUs(self):
        """filter_OTUs works"""
        otu_table = """#Full OTU Counts
#OTU ID\tsample1\tsample2\tsample3
0\t0\t2\t0
1\t1\t0\t0
2\t1\t1\t1""".split(
            "\n"
        )
        OTU_sample_info, num_samples, taxonomy_info = parse_otu_table(otu_table)
        result = filter_OTUs(OTU_sample_info, 1, 3)
        self.assertEqual(result, [])
        result = filter_OTUs(OTU_sample_info, 0, 3)
        self.assertEqual(result, ["1", "0"])

        result = filter_OTUs(OTU_sample_info, 1, 3, False)
        self.assertEqual(result, ["2"])
        result = filter_OTUs(OTU_sample_info, 0, 3, False)
        self.assertEqual(result, ["1", "0", "2"])
        # test that is works if a category mapping file is supplied
        cat_mapping = {"sample2": "0", "sample3": "1"}
        result = filter_OTUs(OTU_sample_info, 0, category_mapping_info=cat_mapping)
        self.assertEqual(result, ["0"])
Example #4
0
    def test_filter_OTUs(self):
        """filter_OTUs works"""
        otu_table = """#Full OTU Counts
#OTU ID\tsample1\tsample2\tsample3
0\t0\t2\t0
1\t1\t0\t0
2\t1\t1\t1""".split('\n')
        OTU_sample_info, num_samples, taxonomy_info = parse_otu_table(
            otu_table)
        result = filter_OTUs(OTU_sample_info, 1, 3)
        self.assertEqual(result, [])
        result = filter_OTUs(OTU_sample_info, 0, 3)
        self.assertEqual(result, ['1', '0'])

        result = filter_OTUs(OTU_sample_info, 1, 3, False)
        self.assertEqual(result, ['2'])
        result = filter_OTUs(OTU_sample_info, 0, 3, False)
        self.assertEqual(result, ['1', '0', '2'])
        #test that is works if a category mapping file is supplied
        cat_mapping = {'sample2': '0', 'sample3': '1'}
        result = filter_OTUs(OTU_sample_info, 0,\
                        category_mapping_info=cat_mapping)
        self.assertEqual(result, ['0'])