Example #1
0
                if child.name == lTaxonomy[iTaxLevel]:
                    node = child
                    break
    ## remove nodes with one child
    for node in tree.traverse():
        if len(node.get_children()) == 1:
            if len(node.get_ancestors()) > 0:
                ancestor = node.get_ancestors()[0]
                ancestor.add_child(node.get_children()[0])
                ancestor.remove_child(node)
            else:
                tree = node.get_children()[0]
    return tree


taxonomy = Taxonomy(sTaxdumpDir=sTaxdumpDir)
lTaxonomies = []
for sLine in open(sInFile):
    sTaxId = sLine.strip()
    lTaxonomy = taxonomy.getTaxonomyByTaxId(sTaxId)
    lTaxonomy = list(
        map(lambda x: '{} {}'.format(re.sub('^ a-zA-Z0-9_', '', x[1]), x[0]),
            lTaxonomy))[::-1]
    lTaxonomies.append(lTaxonomy)

## for testing
"""
lTaxonomies = [['cellular organisms', 'eukaryota', 'opisthokonta', 'metazoa', 'eumetazoa', 'bilateria', 'deuterostomia', 'chordata', 'craniata', 'vertebrata', 'h**o sapiens'],\
    ['cellular organisms', 'eukaryota', 'opisthokonta', 'metazoa', 'eumetazoa', 'bilateria', 'deuterostomia', 'chordata', 'tunicata', 'ascidiacea', 'phlebobranchia', 'cionidae', 'ciona', 'ciona intestinalis'],\
    ['cellular organisms', 'bacteria', 'terrabacteria group', 'tenericutes', 'mollicutes', 'mycoplasmatales', 'mycoplasmataceae', 'mycoplasma', 'mycoplasma pneumoniae'],\
    ['cellular organisms', 'archaea', 'euryarchaeota', 'methanomada group', 'methanococci', 'methanococcales', 'methanococcaceae', 'methanococcus', 'methanococcus maripaludis']]