[Biopython-dev] pypaml

Brandon Invergo b.invergo at gmail.com
Thu Aug 11 11:51:26 UTC 2011


On Thu, 2011-08-11 at 12:36 +0100, Peter Cock wrote:
> It's a shame you don't still have access to the Windows 7 box.
> 
> I've just grabbed the current PAML 4.4 pre-compiled for Windows
> and put it on my Windows machine which runs as a buildslave,
> and put the binaries on the PATH:
> 
> http://abacus.gene.ucl.ac.uk/software/paml.html
> http://abacus.gene.ucl.ac.uk/software/paml4.4e.tar.gz
> 
> None of the current unit tests actually use the binaries do they?
> Could you add a basic test (in a separate file which raises the
> missing dependency exception to skip the test if the binary is
> not on the path) for calling the tools?
> 
> Peter

No, I didn't include any tests that use the binaries because I wasn't
sure if they would be on the main test machine. Also, generating the
output which is used in other tests can take a lot of time in some
cases. Instead, I've generated the output files myself and then accessed
those from the tests. The one problem I have with this approach is that
it's not very reproducible; if someone else wishes to add data files
from later versions of PAML, they won't know how I generated them. Again
the goal is to make sure that we're parsing each new version correctly,
since the output format has been known to change between versions. I
could create a readme file which contains the info and put it in the
paml Tests subfolder. Sound reasonable?

I can create a Tests/test_PAML.py file to contain the proposed test. In
it, I can try to run codeml, baseml and yn00 directly using Subprocess,
each on some bogus input. If the binaries are there, they'll throw an
error which the test will catch. If they aren't Subprocess itself will
throw an error. I can't do this check using Bio.Phylo.PAML because we,
of course, aim to prevent bogus input from ever even reaching the
binary.
How does that sound? Is that what you had in mind?

-brandon




More information about the Biopython-dev mailing list