def test_infer_self_group(self): me = Analyze() me.taxdump = taxdump_from_text(taxdump_proteo) add_children(me.taxdump) # assign to LCA of all genomes (E. coli) me.self_tax = None me.lca = '562' me.self_rank = None me.infer_self_group() self.assertListEqual(me.self_tax, ['562']) # raise LCA to genus level (Escherichia) me.self_tax = None me.lca = '562' me.self_rank = 'genus' me.infer_self_group() self.assertListEqual(me.self_tax, ['561']) # LCA (Enterobacteriaceae) is already above designated rank (genus) me.self_tax = None me.lca = '543' me.self_rank = 'genus' me.infer_self_group() self.assertListEqual(me.self_tax, ['543'])
def test_define_groups(self): me = Analyze() me.taxdump = taxdump_from_text(taxdump_proteo) add_children(me.taxdump) me.groups = {} # user defined groups: # self: genera Escherichia and Shigella # close: family Enterobacteriaceae me.groups = {} me.self_tax = '561,620' me.close_tax = '543' me.define_groups() self.assertListEqual(me.self_tax, ['561', '620']) exp = {'561', '562', '585056', '1038927', '2580236', '620', '622'} self.assertSetEqual(me.groups['self'], exp) self.assertListEqual(me.close_tax, ['543']) exp = {'543', '548', '570'} self.assertSetEqual(me.groups['close'], exp) # auto-infer groups me.self_tax = {} me.close_tax = {} me.lca = '562' # all inputs are E. coli me.self_rank = 'genus' # but we want to raise self to genus me.close_size = 2 # close group must be this big or bigger me.define_groups() self.assertListEqual(me.self_tax, ['561']) exp = {'561', '562', '585056', '1038927', '2580236'} self.assertSetEqual(me.groups['self'], exp) self.assertListEqual(me.close_tax, ['543']) exp = {'543', '548', '570', '620', '622'} self.assertSetEqual(me.groups['close'], exp)