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).
The former is achieved by a new and stringent check on solutions via the checkgradient command. In conjunction with the use of multiple replicates from different initial conditions, this is the best line of defense against incorrect results.
A new penalty function that penalizes differences in the logarithm of rates on neighboring branches has been added because of occasional pathological behavior of deep time estimates from shallow calibrations
When multiple fossil calibrations or constraints are present, a fossil cross-validation procedure can now be invoked (as an option in the divtime command) to undertake model selection using penalized likelihood. This essentially uses the internal consistency among the fossil ages to help select the appropriate level of rate smoothing, and it can also provide a useful estimate of the age errors implied by that level of smoothing.
A new likelihood ratio based relative rate test has been added to permit inferences about local shifts in rates of evolution. It has all the advantages (or disadvantages) of other aspects of the program, such as using multiple calibrations or age constraints.
The current version of the program available in two forms
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.
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.
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.