Ensembl Compara Gene Trees Explained
By Dr. Zubair Khalid, DVM, MS, PhD ·

An Ensembl Compara gene tree is a computationally reconstructed evolutionary tree for a single protein family, built from the proteins of every species in Ensembl and reconciled against the species tree so that each internal node is labeled as a speciation, a duplication, or a gene split. Every ortholog and paralog call that Ensembl Compara publishes is read off the structure of these labeled trees, which makes the gene trees the computational backbone of all Compara homology statements.
That backbone supports a large share of day-to-day comparative bioinformatics. Whenever you ask which mouse gene matches a human candidate, whether a fish genome retains a workable counterpart of a human protein, or whether two similar genes in one genome are redundant copies or genuinely different functions, you are consuming the output of these trees. Automated orthology underlies annotation transfer between genomes, model organism selection, gene family evolution studies, and judgments about conservation in regions of interest. Different orthology resources also disagree in structured, method-dependent ways, so understanding exactly how one major resource builds its calls is a transferable skill for evaluating all of them. This article works as a compact Ensembl Compara gene tree tutorial. Each concept is paired with a concrete action in the Ensembl genome browser, the REST API, BioMart, or a database client, and the interpretation rules are stated plainly enough to apply to your own data.
What an Ensembl Compara Gene Tree Is
Ensembl is the genome annotation and browsing project operated by the European Molecular Biology Laboratory's European Bioinformatics Institute (EMBL-EBI), and Compara is its comparative genomics unit. The main Ensembl site covers vertebrate species, while Ensembl Genomes extends the same machinery to the Bacteria, Fungi, Metazoa, Plants, and Protists divisions. At each release, the Compara pipeline groups protein coding genes into families, aligns each family, reconstructs a tree, and reconciles that tree with the species tree. The result is a labeled gene tree carrying a stable identifier that begins with ENSGT, together with the pairwise ortholog and paralog relationships derived from it. Compara also produces whole-genome alignments and other comparative datasets, but the gene trees are what generate its homology calls.
Three definitions carry most of the meaning. Homology means shared ancestry between sequences. An ortholog is a pair of genes in different species whose most recent common ancestor was the speciation event that separated those species. A paralog is a pair of genes whose most recent common ancestor was a duplication event. Ensembl spells these words orthologue and paralogue in its web interface, while the machine-readable labels use ortholog and paralog, so you will meet both spellings inside a single workflow.
A short example shows how reconciliation turns a tree into calls. Imagine a family with one gene in human, one in mouse, one in chicken, and two in zebrafish. The species tree places the two zebrafish genes inside the teleost fish lineage, which experienced an ancient whole-genome duplication, a doubling of the entire gene complement. A node joining the two zebrafish genes therefore falls inside the fish branch, and reconciliation labels it a duplication. Each zebrafish copy is then reported as a one2many ortholog of the single human gene. Nothing in that chain of reasoning required manual inspection, which is exactly why the labels deserve the scrutiny described later in this article.
| Term | Plain-language meaning | Most often confused with |
|---|---|---|
| Gene tree | Reconstructed ancestry of one protein family across species | Species tree |
| Species tree | Accepted branching order of the species themselves | Gene tree |
| Homolog | Any pair of genes sharing a common ancestor | A synonym for ortholog, which it is not |
| Ortholog | Genes separated by a speciation event | Paralog |
| Paralog | Genes separated by a duplication event | Ortholog |
| Reconciliation | Mapping a gene tree onto the species tree to label its nodes | Sequence alignment |
| Duplication node | Internal node labeled as a duplication, drawn in red | A weakly supported node |
| Gene split | Node labeled as a split with complementary species coverage, drawn in green | A well-supported duplication |
Two scope facts prevent most beginner confusion. First, Compara builds trees from proteins and uses one representative protein per gene, the canonical protein that Ensembl selects for each locus. Alternative splice isoforms are not separate leaves in the tree. Second, the trees are rebuilt from scratch at every Ensembl release, several times a year, so membership and even tree composition can change between releases. Record the release number whenever you export data.
How Ensembl Compara Builds a Gene Tree, Step by Step

Exact software choices evolve between releases, but the pipeline stages have been stable for years, and each stage leaves a fingerprint you can see in the final tree.
- Choose one protein per gene. For every gene in every species, the pipeline takes the canonical protein. Fragmentary gene models become fragmentary leaves, which is one reason poorly assembled genomes produce odd trees.
- Cluster proteins into families. The pipeline computes all-against-all sequence similarity across the proteomes and treats the result as a weighted graph in which proteins are vertices and similarities are edges. A Markov cluster algorithm (MCL, a graph clustering method that simulates flow through the network to find dense regions) cuts this graph into families. Family boundaries are hard boundaries. Two very divergent members of one true family can land in different clusters, and promiscuous multidomain proteins can pull unrelated genes together.
- Align each family. Each family receives a multiple sequence alignment (MSA, an arrangement of sequences in rows with inferred homologous positions in columns). Compara uses MAFFT, a widely adopted alignment program. Alignment quality constrains everything downstream, because a tree can only be as good as the homology statements in its columns.
- Build candidate trees and merge them. The TreeBeST pipeline constructs several candidate trees from nucleotide and codon-level alignments using complementary methods, then merges them into a single best estimate. Resampling support values attach to internal nodes. These are bootstrap-style percentages, the fraction of resampled datasets that reproduce a given node.
- Reconcile the tree with the species tree. A fixed species tree encoding accepted species relationships provides the reference. The reconciliation algorithm walks the gene tree and labels each node. When the species found in the two child clades overlap, the simplest explanation is a duplication before those species separated, so the node is labeled duplication. When the split matches the species split, the node is labeled speciation. Gains and losses of genes along branches are inferred at the same time, and each duplication node receives a duplication confidence score between 0 and 1 reflecting how strongly the data support duplication over alternative explanations.
- Publish the results. Each reconciled tree receives an ENSGT stable identifier. The trees, their labeled nodes, and the derived pairwise homology relationships are served through the Ensembl web interface, the REST API (an HTTP interface that returns structured data), BioMart, the public MySQL server, and the FTP site.
The fingerprints matter for interpretation. Clustering decides which genes are even considered relatives, so a gene absent from a tree may simply have failed to cluster. Alignment shapes topology and support. Reconciliation decides every orthology label you will ever read off Compara, so disagreements between Compara and other resources usually trace back to the assumptions of that stage.
Reading a Compara Gene Tree: Interpretation Basics
Node colors, support values, and duplication confidence
In the Ensembl display, duplication nodes are drawn in red, speciation nodes in blue, and gene splits in green. Each internal node carries a support value, the bootstrap-style percentage described above. Duplication nodes additionally carry the duplication confidence score. A red node with high support and a duplication confidence near 1 represents a duplication you can plan experiments around. A red node with weak support deserves suspicion, because reconciliation can label a node as a duplication whenever the species distributions of its children overlap, and incomplete sampling or incomplete annotation can mimic that pattern.
Leaves, labels, and the isoform caveat
Each leaf is one gene in one species, labeled with its Ensembl stable identifier (for example ENSG00000139618 for the human BRCA2 gene), the species name, and the gene symbol or protein name where available. The gene you started from is highlighted. Remember that the tree contains one protein per gene, so a gene with six isoforms appears once, represented by its canonical protein.
Homology types and what each one licenses
When you open the Orthologues or Paralogues views, or query the API, Compara reports a typed relationship for each pair. The types encode how many genes participate on each side.
| Label | Meaning | Practical consequence |
|---|---|---|
| ortholog_one2one | Exactly one ortholog on each side | Strongest basis for annotation transfer and pairwise comparison |
| ortholog_one2many | One gene here, several orthologs in the other lineage | Lineage-specific duplication on one side, so choose the closest partner deliberately |
| ortholog_many2many | Duplications on both sides | Reason at the level of groups, not pairs |
| within_species_paralog | Duplicated genes inside the same species | Redundancy, compensation, and off-target considerations |
| between_species_paralog | Genes in different species whose last common event was a duplication | Not direct functional counterparts despite similarity |
| gene_split | Relationship routed through a split node with complementary species coverage | Frequently an annotation or assembly artifact, inspect before use |
| homoeolog_* | Paralogs born from whole-genome duplication in hybrid lineages | Relevant mainly to polyploid plants and crops |
Within-species paralogs that arose after a speciation event, and therefore remain more closely related to each other than to anything in another species, are called in-paralogs in the broader literature. Compara's within_species_paralog label captures the practical version of that idea. Recent releases also mark a subset of calls as high confidence when both proteins cover each other well and similarity passes defined thresholds, which gives you a quick filter for large-scale work.
Losses, splits, and collapsed taxonomy
Reconciliation infers gene losses, and the display marks where a lineage lost a copy. Distinguish a biologically plausible loss, consistent with independent evidence, from a gap caused by an unfinished assembly or a missed gene model. Collapsing the tree by taxonomy condenses clades down to species-group labels so you can see the overall pattern before zooming in. Branch lengths throughout represent expected substitutions per site, a measure of sequence change, not elapsed time and not confidence.
An Ensembl Compara Gene Tree Tutorial: Five Practical Workflows
This section shows how to use Ensembl to answer orthology questions end to end. Most Ensembl genome browser tutorials stop once you have found a gene, and orthology questions start there. The five workflows below cover the common routes from a gene of interest to usable data, and each one ends with something you can save.
Workflow 1: Trace orthologs in the browser
- Open ensembl.org and type a gene symbol or stable identifier, for example BRCA2 or ENSG00000139618, into the search box, then select the human gene entry.
- On the gene page, open the Comparative Genomics section of the left-hand menu and choose Gene tree.
- Read the tree outward from the highlighted focal gene. Red nodes mark duplications, blue nodes mark speciations, and numbers beside nodes give support.
- Click nodes to collapse or expand subtrees, or use the taxonomy collapse option to reduce visual load.
- Open the Orthologues view. It lists, species by species, the homology type, percent identity, dN and dS where computed, and confidence flags. dN/dS is the ratio of nonsynonymous to synonymous substitution rates, and values well below 1 indicate purifying selection acting on the protein.
- Use the export options on the tree page to save an image or the underlying data.
For a gene such as BRCA2, which is retained as a single copy across most vertebrate lineages, you would typically expect a tree dominated by blue speciation nodes and many one2one calls. A tree dominated by red nodes tells a different story and deserves the duplication checks described below.
Workflow 2: Pull homology data with the REST API
The REST service returns the same relationships in machine-readable form:
curl -H "Content-Type: application/json" "https://rest.ensembl.org/homology/id/ENSG00000139618?type=orthologues"
Each returned homology carries the partner gene and species, the homology type, percent identity, dN and dS where available, and confidence fields. Add target_species or target_taxon parameters to narrow the output, and switch the type parameter to retrieve paralogues. For thousands of identifiers, use the batch POST interface of the same endpoint rather than looping over single requests, and keep your request rate modest in line with the service's fair-use guidance.
Workflow 3: Export bulk tables with BioMart
BioMart is Ensembl's bulk export interface, and it is the fastest route to a spreadsheet of orthologs.
- Open BioMart from the Ensembl home page.
- Choose the Ensembl Genes database and the dataset for your query species, for example Human genes.
- Optionally apply a filter, such as a list of gene identifiers you want to restrict to.
- In Attributes, open the gene section and the Compara subsection, select the ortholog attributes, and tick the species you care about.
- Count the results to sanity check the filter, then export as tab-separated values.
The exported columns include the partner gene identifier, the homology type, and identity measures, which is usually everything a downstream script needs.
Workflow 4: Query the Compara MySQL server
Ensembl serves its databases to the public through a MySQL relational database server. The Compara database for each release is named ensembl_compara followed by the release number:
mysql -u anonymous -h ensembldb.ensembl.org -P 5306 ensembl_compara_112 -e "SHOW TABLES"
Match the number 112 to whatever Ensembl release you are working with. The schema centers on three table groups. Member tables register every gene and protein with stable identifiers and species. The homology and homology_member tables hold the pairwise ortholog and paralog calls with their types and statistics. The gene_tree_root and gene_tree_node tables hold the trees themselves, node by node, with node types and reconciliation annotations. Browse the schema documentation before writing production queries, because column layouts are versioned alongside the releases.
Workflow 5: Download trees for local analysis
For local analysis you want the tree itself, not a screenshot. The REST service exposes gene tree endpoints that return the full tree, including Newick-format output (the parenthesized text standard for encoding tree topology and branch lengths). The Ensembl FTP site, a File Transfer Protocol server for bulk downloads, carries the Compara database dumps for each release, including the gene tree tables. The Ensembl Perl API offers programmatic access through the Compara adapters for scripted pipelines. Load a Newick string into a standard tree viewer or a scripting library such as Biopython's Phylo module to prune, reroot, or annotate independently of the web display. Because trees are recomputed every release, a reproduction attempt against a different release can legitimately differ.
What Researchers Use Compara Gene Trees For
Annotation transfer is the workhorse use. A function experimentally established for one gene is provisionally extended to its orthologs, with one2one relationships carrying the least ambiguity. The same logic runs in reverse for experimental planning, because a one2one ortholog in a convenient model species is the usual prerequisite for claiming that a model reproduces the human biology of a gene.
Redundancy and off-target assessment run through within_species_paralog calls. Before designing a knockout or an inhibitor, researchers check which paralogs sit nearby in the same species neighborhood, since close paralogs are the likeliest sources of compensation or cross-reactivity. The globin genes illustrate the vocabulary. Human alpha globin and beta globin are paralogs of each other, products of an ancient duplication, while each has its own orthologs across mammalian genomes.
Evolutionary analyses consume the trees directly. Expansions and contractions of gene families, lineage-specific losses, and the footprints of ancient whole-genome duplications all read out of the labeled nodes. The teleost duplication mentioned earlier is the classic vertebrate example, and plant genomes carry more recent whole-genome duplications that make homoeolog-aware orthology calls essential in crops.
Quantitative comparative genomics prefers one2one pairs. Estimates of dN/dS, divergence of expression patterns, and synteny comparisons are cleanest when exactly one gene on each side descends from the same speciation event, which is why many pipelines filter Compara output to one2one calls as a first step.
Clinical and biomedical interpretation borrows the same logic more cautiously. Conservation of a disease-associated gene across species supports model selection and variant prioritization, but the trees say nothing about regulatory differences or isoform biology, so tree-based conservation is one input among several.
How Reliable Are Compara Gene Trees?

Compara's calls are fully automated. No curator inspects each family tree, and the pipeline's assumptions, especially the reconciliation model, shape every label. The right mental model is a high-quality hypothesis generator that performs strongly on ordinary cases and needs scrutiny at the edges.
Independent benchmarking supports that model. A benchmarking framework compared seven phylogenomic databases (Ensembl Compara, eggNOG, HOGENOM, InParanoid, OMA, OrthoDB, and PANTHER) against reference gene trees [1]. For three well-conserved protein families, the study observed generally high specificity of orthology assignments across these databases [1]. It also concluded that none of the databases provides a fully correct and comprehensive protein classification [1]. The authors proposed a sustainable set of gold standard phylogenetic trees as a way for databases to measure quality across releases and after pipeline upgrades [1]. The benchmark dates to 2011, and both the pipelines and the species panels have moved since then, so treat those findings as evidence about the class of resources rather than a current scorecard for any single release.
Practical verification of a single tree takes minutes and catches most problems:
- Check support values on the nodes you intend to rely on.
- Check the duplication confidence score on any red node that drives a conclusion.
- Inspect the alignment behind suspicious clades, looking for fragments and misaligned regions.
- Cross-check surprising calls against a second resource or against reciprocal searches.
- Examine synteny, the conserved order of neighboring genes on chromosomes, whenever a duplication or loss call matters.
- Confirm that a missing species reflects real loss rather than a gap in assembly or annotation.
Ensembl Compara Compared With Other Orthology Databases
Architectural differences among those seven resources explain most of the practical disagreements you will encounter, and the benchmark attributed the great majority of differences in completeness and phylogenetic content to the underlying database concepts rather than to the prediction methods themselves [1]. In other words, a tree-based resource and a cluster-based resource can both use sound algorithms and still disagree, because they answer slightly different questions.
| Resource | Core approach in outline | Typical contrast with Compara |
|---|---|---|
| Ensembl Compara | Protein family trees reconciled with a species tree | Explicit duplication-aware trees drive every call |
| eggNOG | Precomputed orthologous groups built from similarity clustering | Group membership rather than tree-derived pairwise labels |
| HOGENOM | Homologous families from complete genomes organized with alignment and tree information | Family organization with its own tree conventions |
| InParanoid | Pairwise ortholog detection between two species with in-paralog scoring | Species-pair focus rather than a global tree per family |
| OMA | Orthology inferred from evolutionary distance relationships | Distance-based inference without reconciled family trees |
| OrthoDB | Hierarchical clustering of orthologous groups across taxonomic levels | Clusters defined at multiple taxonomic depths |
| PANTHER | Protein family trees with expert curation and hidden Markov model libraries | Manual curation layered on top of family trees |
Match the resource to the task. Use Compara when you want duplication-aware context and explicit gene tree structure. Use pairwise or cluster-based resources when you want broad coverage quickly. For decisions that matter, cross-check across at least two resources with different architectures.
Common Mistakes and Limitations
- Treating the gene tree as the species tree. A gene tree can disagree with the species tree for real biological reasons, including ancient duplications and incomplete lineage sorting, the situation where ancestral genetic variation survives past a speciation event and produces conflicting genealogies. Read the two trees as different objects.
- Reading branch lengths as time. They measure expected substitutions per site. A fast-evolving protein produces long branches without any extra elapsed time.
- Assuming orthologs share function exactly. Speciation-separated genes can diverge in expression pattern, cellular role, or regulation while retaining recognizable sequence similarity.
- Ignoring node support and duplication confidence. Weakly supported red nodes are the most common source of overconfident downstream claims.
- Forgetting the isoform collapse. One leaf per gene means isoform-specific conclusions cannot be drawn from the tree.
- Trusting gene_split and many2many calls blindly. Both labels frequently reflect annotation or assembly artifacts rather than clean biology.
- Equating absence from a tree with absence from a genome. Clustering failures, fragmented assemblies, and missed gene models all remove genes from trees.
- Overreading duplication nodes as whole-genome duplications, or the reverse. Only chromosome-scale synteny evidence settles that distinction.
- Mixing releases within one project. Trees, identifiers, and even the species panel change between releases.
- Using screenshots of the web tree for computation. Export Newick or query the API instead, so your numbers come from data rather than pixels.
- Confusing similarity with homology. High percent identity between two short, low-complexity regions does not establish common ancestry for the genes.
- Skipping the release number in methods sections. Unreported releases make orthology results impossible to reproduce.
Quick Review
- A Compara gene tree is one protein family's tree, reconciled with the species tree, with nodes labeled speciation, duplication, or gene split.
- Red nodes are duplications, blue nodes are speciations, and green nodes are gene splits, and every label derives from automated reconciliation rather than manual curation.
- Ortholog means separated by speciation and paralog means separated by duplication, with one2one, one2many, and many2many qualifiers counting the genes on each side.
- Duplication confidence scores from 0 to 1 and bootstrap-style support values are the two numbers to check before believing a node.
- Trees use one canonical protein per gene, so isoforms never appear as separate leaves.
- Data exits exist at every level, the browser, the REST API, BioMart, the MySQL server, and FTP, and every export should be tied to a recorded Ensembl release number.
Frequently Asked Questions
What does an Ensembl Compara gene tree show?
It shows the reconstructed evolutionary history of one protein family across the species in Ensembl, with every internal node labeled as a speciation event, a duplication event, or a gene split. The pairwise ortholog and paralog calls in the Orthologues and Paralogues views are read directly from those labeled nodes.
How do I open a gene tree in the Ensembl genome browser?
Search for your gene on ensembl.org, open its gene page, and choose Gene tree under the Comparative Genomics section of the left-hand menu. The focal gene is highlighted, and the Orthologues and Paralogues views sit in the same menu.
What is the difference between an ortholog and a paralog in Compara?
An ortholog pair traces back to a speciation event, while a paralog pair traces back to a duplication event. Compara assigns the label by reconciling the gene tree with the species tree, then refines it with one2one, one2many, or many2many qualifiers that count the genes involved on each side.
Why is a species missing from a Compara gene tree?
The commonest reasons are genuine gene loss in that lineage, an incomplete genome assembly, a missed gene model in the annotation, or a clustering step that placed the gene in a different family. Check the species' gene build and the clustering behavior before concluding that the gene is truly absent.
Can I download Compara gene trees and orthology tables for offline work?
Yes. The FTP site carries the Compara database dumps for each release, BioMart exports custom orthology tables, the REST API returns homology records and Newick-format trees programmatically, and the public MySQL server exposes the full schema under database names like ensembl_compara_112.
How should I judge confidence in a Compara orthology call?
Treat each call as an automated hypothesis and check the evidence attached to it. Look at node support and duplication confidence in the tree, prefer one2one calls for annotation transfer, and cross-check important decisions against a second resource or against manual inspection of the alignment and synteny.