Hi all,

I have been hitting intermittent problems using trees generated by
ape::rphylo. Here is a reproducible example.


############################
library(ape)
sessionInfo()

# Simulate a tree with e.g. 5 species
nspecies = 5
set.seed(123465)
tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50,
fossils=TRUE, eps=1e-06)

# Ladderize tree with fossils
ltr = ladderize(tr_wFossils, right=FALSE)
ltr$edge
round(ltr$edge.length, 4)
write.tree(phy=ltr, file="")

tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") )
tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label))
plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils")
############################

Output:
############################
> library(ape)
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.5 (Yosemite)

locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] ape_3.3

loaded via a namespace (and not attached):
[1] nlme_3.1-121    grid_3.2.2      lattice_0.20-33
>
> # Simulate a tree with e.g. 5 species
> nspecies = 5
> set.seed(123465)
> tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50,
fossils=TRUE, eps=1e-06)
>
> # Ladderize tree with fossils
> ltr = ladderize(tr_wFossils, right=FALSE)
> ltr$edge
     [,1] [,2]
[1,]    7   11
[2,]   11    2
[3,]    8    5
[4,]    8    9
[5,]    9    6
[6,]    9   10
[7,]   10    4
[8,]   10    3
> round(ltr$edge.length, 4)
[1] 2.6862 0.0670 1.2078 0.1028 0.4985 0.0915 1.0135 1.0135
> write.tree(phy=ltr, file="")
[1] "((t2:0.06701971429):2.686176768);"
>
> tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") )
Warning message:
In FUN(X[[i]], ...) : NAs introduced by coercion
> tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label))
> plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils")
NULL
Warning message:
In plot.phylo(tr_wFossils) : found less than 2 tips in the tree
Error in get("last_plot.phylo", envir = .PlotPhyloEnv) :
  object 'last_plot.phylo' not found
############################



It looks like a problem with the edge matrix generated by rphylo - perhaps
older simulation code. The workaround is Yea Olde Writeth To And Readeth
>From Newick trick:

###########################
# Simulate a tree with e.g. 5 species
nspecies = 5
set.seed(123465)
tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50,
fossils=TRUE, eps=1e-06)
tr_wFossils = read.tree(file="", text=write.tree(phy=tr_wFossils, file="") )
# Ladderize tree with fossils
ltr = ladderize(tr_wFossils, right=FALSE)
ltr$edge
round(ltr$edge.length, 4)
write.tree(phy=ltr, file="")

tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") )
tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label))
plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils")
###########################



Now there are no issues:
###########################
> # Simulate a tree with e.g. 5 species
> nspecies = 5
> set.seed(123465)
> tr_wFossils = rphylo(n=nspecies, birth=0.3, death=0.25, T0=50,
fossils=TRUE, eps=1e-06)
> tr_wFossils = read.tree(file="", text=write.tree(phy=tr_wFossils,
file="") )
> # Ladderize tree with fossils
> ltr = ladderize(tr_wFossils, right=FALSE)
> ltr$edge
      [,1] [,2]
 [1,]    7    8
 [2,]    8    1
 [3,]    8    2
 [4,]    7    9
 [5,]    9    6
 [6,]    9   10
 [7,]   10    3
 [8,]   10   11
 [9,]   11    4
[10,]   11    5
> round(ltr$edge.length, 4)
 [1] 2.6862 0.0670 0.0670 1.5454 1.2078 0.1028 0.4985 0.0915 1.0135 1.0135
> write.tree(phy=ltr, file="")
[1]
"((t2:0.06701971429,t1:0.06701971429):2.686176768,(t5:1.207768321,(t6:0.4984853178,(t4:1.013489985,t3:1.013489985):0.09146602338):0.1028123128):1.545428161);"
>
> tr_wFossils = read.tree(file="", text=write.tree(phy=ltr, file="") )
> tr_wFossils$tip.label = paste0("sp", 1:length(tr_wFossils$tip.label))
> plot(tr_wFossils); axisPhylo(); title("Sim Tree w Fossils")
###########################

Cheers,
Nick

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/

Reply via email to