
Help and FAQs
We tested the following:
- Linux/Unix: Firefox and Opera work fine with Flash 7 plugin.
- Windows: Microsoft Internet Explorer 7 or later, Firefox and Opera work fine. Due to many security problems and ActiveX bugs, we do not recommend Internet Explorer. Version 6 of Internet Explorer is not supported at all.
- Mac: Firefox, Opera and Safari all work without problems.
- export the current tree into any of the following formats: Portable Network Graphics (png), Encapsulated Postscript (eps), Postscript (ps), Portable Document Format (pdf), Scalable Vector Graphics (svg), Newick (txt) or Nexus (txt). If you plan to include the tree in a publication, we recommend exporting to a 150 or 300 DPI png image. To further edit the tree in a vector based editing software (like Adobe Illustrator or Inkscape), use either svg or eps. Adobe Illustrator sometimes has problems with svg, so we recommend eps here.
- download the multiple sequence alignment used to create the current tree (if available). It the tree is pruned, the alignment will contain only those species which are present in the pruned tree. You can choose clustal, phylip or FASTA as alignment output formats.
In addition to the Tree Of Life and other precomputed trees available through the 'Other trees' page, you can upload and display your own trees.
To upload a tree, go to the 'Data upload' page. Your tree should be in a plain text file, and in any of the supported formats (Newick, Nexus or PhyloXML).
Example trees in Newick format:
| Tree with bootstraps and branch lenghts | Tree with internal node IDs |
|---|---|
(A:0.1,(B:0.1,C:0.1)90:0.1)98:0.3);
A, B, C : leaf names
0.1, 0.3 : branch lenghts
90,98 : bootstrap values
|
(A:0.1,(B:0.1,C:0.1)INT1:0.1[90])INT2:0.3[98]);
A, B, C : leaf names
INT1, INT2 : internal node IDs
0.1, 0.3 : branch lenghts
90,98 : bootstrap values
|
Uploading datasets
When uploading a tree, you can optionally upload extra data for display on it. Note that the datasets must be uploaded together with the tree, at the same time. Up to 5 sets of data can be displayed on one tree. Each dataset should be in a separate plain text file. All fields should be separated using the same separator (you can choose space, comma or tab character). First field on each line should be the name of one of tree leaves, followed by the actual data value(s).
iTOL can display the following types of data:
Binary data
Leaves of the tree have either zeroes or ones associated with them. Each value will be represented with a square, white for zeroes and your selected color for ones.
Example:
Dataset file:
Gallus_gallus,1
Rattus_norvegicus,1
Mus_musculus,0
Homo_sapiens,1
Pan_troglodytes,0
|
Graphical representation:![]() |
Simple bar charts
Leaves have a single value associated with them. Highest value in the dataset is shown as a bar with the selected maximum pixel size, and others are adjusted proportionally to it. Bars will be filled with the color you selected during upload.
Example:
Dataset file:
Gallus_gallus,50
Rattus_norvegicus,10
Mus_musculus,75
Homo_sapiens,100
Pan_troglodytes,90
|
Graphical representation:![]() |
Multi-value bar charts
Leaves have multiple values (up to a 100) associated with them. Leaf with the highest sum of values will be represented with a bar with the selected maximum pixel size, and all other values will be adjusted based on it. First line of the dataset file must contain the labels for individual fields (first field of the line should be LABELS, followed by the actual labels). Labels will be shown when hovering mouse cursor over the bars in the graphical display, and used to display a separate legend in the exported tree images. Second line can be used to define the colors for individual fields (optional; first field should be COLORS, followed by color definitions in the standard hexadecimal RGB notation).
Example:
Dataset file:
LABELS,mylabel_1,mylabel_2,mylabel_3
COLORS,#ff0000,#00ff00,#0000ff
Gallus_gallus,20,20,20
Rattus_norvegicus,50,10,75
Mus_musculus,100,50,20
Homo_sapiens,75,50,10
Pan_troglodytes,20,20,50
|
Graphical representation:![]() |
| If 'Align individual fields' is selected during upload, each field's start will be aligned based on the maximum values of previous fields. | Graphical representation:![]() |
Pie charts
Input file is almost identical to the 'Multi-value bar charts' described above, and follows the same rules. The important difference is that you can associate data with internal tree nodes. Internal nodes can be defined in two ways:
- If your tree has proper IDs associated with internal nodes (see the first section of 'Uploading and working with your own trees' section), you can use these directly.
- Use two leaf IDs separated with a vertical line (|), whose last common ancestor will be used as the internal node (see the example below).
In addition to the standard data points for each node, first field after the node ID can be used to define the radius of the pie chart (in format R + numeric value, for example R50). Values for all the radii defined will be normalized according to the values selected during upload ('Min. radius' and 'Max. radius' pixel values). Defining the radius is optional, but data for leaves without a defined radius will be displayed as a multi-value bar, using the rules defined above (in the example below, Gallus gallus and Pan troglodytes have radii defined, so their data is displayed as a pie chart).
Example:
Dataset file:
LABELS,test0,test1,test2,test3
COLORS,#ff0000,#00ff00,#0000ff,#ff00ff
Gallus_gallus|Homo_sapiens,R50,10,20,20,10
Rattus_norvegicus|Mus_musculus,R100,20,20,20,10
Homo_sapiens|Pan_troglodytes,R50,20,10,10,20
Homo_sapiens|Mus_musculus,R75,10,10,10,10
Homo_sapiens,20,20,20,20
Pan_troglodytes,R50,20,20,20,20
Mus_musculus,10,20,30,40
Rattus_norvegicus,20,10,40,40
Gallus_gallus,R50,20,20,20,20
|
Graphical representation:![]() |
Color gradients
Leaves have a single value associated with them. Each value is converted into a colored box, using the color selected during upload.In addition, you can specify the color in the dataset file, using a line starting with field 'COLOR' and using a color hex code after the separator (for example, "COLOR,#ff00ff"). Highest value in the dataset is displayed using the exact color specified, with lower values gradually fading towards white (for the lowest value in the dataset).
Example:
Dataset file:
Gallus_gallus,50
Rattus_norvegicus,5
Mus_musculus,20
Homo_sapiens,10
Pan_troglodytes,40
|
Graphical representation:![]() |
Color strips
You can define your own colors for each leaf separately. Use the standard hexadecimal color notation (for example, #ff0000 for red). Optionally, each leaf can have a text label associated with it. The label, if defined, will appear in a popup window when the mouse pointer is above the corresponding dataset point. Labels should be the 3rd field in the dataset file (in the example below, it would be "Homo_sapiens,#0000ff,MY_LABEL").
In addition, you can use this dataset type to automatically assign colors to tree branches. Ancestral branches whose children have identical colors will be colored as well. In the example below, upload option 'color branches and show boxes' was used (in the Branch coloring section).
Example:
Dataset file:
Gallus_gallus,#ff0000
Rattus_norvegicus,#00ff00
Mus_musculus,#00ff00
Homo_sapiens,#0000ff
Pan_troglodytes,#0000ff
|
Graphical representation:![]() |
Time series
This dataset will provide an animated view of multiple values associated with each leaf (ie. an animated simple bar chart). First line of the dataset file must contain the labels for individual values (first field of the line should be LABELS, followed by the actual labels). Labels will be shown in the animation control box, above the progress bar. Second line can be used to define the colors for individual fields (optional; first field should be COLORS, followed by color definitions in the standard hexadecimal RGB notation).
When a time series is displayed in iTOL, you will see a 'Time series control' box, which is used to control the animation. Click the play/pause button to start or stop the animation. You can also drag the progress bar indicator to quickly find a specific field.
Example:
Dataset file:
LABELS,test0,test1,test2,test3,test4
COLORS,#ff0000,#00ff00,#0000ff,#ff00ff,#ffff00
Gallus_gallus,10,30,20,50,30
Rattus_norvegicus,30,20,40,5
Mus_musculus,20,50,10,30,50
Homo_sapiens,10,30,40,20,40
Pan_troglodytes,30,10,50,20
|
Graphical representation:![]() |
Protein domain architecture
Each leaf in the tree can have a protein domain architecture associated with it. Even though it's primary use is for the display of protein domains, it can be used for various other purposes. The format is as follows: Each line should have a leaf ID, total protein length, and the definitions of the domains. The domain definitions field contains one or more domains, separated using the same character which is used in the first two fields. Each domain definition consists of 5 parts, separated with vertical lines ("|"). For example:
RE|100|150|#ff0000|SH2The fields are:
- RE: 2 character code defining the domain shape (see below for supported shapes)
- 100: domain start position
- 150: domain end position
- #ff0000: color definition (hexadecimal RGB notation)
- SH2: domain label
Supported domain shapes:
| Code | Shape | Example |
|---|---|---|
| RE | rectangle | ![]() |
| HH | horizontal hexagon | ![]() |
| HV | vertical hexagon | ![]() |
| EL | ellipse | ![]() |
| DI | rhombus (diamond) | ![]() |
| TR | right pointing triangle | ![]() |
| TL | left pointing triangle | ![]() |
| PL | left pointing pentagram | ![]() |
| PR | right pointing pentagram | ![]() |
| PU | up pointing pentagram | ![]() |
| PD | down pointing pentagram | ![]() |
| OC | octagon | ![]() |
| GP | rectangle (gap) | ![]() |
'GP' shape (for 'gap') will be displayed as a 1/3 height rectangle, and it's primary use is for the gaps in the multiple sequence alignments.
Example dataset:
Dataset file:
Gallus_gallus,300,EL|10|50|#ff0000|DUF17,DI|200|290|#aaff00|DUF22
Rattus_norvegicus,360,TR|50|170|#aa00cc|DUF2,TL|175|270|#f044ff|DUF4
Mus_musculus,320,DI|80|190|#f0c0c0|DUF7,EL|175|225|#3400ff|DUF10
Homo_sapiens,350,RE|100|150|#a0faa0|DUF4,HH|250|310|#ffff00|DUF7
Pan_troglodytes,350,HV|20|110|#0043ff|DUF1,EL|125|325|#0dfff0|DUF2
|
Graphical representation:![]() |
Heatmaps
Leaves have multiple values associated with them, which are converted into colors based on gradients selected during upload. You have to select 3 values and their correpsonding color: maximum,minium and midpoint. They don't need to correspond to the actual min and max values in the dataset, and midpoint does not need to be exactly in the middle. These values are used to construct 2 color gradients (from minimum to mindpoint and from midpoint to maximum). Dataset values are then mapped to these gradients to select their color. Each value will be represented with a colored box or the width specified. The whole dataset cannot be wider than 5000 pixels, so pratically the limit is 5000 values per leaf (with 1px box width).
First line of the dataset file must contain the labels for individual fields (first field of the line should be LABELS, followed by the actual labels). Labels will be shown when hovering mouse cursor over the boxes in the graphical display, and used to display a separate legend in the exported tree images.
Example:
Dataset file:
LABELS,mylabel_1,mylabel_2,mylabel_3,mylabel_4
Gallus_gallus,-10,-5,0,5
Rattus_norvegicus,-5,0,5,10
Mus_musculus,-20,0,20,30
Homo_sapiens,-10,5,15,25
Pan_troglodytes,-5,0,10,30
|
Graphical representation:![]() |
Boxplots
Boxplot datasets can be uploaded in 2 ways:
- Direct upload of five-number summaries and extremes: each leaf has a least 5 values associated with it. Starting from left, the first 6 fields must be: leaf ID, minimum value, lower percentile, median, upper percentile and maximum value. An unlimited number of extra fields can be added, each representing an outlier value (either high or low).
- Upload of raw data: each leaf has at least 4 values associated with it. iTOL will calculate all needed values to display a boxplot for each leaf. You can specify the lower and upper percentile during upload (by default, these will be 25% and 75%). You can also define the step constant, which will be multiplied with each leaf's box size to define the related whisker size. The constant can be any number above zero, and is normally set to 1.5. When uploading raw data, you can also optionally control the drawing of outliers, using the 'Calculate extremes' option in the upload form.
Example:
In this example, the dataset contains the five-number summary for each leaf, plus several outliers (for Gallus_gallus, Mus_musculus and Pan_troglodytes)
Dataset file:
Gallus_gallus,10,15,20,25,30,0,5,60
Mus_musculus,5,20,40,50,60,70,80
Rattus_norvegicus,15,30,40,50,65
Homo_sapiens,10,20,35,50,55
Pan_troglodytes,10,20,40,55,65,80
|
Graphical representation:![]() |
Displaying horizontal gene transfers (HGTs) on your tree
iTOL is one of the first tree display tools which can display horizontal gene transfers annotated in the original Newick file, ie. no extra files are necessary. HGT information is included in the IDs of tree nodes. Therefore, in addition to leaf IDs, your tree must have unique IDs assigned to all internal nodes. A valid Newick tree with internal node IDs is shown in the example above (first part of the 'Uploading and working with your own trees' section).
Annotating HGTs in the Newick tree
HGT information is included in the ID of the originating node. After the ID, first add the keyword #HT# followed with a list of one or mode destination nodes. Separate multiple destinations with a + sign. You can optionally define the color for each HGT. Use the standard RGB hexadecimal notation (for example, 0xff0000 for red) and put the color after the destination node ID, separated with a | symbol (vertical line).
Here are two examples:
| Newick tree | Graphical representation: |
|---|---|
(A:0.1,(B:0.1,C:0.1)INT1#HT#A:0.1[90])INT2:0.3[98]);Internal node INT1 is the originating node and leaf A is the destination. |
|
separators
| | |
| | |
((A#HT#C:0.1,(B:0.1,C:0.1)INT1:0.1[90])INT2:0.3[98],(D:0.1,E:0.2)INT3#HT#B|0xff0000+INT1|0x0000ff:0.3[95]);
| |
| |
destination 1 destination 2
There are 3 HGTs annotated here.First is a simple one from leaf A to leaf C. Other two are originating from internal node INT3. HGT towards leaf B will be colored red (0xff0000), and the one towards node INT1 will be blue (0x0000ff). Destinations are separated with a + (plus) sign, and colors are separated from destinations with a | (vertical line) sign. |
|
Automatic assignment of species names and taxonomic names for internal nodes
After a sucessful upload, you will get an option of automatic assignment of taxonomy information to your tree. This option will only be available if all leaf IDs in your tree are NCBI species taxonomy IDs. The procedure is as follows:
- For each internal node in the tree, get all leaf IDs
- For each of these leaves, find the lowest common taxonomic classification in the NCBI tree
- If this name is assigned to other internal nodes which are not subnodes of the current node, add the keyword 'subclade'
In addition to the internal nodes, leaf IDs will be changed from taxID into their proper scientific names.
Defining color ranges and clade colors
Color definition file:
Gallus_gallus|Homo_sapiens clade #0000ff no_label
Pan_troglodytes|Homo_sapiens clade #00ff00 no_label
Mus_musculus|Homo_sapiens range #aaffaa Euarchontoglires
Homo_sapiens range #ff0000 important1
Gallus_gallus range #ff0000 important1
|
Tree:![]() |
Defining font styles for the leaf labels
You can use various font styles (bold, italic or bold-italic) in the leaf labels. These styles will only be used during tree export to graphical file formats. Font style definitions should be uploaded in a separate file, using the file selection box provided below the main tree upload box.
Styles are defined as follows:
- one line per leaf, two fields per line, tab separated
- first field corresponds to a tree leaf ID
- second field defines the font style, using simple tags
Here is an example file:
Homo_sapiens <B>Homo</B> <BI>sapiens</BI> Pan_troglodytes Pan <I>troglodytes</I> Escherichia_coli_K12 <B>Escherichia coli</B> <I>K12</I>In the final tree, these would be displayed as:
Homo sapiens Pan troglodytes Escherichia coli K12
Defining names for internal nodes
To define names for internal nodes in your tree, you can upload an extra file (using the 'Names for internal nodes' field on the upload page).
Names are defined in the file as follows:
- one line per leaf, two fields per line, tab separated
- first field defines the internal node:
- directly, using an ID (if your tree has proper internal node IDs assigned)
- using two leaf IDs separated with a vertical line (|), whose last common ancestor will be used as the internal node
- second field defines the name of the internal node
Example:
Name definition file:
Gallus_gallus|Homo_sapiens Gnathostomata
Mus_musculus|Homo_sapiens Euarchontoglires
Homo_sapiens|Pan_troglodytes Hominidae
In this example
|
Tree:![]() |
Defining clades which will be collapsed by default
If you are working with very large trees, you can upload a file with a set of internal node IDs which should be collapsed by default. The IDs should be on separate lines in the file (ie. one ID per line), and can either be direct internal node IDs (if your tree has them), or you can define them by using two leaf IDs for which that node is the last common ancestor (see the details in the section above, 'Defining names for internal nodes'). For the example tree above, if your pre-collapsed clades file contains only the line:
Mus_musculus|Homo_sapiens
the node INT2 will be collapsed by default.
If you are using iTOL to upload and display your own trees, you can create a personal iTOL account. It will allow you to access your trees from anywhere, organize them into workspaces and projects and easily manage datasets and other tree features. Your trees are kept private and stored localy in iTOL. You can easily share your trees with others by sending them a link to your tree in iTOL.
Detailed help and explanation of user account features is avaliable on a separate page.
Advanced users are encouraged to use iTOL batch access capabilities for large scale tree upload and export. The interfaces are described in detail on a separate page, together with example upload and download scripts.
If you have a question/comment, please contact the developer.

























