def my_layout(node): if node.is_leaf(): # If terminal node, draws its name name_face = AttrFace("name", ftype="Roboto", fgcolor='#191919') name_face.margin_right = 10 name_face.margin_left = 10 else: # If internal node, draws label with smaller font size name_face = AttrFace("name", fsize=10, ftype="Roboto", fgcolor='#191919') name_face.margin_right = 10 name_face.margin_left = 10 # Adds the name face to the image at the preferred position faces.add_face_to_node(name_face, node, column=0, position="branch-right")
def layout(node): #print(node) if (len(node.get_ancestors()) < 4): print(node.name) n = AttrFace("name", fsize=9) n.margin_top = 10 n.margin_bottom = 0 n.margin_left = 10 faces.add_face_to_node(n, node, 0, position="float") tf = TextFace(len(node.get_leaves()), fsize=12) faces.add_face_to_node(tf, node, 0, position="float")
def ts_layout(node, fgcolor='#FF4ba6', fsize=12): ''' Please set up as the following code shows: ```py ts = TreeStyle() ts.mode = 'r' # 'c' ts.min_leaf_separation = 40 # ts.branch_vertical_margin = 20 # Do not add leaf names automatically ts.show_leaf_name = False ts.show_scale = False ts.optimal_scale_level = 'mid' ts.margin_top = 5 ts.margin_left = 5 ts.margin_right = 5 # Use my custom layout ts.layout_fn = ts_layout ``` ''' node.img_style["size"] = 2 node.img_style["shape"] = "circle" node.img_style["fgcolor"] = fgcolor if node.is_leaf(): # If terminal node, draws its name name_face = AttrFace("name", fsize=fsize) # fgcolor="royalblue" name_face.margin_left = 3 faces.add_face_to_node(name_face, node, column=0, position="branch-right") elif not node.is_root(): # If internal node, draws label with smaller font size name_face = AttrFace("name", fsize=fsize) name_face.margin_left = 2 name_face.margin_bottom = 2 # Adds the name face to the image at the preferred position faces.add_face_to_node(name_face, node, column=0, position="branch-top")
def base_node_style(self): from ete3 import NodeStyle, AttrFace nstyle = NodeStyle() nstyle["shape"] = "sphere" nstyle["size"] = 2 nstyle["fgcolor"] = "black" for n in self.tree.traverse(): n.set_style(nstyle) if re.match('.*fasta', n.name): nf = AttrFace('name', fsize=8) nf.margin_right = 150 nf.margin_left = 3 n.add_face(nf, column=0) self.log.info("Applied base node style")
def layout(node): node.img_style["size"] = 0 if not node.is_leaf(): boostFace = faces.TextFace(node.support, fgcolor="grey", fsize=34) add_face_to_node(boostFace, node, column=0, position="branch-top") if node.is_leaf(): taxid = (node.name.split('.')[0]) seq_name = (node.name.split('.')[1]) #add predicted name (eggnog 4.5) try: pred_name = predict_name[node.name] predNameFace = faces.TextFace(pred_name, fgcolor="salmon", fsize=34) predNameFace.margin_right = 20 predNameFace.margin_left = 20 add_face_to_node(predNameFace, node, column=2, position="branch-right") except: predNameFace = faces.TextFace('--', fgcolor="salmon", fsize=34) add_face_to_node(predNameFace, node, column=2, position="branch-right") seqNameFace = faces.TextFace(seq_name, fgcolor="grey", fsize=34) add_face_to_node(seqNameFace, node, column=1, position="branch-right") sp_name = ncbi.get_taxid_translator([(node.name.split('.')[0])]) node.name = sp_name[int(taxid)] seqFace = SeqMotifFace(node.sequence, gap_format="blank") add_face_to_node(seqFace, node, column=3, position="aligned") lin = ncbi.get_lineage(taxid) #metazoa #if int('33208') in lin: # N = AttrFace("name", fsize=34, fgcolor="blue") # N.margin_left = 20 # N.margin_right= 20 # faces.add_face_to_node(N, node, column=0) #cnidaria if int('6073') in lin: N = AttrFace("name", fsize=34, fgcolor="red") N.margin_left = 20 N.margin_right = 20 faces.add_face_to_node(N, node, column=0) #ctenophora elif int('10197') in lin: N = AttrFace("name", fsize=34, fgcolor="orange") N.margin_left = 20 N.margin_right = 20 faces.add_face_to_node(N, node, column=0) #bilateria elif int('33213') in lin: N = AttrFace("name", fsize=34, fgcolor="blue") N.margin_left = 20 N.margin_right = 20 faces.add_face_to_node(N, node, column=0) #porifera elif int('6040') in lin: N = AttrFace("name", fsize=34, fgcolor="green") N.margin_left = 20 N.margin_right = 20 faces.add_face_to_node(N, node, column=0) else: N = AttrFace("name", fsize=34, fgcolor="black") N.margin_left = 20 N.margin_right = 20 faces.add_face_to_node(N, node, column=0)