Visualize / Highlight Specific Nodes In A Taxonomy Tree
4
5
Entering edit mode
11.7 years ago

I have a set of species and a score derived from set of proteins associated with each species in the given format. I would like to know what will be the best visualization option to map these species to a tree of life. The idea is to visualize how these proteins are distribute on the tree of life.

Is there any webserver / software package which can perform such type of visualization. Google is only giving me tools for the visualization of phylogeny tree. Here am not looking at a phylogeny tree, these sequences are not homologs. What I am looking is a way to highlight these nodes in a given phylogeny tree using the taxonomy ids. If possible to give a grading color schema to show the significant species.

Taxid Score
9606 75
9823 2
9844 1
9913 27
99287 1


visualization taxonomy tree • 6.6k views
10
Entering edit mode
11.6 years ago
jhc ★ 3.0k

If you need more control over your tree images, you can program how the tree is rendered using ETE (Python language)

A very very simple example that associates node features with node size and color would look like this:

from ete2 import Tree, faces
import colorsys
import random

def hls2hex(h, l, s):
''' Converts from HLS to RGB '''
return '#%02x%02x%02x' %tuple(map(lambda x: int(x*255),
colorsys.hls_to_rgb(h, l, s)))
def get_color(h=None, s=0.5, l=0.5):
''' Returns a RGB color code with the specific Hue, Saturation and
lightness. Otherwise, it returns a random color'''
if not h:
h = random.random()
return hls2hex(h, l, s)

def my_layout(node):
""" This function set the rules that control how nodes are drawn"""
value = tax2size.getnode.name, None)
if value is not None:

# generate a gradient on color lightness for 0.3 to 0.8. A
# assume value is in the (0,1) range.

# Set node size and color based on the dictionary of user
# values
node.img_style["size"] = 20 + value
node.img_style["fgcolor"] = color
node.img_style["line_type"] = 1

# Text labels can also be added to the image
node=node, column=0, aligned=True)

node=node, column=1, aligned=True)
else:
node.img_style["size"] = 0

t = Tree("(((9606,9844),99287),(9823,9913));")

# Loads the example values associated to leaf nodes
tax2size = {
"9606": 100, "9823": 80,  "9844": 60,  "9913": 40,  "99287": 20  }

t.show(my_layout)


fullsize

0
Entering edit mode

That's neat. Thanks jhc !

0
Entering edit mode

Cool module. and nice color choice.

0
Entering edit mode

jhc,great idea. I would like to do something similar only start with the Tree-of-Life and assign abunce values. However I can't seem to open the NCBI Taxonomy trees (http://itol.embl.de/other_trees.shtml) with ETE2. I would love to copy your general method but using the entire taxonomical dataset.

5
Entering edit mode
11.7 years ago

I would use iTOL for that. I am not sure if it can do a color gradient, but it has several different ways of visualizing data onto a phylogenetic tree.

1
Entering edit mode

0
Entering edit mode

Thanks a lot Lars.

0
Entering edit mode

Thanks a lot Lars, Michael !

1
Entering edit mode
11.1 years ago
Lo Sauer ▴ 160

If you happen to be tackling metagenomic data (I am not sure), MEGAN will be of much help, in the task of actually sorting out the phylogenetic relationships, even of unknown taxa.

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1800929/

Similar plots as posted by jhc can be created directly in the software.

excerpt:

In a preprocessing step, the set of DNA sequences is compared against databases of known sequences using BLAST or another comparison tool. MEGAN is then used to compute and explore the taxonomical content of the data set, employing the NCBI taxonomy to summarize and order the results. A simple lowest common ancestor algorithm assigns reads to taxa such that the taxonomical level of the assigned taxon reflects the level of conservation of the sequenceconservation of the sequence conservation of the sequence

1
Entering edit mode
8.6 years ago

If you can convert those taxids to scientific names of species and use a comma-separated table, then you can use my PHYLOmap to visualise phylogenetic tree (which links up with ITOL).

Format the data as table.csv given on page 2.

Best Wishes,
Umer