Esempio n. 1
0
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")
Esempio n. 2
0
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")
Esempio n. 3
0
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")
Esempio n. 4
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")
Esempio n. 5
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)