[Phylobase-devl] several proposed additions

Jim Regetz regetz at nceas.ucsb.edu
Wed Jun 24 09:45:07 CEST 2009


Hi all,

I'd love to get feedback on any/all of the following. Below, when I talk 
about things I've done, I mean in my local sources -- I haven't actually 
committed any of the following. But it is all more or less ready to go, 
albeit with a couple of minor rough edges that we can discuss further if 
folks want to move ahead on any of these:

* NAMESPACE: I've created one. Seems to work fine. I'm basically 
exporting all functions and methods now. I figure it's easier to start 
with a liberal approach, and later remove whatever items folks agree are 
only required internally.

* Unit tests: I've created a handful of RUnit tests, and added the 
necessary "run tests" machinery as documented here: 
http://wiki.r-project.org/rwiki/doku.php?id=developers:runit

The tests are not even remotely comprehensive, but they do test against 
the bug fixes I've implemented in the last week or so. I find unit tests 
to be hugely helpful in making sure that fixed bugs stay fixed, and that 
code changes in one area don't unexpectedly break things somewhere else. 
And I find RUnit testing to provide better structure and test 
expressivity than you get with unstructured test scripts in the pkg/test 
directory.

I'm not 100% certain that R-forge would do the right thing with these 
tests without some additional tweaking, but they are successfully run by 
R CMD CHECK on my local machine (at least as long as phylobase is 
already installed).

* phylo4 generic: Any reason why there has been a generic for phylo4d, 
but not phylo4? I've now created a phylo4 generic, along with two 
methods: one with signature x="matrix" (replacing the original phylo4 
constructor function), and one with signature x="phylo" (imports phylo 
to phylo4). I updated the associated doc pages to match, plus fixed a 
few places in the examples and sources where phylo(edge=...) was called 
explicitly (the first argument is now the more generic 'x', not 'edge').

* Dealing with messy node labels: My motivation for creating the phylo4 
generic was to expose an option allowing node labels to be dropped (or, 
in the case of phylo4d, added to the tree data) during phylo import. 
This is basically just a modified implementation of what François did to 
deal with MrBayes sorts of trees, except now focused specifically on 
phylo import (it could be added elsewhere too), and now with user-level 
control of the behavior. I'm glossing over the details, but for those 
not paying attention to the bug tracker, see more discussion here:
https://r-forge.r-project.org/tracker/index.php?func=detail&aid=466&group_id=111&atid=488

FYI, R CMD CHECK passes on all the above changes (well, aside from a 
latex documentation issue that I think has been around for some time).

I'll be traveling much of the next month, but would be happy to discuss 
any of this further. And of course, I can push some/all of this up to 
the repository at any time, or send relevant code to the list if requested.

Thanks,
Jim


More information about the Phylobase-devl mailing list