16.0 Updating Other Parameters

(Mac version)

< 15.0 | 16.0 | 16.1 >

State frequencies (e.g. nucleotide equilibrium relative frequencies), exchangeabilities (the relative rates for different types of substitution in the GTR model), and subset relative rates differ from other parameters in being both multivariate and constrained (one cannot update them individually because a change to any one of them necessarily forces at least one other one to change).

This part of the tutorial introduces a focussed Dirichlet approach to updating these kinds of model parameters. We will first create a base class (DirichletUpdater) and then create 3 derived classes (StateFrequencyUpdater, GTRExchangeabilityUpdater, and SubsetRelRateUpdater) that modify only the parts of the base class that are specific to the particular parameter that they manage.

We also create PinvarUpdater and OmegaUpdater to handle univariate parameter updates of the proportion of invariable sites and the nonsynonymous-synonymous rate ratio, respectively.

At the conclusion of this part, you will have a program that updates state frequencies, exchangeabilities, omega, pinvar, the gamma rate variance parameter, and subset relative rates as it carries out its Markov chain Monte Carlo simulation. The only remaining updaters needed will modify tree topology and edge lengths.

Step Title Description
Step 16.1 The Dirichlet Updater Base Class

Create a base class for StateFreqUpdater, ExchangeabilityUpdater, and SubsetRelRateUpdater.

Step 16.2 The StateFreqUpdater Class

Create the derived class StateFreqUpdater from the base class DirichletUpdater.

Step 16.3 The ExchangeabilityUpdater Class

Create the derived class ExchangeabilityUpdater from the base class DirichletUpdater.

Step 16.4 The SubsetRelRateUpdater Class

Create the derived class SubsetRelRateUpdater from the base class DirichletUpdater.

Step 16.5 The PinvarUpdater and OmegaUpdater Classes

Create the derived classes PinvarUpdater and OmegaUpdater from the base class Updater.

Step 16.6 Test the New Updaters

Perform MCMC analyses that test all of the new Updater-derived classes.

< 15.0 | 16.0 | 16.1 >