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 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)