I recently put a new version of phytools on CRAN (phytools 0.6-99).
The last CRAN phytools release was 28 September 2018, so naturally there were quite a few updates.
The following is a non-comprehensive list:
An update to the function
dotTreeto include column labels.A totally new function
fitmultiMkto fit a multi-rate Mk model to discrete character data on the tree (here).The MCCR test for Pybus & Harvey's γ statistic when taxon sampling is incomplete (1, 2). This used to be in Dan Rabosky's package laser, but since laser is no longer available I thought I'd implement it in phytools.
Another totally new function,
fitpolyMk, to fit an Mk model to discrete character data with polymorphism.A new S3
plotmethod forfitpolyMk.A new function for phylogenetic imputation with multivariate continuous trait data (
phylo.impute).An update to
phylo.to.mapto permit more than one observation per tip in the tree. (Also see: 1, 2, 3).A simple user-requested update to
fancyTreefortype="extinction"(here).A small fix to the function
plotTree.wBarsfor fan-style trees.Various updates to the phytools function
mcmcMkfor Bayesian MCMC analysis of the Mk model of evolution for discete character traits.A new
multi2diregistered S3 method for the"simmap"object class (as well asdi2multiandmulti2dimethods for other object classes too - such as"contMap"and"densityMap"object: here).Several new S3 methods for the
"evol.rate.mcmc"object class.Updates to the 'phylogenetic scatterplot matrix' method of
fancyTree(and also separation of the method to its own function:phyloScattergram).Some useful updates & fixes to the function
geo.legend, as well as an entirely new function,geo.palette. (Also here.)Various updates to
ltt95.Finally, a small but non-trivial update to
cophyloto permit co-phylogenetic plotting when one or both trees have duplicate tip labels.
For all updates, check out a complete list of commits on the phytools GitHub page. This list is long & include lots of things that haven't been mentioned above, such as new object classes and methods.
Here's an example of
plotting
species distributions with a "phylo.to.map" object:
obj
## Object of class "phylo.to.map" containing:
##
## (1) A phylogenetic tree with 8 tips and 7 internal nodes.
##
## (2) A geographic map with range:
## -33.75N, 5.27N
## -74.01W, -29.36W.
##
## (3) A table containing 65 geographic coordinates (may include
## more than one set per species).
##
## If optimized, tree nodes have been rotated to maximize alignment
## with the map when the tree is plotted in a rightwards direction.
plot(obj,direction="rightwards",colors=sapply(cols,
make.transparent,0.4),
pts=FALSE,ftype="off",cex.points=c(0,0),
ftype="off",lwd=c(3,1))
for(i in 1:Ntip(obj$tree)){
ii<-which(rownames(obj$coords)==obj$tree$tip.label[i])
polygon(obj$coords[ii,2:1],
col=make.transparent(cols[obj$tree$tip.label[i]],0.8),
border="darkgrey")
}