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

Introduction

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).

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 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.

Platforms

The current version of the program available in two forms

Executable binary file for Mac OS 10.7 (Lion)

Source code in a mixture of C and Fortran, with a Makefile tested
on OS X (Lion). With slight modifications, the makefile allows compilation on UNIX/Linux. Talk
to your friendly neighborhood system administrator.

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...

Acknowledgments

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.