def ali_in_tree(self,aliname = 'group2.stk', rank = 'genus', **kwargs): all_seqs = ali.get_seqs(aliname) alinodes = ali.get_taxnodes(aliname) aliranks = [t.rank if t else None for t in alinodes] all_leaves = self.t.get_terminals() leafnodes = self.leafNodes(reset = mod(reset, 2)) leafranks =[n.rank if n else None for n in leafnodes] ali_families = ali.get_taxon_forall(rank = rank,aliname = aliname, **mem.sr(kwargs)) leaf_families= self.getTaxon(rank = rank, **mem.sr(kwargs)) aset = set(ali_families) lset = set(leaf_families) a_domains =[(node, ncbi.get_taxon(node,'superkingdom')) for node in aset] l_domains =[(node, ncbi.get_taxon(node,'superkingdom')) for node in lset] bac_domain = [x[1] for x in l_domains if ncbi.sciname(x[1])== 'Bacteria'][0] l_bacs = set((l[0] for l in l_domains if l[1] == bac_domain)) a_bacs = set((a[0] for a in a_domains if a[1] == bac_domain)) leaf_bacteria = [leaf if leaf in l_bacs else None for leaf in leaf_families] ali_bacteria = [a if a in a_bacs else None for a in ali_families] return leaf_bacteria, ali_bacteria, leafnodes, alinodes
def setTaxon(aliname = None, rank = None,**kwargs): assert aliname != None and rank != None nodes = get_taxnodes(aliname,**mem.sr(kwargs)) taxon = [ncbi.get_taxon(node, rank=rank) if node else None for node in nodes] return taxon
def setTaxon(BTInstance = None, rank = None, **kwargs): assert rank; assert BTInstance leafnodes = BTInstance.leafNodes(**mem.sr(kwargs)) leaf_families = [ncbi.get_taxon(node, rank=rank) if node else None for node in leafnodes] return leaf_families
def set_taxon_forsome(nodes = None, rank = None,**kwargs): assert nodes != None and rank != None taxon = [ncbi.get_taxon(node, rank = rank) if node else None for node in nodes] return taxon