Cladogram Maker
Home/How to make a phylogenetic tree

How to make a phylogenetic tree

A phylogenetic tree shows how a set of species, genes or populations descend from common ancestors. Which method you use depends on the data you have, traits, or distances. This guide covers both, and how to build each one in the browser.

On this page
  1. Start from the data you actually have
  2. Route A, from a character (trait) matrix
  3. Route B, from a distance matrix
  4. Neighbour-joining vs UPGMA
  5. Branch lengths and the scale bar
  6. Support values
  7. Rooting the tree
  8. Styling for a report or poster

Start from the data you actually have

"Phylogenetic tree" is an umbrella term, and the right method follows from your input. There are two common starting points for coursework and small projects:

If your data is raw DNA or protein sequences, you first align them and turn the alignment into a distance matrix (or run a maximum-likelihood program). Alignment and model selection are beyond a browser tool, but once you have a distance matrix, everything below applies.

Route A, from a character (trait) matrix

Use this when you have organisms scored for observable traits. Open Table, keep the Character matrix tab, list your taxa down the side and traits across the top, and click the cells to mark each trait present (1) or absent (0).

The tree is grouped by shared derived characters, traits inherited from a common ancestor. Include an outgroup so the tree has a root and a direction. The full trait-by-trait walkthrough, including choosing an outgroup and checking the result with parsimony, is on how to make a cladogram; a trait-based tree with the tips aligned is a cladogram, the simplest kind of phylogenetic tree.

Route B, from a distance matrix

Use this when you have pairwise distances rather than traits, for example percentage differences between DNA sequences. Open Table, switch to the Distance matrix tab, and paste your matrix. A square grid or just the lower triangle both work:

HumanChimpGorillaOrangutan
Human01.72.33.6
Chimp1.702.43.7
Gorilla2.32.403.8
Orangutan3.63.73.80

Choose NJ or UPGMA, click Build tree, and the tree appears with branch lengths drawn to scale. Because a distance tree carries branch lengths, it opens in phylogram mode automatically.

FishAmphibiansReptilesBirdsMammals0.1
A phylogram of the same tree. Branch lengths are now drawn to scale, so the tips end unevenly and a scale bar is added.

Neighbour-joining vs UPGMA

Both turn a distance matrix into a tree, but they make different assumptions:

Neighbour-joining (NJ)UPGMA
Assumes a constant rate?NoYes
Tips end level?No, each lineage ends where its data puts itYes, the tree is ultrametric
Best whenLineages evolve at different rates (the usual case)Rates really are roughly constant, or you want a clock-like look

Neighbour-joining is the safer default: it recovers the true tree exactly when the distances are additive, and it doesn't assume every lineage changed at the same pace. UPGMA is simpler and produces the neat, level-tipped look of a molecular-clock tree, but it can mislead when rates vary.

Branch lengths and the scale bar

In a phylogenetic tree built from distances, branch length means something: it's the amount of change along that lineage. Long branches are fast-changing or long-isolated; short branches are close relatives. Switch Layout → Tree type between phylogram (to scale) and cladogram (tips aligned, lengths ignored) to see the difference.

A scale bar is drawn automatically in phylogram mode so a reader can measure distances off the figure. Never omit it, without one, branch lengths are unreadable.

Build yours in the browser, no signup, no install.

Open the cladogram maker

Support values

Trees estimated from real data usually carry support values, bootstrap percentages or Bayesian posterior probabilities, that say how well the data back each grouping. If you import a Newick tree (File → Import Newick) that has them, they are read automatically and shown at their nodes. A branch with 95% bootstrap support is well supported; one at 55% is shaky. Toggle them under Style → Support.

Rooting the tree

A tree needs a root to show direction, which way is "back toward the ancestor". The usual method is an outgroup: include a taxon you already know branched off before the rest, then re-root on it. Neighbour-joining produces an unrooted tree, so rooting is a step you add afterward. Select a branch and use the re-root control to place the root there.

Styling for a report or poster

Frequently asked questions

What is the easiest way to make a phylogenetic tree?
From a character matrix if you have trait data, or a distance matrix if you have pairwise distances. Open the Table tool, pick the matching tab, enter your data, and a tree is generated. No account or install is needed.
What is the difference between neighbour-joining and UPGMA?
UPGMA assumes every lineage changes at the same rate and produces a tree where all tips end level. Neighbour-joining makes no such assumption and generally gives a more accurate tree when rates vary, which is the usual situation.
Can I make a phylogenetic tree from DNA sequences here?
Not directly, sequence alignment and model-based inference are beyond a browser tool. But if you convert your alignment into a distance matrix (percentage differences work), you can build the tree with neighbour-joining or UPGMA, then style and export it.
Do I need to know branch lengths?
Only if you want a tree drawn to scale. A distance matrix supplies them automatically. A trait-based tree has no inherent lengths and is drawn as a cladogram with the tips aligned.
Is this phylogenetic tree maker free?
Yes, entirely free, no account, nothing to install. It runs in your browser and your data stays on your device.