[Bioperl-l] Bio::SeqIO::new possible wierdness
Peter van Heusden
pvh at egenetics.com
Wed Jan 28 10:01:28 EST 2004
My review of the Bio::SeqIO::new method shows the following behaviour:
Missing both –file and –fh arguments: falls back to using $ARGV[0] (the
first command line argument) as sequence filename. If this fails, gives
an exception about ‘Unknown format’.
-file argument (without –fh argument):
· given, but file unreadable: throws exception
· undefined: reads $ARGV[0], as above.
-fh argument (without –file argument):
· given, but not a filehandle: gives exception
· given, but an invalid filehandle (not open): gives exception
· undefined: reads $ARGV[0], as above.
-format argument: if the sequence file doesn’t correspond to the given
format, some parsers give an error (e.g. EMBL), while others do not
(GenBank), instead silently give wrong results.
-format argument without –file argument: Silently creates a SeqIO object
which writes to STDOUT.
I don't think that this $ARGV[0] shortcut should be in there - it causes
unnecessary potential confusion. Imagine a situation where -fh or -file
is specified (using a variable), but that variable somehow does not get
defined. In that case, the $ARGV[0] fallback behaviour would be used,
which might lead to a non-obvious error behaviour.
I'd like to propose that either -file or -fh should be specified,
otherwise an exception is thrown. While I'm about it, I'm thinking of
migrating the exceptions to the new 'typed exceptions' that BioPerl now
provides - is there any consensus on exception type names?
Peter
More information about the Bioperl-l
mailing list