Volume 3, Issue 2
APPLICATION
Free Access

phytools: an R package for phylogenetic comparative biology (and other things)

Liam J. Revell

Corresponding Author

Correspondence author. E‐mail: liam.revell@umb.eduSearch for more papers by this author
First published: 15 December 2011
Citations: 2,936

Summary

1. Here, I present a new, multifunctional phylogenetics package, phytools, for the R statistical computing environment.

2. The focus of the package is on methods for phylogenetic comparative biology; however, it also includes tools for tree inference, phylogeny input/output, plotting, manipulation and several other tasks.

3. I describe and tabulate the major methods implemented in phytools, and in addition provide some demonstration of its use in the form of two illustrative examples.

4. Finally, I conclude by briefly describing an active web‐log that I use to document present and future developments for phytools. I also note other web resources for phylogenetics in the R computational environment.

Introduction

In recent decades, phylogenies have assumed a central role in evolutionary biology (Felsenstein 1985, 2004; Harvey & Pagel 1991; Losos 2011). Among phylogeneticists, the scientific computing environment R (R Development Core Team 2011) has grown by leaps and bounds in popularity, particularly since the development of the multifunctional ‘ape’ (Analysis of Phylogenetics and Evolution) R package (Paradis, Claude & Strimmer 2004) and since the publication of Paradis’s ‘UseR!’ phylogenetics book (Paradis 2006). Recent years have witnessed a rapid expansion of the phylogenetic capabilities of R in the form of numerous contributed packages. Most, such as the popular packages ‘geiger’ (Harmon et al. 2008) and ‘phangorn’ (Schliep 2011), work by building off the functionality and data structures developed in ape.

In this note, I will describe a new phylogenetics package written in the R language. This library is called ‘phytools’ (phylogenetic tools for comparative biology – and other things) and can be installed from the Comprehensive R Archive Network, CRAN. In this package, I have focused primarily on implementing several phylogenetic comparative methods from my own work (Revell 2008, 2009, 2010; Revell, Harmon & Collar 2008; Revell & Harrison 2008; Revell & Collar 2009; Lindenfors, Revell & Nunn 2010; Mahler et al. 2010; Revell et al. in press); however, I have also included several new functions of interest and use to the phylogenetics community that were not previously implemented in R (e.g. Cavalli‐Sforza & Edwards 1967; Baum 1992; Ragan 1992; Nielsen 2002; Huelsenbeck, Nielsen & Bollback 2003; Bollback 2006; O’Meara et al. 2006; Ives, Midford & Garland 2007; Sidlauskas 2008), as well as a number of simple utility functions for reading, writing, plotting and manipulating special types of phylogenetic trees.

Invariably, I have strived to maximize the interactivity of phytools with the ape package. For instance, one of the new functionalities of phytools is the capacity to generate, plot, read, and write stochastic character mapped trees (Nielsen 2002). Rather than create a new type of R object to store stochastically mapped phylogenies, I instead build directly on the existing ‘phylo’ structure developed for ape and employed in many other R phylogenetics packages. At present, phytools is not interoperable with the ‘phylobase’ package (R Hackathon et al. 2011), although this capability will be added in the future.

In the sections that follow, I will describe the major functionality of the phytools library; I will provide two illustrative examples that demonstrate some of the functionality of phytools; and, finally, because phytools is a work in progress, I will describe a web‐log that I will use to keep phytools users up to date on bugs, updates, and future software development for the package.

Description

The phytools library is written entirely in the scientific computing language, R (R Development Core Team 2011). It takes advantage of functionality developed in other packages, particularly the core phylogenetics package ape (Paradis, Claude & Strimmer 2004), for many types of phylogenetic tree input and manipulation. It also uses the phylogenetic inference package phangorn (Schliep 2011) for inference and certain other calculations. In addition, the phytools package depends, imports, or suggests several other R libraries either directly, or via its dependencies. These include the following packages: animation: Xie (2011); calibrate: Graffelman (2010); igraph: Csardi & Nepusz (2006); mnormt: Genz & Azzalini (2011); msm: Jackson (2011); numDeriv: Gilbert (2011); quadprog: Turlach & Weingessel (2010).

So far, I have implemented numerous functions for the phytools package; however, I should also note that phytools is a work in progress and I expect the capabilities of phytools to expand considerably in the coming years. In Table 1, I provide an annotated list of the major functions thus far implemented in the phytools library. These functions cover methods in a few different areas of phylogenetic biology, described later.

Table 1. Major functions of the phytools package
Function name Description
add.everywhere Adds a tip to all edges of a tree
allFurcTrees Generates all possible bi‐ and multifurcating trees for a set of taxa
anc.trend Performs ancestral character estimation with a trend using likelihood
branching.diffusion Creates an animation of Brownian motion evolution with speciation
brownie.lite Fits a multiple rate Brownian evolution model using likelihood (O’Meara et al. 2006)
drop.clade Removes a specific clade from the tree
estDiversity Estimates the lineage density at each node of the tree based on a model (Mahler et al. 2010)
evol.rate.mcmc Locates the position of a shift in the evolutionary rate using Bayesian MCMC (Revell et al. in press)
evol.vcv Fits multiple evolutionary variance‐covariance matrices to the tree using likelihood (Revell & Collar 2009)
exhaustiveMP Performs exhaustive and branch & bound maximum parsimony inference
fastBM Conducts fast Brownian motion simulation using multiple models (standard, with a trend, with bounds)
fitDiversityModel Fits a diversity dependent phenotypic evolution model (Mahler et al. 2010)
gammatest Conducts γ‐test of Pybus & Harvey (2000)
ls.tree Computes the least‐squares branch lengths for a tree topology and distance matrix (Cavalli‐Sforza & Edwards 1967)
ltt Creates lineage‐through‐time plot, with extinct branches
make.era.map Maps temporal intervals on a phylogenetic tree
make.simmap Generates stochastic character map for discrete character data and a model of evolution (Nielsen 2002; Huelsenbeck, Nielsen & Bollback 2003)
map.overlap Computes the similarity of two different character histories
mrp.supertree Estimates the matrix representation parsimony supertree from a set of phylogenies (Baum 1992; Ragan 1992; Bininda‐Emonds 2004)
optim.phylo.ls Performs phylogeny inference under the least‐squares criterion (Cavalli‐Sforza & Edwards 1967; Felsenstein 2004)
paste.tree Pastes two trees together
phyl.cca Conducts phylogenetic canonical correlation analysis (Revell & Harrison 2008).
phyl.pairedttest Performs a phylogenetic paired t‐test (Lindenfors, Revell & Nunn 2010).
phyl.pca Performs phylogenetic principal components analysis (Revell 2009)
phyl.resid Conducts phylogenetic size‐correction, using least‐squares regression (Revell 2009)
phyl.RMA Performs phylogenetic reduced major axis regression
phylANOVA Performs the phylogenetic anova (Garland et al. 1993) with posthoc comparison of group means
phylomorphospace Projects a phylogenetic tree into bivariate morphospace (Sidlauskas 2008; e.g. Fig. 1).
phylosig Computes phylogenetic signal using two different methods (Pagel 1999; Freckleton, Harvey & Pagel 2002; Blomberg, Garland & Ives 2003) and incorporating sampling error (Ives, Midford & Garland 2007)
plotSimmap Plots a stochastic character map format tree (Fig. 3)
plotTree Plots a phylogenetic tree with several options (Fig. 2)
read.simmap Reads one or multiple stochastic character map format trees from file (Bollback 2006)
reorderSimmap Reorders the edges of a stochastic map format tree
reroot Re‐roots a phylogenetic tree at an arbitrary position along an edge
sim.history Simulates a stochastic history for a discretely valued character trait on the tree
sim.rates Simulates multiple evolutionary rates on the tree using a Brownian evolution model
treeSlice Cuts a tree and returns all subtrees
write.simmap Function writes stochastic map style trees to file

Comparative Biology

Several methods in phylogenetic comparative biology have been implemented in phytools. These cover a wide range of areas including ancestral character estimation (e.g. anc.trend), likelihood‐based methods for studying the evolution of character traits over time (e.g. brownie.lite, evol.vcv, fitDiversityModel and phylosig), a Bayesian method for detecting the location of a rate shift in the tree (evol.rate.mcmc), estimation of phylogenetic signal, including with sampling error (phylosig), and various methods for statistical hypothesis testing in a phylogenetic context (e.g. phyl.cca, phyl.pairedttest, phyl.pca and phyl.resid).

Simulation

Several simulation methods are implemented in phytools. These include Brownian motion simulation under various conditions (fastBM), simulation of discrete character evolution (sim.history), simulation of stochastic character maps (make.simmap) and simulation of multiple evolutionary rates (sim.rates), among other functionality (Table 1).

Phylogenetic Inference

A few different phylogenetic inference procedures are implemented in the phytools package. These functions are, in general, highly dependent on calculations and algorithms in the phangorn library of Schliep (2011). Some of the functionality includes matrix representation parsimony supertree estimation (mrp.supertree) and least‐squares phylogeny inference (optim.phylo.ls; Table 1).

Graphical Methods

Several graphical methods are implemented in phytools. Among these are projection of a tree into bivariate morphospace (phylomorphospace; Fig. 1), plotting stochastic character maps and histories (plotSimmap), lineage through time plotting with extinct lineages (ltt), animation of Brownian motion and speciation (branching.diffusion), and other functions (Table 1).

image

Phylomorphospace plot of two principal component axes obtained from the data of Mahler et al. (2010) for Caribbean Anolis lizards. Each point represents a species phenotypic value (coloured) or a hypothesized ancestral phenotype (black). Lines connect related species through hypothetical ancestors (Sidlauskas 2008). Different colours represent species in different ecomorphological categories that have been described based on microhabitat utilization, ecology, and gross phenotypic similarity (Losos 2009; colour code indicated in legend inset). The phylogeny has been pruned to include only these so‐called ‘ecomorph’ species.

Utility Functions

In addition to the aforesaid scientific functions, phytools also includes a number of utility functions for phylogeny input, output and manipulation. These are meant to supplement and complement the existing diverse array of utility functions in the ape and phangorn packages. Several of these functions are listed in Table 1.

Examples

To demonstrate the use of phytools, I have created two short illustrative examples which can be easily reproduced by the reader. In the first, I use simulated data and the phytools function evol.rate.mcmc to identify the location of a shift in the evolutionary rate over time (Revell et al. in press). In the second, I simulate a stochastic discrete character history and a continuous character with different rate conditioned on the discrete character state, and then I fit a multi‐rate Brownian character evolution model using the phytools function brownie.lite (O’Meara et al. 2006).

Example 1: Detecting the Location of a Rate Shift

In this example, I first simulate a stochastic pure‐birth phylogeny; next, I simulate evolutionary change for a single continuously valued character on the phylogeny under two different evolutionary rates in different parts of the tree; I analyse the tree and data using the Bayesian MCMC method for identifying the location of a shift in the evolutionary rate over time (Revell et al. in press); finally, I analyse the MCMC results to estimate the location of the shift and the evolutionary rates tipward and rootward of this point.

First, I loaded the phytools package. This will also load ape and other required packages on first instantiation:

> # load the phytools package (and ape)
> require(phytools)

Loading required package: phytools

Loading required package: ape....

Next, I set the random number seed for reproducibility (here, it is just set to 1):

> set.seed(1) # set the seed

I use the ape function rbdtree to simulate a stochastic pure‐birth tree. In this instance, the tree has 91 taxa.

> # simulate a tree (using ape)
> tree<‐rbdtree(b=log(50),d = 0,Tmax=1)

Now, for the purposes of simulation, I split the tree at a predetermined position – specified here by the number of the descendant node and the distance along the edge from the root. To do this, I use the phytools function splitTree. It should be noted that the node and edge position used below are only guaranteed to work conditioned on having set the random number seed at 1 (see above), otherwise a different split point should be chosen.

> trees<‐splitTree(tree,list(node = 153,bp = 0·09))

Now, I stretch the branches in one part of the tree and reattach the subtrees for simulation. To reattach the two parts of the tree, I use the phytools function paste.tree as follows:

> # stretch the branches in one part of the tree

> trees[[2]]$edge.length<‐trees[[2]]$edge.length*10

> # reattach the two subtrees

> sim.tree<‐paste.tree(trees[[1]],trees[[2]])

I can then plot the generating tree for simulation (which has its branches stretched to be proportional to the evolutionary rate multiplied by time; Fig. 2), using the phytools function plotTree, and simulate on this stretched tree using phytools function fastBM:

image

Phylogenetic tree simulated in illustrative example 1. The branches of the tree have been rescaled to represent evolutionary rate multiplied by elapsed time (thus, longer branches have higher evolutionary rates).

> # plot the generating tree for simulation

> plotTree(sim.tree,fsize = 0·5)

> x<‐fastBM(sim.tree) # simulate on the tree

Now, I perform Bayesian MCMC analysis using the phytools function evol.rate.mcmc (Revell et al. in press). This analysis required about 20 min on a Dell i5 650 CPU running at 3·20 GHz.

> # perform MCMC > res<‐evol.rate.mcmc(tree,x,ngen = 100000)

Control parameters (set by user or default):

List of 11

$ sig1 : num 4·34

$ sig2 : num 4·34

$ a : num 0·0222

$ sd1 : num 0·867

$ sd2 : num 0·867

$ sda : num 0·00444

$ kloc : num 0·2

$ sdlnr : num 1

$ rand.shift: num 0·05

$ print : num 100

$ sample : num 100

Starting MCMC run:

state sig1 sig2 a node bp likelihood

04·3352 4·3352 0·0222 35 0·345130·7022

state sig1 sig2 a node bp likelihood

1004·8517 0·94470·0248 93 0·044116·3554

state sig1 sig2 a node bp likelihood

2006·7915 1·28720·0205 153 0·057101·0501

....

Done MCMC run.

The MCMC function first prints the control parameters (which can be set by the user, although above they have been given their default values, see below), and then prints the state of the MCMC chain at a frequency given by the control parameter print (here, every 100 generations; generations after 200 not shown above).

Next, I can estimate the location of the shift point by finding the split in the posterior sample with the smallest summed distance to all the other samples (this is one of multiple possible criteria; see Revell et al. in press). For this analysis, I use the phytools function minSplit and exclude the first 20 000 generations as burn‐in:

>est.split<‐minSplit(tree,res$mcmc[201:nrow(res$mcmc),])

This analysis took about 6 s to run on the same hardware as described earlier.

Finally, I need to pre‐process the posterior sample to get the sampled rates tipward and rootward of the average shift, for each sample (see Revell et al. in press). I do this using the phytools function posterior.evolrate. I can then print the results (estimated shift point and evolutionary rates) to screen:

> pp.result<‐posterior.evolrate(tree,est.split,res$mcmc[201:nrow(res$mcmc),], res$tips[201:nrow(res$mcmc)])

> est.sig1<‐mean(pp.result[,“sig1”])

> est.sig2 <‐mean(pp.result[,“sig2”])

> est.split

$node

[1] 153

$bp

[1] 0·1003489

> est.sig1

[1] 1·010709

> est.sig2

[1] 10·24914

This analysis took about 9 s to complete.

Here, the parameter estimates are very close to the generating shift point of [153, 0·09] and the generating evolutionary rates of inline image and inline image.

It should be noted that in actual practice, the authors should pay much closer attention to the control parameters of the MCMC than is given here, and in particular, to the proposal distribution for the model parameters. More information about function control can be obtained by calling the help file of evol.rate.mcmc:

> ?evol.rate.mcmc

or by referring to Revell et al. (in press). In addition, users should assess convergence and compute effective sample sizes for their samples from the posterior distribution. This can be carried out using the MCMC diagnostics package ‘coda’ (Plummer et al. 2006). Please refer to Revell et al. (in press) for more information about this method.

Example 2: Simulate and Analyse Multi‐Rate Brownian Evolution

In this example, I first simulate the character history of a discretely valued character trait with three states evolving on a phylogeny. I then simulate the evolution of a continuous trait with a rate that depends on the value of the discrete trait. Finally, I fit single and multiple rate evolutionary models to the data and tree using the likelihood method of O’Meara et al. (2006).

After loading phytools, I first set the seed (arbitrarily to 10; done here for reproducibility only):

> set.seed(10)

Now, I simulate a stochastic pure‐birth tree using ape:

> tree<‐rbdtree(b = log(50),d = 0,Tmax = 1)

This tree contains 129 taxa. Next, I simulate a stochastic character history on the tree for a character with three states, A, B, and C, using the phytools function sim.history as follows:

> # this is our transition matrix
> Q<‐matrix(c(
2,1,1,1,2,1,1,1,2),3,3)

> rownames(Q)<‐colnames(Q)<‐c(“A”,“B”,“C”)

> mtree<‐sim.history(tree,Q)

I can plot the simulated history using the phytools function plotSimmap to see what it looks like:

> # set colors > cols<‐c(“red”,“blue”,“green”);
> names(cols)<‐rownames(Q)

> # plot tree with labels off
> plotSimmap(mtree,cols,ftype=“off”)

This visualization is shown in Fig. 3.

image

Simulated stochastic history for illustrative Example 2. Here, different coloured branches indicate a different simulated state for a discretely valued character trait evolving on the tree. The colour code is A: red, B: blue, and C: green.

Next, I simulate continuous character evolution using three different rates using the phytools function sim.rates:

> # set rates
> sig2 <‐c(1,10,100)
>names(sig2)<‐rownames(Q)

> X<‐sim.rates(mtree,sig2) # simulate

Finally, I fit a multi‐rate Brownian model using the likelihood method of O’Meara et al. (2006) with the phytools function brownie.lite. This likelihood optimization took about 3 s to run on the same hardware described earlier.

> fit.bm<‐brownie.lite(mtree,X,maxit=4000)

> fit.bm

$sig2.single

[1] 47·15693

$a.single

[1]5·242448

$var.single

[1] 34·47709

$logL1

[1]329·7582

$k1

[1] 2

$sig2.multiple

B C A

10·4646399 99·9563314 0·8247106

...

$logL.multiple

[1]287·4271

$k2

[1] 4

$P.chisq

[1] 4·129091e‐19

$convergence

[1] “Optimization has converged.”

It should be noted that the order of the three rate regimes in the fitted model is the order in which they are encountered in the tree (Fig. 3), rather than in alphabetical or numerical order. In this case, the fitted parameter estimates (0·82, 10·46, 99·96) are very close to their generating values (1, 10, and 100). For more details on this likelihood method, please refer to O’Meara et al. (2006) or Revell (2008).

phytools development web‐log and other resources

This package so far implements a number of methods for phylogenetic comparative biology, phylogeny inference, tree manipulation and graphing. However, the phytools project is one in progress. To keep users of phytools up to date on bugs, improvements, and new functionality, I maintain an active web‐log (i.e. ‘blog’; http://phytools.blogspot.com). This blog acts as both a conduit between the developer (presently myself) and users of the phytools package, as well as a sort of open lab notebook (Butler 2005; Bradley et al. 2011) in which I document the details of bug fixes, software implementation, and use. Most of the functions listed earlier have already been featured on the blog (in the course of their development and refinement). Future work on phytools will also be documented here.

Finally, in addition to my blog, there are a number of other helpful web and email forums for phytools and phylogenetics in the R language generally. The phylogenetics CRAN Task View (http://cran.r‐project.org/web/views/Phylogenetics.html) and R‐sig‐phylo email mailing list (https://stat.ethz.ch/mailman/listinfo/r‐sig‐phylo) are two of the most important such resources.

Citation of phytools

Scientists using phytools in a published paper should cite this article. Users can also cite the phytools package directly if they are so inclined. Citation information can be obtained by typing:

> citation(“phytools”)

at the command prompt.

Acknowledgements

Credit is due to L. Harmon for encouraging me to learn R, develop phytools, and publish this note. Thanks to L. Mahler for sharing his data and helping to create Fig. 2. C. Boettiger, an associate editor, and an anonymous reviewer provided very helpful criticism on an earlier version of this article.

      Number of times cited according to CrossRef: 2936

      • Phylogeny and biogeography of South American marsh pitcher plant genus Heliamphora (Sarraceniaceae) endemic to the Guiana Highlands, Molecular Phylogenetics and Evolution, 10.1016/j.ympev.2020.106961, 154, (106961), (2021).
      • Sympatric competitors have driven the evolution of temporal activity patterns in Cnemaspis geckos in Southeast Asia, Scientific Reports, 10.1038/s41598-019-56549-x, 10, 1, (2020).
      • Crop Origins and Phylo Food: A database and a phylogenetic tree to stimulate comparative analyses on the origins of food crops, Global Ecology and Biogeography, 10.1111/geb.13057, 29, 4, (606-614), (2020).
      • The uplift of the Qinghai–Tibet Plateau and glacial oscillations triggered the diversification of Tetraogallus (Galliformes, Phasianidae), Ecology and Evolution, 10.1002/ece3.6008, 10, 3, (1722-1736), (2020).
      • Does the size and developmental stage of traits at fledging reflect juvenile flight ability among songbirds?, Functional Ecology, 10.1111/1365-2435.13513, 34, 4, (799-810), (2020).
      • Does reproductive assurance explain the incidence of polyploidy in plants and animals?, New Phytologist, 10.1111/nph.16396, 227, 1, (14-21), (2020).
      • Host-associated microbiomes are predicted by immune system complexity and climate, Genome Biology, 10.1186/s13059-019-1908-8, 21, 1, (2020).
      • Environmental and ecological correlates of avian field metabolic rate and water flux, Functional Ecology, 10.1111/1365-2435.13526, 34, 4, (811-821), (2020).
      • Patterns of fluctuating asymmetry in the limbs of freshwater turtles: Are more functionally important limbs more symmetrical?, Evolution, 10.1111/evo.13933, 74, 3, (660-670), (2020).
      • Convergent evolution of tail spines in squamate reptiles driven by microhabitat use, Biology Letters, 10.1098/rsbl.2019.0848, 16, 2, (20190848), (2020).
      • Macroecology and macroevolution of body size in Anolis lizards, Ecography, 10.1111/ecog.04583, 43, 6, (812-822), (2020).
      • Osmoionic homeostasis in bivalve mollusks from different osmotic niches: Physiological patterns and evolutionary perspectives, Comparative Biochemistry and Physiology Part A: Molecular & Integrative Physiology, 10.1016/j.cbpa.2019.110582, 240, (110582), (2020).
      • Do major host shifts spark diversification in butterflies?, Ecology and Evolution, 10.1002/ece3.6116, 10, 8, (3636-3646), (2020).
      • Tibetan Macaque Social Style: Covariant and Quasi-independent Evolution, The Behavioral Ecology of the Tibetan Macaque, 10.1007/978-3-030-27920-2_8, (141-169), (2020).
      • Macroevolutionary bursts and constraints generate a rainbow in a clade of tropical birds, BMC Evolutionary Biology, 10.1186/s12862-020-1577-y, 20, 1, (2020).
      • Group formation and the evolutionary pathway to complex sociality in birds, Nature Ecology & Evolution, 10.1038/s41559-020-1113-x, 4, 3, (479-486), (2020).
      • The influence of ecological traits and environmental factors on the co‐occurrence patterns of birds on islands worldwide, Ecological Research, 10.1111/1440-1703.12103, 35, 2, (394-404), (2020).
      • Biomes as evolutionary arenas: Convergence and conservatism in the trans‐continental succulent biome, Global Ecology and Biogeography, 10.1111/geb.13089, 29, 7, (1100-1113), (2020).
      • Plant ecological indicator values as predictors of fine‐root trait variations, Journal of Ecology, 10.1111/1365-2745.13368, 108, 4, (1565-1577), (2020).
      • Metameric variation of upper molars in hominoids and its implications for the diversification of molar morphogenesis, Journal of Human Evolution, 10.1016/j.jhevol.2019.102706, 138, (102706), (2020).
      • Does breeding season variation affect evolution of a sexual signaling trait in a tropical lizard clade?, Ecology and Evolution, 10.1002/ece3.6167, 10, 8, (3738-3746), (2020).
      • The Central Role of Small Vertical Substrates for the Origin of Grasping in Early Primates, Current Biology, 10.1016/j.cub.2020.02.012, (2020).
      • A preliminary ecological profile of Kyasanur Forest disease virus hosts among the mammalian wildlife of the Western Ghats, India, Ticks and Tick-borne Diseases, 10.1016/j.ttbdis.2020.101419, (101419), (2020).
      • Evolutionary diversification in the raptorial forelegs of Mantodea: Relations to body size and depth perception, Journal of Morphology, 10.1002/jmor.21118, 281, 4-5, (513-522), (2020).
      • Phylogenetic signal and evolutionary correlates of urban tolerance in a widespread neotropical lizard clade*, Evolution, 10.1111/evo.13947, 74, 7, (1274-1288), (2020).
      • Evolutionary Imprints on Species Distribution Patterns Across the Neotropics, Neotropical Diversification: Patterns and Processes, 10.1007/978-3-030-31167-4_6, (103-119), (2020).
      • Why do bugs perish? Range size and local vulnerability traits as surrogates of Odonata extinction risk, Proceedings of the Royal Society B: Biological Sciences, 10.1098/rspb.2019.2645, 287, 1924, (20192645), (2020).
      • Ventilation Frequency Reveals the Roles of Exchange Surface Areas in Metabolic Scaling, Physiological and Biochemical Zoology, 10.1086/706115, 93, 1, (13-22), (2020).
      • A Bayesian extension of phylogenetic generalized least squares: Incorporating uncertainty in the comparative study of trait relationships and evolutionary rates, Evolution, 10.1111/evo.13899, 74, 2, (311-325), (2020).
      • Leaf size of woody dicots predicts ecosystem primary productivity, Ecology Letters, 10.1111/ele.13503, 23, 6, (1003-1013), (2020).
      • Epidemiology and evolutionary analysis of Torque teno sus virus, Veterinary Microbiology, 10.1016/j.vetmic.2020.108668, (108668), (2020).
      • Is dispersal mode a driver of diversification and geographical distribution in the tropical plant family Melastomataceae?, Molecular Phylogenetics and Evolution, 10.1016/j.ympev.2020.106815, (106815), (2020).
      • Co‐evolution of cleaning and feeding morphology in western Atlantic and eastern Pacific gobies, Evolution, 10.1111/evo.13904, 74, 2, (419-433), (2020).
      • Modularity and evolution of flower shape: the role of function, development, and spandrels in Erica, New Phytologist, 10.1111/nph.16337, 226, 1, (267-280), (2020).
      • Diversification dynamics of freshwater bivalves (Unionidae: Parreysiinae: Coelaturini) indicate historic hydrographic connections throughout the East African Rift System, Molecular Phylogenetics and Evolution, 10.1016/j.ympev.2020.106816, (106816), (2020).
      • Reappraising plastid markers of the red algae for phylogenetic community ecology in the genomic era, Ecology and Evolution, 10.1002/ece3.5984, 10, 3, (1299-1310), (2020).
      • Were the synapsids primitively endotherms? A palaeohistological approach using phylogenetic eigenvector maps, Philosophical Transactions of the Royal Society B: Biological Sciences, 10.1098/rstb.2019.0138, 375, 1793, (20190138), (2020).
      • The evolution of dermal shield vascularization in Testudinata and Pseudosuchia: phylogenetic constraints versus ecophysiological adaptations, Philosophical Transactions of the Royal Society B: Biological Sciences, 10.1098/rstb.2019.0132, 375, 1793, (20190132), (2020).
      • Sexual size dimorphism is associated with reproductive life history trait differentiation in coexisting sepsid flies, Oikos, 10.1111/oik.07036, 129, 8, (1152-1162), (2020).
      • Fruit syndromes in Viburnum: correlated evolution of color, nutritional content, and morphology in bird-dispersed fleshy fruits, BMC Evolutionary Biology, 10.1186/s12862-019-1546-5, 20, 1, (2020).
      • Diet specialization and brood parasitism in cuckoo species, Ecology and Evolution, 10.1002/ece3.6263, 10, 11, (5097-5105), (2020).
      • The interplay between habitat use, morphology and locomotion in subterranean crustaceans of the genus Niphargus, Zoology, 10.1016/j.zool.2020.125742, (125742), (2020).
      • Migratory lineages rapidly evolve larger body sizes than non-migratory relatives in ray-finned fishes, Proceedings of the Royal Society B: Biological Sciences, 10.1098/rspb.2019.2615, 287, 1918, (20192615), (2020).
      • Selection for increased male size predicts variation in sexual size dimorphism among fish species, Proceedings of the Royal Society B: Biological Sciences, 10.1098/rspb.2019.2640, 287, 1918, (20192640), (2020).
      • Treatment of Adults with Autism and Major Depressive Disorder Using Transcranial Magnetic Stimulation: An Open Label Pilot Study, Autism Research, 10.1002/aur.2266, 13, 3, (346-351), (2020).
      • Phylogenetic informativeness analyses to clarify past diversification processes in Cucurbitaceae, Scientific Reports, 10.1038/s41598-019-57249-2, 10, 1, (2020).
      • The effect of mating on female reproduction across hermaphroditic freshwater snails, Invertebrate Biology, 10.1111/ivb.12275, 139, 1, (2020).
      • Increased diversification rates are coupled with higher rates of climate space exploration in Australian Acacia (Caesalpinioideae), New Phytologist, 10.1111/nph.16349, 226, 2, (609-622), (2020).
      • The origins of acoustic communication in vertebrates, Nature Communications, 10.1038/s41467-020-14356-3, 11, 1, (2020).
      • Phylogeographic and phenotypic outcomes of brown anole colonization across the Caribbean provide insight into the beginning stages of an adaptive radiation, Journal of Evolutionary Biology, 10.1111/jeb.13581, 33, 4, (468-494), (2020).
      • Ready for change: Seed traits contribute to the high adaptability of mudflat species to their unpredictable habitat, Journal of Vegetation Science, 10.1111/jvs.12841, 31, 2, (331-342), (2020).
      • Noncoding regions underpin avian bill shape diversification at macroevolutionary scales, Genome Research, 10.1101/gr.255752.119, 30, 4, (553-565), (2020).
      • Evolutionary diversity in tropical tree communities peaks at intermediate precipitation, Scientific Reports, 10.1038/s41598-019-55621-w, 10, 1, (2020).
      • Seasonal Timing of Spermatogenesis and Mating in Squamates: A Reinterpretation, Copeia, 10.1643/CH-19-230, 108, 2, (231), (2020).
      • The impact of Miocene orogeny for the diversification of Caucasian Epeorus (Caucasiron) mayflies (Ephemeroptera: Heptageniidae), Molecular Phylogenetics and Evolution, 10.1016/j.ympev.2020.106735, (106735), (2020).
      • Effects of Diet and Intraspecific Scaling on the Viscera of Muraenid Fishes, Zoology, 10.1016/j.zool.2020.125752, (125752), (2020).
      • Extreme and Variable Climatic Conditions Drive the Evolution of Sociality in Australian Rodents, Current Biology, 10.1016/j.cub.2019.12.012, (2020).
      • Cryptic diversity and non-adaptive radiation of montane New Guinea skinks (Papuascincus; Scincidae), Molecular Phylogenetics and Evolution, 10.1016/j.ympev.2020.106749, (106749), (2020).
      • Feeding ecology has a stronger evolutionary influence on functional morphology than on body mass in mammals, Evolution, 10.1111/evo.13929, 74, 3, (610-628), (2020).
      • Ecological, behavioral, and phylogenetic influences on the evolution of dorsal color pattern in geckos*, Evolution, 10.1111/evo.13915, 74, 6, (1033-1047), (2020).
      • Comparative analysis of femoral biomechanical neck length in primates, The Anatomical Record, 10.1002/ar.24377, 303, 9, (2330-2343), (2020).
      • Differential locomotor and predatory strategies of Gondwanan and derived Laurasian dromaeosaurids (Dinosauria, Theropoda, Paraves): Inferences from morphometric and comparative anatomical studies, Journal of Anatomy, 10.1111/joa.13153, 236, 5, (772-797), (2020).
      • Predicting the spread-risk potential of chronic wasting disease to sympatric ungulate species, Prion, 10.1080/19336896.2020.1720486, 14, 1, (56-66), (2020).
      • Functional Morphology and Morphological Diversification of Hind Limb Cross-Sectional Traits in Mustelid Mammals, Integrative Organismal Biology, 10.1093/iob/obz032, 2, 1, (2020).
      • Tritrophic interactions follow phylogenetic escalation and climatic adaptation, Scientific Reports, 10.1038/s41598-020-59068-2, 10, 1, (2020).
      • Patterns of plant naturalization show that facultative mycorrhizal plants are more likely to succeed outside their native Eurasian ranges, Ecography, 10.1111/ecog.04877, 43, 5, (648-659), (2020).
      • Pollinator‐mediated facilitation is associated with floral abundance, trait similarity and enhanced community‐level fitness, Journal of Ecology, 10.1111/1365-2745.13348, 108, 4, (1334-1346), (2020).
      • High contrast yellow mosaic patterns are prey attractants for orb‐weaving spiders, Functional Ecology, 10.1111/1365-2435.13532, 34, 4, (853-864), (2020).
      • A small podocnemidoid (Pleurodira, Pelomedusoides) from the Late Cretaceous of Brazil, and the innervation and carotid circulation of side‐necked turtles, Papers in Palaeontology, 10.1002/spp2.1300, 6, 2, (329-347), (2020).
      • Molecular epidemiology of clinically high‐risk Pseudomonas aeruginosa strains: Practical overview, Microbiology and Immunology, 10.1111/1348-0421.12776, 64, 5, (331-344), (2020).
      • Developmental life history is associated with variation in rates of climatic niche evolution in a salamander adaptive radiation*, Evolution, 10.1111/evo.13949, 74, 8, (1804-1814), (2020).
      • Calcified gill filaments increase respiratory function in fishes, Proceedings of the Royal Society B: Biological Sciences, 10.1098/rspb.2019.2796, 287, 1920, (20192796), (2020).
      • An irregular hourglass pattern describes the tempo of phenotypic development in placental mammal evolution, Biology Letters, 10.1098/rsbl.2020.0087, 16, 5, (20200087), (2020).
      • Variation of chemical compounds in wild Heliconiini reveals ecological factors involved in the evolution of chemical defenses in mimetic butterflies, Ecology and Evolution, 10.1002/ece3.6044, 10, 5, (2677-2694), (2020).
      • Fire and grazing determined grasslands of central Madagascar represent ancient assemblages, Proceedings of the Royal Society B: Biological Sciences, 10.1098/rspb.2020.0598, 287, 1927, (20200598), (2020).
      • Early high rates and disparity in the evolution of ichthyosaurs, Communications Biology, 10.1038/s42003-020-0779-6, 3, 1, (2020).
      • Global radiation in a rare biosphere soil diatom, Nature Communications, 10.1038/s41467-020-16181-0, 11, 1, (2020).
      • Evolutionary conservation of within-family biodiversity patterns, Nature Communications, 10.1038/s41467-020-14720-3, 11, 1, (2020).
      • Domestication of Oryza species eco-evolutionarily shapes bacterial and fungal communities in rice seed, Microbiome, 10.1186/s40168-020-00805-0, 8, 1, (2020).
      • Characterization of wild bee communities in apple and blueberry orchards, Agricultural and Forest Entomology, 10.1111/afe.12370, 22, 2, (157-168), (2020).
      • Integrating host plant phylogeny, plant traits, intraspecific competition and repeated measures using a phylogenetic mixed model of field behaviour by polyphagous herbivores, the leaf-cutting ants, Journal of Tropical Ecology, 10.1017/S0266467420000012, 36, 2, (80-86), (2020).
      • Heavy metal concentrations and sediment quality of a cage farm on Lake Volta, Ghana, Aquaculture Research, 10.1111/are.14555, 51, 5, (2041-2051), (2020).
      • Diversification in evolutionary arenas—Assessment and synthesis, Ecology and Evolution, 10.1002/ece3.6313, 10, 12, (6163-6182), (2020).
      • To mate, or not to mate: The evolution of reproductive diapause facilitates insect radiation into African savannahs in the Late Miocene, Journal of Animal Ecology, 10.1111/1365-2656.13178, 89, 5, (1230-1241), (2020).
      • The effect of species extinctions on island biogeographic patterns, Ecological Research, 10.1111/1440-1703.12093, 35, 2, (372-381), (2020).
      • Low temperatures impact species distributions of jumping spiders across a desert elevational cline, Journal of Insect Physiology, 10.1016/j.jinsphys.2020.104037, (104037), (2020).
      • Trophic selectivity in aquatic isopods increases with the availability of resources, Functional Ecology, 10.1111/1365-2435.13530, 34, 5, (1078-1090), (2020).
      • Evolution of a conspicuous melanin‐based ornament in gulls Laridae, Journal of Evolutionary Biology, 10.1111/jeb.13604, 33, 5, (682-693), (2020).
      • Tunicate bulb size variation in monocots explained by temperature and phenology, Ecology and Evolution, 10.1002/ece3.5996, 10, 5, (2299-2309), (2020).
      • The biogeography of thermal risk for terrestrial ectotherms: Scaling of thermal tolerance with body size and latitude, Journal of Animal Ecology, 10.1111/1365-2656.13181, 89, 5, (1277-1285), (2020).
      • Calculating autoecological data (optima and tolerance range) for multiple species with the ‘optimos.prime’ R package, Austral Ecology, 10.1111/aec.12868, 45, 6, (845-850), (2020).
      • Climatic limits of temperate rainforest tree species are explained by xylem embolism resistance among angiosperms but not among conifers, New Phytologist, 10.1111/nph.16448, 226, 3, (727-740), (2020).
      • Much more than a clasp: evolutionary patterns of amplexus diversity in anurans, Biological Journal of the Linnean Society, 10.1093/biolinnean/blaa009, 129, 3, (652-663), (2020).
      • The phylogeny of Nereididae (Annelida) based on mitochondrial genomes, Zoologica Scripta, 10.1111/zsc.12413, 49, 3, (366-378), (2020).
      • What explains vast differences in jumping power within a clade? Diversity, ecology and evolution of anuran jumping power, Functional Ecology, 10.1111/1365-2435.13545, 34, 5, (1053-1063), (2020).
      • Using ggtree to Visualize Data on Tree‐Like Structures, Current Protocols in Bioinformatics, 10.1002/cpbi.96, 69, 1, (2020).
      • Palm fruit colours are linked to the broad-scale distribution and diversification of primate colour vision systems, Proceedings of the Royal Society B: Biological Sciences, 10.1098/rspb.2019.2731, 287, 1921, (20192731), (2020).
      • Avian responses to extreme weather across functional traits and temporal scales, Global Change Biology, 10.1111/gcb.15133, 26, 8, (4240-4250), (2020).
      • Evolution of altitudinal migration in passerines is linked to diet, Ecology and Evolution, 10.1002/ece3.6126, 10, 7, (3338-3345), (2020).
      • Streptococcus mutans SpxA2 relays the signal of cell envelope stress from LiaR to effectors that maintain cell wall and membrane homeostasis, Molecular Oral Microbiology, 10.1111/omi.12282, 35, 3, (118-128), (2020).
      • See more