Phylogenomics with OrthoFinder
Nasir Mahmood Abbasi, PhD
Bioinformatics Educator
OrthoFinder compares protein-coding genes across proteomes, groups related genes, infers gene trees and a species tree, and reports orthology and duplication relationships. This guide follows the evidence from input files to a defensible interpretation; the program does not turn every orthogroup into a one-to-one marker or prove a biological explanation for a gene-family change.
Format: Conceptual guide. Readers with an OrthoFinder run and predicted protein FASTAs will complete a version-aware review of one orthogroup, its gene tree, and the rooted species tree; no example proteomes are bundled, so prepare inputs and run OrthoFinder before the review exercise.
Prerequisite: predicted protein sequences in FASTA format for each species, with consistent and unique sequence identifiers. The commands below assume OrthoFinder is installed and available as orthofinder. No particular annotation pipeline is required.
1. Prepare the proteomes
Put one protein FASTA file per species in a directory. OrthoFinder treats each file as a species-level input; use filenames that identify the species and keep sequence IDs unique within each file. Its input is amino-acid sequences, not genome assemblies or nucleotide coding sequences. The official project documents FASTA extensions including .fa, .faa, .fasta, .fas and .pep.
proteomes/
speciesA.faa
speciesB.faa
speciesC.faa
Before the run, check that each file parses as FASTA, contains protein sequences rather than nucleotide strings, and has at least one record. Check for duplicated headers and truncated or poorly supported gene models. Uneven annotation completeness can change which orthogroups appear complete, so record the assembly, annotation and proteome versions used. A BUSCO assessment can provide a separate completeness check; matching BUSCO and OrthoFinder markers is useful context, not proof that either set is error-free.
2. Run OrthoFinder and locate the results
From the directory containing proteomes/, run:
orthofinder -f proteomes/
The -f option points to the directory of input FASTA files. A standard run searches sequences across proteomes and infers orthogroups, gene trees, a species tree and orthology relationships. How the species tree is inferred depends on the release and workflow, as explained below; do not assume every version uses the same executable defaults.
For a small software check without preparing your own proteomes, the official OrthoFinder 3.2 release includes an ExampleData.tar.gz archive. Its four root-level Mycoplasma proteomes completed with orthofinder -f ExampleData -t 4 in the check described below. The added -t 4 bounds search threads. Use the provided ExampleData directory instead of proteomes/ for that demonstration; it is a software example, not a comparative-genomics study.
Capture the installed release before running, rather than assuming a version for these instructions. For the usual command-line distribution, run orthofinder --version; if that release does not accept the flag, run orthofinder -h and retain the version banner shown there together with the installation source and full help output. Record the exact command and any non-default options.
OrthoFinder creates a results directory under the input area. Read the run log for the exact path and version, then inspect that run's output tree. The verified 3.2 run produced Species_Tree/SpeciesTree_rooted.txt and Orthogroups/Orthogroups.tsv. From version 3.1, the final orthogroups are in that Orthogroups.tsv table; Phylogenetic_Hierarchical_Orthogroups/N0.tsv is no longer produced. A legacy run may have N0.tsv, but its absence is not a failure in a 3.1-or-later run. Consult the matching release guide instead of assuming that one directory convention applies to every version.
Checkpoint: Keep the run command, software version, input filenames and complete results directory together. A completed 3.2 run should include the rooted species tree and Orthogroups/Orthogroups.tsv; use the run log and matching release guide for other releases. If the run reports missing external programs, malformed FASTA, or failed search steps, resolve that failure before interpreting partial files as a completed analysis.
3. Read orthogroups as gene families, not automatic markers
An orthogroup contains genes descended from one ancestral gene at the last common ancestor of the species represented in that group. A species can contribute multiple genes after duplication, or no gene because of loss, missing sequence, incomplete annotation, or the group’s taxonomic scope. Therefore, orthogroup membership alone does not establish one-to-one orthology.
Inspect species membership and copy number for candidate groups. An all-species, single-copy orthogroup has exactly one sequence from every species in your chosen set, making sequence correspondence easier to interpret. It is a useful marker candidate, not a guarantee of correct alignment, neutrality, or an uncontested species history. Check gene-tree quality and alignment, and consider whether the taxon sampling, missing data and evolutionary rates make the locus appropriate.
Restricting selection to all taxa may leave few candidates when proteomes are incomplete or species differ greatly in gene content. A relaxed occupancy threshold can retain more loci, but creates missing entries and changes the set of taxa represented at each locus. State the threshold and its rationale; do not describe a partial-occupancy set as universally single-copy.
4. Interpret the species tree and choose downstream analysis
In OrthoFinder 3.2, a standard core -f run infers its species tree from a concatenated alignment of single-copy orthogroups. The --assign workflow, or an explicit -ST astral-pro choice, uses gene-tree-based ASTRAL-Pro inference instead. Older releases and settings used STAG for species-tree inference and STRIDE for rooting from gene-duplication evidence. Record the actual release, workflow and tree options; do not describe every OrthoFinder run as STAG-based or as never using concatenation. The topology and root depend on the inputs, taxon sampling, available signal and settings. Treat the tree as an estimate to inspect, not a guaranteed true history.
For a separate phylogenomic analysis, aligned loci can be concatenated and analysed as a partitioned supermatrix, or gene trees can be estimated locus by locus and summarized with a coalescent method such as ASTRAL. These approaches answer related but distinct modeling questions. Concatenation can be useful, but a single-tree model may be inadequate when loci have discordant histories. Coalescent summary methods use gene-tree information and also inherit gene-tree estimation error; they are not automatically superior for every dataset. Compare results and support, and investigate causes of disagreement. Discordance alone does not identify incomplete lineage sorting: duplication, gene flow, model misspecification, alignment error, sampling and weak signal can also contribute.
Worked review task
Use the exact results directory printed by your run. In OrthoFinder 3.1 or later, open Orthogroups/Orthogroups.tsv; a legacy run may instead use the documented root-level HOG table Phylogenetic_Hierarchical_Orthogroups/N0.tsv. Confirm the table's species columns from its header, then choose a row and count the comma-separated gene IDs in each cell; an empty cell contributes zero. For example, counts 1, 1, 1 across three species give three sequences and make that row an all-species single-copy candidate; 2, 1, 1 gives four sequences and is not single-copy. These are arithmetic examples, not claimed OrthoFinder output.
- Record the OrthoFinder version, species filenames, input sequence type and results path.
- Choose one orthogroup, transcribe its ID and per-species copy counts, and label it all-species single-copy only if every species contributes exactly one.
- Find the gene tree corresponding to that group using the filename/ID convention documented for your release. If no tree is provided for the group, report that absence rather than substituting another group's tree. Note missing taxa, multiplicity, weakly supported or long branches, and alignment concerns; a gene tree is not an alignment-quality assessment.
- Open
SpeciesTree_rooted.txtin the species-tree results directory and compare its taxa and topology with the sample design and any independently estimated tree. Record disagreements as questions to investigate, not as proof of a specific evolutionary process.
Success check: identify the run directory and version, locate the species tree and a documented orthogroup table, and produce one row of counts that sums to the number of listed gene IDs. If the expected table or matching tree is absent, check the release-specific output guide and run log before continuing.
Deliverable: a short annotated table of candidate groups with per-species copy counts, inclusion decision, evidence and caveats, plus the software/version metadata and the species tree examined.
Common problems and interpretation limits
- Very few shared single-copy groups: check proteome completeness, annotation quality, taxon sampling and whether the group’s taxonomic scope matches the analysis before relaxing occupancy.
- Apparent family expansion: check assembly and annotation differences, fragmented or duplicated gene models, identifiers and sampling before proposing biological expansion or adaptation. Comparative counts alone do not establish selection or function.
- Unexpected tree topology: verify species labels, input versions, outgroup/root assumptions, orthogroup occupancy and gene-tree/alignment quality. A rooted output is not equivalent to independent validation of its root.
- Concatenation and gene-tree summary disagree: report the disagreement and inspect locus support and model assumptions. Do not attribute it to ILS without additional evidence.
References and software documentation
OrthoFinder 3.2 completed on Ubuntu with the official four-proteome Mycoplasma example and -t 4, producing the rooted species tree and final orthogroup table. This checks software execution and output structure, not biological truth, other datasets or other operating systems. Record your installed version and consult the official documentation for that release before interpreting version-dependent paths. If a command does not work or you find an error, please report it through the Contact page.
Author: Nasir Mahmood Abbasi, PhD - Category: Evolutionary and Comparative Genomics