Hey David,

I installed and it is working perfectly! Tried with a couple of big trees
and worked well and fast!

Thank all of you for the help!

Best,

*Gustavo Burin Ferreira, **Msc.*
Instituto de Biociências
Universidade de São Paulo
Tel: (11) 98525-8948

On Wed, Oct 21, 2015 at 2:43 AM, David Bapst <[email protected]> wrote:

> Gustavo, all,
>
> I just wanted to let you know that I've integrated Klaus's suggestions
> into timeSliceTree, as well as a growing number of additional
> functions in paleotree, and these changes are in the current build on
> github, which appears to pass all checks as of the moment.
>
> You can install the in-development version of paleotree on github
> using the R package devtools, like so:
>
> library(devtools)
> install_github("dwbapst/paleotree")
>
> Gustavo, if you could check and see if you encounter any issues with
> the timeSliceTree in this new version, I would appreciate it.
>
> Cheers,
> -Dave
>
>
> On Tue, Oct 20, 2015 at 1:39 PM, David Bapst <[email protected]> wrote:
> > Thanks, Klaus. I was unaware of node.depth.edgelength; I believe I use
> > dist.nodes to calculate root-to-tip distances in a number of functions
> > in paleotree, so this could mean improvement potentially to a large
> > number of functions. I'll have to do a global search for dist.nodes.
> >
> > Cheers,
> > -Dave
> >
> > On Tue, Oct 20, 2015 at 1:32 PM, Klaus Schliep <[email protected]>
> wrote:
> >> Hi Gustavo & David,
> >> a tiny improvement I missed another sapply.
> >> You can do the same trick replacing dist.nodes in dropExtinct if needed.
> >> Klaus
> >>
> >> On Tue, Oct 20, 2015 at 3:21 PM, Gustavo Burin Ferreira
> >> <[email protected]> wrote:
> >>>
> >>> Hi Klaus,
> >>>
> >>> the function works perfectly! Thank you very much!
> >>>
> >>> Best,
> >>>
> >>> Gustavo Burin Ferreira, Msc.
> >>> Instituto de Biociências
> >>> Universidade de São Paulo
> >>> Tel: (11) 98525-8948
> >>>
> >>> On Tue, Oct 20, 2015 at 5:15 PM, Klaus Schliep <
> [email protected]>
> >>> wrote:
> >>>>
> >>>> Hi Gustavo & David,
> >>>>
> >>>> I attached a file that contains a function timeSliceTree2, which is a
> >>>> replacement for timeSliceTree.
> >>>> I replaced
> >>>> dist.nodes(tree)[, Ntip(tree) + 1]
> >>>> with
> >>>> node.depth.edgelength(tree)
> >>>> dist.nodes computes a matrix (roughly nTips^2 * 4 * 8 bytes which can
> get
> >>>> very large for many taxa)
> >>>> whereas node.depth.edgelength just the vector the function needs. This
> >>>> caused the memory problem.
> >>>> I also simplified a unnecessary sapply and put prop.part out of a
> loop.
> >>>> So it needs less memory and is also much faster for large trees. The
> >>>> results should be exactly the same.
> >>>>
> >>>> Cheers,
> >>>> Klaus
> >>>>
> >>>>
> >>>>
> >>>> > source("timeSliceTree.R")
> >>>> > library(paleotree)
> >>>> > set.seed(123)
> >>>> > tree = rtree(2000)
> >>>> system.time(tree1 <-
> >>>> timeSliceTree(tree,sliceTime=5,plot=FALSE,drop.extinct=FALSE))
> >>>> Warning: no ttree$root.time! Assuming latest tip is at present
> (time=0)
> >>>>    user  system elapsed
> >>>>   7.416   0.033   7.454
> >>>> > system.time(tree2 <-
> >>>> > timeSliceTree2(tree,sliceTime=5,plot=FALSE,drop.extinct=FALSE))
> >>>> Warning: no ttree$root.time! Assuming latest tip is at present
> (time=0)
> >>>>    user  system elapsed
> >>>>   0.147   0.003   0.151
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Oct 20, 2015 at 11:49 AM, Gustavo Burin Ferreira
> >>>> <[email protected]> wrote:
> >>>>>
> >>>>> Hey David and Nick,
> >>>>>
> >>>>> thanks a lot for the quick responses! I think I wasn't very clear in
> the
> >>>>> first e-mail. What I get is actually an error from within dist.nodes,
> >>>>> not
> >>>>> when calling it.
> >>>>>
> >>>>> I've tried to use chainsaw2 and in the beginning it appeared to be
> >>>>> working
> >>>>> quite well. However after some running time, I get the same
> (original)
> >>>>> error that motivated me writing to the list:
> >>>>>
> >>>>>
> >>>>> > *Error in double(nm * nm) : vector size cannot be NA*
> >>>>> > *In addition: Warning message:**In nm * nm : NAs produced by
> integer
> >>>>> > overflow*
> >>>>>
> >>>>>
> >>>>> Digging into the functions called within chainsaw2, I found that at
> some
> >>>>> point it uses the function get_max_height_tree, that calls dist.nodes
> >>>>> and
> >>>>> that's where I think the problem lies. The error I got now is almost
> >>>>> exactly the same as I got from timeSliceTree (because both cases use
> >>>>> dist.nodes):
> >>>>>
> >>>>>
> >>>>> > *dist.nodes*
> >>>>> > *function (x) *
> >>>>> > *{*
> >>>>> > *    x <- reorder(x)*
> >>>>> > *    n <- Ntip(x)*
> >>>>> > *    m <- x$Nnode*
> >>>>> > *    nm <- n + m*
> >>>>> > *    d <- .C(dist_nodes, as.integer(n), as.integer(m),
> >>>>> > as.integer(x$edge[, *
> >>>>> > *        1] - 1L), as.integer(x$edge[, 2] - 1L),
> >>>>> > as.double(x$edge.length), *
> >>>>> > *        as.integer(Nedge(x)), double(nm * nm), NAOK = TRUE)[[7]]*
> >>>>> > *    dim(d) <- c(nm, nm)*
> >>>>> > *    dimnames(d) <- list(1:nm, 1:nm)*
> >>>>> > *    d**}*
> >>>>>
> >>>>>
> >>>>> I tried changing the highlighted part to something like
> >>>>> double(as.numeric(nm) * as.numeric(nm)), and when I try running it, I
> >>>>> get
> >>>>> the error I wrote on the first e-mail:
> >>>>>
> >>>>>
> >>>>> > *Error in dist.nodes(tree) (from #7) : **  long vectors (argument
> 7)
> >>>>> > are
> >>>>> > not supported in .Fortran*
> >>>>>
> >>>>>
> >>>>> Thus, I think that to solve this problem some tweak in the C/Fortran
> >>>>> code
> >>>>> that is called within dist.nodes (from ape) might be required, but I
> >>>>> have
> >>>>> no expertise on that. So if someone can help me with that, I'll
> >>>>> appreciate
> >>>>> it!
> >>>>>
> >>>>> Thanks again for the help so far!
> >>>>>
> >>>>> Best,
> >>>>>
> >>>>>
> >>>>> *Gustavo Burin Ferreira, **Msc.*
> >>>>>
> >>>>> Instituto de Biociências
> >>>>> Universidade de São Paulo
> >>>>> Tel: (11) 98525-8948
> >>>>>
> >>>>> On Fri, Oct 16, 2015 at 5:06 PM, Nick Matzke <[email protected]>
> wrote:
> >>>>>
> >>>>> > Hi!  I re-did chainsaw at some point, now there is chainsaw2.
> >>>>> > However,
> >>>>> > googling that gets you horror movies, so here is a link with
> example
> >>>>> > code:
> >>>>> >
> >>>>> >
> https://groups.google.com/d/msg/biogeobears/Jy9uYckOL7s/XuNZ0B3jAwAJ
> >>>>> >
> >>>>> > (the discussion there points out a rare case where this crashes,
> but
> >>>>> > for
> >>>>> > most trees it should work fine)
> >>>>> >
> >>>>> > Cheers, Nick
> >>>>> >
> >>>>> > On Fri, Oct 16, 2015 at 2:17 PM, David Bapst <[email protected]>
> >>>>> > wrote:
> >>>>> >
> >>>>> > > Hi Gustavo,
> >>>>> > >
> >>>>> > > I'm paleotree's author and maintainer. Just to be clear that I
> >>>>> > > understand your problem, I believe you are saying that when you
> use
> >>>>> > > timeSliceTree, you are getting an error that the internal call to
> >>>>> > > dist.nodes is failing? Is that right?
> >>>>> > >
> >>>>> > > The first thought I have is that maybe the solution here is to
> avoid
> >>>>> > > dist.nodes, as it is somewhat overkill. I use dist.nodes in that
> >>>>> > > code,
> >>>>> > > which I wrote in 2011, to get the distance of tips and nodes from
> >>>>> > > the
> >>>>> > > root. A better solution may now exist in another R package. I'd
> have
> >>>>> > > to investigate (although maybe someone on the list can suggest
> one).
> >>>>> > >
> >>>>> > > The second thought I have is that there might be alternative
> >>>>> > > functions
> >>>>> > > that do something lie timeSliceTree in another R package. Off the
> >>>>> > > top
> >>>>> > > of my head, I recall that Nick Matzke had a similar, 'chainsaw'
> >>>>> > > function, which you can find here and appears not to call
> >>>>> > > dist.nodes:
> >>>>> > >
> >>>>> > > https://stat.ethz.ch/pipermail/r-sig-phylo/2011-July/001483.html
> >>>>> > >
> >>>>> > > Again, maybe someone on the list knows of a good alternative
> >>>>> > > function.
> >>>>> > >
> >>>>> > > I'll try to give this more thought, but for now, maybe see if you
> >>>>> > > can
> >>>>> > > use Nick's function succesfully. Overall though, I've discovered
> the
> >>>>> > > use of truly gigantic trees can often run into unexpected
> problems.
> >>>>> > >
> >>>>> > > Cheers,
> >>>>> > > -Dave
> >>>>> > >
> >>>>> > >
> >>>>> > >
> >>>>> > > On Fri, Oct 16, 2015 at 12:47 PM, Gustavo Burin Ferreira
> >>>>> > > <[email protected]> wrote:
> >>>>> > > > Dear list,
> >>>>> > > >
> >>>>> > > > I'm trying to perform a time travel in simulated phylogenies
> with
> >>>>> > > > both
> >>>>> > > > extant and extinct species using the timeSliceTree function
> form
> >>>>> > > > the
> >>>>> > > > paleotree package. My aim is to have the molecular phylogenies
> >>>>> > > > derived
> >>>>> > > from
> >>>>> > > > the complete phylogeny (attached) in different points in time.
> >>>>> > > >
> >>>>> > > > However, when I try that with big trees (bigger than 20000 tips
> >>>>> > total), I
> >>>>> > > > get an error of integer overflow coming from the dist.nodes
> >>>>> > > > function.
> >>>>> > > After
> >>>>> > > > slightly tweaking the dist.nodes function (changing nm from
> >>>>> > > > integer to
> >>>>> > > > numeric/double), I get the following message:
> >>>>> > > >
> >>>>> > > > Error in dist.nodes(tree) (from #7) :
> >>>>> > > >   long vectors (argument 7) are not supported in .Fortran
> >>>>> > > >
> >>>>> > > > Since I don't know much about C or Fortran, I couldn't find a
> way
> >>>>> > > > of
> >>>>> > > solving
> >>>>> > > > this by myself, so any help will be greatly appreciated.
> >>>>> > > >
> >>>>> > > > I'm sending one tree attached for example.
> >>>>> > > >
> >>>>> > > > Thank you very much in advance!
> >>>>> > > >
> >>>>> > > > Best,
> >>>>> > > >
> >>>>> > > > Gustavo Burin Ferreira, Msc.
> >>>>> > > > Instituto de Biociências
> >>>>> > > > Universidade de São Paulo
> >>>>> > > > Tel: (11) 98525-8948
> >>>>> > > >
> >>>>> > > > _______________________________________________
> >>>>> > > > 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]/
> >>>>> > >
> >>>>> > >
> >>>>> > >
> >>>>> > > --
> >>>>> > > David W. Bapst, PhD
> >>>>> > > Adjunct Asst. Professor, Geology and Geol. Eng.
> >>>>> > > South Dakota School of Mines and Technology
> >>>>> > > 501 E. St. Joseph
> >>>>> > > Rapid City, SD 57701
> >>>>> > >
> >>>>> > > http://webpages.sdsmt.edu/~dbapst/
> >>>>> > > http://cran.r-project.org/web/packages/paleotree/index.html
> >>>>> > >
> >>>>> > > _______________________________________________
> >>>>> > > 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]/
> >>>>> >
> >>>>> >         [[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]/
> >>>>> >
> >>>>>
> >>>>>         [[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]/
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Klaus Schliep
> >>>> Postdoctoral Fellow
> >>>> Revell Lab, University of Massachusetts Boston
> >>>>
> >>>
> >>
> >>
> >>
> >> --
> >> Klaus Schliep
> >> Postdoctoral Fellow
> >> Revell Lab, University of Massachusetts Boston
> >>
> >
> >
> >
> > --
> > David W. Bapst, PhD
> > Adjunct Asst. Professor, Geology and Geol. Eng.
> > South Dakota School of Mines and Technology
> > 501 E. St. Joseph
> > Rapid City, SD 57701
> >
> > http://webpages.sdsmt.edu/~dbapst/
> > http://cran.r-project.org/web/packages/paleotree/index.html
>
>
>
> --
> David W. Bapst, PhD
> Adjunct Asst. Professor, Geology and Geol. Eng.
> South Dakota School of Mines and Technology
> 501 E. St. Joseph
> Rapid City, SD 57701
>
> http://webpages.sdsmt.edu/~dbapst/
> http://cran.r-project.org/web/packages/paleotree/index.html
>

        [[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]/

Reply via email to