Closed voidikova closed 2 years ago
After spending some time on this it appears that the problem is with ape::multi2di
. You should be able to see this by running the following example:
library(ape)
library(phytools)
bad <- "((1:73.52,((2:26.69,((3:5.72,4:5.72):17.16,5:22.88):3.81):6.81,(6:12.3,(7:10.2,(8:9.44,(9:8.1,(10:5.3,11:5.3):2.8):1.34):0.76):2.1):21.2):40.02):74.28,(12:135,((((13:5,14:5):98.1,15:103.1):5.9,((16:27.3,((17:13.2,18:13.2):12.37,(19:6.6,20:6.6,21:6.6):18.97):1.73):5,22:32.3,23:32.3,((24:19.3,25:19.3):12.32,26:31.62,(27:29.6,28:29.6):2.02):0.68):76.7):9.2,((((29:4.53,30:4.53):27.04,31:31.57):27.76,(32:51.73,33:51.73):7.59):52.18,34:111.5):6.7):16.8):12.8);"
tt<-read.tree(text=bad)
bt<-multi2di(tt)
par(mfrow=c(1,2))
plotTree(tt,fsize=0.7)
plotTree(bt,fsize=0.7,direction="leftwards")
Here's the good news though. Evidently this is already updated in ape version 5.6 -- so all you need to do is update ape from CRAN and you'll be set.
Hello, I am using the
contMap
function but it reports this error for some trees:Below is the example for two trees. They differ only in one species (Lunaria rediviva is included in
rawBadTree
and missing in therawGoodTree
).If I run the
testContMap
withrawGoodTree
, it works properly. If I run thetestContMap
withrawBadTree
, it reports error.It seems that the root cause is the following use of
matchNodes
. It returns NAs for therawBadTree
: https://github.com/liamrevell/phytools/blob/75de27a0eb2e06682f7634dd3fa47098a8d408dd/R/fastAnc.R#L37How can I use
contMap
function withrawBadTree
? Thanks for your help.