[BioPython] biopython integration with make-like tools (e.g. waf, paver)
Giovanni Marco Dall'Olio
dalloliogm at gmail.com
Mon Nov 17 13:19:04 EST 2008
>
> That sounds potentially useful for a complicated analysis pipeline.
> But suppose you also wanted to check the current version of BLAST
> installed and the version of BLAST used in the existing output file?
> This would probably be possible within a Makefile using some embedded
> shell scripts calling grep, but it wouldn't be very nice at all.
> Although it would still be a non-trivial bit of code, I would prefer
> to do this in python (maybe put the code into a library function for
> reuse).
well, in principle you would check for blast's executable last
modification date.
If the blast executable has a modification date which is younger than
the results file, you will have to calculate them again.
Other build tools can also check for md5 modification to prerequisite
files, or can be integrated with subversion/other rcs systems.
You can do this in python, but it takes a lot of time, and would mean
re-writing existing code. I am sure there is should be something
specific for bioinformaticians already :).
Well, I'll write some workflows with the tools I linked before (and
also with scons) and let you know.
> My point is, using some other tool like Make could make certain
> operations easier, but with a python script you can do this sort of
> thing and more. You have full control, without adding another
> dependency to the project.
>
>> that's the kind of things that makefile tools can do for you already,
>> without having to write complicated python conditions.
>
> True - but as I have tried to illustrate above, even Make has its limitations.
>
>> The best thing would be to learn how to write workflows, like the ones
>> from taverna and similar.
>> But it takes time, and I think it is better if you know the two things.
>> As I was saying before, make has the worst syntax, but maybe there are
>> other building tools which are better.
>
> I certainly wouldn't be keen on make itself, but there might be a
> python library out there that would be a good compromise (making the
> common file existence/date based tasks easy, but allowing arbitrary
> extension - e.g. my BLAST version check requirement).
>
> Peter
>
--
-----------------------------------------------------------
My Blog on Bioinformatics (italian): http://bioinfoblog.it
More information about the BioPython
mailing list