I just posted a new version of the phytools function mrp.supertree for supertree estimation via Matrix Representation Parsimony (MRP). The main update for the user is that now control of optimization, which is performed by functions in the phangorn package, have been migrated to the user. That means that the parsimony optimization can be performed using optim.parsimony or pratchet, and all the options in both of these functions can now be controlled by the user (without having to, say, modify the source code of mrp.supertree). Note that the options of optim.parsimony and pratchet have changed relatively recently, particularly the types of tree rearrangements that are possible during tree search - so users should make sure that the have the latest version of phangorn (and its dependencies, which include a very recent version of ape) installed.
The function works OK - but I offer two points of caution. One, optimization via optim.parsimony and pratchet, even using SPR for tree rearrangements, is not terrific. This can be determined by comparing optimization from a random starting tree to optimization when the true tree is provided as a starting tree. I would recommend running the function multiple times with different or random starting trees to evaluate convergence. Two, the internally called parsimony optimizers are also a little buggy. In my experience they sometimes quit unexpectedly or cause R to crash. I'm sure that Klaus is working on this.
The updated code for this function is here. I will also plan to post more about this later.
I just posted more about this here. - Liam
ReplyDeleteHi, this looks like it'd be really useful for my purposes (combining trees to get more resolution). But I can't get the source file for this as the links for it are all broken (both here and on the previous version's page) is there any way you can attach it here or fix the link to it, please? Thank you.
DeleteSorry about that. Yes the phytools page is temporarily down. I'm working on getting it restored; however in your case you should really install phytools from CRAN anyway. Just type:
Deleteinstall.packages("phytools")
and then select a CRAN mirror.
- Liam