<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Guys,<div><br></div><div>Ben -- I liked the new simulation example in the sweave doc!&nbsp;</div><div><br></div><div>On Dec 30, 2008, at 10:29 AM, Ben Bolker wrote:</div><div><div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Steven Kembel wrote:<br><blockquote type="cite">Hi,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">1. merge my branch (with the aforementioned controversial<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ordering) &nbsp;{Peter, can you help with this if/when we<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">decide to go for it?}<br></blockquote></blockquote><blockquote type="cite">+1, prefer the named vector for labels in your branch.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Isn't the controversial ordering already in the trunk? Related to<br></blockquote><blockquote type="cite">ordering, I couldn't tell if there is a consensus on what to do about<br></blockquote><blockquote type="cite">edge matrix reordering. Marguerite and Thibaut seemed against edge<br></blockquote><blockquote type="cite">matrix reordering vs. node ids, others pro or neutral.<br></blockquote><br> &nbsp;&nbsp;I'm not sure there is consensus. &nbsp;Thibaut seemed against it<br>but in his more detailed comments he seemed to accept edge<br>matrix reordering as long as everything was clear.<br><br></div></blockquote><div>Go with what you think is best/most feasible.&nbsp;</div><br><blockquote type="cite"><div><blockquote type="cite">For rooted trees, it's true that every node has an edge associated with<br></blockquote><blockquote type="cite">it. Would reverting to the old reorder methods that keep nodes and edge<br></blockquote><blockquote type="cite">matrix in same index order (edge matrix in node id order), create a<br></blockquote><blockquote type="cite">lookup for edge/node order under reordering, instead of actually<br></blockquote><blockquote type="cite">reordering the edge matrix, address some of the concerns raised by<br></blockquote><blockquote type="cite">Marguerite and Thibaut about not mixing up edge and node ordering for<br></blockquote><blockquote type="cite">rooted trees?<br></blockquote><br> &nbsp;Maybe, although you can argue that solution is also confusing<br>(because there is a "real" ordering underneath that stays the same,<br>and another layer of indexing ...)</div></blockquote><div><br></div><div>I defer to you guys. Either actual reordering or lookup index is OK with me, I would just prefer not to have edge and other data in different orders (all should be the same). Seems like if you want to save the original "ape" or "nexus" order on input but reorder the tree, you'll need an index anyway. But maybe this is not important.</div><br><blockquote type="cite"><div><br><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">2. see what we can do to detect &amp; fix problems with unrooted trees:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">this includes a lot of Steve's "to do" list (sorting out nodeId,<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">nNode, etc.)<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I can work on this once we decide what to do about unrooted trees, I<br></blockquote><blockquote type="cite">think of the 3-4 options I suggested everyone voted for a different one.<br></blockquote><blockquote type="cite">Do we want to try to add an imaginary root edge to unrooted trees that<br></blockquote><blockquote type="cite">we strip out for printing, export, etc? i.e. we give one node in an<br></blockquote><blockquote type="cite">unrooted tree an edge so every node has a unique edge (like in a rooted<br></blockquote><blockquote type="cite">tree), this should allow most of the existing construction, check and<br></blockquote><blockquote type="cite">summary methods to work with unrooted trees? Other options were to have<br></blockquote><blockquote type="cite">separate code for constructing, checking, printing, etc. of unrooted and<br></blockquote><blockquote type="cite">rooted trees, or to actually create a different class for rooted vs.<br></blockquote><blockquote type="cite">unrooted trees?<br></blockquote><br> &nbsp;I don't have strong feelings. &nbsp;Marguerite was in favor of the<br>imaginary root edge. &nbsp;I thought it seemed too complicated/hokey,<br>but if it makes things simpler I'm for it.</div></blockquote><div><br></div>:) The dropRoot function sounds really useful and should revert the edge structure to it's original form (making no need for new code). &nbsp;I am still unclear whether there is any need for unrooted trees in comparative analysis, so I wouldn't recommend developing a whole new class and methods for something that has no clear need.</div><div><br><blockquote type="cite"><div><br><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">4. &nbsp;PDC proposes that we change the NA in the root-node-row<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">to (-1) instead; I propose that we add a "dropRoot" function<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">(which just operates on a raw edge matrix, not on a phylo4<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">object) to abstract the operation of dropping the appropriate<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">row (essentially substituting for places where we have na.omit<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">or edge[!is.na(edge[,1]),] in the code now<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I'd prefer the dropRoot function vs. changing NA's to -1 in edge.<br></blockquote><blockquote type="cite">dropRoot might also help if we go with adding an imaginary edge to<br></blockquote><blockquote type="cite">unrooted trees, could just dropRoot whenever we want to summarize<br></blockquote><blockquote type="cite">unrooted trees.<br></blockquote><br> &nbsp;I'm not sure what Peter's reasoning was, but he suggested that<br>-1 would be easier for some of his code to work with.<br><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">6. with some input from Emmanuel, implement SOME form of<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">checking/consistency rule for ordering when importing/exporting<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">from/to ape<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">as(phylo,"phylo4") should keep the ape ordering of nodes/edges during<br></blockquote><blockquote type="cite">import (with insertion of root edge into phylo4 edge matrix).<br></blockquote><blockquote type="cite">Once we make a decision about whether we want to keep direct reordering<br></blockquote><blockquote type="cite">of the edge matrix, I think all that needs to be done for export to<br></blockquote><blockquote type="cite">phylo is to make sure we strip out the root edge and then have<br></blockquote><blockquote type="cite">nodes/edges follow the ape ordering of (tips,int.nodes) in edge?<br></blockquote><br> &nbsp;Well, the question here was whether we wanted to impose cladewise<br>ordering or not, which is in fact *not* (tips, int.nodes). &nbsp;The ape<br>nodeId rules (which we do follow) are (tips, int.nodes); the ape<br>API &lt;ape.mpl.ird.fr/misc/FormatTreeR_28July2008.pdf> says<br>"There is no mandatory order for the rows of edge, but they may be<br>arranged in a way that is efficient for computation and manipulation.",<br>but I have some reason to suspect that's not true. &nbsp;For example, this code<br><br>library(ape)<br>example("read.tree")<br>set.seed(1001)<br>tt &lt;- tree.owls<br><br>permtree &lt;- function(phy) {<br> &nbsp;phy$edge &lt;- phy$edge[sample(nrow(phy$edge)),]<br> &nbsp;phy<br>}<br><br>for (i in 1:40) {<br> &nbsp;cat(i,"\n")<br> &nbsp;ttp &lt;- permtree(tt)<br> &nbsp;plot(ttp)<br>}<br><br> &nbsp;hangs R in an infinite loop on the second try ...<br> &nbsp;I don't know whether pruningwise (or anything other<br>than cladewise will do it) ...<br><br> &nbsp;Arguably this is a bug in ape which Emmanuel should<br>fix ...<br></div></blockquote><div><br></div>It would be great if this bug got fixed.<br><blockquote type="cite"><div><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">I propose that we DELAY:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">2. adding metadata/annotation slots, although if we know<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">their GENERAL form it would be nice to add them to phylo4[d]<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">objects now because adding slots later breaks backward compatibility<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">of saved objects (but we may just have to bite the bullet and<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">do it later). &nbsp;In particular if these were slots of type list()<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">we could be vague about what we were going to put in (at the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">cost of less-strong typing of the objects)<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Hilmar had suggested that these slots could be tag/value lists. If we<br></blockquote><blockquote type="cite">add @metadata and @annotation slots of type list for now, can we enforce<br></blockquote><blockquote type="cite">checking of tags later once we know what metadata and annotations will<br></blockquote><blockquote type="cite">look like?<br></blockquote><br> &nbsp;If they are defined as type "list" then R won't do any checking<br>within them for validity -- that gives us a way out.<br><br><blockquote type="cite"><br></blockquote><blockquote type="cite">Cheers,<br></blockquote><blockquote type="cite">Steve<br></blockquote><br><br>-- <br>Ben Bolker<br>Associate professor, Biology Dep't, Univ. of Florida<br><a href="mailto:bolker@ufl.edu">bolker@ufl.edu</a> / <a href="http://www.zoology.ufl.edu/bolker">www.zoology.ufl.edu/bolker</a><br>GPG key: <a href="http://www.zoology.ufl.edu/bolker/benbolker-publickey.asc">www.zoology.ufl.edu/bolker/benbolker-publickey.asc</a><br>_______________________________________________<br>Phylobase-devl mailing list<br><a href="mailto:Phylobase-devl@lists.r-forge.r-project.org">Phylobase-devl@lists.r-forge.r-project.org</a><br>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/phylobase-devl<br></div></blockquote></div><br><div apple-content-edited="true"> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; ">____________________________________________</span></span></span></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; ">Marguerite A. Butler</span></span></span></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; ">Department of Zoology</span></span></span></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; ">University of Hawaii</span></span></span></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 13px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 13px; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 13px; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 13px; ">2538 McCarthy Mall, Snyder 405</span></span></span></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; font-family: Helvetica; font-size: 12px; "><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; "><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">Honolulu, HI&nbsp; 96822</span></span><br style="font-family: Helvetica; font-size: 12px; "></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; min-height: 14px; font-family: Helvetica; font-size: 12px; "><br class="khtml-block-placeholder"></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; ">Dept: 808-956-8617</span></span></span></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; ">Lab:&nbsp; 808-956-5867</span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; ">FAX: &nbsp; 808-956-9812</span></span></span></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><a href="http://www.hawaii.edu/zoology/faculty/butler.html">http://www.hawaii.edu/zoology/faculty/butler.html</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-size: 12px; font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; "><a href="http://www2.hawaii.edu/~mbutler">http://www2.hawaii.edu/~mbutler</a></span></span></span></span></span></div><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 13px; "></span></span></span></span></span><div><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; -webkit-text-decorations-in-effect: none; text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 13px; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 13px; "><span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 13px; "><a href="http://www.hawaii.edu/zoology/">http://www.hawaii.edu/zoology/</a></span></span></span></span></span></span></span></div><br class="Apple-interchange-newline"></span></div></span><br class="Apple-interchange-newline"> </div><br></div></body></html>