[Biopython-dev] Biopython wrappers' behavior

Wibowo Arindrarto w.arindrarto at gmail.com
Fri May 11 16:08:25 UTC 2012


Hi everyone,

There has been a recent discussion on Github (here:
https://github.com/bow/biopython/commit/b0b1a460149d4a68f76ebde916471628cecfe4e7#-P0)
regarding the way our command line wrappers are supposed to work. It
started as a question on how to handle incompatible parameters and
boils down to how much complexity we want to have in our wrappers.

To give you an illustration:

We have wrappers for BLAST, which raise exceptions if two incompatible
parameters are used at the same time. This mimics BLAST's behavior,
since it will also show errors if given that same combination of
parameters sans using our wrapper. However, the way other programs
handle incompatible parameters are not always the same as BLAST's. For
example, HMMER doesn't show any errors but nothing still gets run, and
EMBOSS seems to use the last parameter it sees, ignoring previous
ones. I have not tested this for all available programs and parameters
in each suite, but it seems reasonable to extrapolate the behavior to
the rest of the programs in their respective suite.

The question is, how should our wrappers handle this? Should we:

* Raise errors whenever incompatible parameters are used (as seen in
BLAST's wrappers)? Or perhaps just give warnings? This is an extra
layer of complexity, but it would help users figure out if something
goes unexpected when using our wrappers.
* Leave it as it is and not worry about incompatible parameters at
all? Perhaps we could also report a bug / feature request to the
respective programs' authors and expect their default behavior to
change?
* (other ideas...)?

I personally favor mimicking the programs' behavior as close as
possible. If it gives errors, we should handle it with our code, if
not then we leave it as it is, even if it results in some unexpected
behavior, but this is just me. What do you think? How should our
wrappers handle incompatible parameters?

Bow



More information about the Biopython-dev mailing list