r8s version 1.8

Analysis of rates ("r8s") of evolution

programmed by

Mike Sanderson

Department of Ecology and Evolutionary Biology

University of Arizona

November 15, 2012



This is a program for estimating absolute rates ("r8s") of molecular evolution and divergence times on a phylogenetic tree. It implements several methods for estimating these parameters ranging from fairly standard maximum likelihood methods in the context of global or local molecular clocks to more experimental semiparametric and nonparametric methods that relax the stringency of the clock assumption using smoothing methods. Its starting point is a given phylogenetic tree and a given set of estimated branch lengths (numbers of substitutions along each branch). In addition one or more calibration points can be added to permit scaling of rates and times to real units. These calibrations can take one of two forms: assignment of a fixed age to a node, or enforcement of a minimum or maximum age constraint on a node, which is generally a better reflection of the information content of fossil evidence. Terminal nodes are permitted to occur at any point in time, allowing investigation of rate variation in phylogenies such as those obtained from "serial" samples of viral lineages through time. Finally, it is possible to assign all divergence times (perhaps based on outside estimates of divergence times) and examine molecular rate variation under several models of smoothing.

In version 1.8 I have added ancestral state reconstruction and model testing for several markov models of morphological evolution (see below).

The program reads "NEXUS" formatted data files (Maddison et al. 1997).

What’s new in 1.8

This version adds a 'TraitEvol' command which implements four Markov models of trait evolution, finds marginal and joint ancestral states on a tree, and tests model adequacy with likelihood and AIC scores. Two of the models are conventional 1- and 2-parameter Markov models of a binary trait, as have been used in several packages, including Mesquite and BayesTraits. The other two models are new models of binary phenotypes, with an underlying three-state genotype that is intended to represent evolutionary precursors. Please see our paper in Evolution (B. Marazzi et al., 2012).

Please note: there was a bug in the original release of 1.8 that caused cross-validation to crash. This is fixed as of November 15, 2012 (thanks to Tomas Flouri for the bug report).

What’s new in 1.71

This version fixes some minor bugs and compilation problems on various platforms

What’s new in 1.70

This version improves the robustness of the previous implementation of divergence time estimation routines and adds some entirely new features.


The current version of the program available in two forms


Download and Installation

Everything is distributed as one compressed 'tar' (archive) file. It contains source code (with makefile), sample data sets, the manual, and for Mac OS X users, a precompiled executable file for OS 10.7.

Download r8s vers. 1.8

Help and documentation

The user manual is distributed in the tarfile, but it has not been updated since 1.71. For a sample file explaining the new features in 1.8 see the file 'precursor.nex'.

Several sample data files are included in the distribution subdirectory called sample/, including a file that illustrates the new features of version 1.7.


Why "r8s"?

The program is called "r8s" for two reasons: my long-time colleague, Marty Wojciechowski, thought it was an appropriately geeky play on words, and, after the fact, I've noticed that it's disambiguated from a bunch of other hits on the word "rate" in internet search databases. Besides, evidently it's too late to think of a good name now...



Thanks to everyone for putting up with all the bugs and slow email responses. I appreciate bug reports even if I don't deal with them immediately--or at least I appreciate them more than you appreciate the bugs.