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"])
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'])