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")
Exemple #2
0
 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")
Exemple #3
0
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)