diff --git a/treeprofiler/layouts/phylosignal_layouts.py b/treeprofiler/layouts/phylosignal_layouts.py index 69ffc03..5776ac1 100644 --- a/treeprofiler/layouts/phylosignal_layouts.py +++ b/treeprofiler/layouts/phylosignal_layouts.py @@ -116,7 +116,7 @@ def __init__(self, name, ls_prop, color, legend=True): self.ls_prop = ls_prop self.color = color self.legend = legend - + self.active = False def set_tree_style(self, tree, tree_style): if self.legend: diff --git a/treeprofiler/layouts/staple_layouts.py b/treeprofiler/layouts/staple_layouts.py index fd4b87a..65147dc 100644 --- a/treeprofiler/layouts/staple_layouts.py +++ b/treeprofiler/layouts/staple_layouts.py @@ -358,6 +358,7 @@ def __init__(self, name, color_dict, score_prop, internal_rep=None, \ self.color_range = color_range self.show_score = show_score self.line_width = 3 + self.active = False def set_tree_style(self, tree, tree_style): if self.legend: diff --git a/treeprofiler/layouts/taxon_layouts.py b/treeprofiler/layouts/taxon_layouts.py index 837f447..6691703 100644 --- a/treeprofiler/layouts/taxon_layouts.py +++ b/treeprofiler/layouts/taxon_layouts.py @@ -230,9 +230,12 @@ def set_node_style(self, node): lca_face = RectFace(self.rect_width, None, text = lca, color=color, padding_x=1, padding_y=1, tooltip=tooltip) lca_face.rotate_text = True node.sm_style["draw_descendants"] = False + node.add_face(lca_face, position='aligned', column=level) node.add_face(lca_face, position='aligned', column=level, collapsed_only=True) + node.add_face(TextFace(lca, color = color, padding_x=2), + column=1, position="branch_right", collapsed_only=True) # elif node_sciname and (node_rank == self.rank): # lca = node_sciname diff --git a/treeprofiler/tree_annotate.py b/treeprofiler/tree_annotate.py index af31ced..e9176db 100644 --- a/treeprofiler/tree_annotate.py +++ b/treeprofiler/tree_annotate.py @@ -1385,11 +1385,13 @@ def annot_tree_pfam_table(post_tree, pfam_table, alg_fasta, domain_prop='dom_arq dom_start = int(info[7]) dom_end = int(info[8]) if raw2alg.get(seq_name): - trans_dom_start = raw2alg[seq_name][dom_start] - trans_dom_end = raw2alg[seq_name][dom_end] - dom_info_string = pair_delimiter.join([dom_name, str(trans_dom_start), str(trans_dom_end)]) - seq2doms[seq_name].append(dom_info_string) - + try: + trans_dom_start = raw2alg[seq_name][dom_start] + trans_dom_end = raw2alg[seq_name][dom_end] + dom_info_string = pair_delimiter.join([dom_name, str(trans_dom_start), str(trans_dom_end)]) + seq2doms[seq_name].append(dom_info_string) + except KeyError: + raise KeyError(f"Cannot find {dom_start} or {dom_end} in {seq_name}") for l in post_tree: if l.name in seq2doms.keys(): domains = seq2doms[l.name] diff --git a/treeprofiler/tree_plot.py b/treeprofiler/tree_plot.py index a4ca0e3..111d08e 100644 --- a/treeprofiler/tree_plot.py +++ b/treeprofiler/tree_plot.py @@ -494,11 +494,15 @@ def run(args): if not rank2values: rank2values = defaultdict(list) for n in tree.traverse(): - if n.props.get('rank') and n.props.get('rank') != 'Unknown': - rank2values[n.props.get('rank')].append(n.props.get('sci_name','')) + if n.props.get('lca'): + for rank, sci_name in n.props.get('lca').items(): + rank2values[rank].append(sci_name) + + current_rank = n.props.get('rank') + if current_rank and current_rank != 'Unknown': + rank2values[current_rank].append(n.props.get('sci_name','')) else: pass - # assign color for each value of each rank for rank, value in sorted(rank2values.items()): @@ -590,9 +594,9 @@ def run(args): taxa_layouts.append(taxa_layout) #level += 1 - if args.taxoncollapse_layout: - taxa_layout = taxon_layouts.TaxaCollapse(name = "TaxaCollapse_"+rank, rank=rank, rect_width=args.column_width, color_dict=color_dict, column=level) - taxa_layouts.append(taxa_layout) + # if args.taxoncollapse_layout: + # taxa_layout = taxon_layouts.TaxaCollapse(name = "TaxaCollapse_"+rank, rank=rank, rect_width=args.column_width, color_dict=color_dict, column=level) + # taxa_layouts.append(taxa_layout) taxon_color_dict[rank] = color_dict