jane* docs
Start hereWorkflows

Align a set of homologues and build a tree from it

The route: get the sequences in → align them → read the alignment before you trust it → build the tree → put support on it → read what the tree does and does not say.

Every number below came from running the engines on data/samples/FASTA/COI-crickets.fasta — eight real bush-cricket COI barcodes, seven of 601 bp and one of 589, which the Phylogenetics starter opens.


Step 1 — Get the sequences in

Tool: the lobby, or File → Import.

Open the Phylogenetics starter. It carries the cricket COI set, an HIV-1 env set of 19 sequences, three globin proteins, and a Newick tree — so you can also start from a tree someone else built rather than from sequences.

If your sequences are already aligned, say so: an alignment in CLUSTAL, Stockholm, PHYLIP (interleaved or sequential), MSF or aligned FASTA opens directly, and the Alignment sample starter has one of each. Re-aligning an alignment is a real mistake — it lets the aligner move columns that a curated alignment deliberately fixed.


Step 2 — Align

Tool: Multiple Sequence Alignment.

Running the eight cricket sequences:

8 rows × 624 columns
fully conserved columns   382 of 624   (61.2%)
non-gap                   96.07%
entropy                   −162.08

The alignment is 624 columns long from inputs of 601 — the extra 23 are gaps the aligner opened, including the ones absorbing the short 589 bp sequence. Per column you get the consensus base, the identity fraction, the coverage, and the CLUSTAL-style * for a fully conserved column:

consensus     TTTCTTTCTCTTTAAGATTTACTAATTCGAGCTGAATTAGGTCAACCAGGATATCTAATT
conservation                **      **** ** ** *** * ** ** ** ** **  *****

The engine is a partial-order aligner, and its knobs are real: global versus local, and the match / mismatch / gap scores. Local is the default, as upstream has it.

One score is deliberately empty until you choose something:

sumOfPairs   null
star         null
matrix       null
matrixError  "No substitution matrix selected (choose PAM250/BLOSUM62 for
              protein, EDNAFULL for DNA)."

A sum-of-pairs score is meaningless without saying which substitution matrix it is a sum over, so rather than quietly picking one, the field stays null and names the choice you have to make. Pick EDNAFULL for this DNA set and the score appears.

Check before moving on: the conserved fraction is plausible for what you aligned. 61% fully conserved across a barcoding locus in one family is reasonable; 99% means your sequences are nearly identical and a tree will mostly be noise, and 20% means they may not be homologous at the ends — look at where the gaps are before you build anything on it.


Step 3 — Choose a method, knowing that they answer different questions

Tool: Phylogenetics.

Getting there is one click. With the alignment open, press Build tree in its toolbar (it is also in the alignment's right-click menu). The aligned rows go straight across, so the panel opens already scoped to them, and the two stay linked afterwards: clicking a clade in the tree selects those rows in the alignment, and the tree's tip order can be pushed back as the alignment's sort order.

Eight methods ship — Neighbor-Joining, BIONJ, FastME (balanced), FastME (OLS), UPGMA, WPGMA, Maximum Parsimony and Maximum Likelihood — and fourteen DNA distance models: uncorrected p-distance, raw counts, transitions only, transversions only, JC69, K80, F81, K81, F84, T92, TN93, Log-Det, indel and indel-block.

The same alignment, the same K80 distances, four methods:

MethodTotal branch lengthHeightRooted?Assumes a clock?Colless
Neighbour-joining0.70500.1343nono11
BIONJ0.70400.1398nono15
UPGMA0.68990.1060yesyes14
FastME (balanced)0.70500.1493nono21

The rooted column is the one that matters. UPGMA returns a rooted tree because it assumes a molecular clock — equal rates on every lineage. That is a strong assumption and usually a wrong one, and it is why UPGMA's root is not evidence about which lineage diverged first. The other three return unrooted trees, and the app says so per method rather than drawing a root and hoping you notice. Root them yourself, at the midpoint or on an outgroup, as a stated act.

Maximum likelihood is the odd one out and worth the wait. It is the only method that reports a likelihood, and therefore the only one whose models can be compared by AIC/BIC rather than by preference. Six rate models (JC69, F81, K80, HKY, TN93, GTR), discrete-Gamma rate heterogeneity, a proportion of invariant sites, and separate switches for which parameters the optimiser may move — topology, rates, base frequencies, shape, invariant fraction. Everything it reports (log-likelihood, df, AIC, BIC, fitted shape, base frequencies, exchangeabilities, accepted NNI moves) is a fitted number, not a default echoed back.


Step 4 — Put support on it

Set bootstrap replicates and a seed. 100 replicates on the NJ tree above:

(Metrioptera_japonica_EF540831:0.0846,
 (Montana_montana:0.0793,
  (Roeseliana_roeseli:0.0432,Bicolorana_bicolor_EF540830:0.0525)89:0.0162)20:0.0035,
 (Gampsocleis_sedakovii_EF540828:0.1183,
  (Deracantha_deracantoides_EF540:0.0894,
   (Phaneroptera_falcata:0.0838,Isophya_altaica_EF540820:0.0965)91:0.0243)46:0.0078)19:0.0056)100;

The support summary over the six internal branches: mean 60.8, median 67.5, min 19, max 100 — three branches at ≥70, one at ≥95.

Read that as three resolved branches and three unresolved ones, not as a tree with a few weak spots. Support of 19 and 20 means the data do not distinguish that grouping from its alternatives; the branch is drawn because a bifurcating tree has to draw something, not because it was found. (Roeseliana, Bicolorana) at 89 and (Phaneroptera, Isophya) at 91 are the two groupings this alignment actually supports.

The seed makes it reproducible. Quote the replicate count and the seed alongside any support value you publish.


Step 5 — Read the tree, and the statistics under it

Beyond the picture, the tree carries measurements — for the NJ tree above: height 0.1343, total length 0.7050, diameter 0.2469, 2 cherries, Colless 11, Sackin 22, treeness 0.0814, γ −2.239, mean branch length 0.0504, mean internal branch length 0.0096, and 1 zero-length branch.

Two of those deserve a sentence each. Treeness at 0.08 means only 8% of the tree's length sits on internal branches — most of the signal is on the tips, which is the quantitative version of "the groupings are weakly supported" you already saw in step 4. And a zero-length branch is a polytomy in disguise: the method had to bifurcate, found no evidence for either order, and gave the branch no length.

From here you can reroot at the midpoint or an outgroup, ladderize, prune tips, collapse weakly supported branches into polytomies, compare two trees, get the patristic distance matrix, or export to Newick, Nexus, NeXML or PhyloXML.

Check: the tree you export has its method, its model, its bootstrap count and its rooting stated alongside. A Newick string alone loses every one of those, and they are what makes the tree interpretable.


What you did, and where each piece lives

StepToolHand-off
1Lobby / importSequences, or an alignment opened as one
2Multiple Sequence AlignmentAligned rows + per-column consensus and conservation
3PhylogeneticsA tree, with its rooting and clock assumption stated
4Same panel, bootstrapSupport on every internal branch
5Same panel, statistics + exportShape measures, rerooting, pruning, four export formats

If it does not work

SymptomWhere to look
The sum-of-pairs score is nullNo substitution matrix chosen. Pick EDNAFULL (DNA) or BLOSUM62/PAM250 (protein) — it is a choice, not a default
The alignment is mostly gapsYour sequences may not all be homologous, or one is a fragment. Look at the conservation row before building a tree
A distance model is rejectedModel ids are case-sensitive and listed by the picker — K80, not k80
UPGMA gives a different root from everything elseIt assumes a molecular clock; the others do not root at all. Not a disagreement about topology
Support values below 50 everywhereThe alignment does not resolve those branches. Treeness and internal branch length will say the same thing in numbers
A branch has length zeroAn unresolved polytomy the method had to bifurcate. Collapse it rather than reading an order into it

The tools, in depth: Multiple Sequence Alignment · Phylogenetics · Dot Plot for a pairwise look before you commit to an alignment

What feeds this: BLAST Search and Search Databases to collect the homologues in the first place.

A different question about the same data: Compare Traces to Reference aligns reads against one reference rather than everything against everything — the same viewer, a different claim.

The canvases this draws on: the alignment · the tree.

On this page