Trees You Can Read
Each tree is drawn with its ancestral nodes and their branch support. Click a node to open that ancestor, name it, fold its clade away, or find the same ancestor in every other analysis.
Every protein has a past.
Open source software to find homologs, build trees,
reconstruct ancestors, and send them to the bench.
For protein engineers and evolutionary biologists
You have visited this homepage000001times!
One workflow, automated start to finish.
MAFFTMUSCLEClustal OmegaPRANKIQ-TREERAxML-NGModelFinderGeneRaxGRASPNextflow every citation
Interactive results, saved and repeatable. Every view has an address, and every job keeps its settings and seed, so it can be run again exactly.
Each tree is drawn with its ancestral nodes and their branch support. Click a node to open that ancestor, name it, fold its clade away, or find the same ancestor in every other analysis.
An ancestor depends on the alignment, tree and model behind it. PhyloBot finds each ancestor again in every other combination you ran and lays them side by side, so you can see which residues hold and which depend on one choice.
Pick an ancestor and a descendant. PhyloBot lists the substitutions, gains and losses on each branch, and marks which of them the other alignments and models agree on.
Attach a PDB entry or an AlphaFold model and paint it with an ancestor: its support, or the residues that change along a path. Coordinates are never altered: the page paints, it does not model.
Net charge, hydrophobic moment and other properties are measured over an ancestor's whole posterior distribution, so each value comes with an interval.
Collect ancestors into a library and choose how to cover their uncertain sites within the number of constructs you can order: the most likely sequence, its AltAll control, draws from the posterior. Export named sequences with a manifest and a methods paragraph.
Ancestors are functional sequences, filtered by evolution, that modern databases do not hold: stable scaffolds to start from, and out-of-distribution data for training generative models and testing fitness predictors.
Ancestral capsids and viral enzymes, such as AAVs and Cas endonucleases, are robust starting templates with better packaging, new PAM specificities, or less pre-existing immune recognition.
Find the mutations behind a historical shift in function, an allosteric transition or an adaptation, without getting lost in modern neutral drift.
An ancestor is an estimate. PhyloBot 2 is built so you can see how far to trust one.
Every combination of aligner, tree and model runs as its own traceable analysis, ranked by BIC, with the same ancestor matched across all of them.
The pipeline is tested continuously on simulated families whose true ancestors are known, and thresholds on those tests guard every change.
Five ways to decide where an ancestor had no residue, each scored on simulations with insertions and deletions. The unmasked reconstruction is always kept.
Every tool is pinned to an exact version. It runs on your own computer with no account, and nothing leaves it unless you ask for a lookup, such as a homolog search.
As far as we can tell from the literature and the tools we know of (see Related work), the combination below is not available elsewhere. Several individual pieces are done well by other tools, and we say so there.
How PhyloBot 2 compares with its predecessor and with other tools for ASR, feature by feature. Hover over a mark for details.
yes Β· partial or limited Β· no Β· in progress or planned Β· not yet verified
| Feature | PhyloBot 2 | PhyloBot 2016 | FireProtASR 2.0 | Topiary | GRASP | AP-LASR | MEGA 12 | IQ-TREE 3 | PAML |
|---|---|---|---|---|---|---|---|---|---|
| Use & automation | |||||||||
| Graphical interface | yes: web | yes: web | yes: web | partial: HTML report | yes: web | unsure | yes: desktop | no | no |
| Automates the whole workflow | yes | yes | yes | yes | no | yes | no | no | no |
| Runs locally / offline | yes | partial | no | yes | yes | yes | yes | yes | yes |
| Same pipeline on laptop, HPC, cloud | partial: cloud not deployed | no | no | partial | partial | no | no | yes | no |
| Usable without a web stack (CLI only) | yes: Nextflow | no | no | yes | yes | yes | partial: MEGA-CC | yes | yes |
| Data | |||||||||
| Homology search | yes: reviewed BLAST | no | yes | yes | no | yes | partial | no | no |
| Dataset curation (redundancy, taxonomy, essential residues) | partial: filters | no | yes | yes | no | yes, not yet verified | no | no | no |
| Species lookup from headers / accessions | yes | no | no | yes | no | no | no | no | no |
| Sequence alignment | yes: 4 aligners | yes: 2 | yes: 1 | yes: 1 | no | yes: 1 | yes: 2 | no | no |
| Alignment viewer & editor | yes | no | partial | no | partial | no | yes | no | no |
| Bring your own alignment / tree | yes: both | unsure | partial | yes | yes: required | unsure | yes | yes | yes |
| Amino acids | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| Codons (coding DNA) | yes | no | no | no | no | no | yes | yes | yes |
| Models & trees | |||||||||
| Model fitting / selection | yes: ModelFinder + BIC ranking | partial | yes | yes | no | yes | yes | yes | partial: by hand |
| ML tree inference | yes: IQ-TREE + RAxML-NG | yes | yes | yes | no | yes | yes | yes | partial |
| Branch support | yes: SH-aLRT, UFBoot | yes | yes, not yet verified | yes | no | unsure | yes | yes | no |
| Rooting | yes: outgroup / midpoint | yes: outgroup | yes: automatic | yes: via species tree | no | unsure | yes | partial | no |
| Gene/species-tree reconciliation | yes: GeneRax | no | no | yes: GeneRax | no | no | partial | no | no |
| Topology tests (AU) | yes | no | no | no | no | no | no | yes | no |
| Ancestors | |||||||||
| Ancestral state inference with posteriors | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| Gap/indel placement | yes: 5 methods | partial: 1 | yes: 1 | partial: 1? | yes: several | partial, not yet verified | no | no | no |
| Alternative ancestors (AltAll, samples) | yes | no | partial: VAE | yes, not yet verified | yes | yes | no | no | no |
| Design libraries of scaffolds | yes: budgeted, validated | no | partial | no | partial: indel variants | yes | no | no | no |
| Mutational trajectories between ancestors | yes | yes | no: (predicts forward) | no | no | no | no | no | no |
| Same ancestor matched across analyses | yes | no | no | no | no | no | no | no | no |
| Interactive tree & ancestor viewers | yes | yes | yes: logos | partial | yes | no | yes | no | no |
| Robustness | |||||||||
| Alignment uncertainty | yes: aligners side by side | yes | no | no | no | no | no | no | no |
| Tree uncertainty | yes: tree sources, AU, support | partial | no | partial | no | no | no | partial | no |
| Model uncertainty (ancestors across models) | yes | yes | no | no | no | no | no | no | no |
| Calibrate state uncertainty | planned: in progress | no | no | no | no | no | no | no | no |
| Selection | |||||||||
| dN/dS (site models, free ratios) | yes: codeml | no | no | no | no | no | partial: Z-tests | partial | yes |
| Branch-site test | yes: from tree viewer | no | no | no | no | no | no | no | yes |
| Synonymous / non-synonymous changes on paths | yes | no | no | no | no | no | no | no | no |
| Simulation & validation | |||||||||
| Simulate sequences (incl. indels, duplication/loss) | yes: AliSim | no | no | no | no | no | no | yes: AliSim | yes: evolver |
| Benchmark accuracy against known truth | yes: golden + oracle inputs | no | partial: paper | partial: paper | partial: paper | no | no | no | no |
| Reproducibility & practicalities | |||||||||
| Pinned containers, seeds, provenance | yes | no | no | partial | no | no | no | partial: seeds | no |
| Figure & table exports (SVG/PNG/Excel/ZIP) | yes | partial | yes | yes | partial | no | yes | no | no |
| Accessibility (palettes, skins, line styles) | yes | no | no | no | no | no | no | no | no |
| Work estimate & usage accounting | yes | no | no | no | no | no | no | no | no |
| Open source | yes: BSD | yes | no: server | yes | partial: no licence | yes, not yet verified | partial: free, closed | yes | yes |
| Gaps for PhyloBot 2 | |||||||||
| Functional loci prediction | no: not rebuilt | yes | partial | no | no | no | no | no | no |
| Forward / successor prediction | planned: roadmap | no | yes | no | no | no | no | no | no |
| Protein structures | planned: roadmap | no | unsure | no | no | no | no | no | no |
| Dating / timetrees | no | no | no | no | no | no | yes | partial | yes |
Needs Docker and make. Three commands, then open http://localhost:8000.
curl -L https://github.com/headwatersdiscovery/phylobot2/releases/latest/download/phylobot.tar.gz | tar xz
cd phylobot
make up
Downloads PhyloBot and starts it. The first run builds the images, so allow a while.
git clone https://github.com/headwatersdiscovery/phylobot2.git
For development, or to follow updates with git pull. PhyloBot is open source under the
BSD 3-Clause License;
feel free to edit or expand its code, but please cite and attribute our work.
Hanson-Smith V, Johnson A. PhyloBot: A Web Portal for Automated Phylogenetics, Ancestral Sequence Reconstruction, and Exploration of Mutational Trajectories. PLoS Computational Biology 12(7): e1004976 (2016). doi:10.1371/journal.pcbi.1004976
PhyloBot 2 is a ground-up rewrite of the PhyloBot this paper describes. If you use it in published work, please cite the paper together with the methods your analysis used. The repository's CITATION.cff has the same information for citation managers.
PhyloBot 2 is a workflow around other people's methods. Please cite the ones your analysis used.
Models are chosen from a fixed catalog, as an amino-acid matrix plus a rate and frequency
variant (for example LG+F+G4). Every one can be used as a fixed model or as a
ModelFinder candidate, except the site-profile mixtures, which are fixed models only;
RAxML-NG lacks JTTDCMut and has no mixtures.
| Matrix | Use | Reference |
|---|---|---|
| LG | general | Le SQ, Gascuel O. Mol Biol Evol 25(7): 1307β1320 (2008). doi:10.1093/molbev/msn067 |
| WAG | general | Whelan S, Goldman N. Mol Biol Evol 18(5): 691β699 (2001). doi:10.1093/oxfordjournals.molbev.a003851 |
| JTT | general | Jones DT, Taylor WR, Thornton JM. CABIOS 8(3): 275β282 (1992). doi:10.1093/bioinformatics/8.3.275 |
| JTTDCMut, DCMut | general | Kosiol C, Goldman N. Mol Biol Evol 22(2): 193β199 (2005). doi:10.1093/molbev/msi005 |
| Dayhoff | general | Dayhoff MO, Schwartz RM, Orcutt BC. Atlas of Protein Sequence and Structure 5 (Suppl. 3): 345β352 (1978). |
| VT | general | MΓΌller T, Vingron M. J Comput Biol 7(6): 761β776 (2000). doi:10.1089/10665270050514918 |
| PMB | general | Veerassamy S, Smith A, Tillier ERM. J Comput Biol 10(6): 997β1010 (2003). doi:10.1089/106652703322756195 |
| Blosum62 | general | Henikoff S, Henikoff JG. PNAS 89(22): 10915β10919 (1992). doi:10.1073/pnas.89.22.10915 |
| Q.pfam, Q.insect, Q.yeast, Q.plant, Q.mammal, Q.bird | estimated from large databases (Pfam; by clade) | Minh BQ, Dang CC, Vinh LS, Lanfear R. Syst Biol 70(5): 1046β1060 (2021). doi:10.1093/sysbio/syab010 |
| mtREV | vertebrate mitochondrial | Adachi J, Hasegawa M. J Mol Evol 42(4): 459β468 (1996). doi:10.1007/BF02498640 |
| mtART | arthropod mitochondrial | Abascal F, Posada D, Zardoya R. Mol Biol Evol 24(1): 1β5 (2007). doi:10.1093/molbev/msl136 |
| mtZOA | animal mitochondrial | Rota-Stabelli O, Yang Z, Telford MJ. Mol Phylogenet Evol 52(1): 268β272 (2009). doi:10.1016/j.ympev.2009.01.011 |
| mtMAM | mammalian mitochondrial | Yang Z, Nielsen R, Hasegawa M. Mol Biol Evol 15(12): 1600β1611 (1998). doi:10.1093/oxfordjournals.molbev.a025888 |
| mtInv, mtMet, mtVer | invertebrate, metazoan, vertebrate mitochondrial | Le VS, Dang CC, Le QS. BMC Evol Biol 17: 136 (2017). doi:10.1186/s12862-017-0987-y |
| cpREV | chloroplast | Adachi J, Waddell PJ, Martin W, Hasegawa M. J Mol Evol 50(4): 348β358 (2000). doi:10.1007/s002399910038 |
| rtREV | retroviral | Dimmic MW, Rest JS, Mindell DP, Goldstein RA. J Mol Evol 55(1): 65β73 (2002). doi:10.1007/s00239-001-2304-y |
| HIVb, HIVw | HIV (between and within patients) | Nickle DC, Heath L, Jensen MA, et al. PLoS ONE 2(6): e503 (2007). doi:10.1371/journal.pone.0000503 |
| FLU | influenza | Dang CC, Le QS, Gascuel O, Le VS. BMC Evol Biol 10: 99 (2010). doi:10.1186/1471-2148-10-99 |
| FLAVI | flavivirus | Le TK, Vinh LS. J Mol Evol 88(5): 445β452 (2020). doi:10.1007/s00239-020-09943-3 |
| Variant | Meaning | Reference |
|---|---|---|
+I | a proportion of invariant sites | Reeves JH. J Mol Evol 35(1): 17β31 (1992). doi:10.1007/BF00160257 |
+G4 | gamma-distributed rates, 4 categories | Yang Z. J Mol Evol 39(3): 306β314 (1994). doi:10.1007/BF00160154 |
+I+G4 | invariant sites plus gamma | Gu X, Fu YX, Li WH. Mol Biol Evol 12(4): 546β557 (1995). doi:10.1093/oxfordjournals.molbev.a040235 |
+R4, +I+R4 | FreeRate: free rate categories (ModelFinder tries 2β10) | Yang Z. Genetics 139(2): 993β1005 (1995). doi:10.1093/genetics/139.2.993
Soubrier J, et al. Mol Biol Evol 29(11): 3345β3358 (2012). doi:10.1093/molbev/mss140 |
+F | amino-acid frequencies counted from the alignment, instead of the matrix's own | β |
+C20+G4, +C20+F+G4 | site-profile mixture, weights fitted to the alignment; fixed models only, IQ-TREE only. +F adds a class of the alignment's own frequencies | Si Quang L, Gascuel O, Lartillot N. Bioinformatics 24(20): 2317β2323 (2008). doi:10.1093/bioinformatics/btn445 |
PhyloBot 2 is developed at github.com/headwatersdiscovery/phylobot2; the tools it runs keep their own licences. If we have missed or misdescribed your work, please contact us at hello@phylobot.com.