Hi Jérémie,
You're correct: the current version of write.tree() scales with n^2.
This seems to be related to calling the generic '[[' operator. You can
modify the code with the usual fix(write.tree), then insert these two lines:
phy <- .uncompressTipLabel(phy)
class(phy) <- NULL
right before the 'for' loop, save and close. You may need to use the
modified code once or twice (with a small tree) so that R might
byte-compile it. I've tried it with the 2027025 trees generared by
allTrees(9,rooted=T) and it took 8.5 mins (instead of the predicted 28
hrs with the current code).
Best,
Emmanuel
Le 23/01/2019 à 10:51, Jérémie Bardin a écrit :
Hi all,
I tried to export 2 millions trees to a .tre file with write.tree. This never
ends, thus i tried to get why and realized that the time to write the .tre
depends exponentially on the number of trees.
trees<-allTrees(9,rooted=T)to<-seq(10000,2000000,10000)durations<-NAfor(i in 1:length(to)) {
ptm <- proc.time() write.tree(trees[1:to[i]], file = "test.tre")
durations[i]<-(proc.time() - ptm)[3]}
I do not really get why it is not nearly linear. Any explanation?
Cheers, Jérémie
----
Jérémie Bardin, Dr.
CR2P - Centre de Recherche en Paléontologie - ParisSorbonne Université - MNHN -
CNRS
Site Jussieu, Tour 46-56, 5°et.
4 place Jussieu, 75252 Paris Cedex 05
tel. +331.44.27.51.77.
jeremie.bar...@upmc.fr / jbar...@mnhn.fr / jeremiebar...@yahoo.fr
[[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/
Pour nous remonter une erreur de filtrage, veuillez vous rendre ici :
http://f.security-mail.net/fPLqvOj4
_______________________________________________
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/