Hi Richard, Thank you very much for the information! I will do my best to do it by myself, and will let you know if it worked or if I will need some more help.
Thanks once again for the help! Cheers, On May 30, 2014 5:19 AM, "Rich FitzJohn" <[email protected]> wrote: > Hi Gustavo, > > This used to be possible, and you could possibly use an older version of > diversitree to do what you want to do. Things changed about a year, I > think. > > Unfortunately, integrating time-varying functions efficiently is quite > hard when parameters vary as arbitrary R functions. I've never been very > happy with the hacks and trade-offs to get that working (the issue is that > the ODE integrators are all written in C and calling R functions from C > incurs significant overhead over the usual R function calls plus you get no > vectorisation advantages). > > I decided to weight the speed/flexibility trade-off in favour of speed and > settled on a simpler (and much faster) approach where there are a few > pre-built options that match some simple cases: > https://github.com/richfitz/diversitree/blob/master/src/TimeMachine.cpp > > If you need something extra, just add it in there (and in TimeMachine.h), > just modifying the general approach in (say) tm_fun_linear. You'll need to > match the prototypes exactly, but you can pass in as many parameters as you > need. Then add your function to the list in R/time-machine.R: > > https://github.com/richfitz/diversitree/blob/master/R/time-machine.R#L45-L49 > which will organise parameter names and things like that. Then you just > reference the function by the name there and everything should work. > > Once that's done, send me a pull request on github and I can incorporate > it into the package. The functions that are currently there are just the > first things that seem reasonable and are obviously not a complete list. > > I'm not actively working on diversitree at the moment, or I'd do this for > you. But if you get into trouble let me know and I'll see if I can get it > going. > > Cheers, > Rich > > > > On 30 May 2014 05:10, Gustavo Burin Ferreira <[email protected]> wrote: > >> Dear list, >> >> I am trying to create a likelihood function based on trees that were >> simulated with an exponential decay on speciation rates through time, and >> with constant extinction rates. >> >> I thought I could use make.bd.t from diversitree for this matter. However, >> it seems that this function doesn't accept exponential as a valid type of >> function (at least as far as I could dig into the code). >> >> Can you advise me on how should I proceed to implement this? I am still >> trying to get used to the way diversitree functions are coded, and >> couldn't >> figure this out. >> >> Thanks in advance for any help! >> >> Regards, >> >> *Gustavo Burin Ferreira, **Msc.* >> Instituto de Biociências >> Universidade de São Paulo >> Tel: (11) 98525-8948 >> >> [[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]/
