Code, Scripts, and Data

Below are scripts and datasets necessary to replicate the results in recent papers (note that this page is in active development - more to come!). Please direct any questions to me at edwarddburress 'at'



Multiple State-Specific Rates of continuous-character evolution (MuSSCRat) - implemented in RevBayes


May, M.R. and B.R. Moore. 2020. Bayesian approach for inferring the impact of a discrete character on rates of continuous character evolution in the presence of background rate variation. Systematic Biology 69: 530-544.



In our recent paper published in Evolution, we showed that the evolutionary rates of the oral and pharyngeal jaw systems responded similarly to feeding ecology. We used MuSSCRat to test if the evolution of each jaw system (sets of continuous characters) varied depending on feeding ecology (a discrete character). We found that the rates of jaw evolution varied strongly, being relatively slow in generalists, slightly faster in sifters, and much faster in grazers and predators.


Burress, E.D., C.M. Martinez, and P.C. Wainwright. 2020. Decoupled jaws promote trophic diversity in cichlid fishes. Evolution. DOI: (preprint)

Data are archived on the Dryad Digital Repository (here)



Note that there are RevBayes tutorials, including MuSSCRat, available online (here). Below are the necessary files to replicate the results from our paper.

Data files: (please note that to get around file type limitations, I had to upload these files as .txt so they will need to be opened in a text editor and saved with the appropriate endings listed below before they will run in RevBayes).

input_pharyngeal_jaw_continuous_characters.nex (file)

input_oral_jaw_continuous_characters.nex (file)

input_feeding_ecology_discrete_character.nex (file)

input_MCC_tree.tre (file)



musscrat_script.Rev (file)

Note that the script is written to execute the analyses with the pharyngeal jaw input file with a prior of 5 rate shifts, and MCMC with 10,000 burn-in and 100,000 generations. Note that we used more generations for the analyses in the paper, but the results are robust so you will get something very similar with much less (i.e., if you are testing out the script on a personal laptop consider leaving this number at 100,000 or reducing the generations further).

You should get something that looks very similar to these results (for the pharyngeal jaw system) if you drop the log file into tracer and highlight the four zeta parameters that correspond to the evolutionary rates for each feeding guild.

The script also writes three tree files in which there are branch labels for the state rates (evolutionary rate variation attributed to the discrete character), background rates (evolutionary rate variation not attributed to the discrete character), and branch rates (combined state and background rates). Those output files should look something similar to these if you open them in figtree (and adjust the color spectrum). Note that if the number of generations are reduced (i.e., if you are just experimenting with a quick run) the background and branch rate estimates will deteriorate and be more variable. Note that only the state branch rates feature in our paper.



Branch-specific rates of morphological evolution - implemented in RevBayes


Coming soon!










© 2023 by Strategic Consulting. Proudly created with