[Bioperl-l] Re: cloning and Storable

Heikki Lehvaslaiho heikki at ebi.ac.uk
Fri Sep 5 05:40:31 EDT 2003


Will,

This does not solve my problem but is a great module to add into
bioperl. I'll do it right now if you promise to write a test file in
near future. ;-)


I added the following text into docs:

Anyone planning to use Bio::Root::Storable in bioperl modules:
Storable is not part of all perl core libraries. When inheriting from
it, you have to do:
    eval { require Storable; };
and fail gracefully.


	-Heikki

On Fri, 2003-09-05 at 09:39, Will Spooner wrote:
> This may be a good time to mention that we have developed a
> Bio::Root::Storable module for use with the Ensembl web site. 
> 
> This module is used specifically for serialising/retrieving Search objects
> to disk after parsing with SearchIO. It is in production, and works very
> well, even in a high-throughput environment.
> 
> The implementation is generic (can be inhereted by any bioperl object),
> and even implements a clone() method.
> 
> I have attached the module to this mail, and pasted the description below.
> I would be delighted to see this module incorperated into BioPerl if
> appropriate. I don't know whether it will solve Hekki's problem, but may 
> provide an alternative to writing a new serialiser!
> 
> Regards,
> 
> Will
> 
> ---
> Will Spooner                   whs at sanger.ac.uk
> Ensembl Web Developer    http://www.ensembl.org
> 
> 
> NAME
>   Bio::Root::Storable - object serialisation methods
> 
> SYNOPSIS
>     my $storable = Bio::Root::Storable->new();
> 
>     # Store/retrieve using class retriever
>     my $token     = $storable->store();
>     my $storable2 = Bio::Root::Storable->retrieve( $token );
> 
>     # Store/retrieve using object retriever
>     my $storable2 = $storable->new_retrievable();
>     $storable2->retrieve();
> 
> DESCRIPTION
>   Generic module that allows objects to be safely stored/retrieved from
>   disk. Can be inhereted by any BioPerl object. As it will not usually be
>   the first class in the inheretence list, _initialise_storable() should
>   be called during object instantiation.
> 
>   Currently stores objects in binary format (using the Perl Storable
>   module). This can cause problems when storing and retrieving with different
>   versions of Storable (e.g. on different machines). An ASCII storage
>   option (using Data::Dumper) may be implemented in the future.
> 
>   Object storage is recursive; If the object being stored contains other
>   storable objects, these will be stored seperately, and replaced by a
>   skeleton object in the parent heirarchy. When the parent is later
>   retrieved, its children remain in the skeleton state until explicitly
>   retrieved by the parent. This lazy-retrieve approach has obvious memory
>   efficiency benefits for certain applications.
> 
-- 
______ _/      _/_____________________________________________________
      _/      _/                      http://www.ebi.ac.uk/mutations/
     _/  _/  _/  Heikki Lehvaslaiho    heikki_at_ebi ac uk
    _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
   _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
  _/  _/  _/  Cambs. CB10 1SD, United Kingdom
     _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
___ _/_/_/_/_/________________________________________________________



More information about the Bioperl-l mailing list