[Biopython-dev] Fwd: Where to put command line wrappers

Brad Chapman chapmanb at 50mail.com
Fri Apr 17 10:02:41 EDT 2009


Hi all;

[Where to put the commandline objects]
> >  I think that there is a difference between EMBOSS and
> >  Bio.[Motif|Align]. In EMBOSS we have a very nicely comoditized
> >  set of tools with similar interfaces, while both for multiple
> >  alignment and motif searching the tools vary a lot. In case of
> >  multiple alignments this is only with respect to parameters and
> >  output format, while in motif searching there is also a lot of
> >  differences in the types of input (background models etc.).
> 
> That is a good argument for using Bio/Align/Applications/XXX.py and
> Bio/Motif/Applications/XXX.py while also having
> Bio/EMBOSS/Applications.py

There is a natural tension between overgeneralizing and dumping
too much into one file. At one end you have deeply nested Java-like
directories with a few lines of code in each file. I tend towards the
"more in a single file and less nesting" camp. My vote would be that
if the Motif Applications file will only contain commandline
wrappers, they could live in one file.

[generic_run]
> >  Motif finding programs usually output a lot less than there is input. Normally,
> >  you don't want to see more than 10 motifs and each contributes ~1kb so
> >  I don't see this as a huge problem in this case.
> 
> I can see that Bio.Application.generic_run function is often handy,
> but sometimes it is quite inappropriate.  For AlignAce obviously it
> has sufficed.

Yeah, generic_run is not as generic as it should be. It does have a
lot of hard fought logic for working with multiple python versions
and windows/unix. Could we make generic_run appropriate for the big
standard out cases so we don't end up duplicating that in
Blast/Clustalw/wherever runners?

Brad


More information about the Biopython-dev mailing list