[Bioperl-l] Problems when trying to persist a sequence in my BioSQL database using, BioPerl

Chris Fields cjfields at uiuc.edu
Thu Jun 26 10:58:29 EDT 2008


On Jun 26, 2008, at 5:02 AM, Sendu Bala wrote:

> Hilmar Lapp wrote:
>> The real question is why your version of Perl doesn't seem to have  
>> support for weak references (the reason for Scalar::Util failing to  
>> load). Could you give details on your OS version and your version  
>> of Perl (output of 'perl -V').
>
> Given that it seems to be perl 5.8.8, I'm guessing this is the  
> RedHat/Fedora issue:
>
> http://search.cpan.org/~adamk/Task-Weaken-1.02/lib/Task/Weaken.pm
>
> Solutions:
> First try installing the latest version of Scalar::Util yourself:
>
> perl -MCPAN -e shell
> force install Scalar::Util
>
> (and see that it gets installed in a place that is checked before  
> the Fedora version, or overwrites the Fedora version)
>
> If that doesn't work, you'll have to download and compile Perl  
> yourself from source (don't use Fedora's installation system).

The last option isn't really viable.  BioPerl is hard enough to  
install w/o having to rebuild perl from scratch.

For the time being, we should add Task::Weaken to the requirements and  
describe the issue within the installation notes, or at least link to  
a reference to it.

>> The question for BioPerl is whether there is a fall-back mechanism  
>> we might want to support if weak references aren't supported,  
>> rather than rendering the genbank parser unusable. Sendu or Chris -  
>> any thoughts on this?
>
> Firstly, Task::Weaken should get added to Build.pl as a requirement,  
> so people get better error messages. If we do that, however, the  
> whole of BioPerl doesn't get installed, never mind just the genbank  
> parser not being usable.
>
> As for a fall-back mechanism, I'm not really sure how that would  
> work. The easiest thing to do would be to just not deal with the  
> species lines if Bio::Species doesn't work. Is that an acceptable  
> fall-back? If not, more thought and discussion is needed. Make a  
> proposal: what would you want to happen?

Skipping the Species isn't an option; it's an integral part of the  
main BioPerl core and would be a PITA to deal with in bioperl-live,  
let alone bioperl-db.  We would have to wrap every Species-related  
call in an eval{} and fallback to something else.  Could we just set  
DESTROY or a root cleanup callback to delete the child/parent node  
references?

chris


More information about the Bioperl-l mailing list