Hi Nick,

This bug is fixed in the current testing version:

http://ape-package.ird.fr/NEWS

Best,

Emmanuel

Le 04/10/2015 10:55, Nick Matzke a écrit :
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 - [email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/[email protected]/


Pour nous remonter une erreur de filtrage, veuillez vous rendre ici : 
http://f.security-mail.net/807pISrmjY7



_______________________________________________
R-sig-phylo mailing list - [email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/[email protected]/

Reply via email to