[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