[Bioperl-l] Bio::FeatureIO::gff bug?

Sendu Bala bix at sendu.me.uk
Tue Sep 25 06:00:20 EDT 2007


Hilmar Lapp wrote:
> On Sep 24, 2007, at 9:35 AM, Chris Fields wrote:
>> I think that'll work fine.  The other option would be call a
>> print_gff_header() function within write_feature() with the intent to
>> print the header only once, using a flag or similar:
>>
>> if (!$self->header_printed) {
>>      $self->print_gff_header;
>>      $self->header_printed(1);
>> }
 >
> I'd lean toward this or a similar approach too. Writing stuff out in the 
> constructor doesn't feel like the best design.

I'd argue that the alternative is just inefficient with no compensating 
benefit. You have something that must only be done once, and a method 
(_initialize) that is only called once. The constructor is used to set 
up the file, getting it into a state ready to add features. This 
involves opening it for writing with the correct filename and setting 
the desired GFF version. Why wouldn't it also output what ever else was 
necessary it initialize the file?

Also, what do we expect should happen when we use Bioperl to create a 
GFF file and don't write any features to it? Should it be an empty file, 
or should it contain whatever GFF information the user had managed to 
supply (the version)?


More information about the Bioperl-l mailing list