Provided by: libbio-perl-perl_1.7.6-3_all bug


       Bio::DB::FileCache - In file cache for BioSeq objects


         $cachedb = Bio::DB::FileCache->new($real_db);

         # $real_db is a Bio::DB::RandomAccessI database

         $seq = $cachedb->get_Seq_by_id('ROA1_HUMAN');

         # $seq is a Bio::Seq object

         # more control provided with named-parameter form

         $cachedb = Bio::DB::FileCache->new( -seqdb => $real_db,
                                             -file  => $path,
                                             -keep  => $flag,
       =head1 DESCRIPTION

       This is a disk cache system which saves the objects returned by Bio::DB::RandomAccessI on
       disk.  The disk cache grows without limit, while the process is running, but is
       automatically unlinked at process termination unless the -keep flag is set.

       This module requires DB_File and Storable.


       Lincoln Stein <>

       Please direct usage questions or support issues to the mailing list:

       rather than to the module maintainer directly. Many experienced and reponsive experts will
       be able look at the problem and quickly address it. Please include a thorough description
       of the problem with code and data examples if at all possible.

   Reporting Bugs
       Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their
       resolution. Bug reports can be submitted via the web:


       The rest of the documentation details each of the object methods. Internal methods are
       usually preceded with a _

        Title   : new
        Usage   : $db = Bio::DB::FileCache->new(
                        -seqdb => $db,   # Bio::DB::RandomAccessI database
                        -file  => $path, # path to index file
                        -keep  => $flag, # don't unlink index file
        Function: creates a new on-disk cache
        Returns : a Bio::DB::RandomAccessI database
        Args    : as above
        Throws  : "Must be a randomaccess database" exception
                  "Could not open primary index file" exception

       If no index file is specified, will create a temporary file in your system's temporary
       file directory.  The name of this temporary file can be retrieved using file_name().

        Title   : get_Seq_by_id
        Usage   : $seq = $db->get_Seq_by_id('ROA1_HUMAN')
        Function: Gets a Bio::Seq object by its name
        Returns : a Bio::Seq object
        Args    : the id (as a string) of a sequence
        Throws  : "id does not exist" exception

        Title   : get_Seq_by_acc
        Usage   : $seq = $db->get_Seq_by_acc('X77802');
        Function: Gets a Bio::Seq object by accession number
        Returns : A Bio::Seq object
        Args    : accession number (as a string)
        Throws  : "acc does not exist" exception

        Title   : seqdb
        Usage   : $seqdb = $db->seqdb([$seqdb])
        Function: gets/sets the Bio::DB::RandomAccessI database
        Returns : a Bio::DB::RandomAccessI database
        Args    : new sequence database (optional)
        Throws  : nothing

        Title   : file_name
        Usage   : $path = $db->file_name([$file_name])
        Function: gets/sets the name of the cache file
        Returns : a path
        Args    : new cache file name (optional)
        Throws  : nothing

       It probably isn't useful to set the cache file name after you've opened it.

        Title   : keep
        Usage   : $keep = $db->keep([$flag])
        Function: gets/sets the value of the "keep" flag
        Returns : current value
        Args    : new value (optional)
        Throws  : nothing

       The keep flag will cause the index file to be unlinked when the process exits.  Since on
       some operating systems (Unix, OS/2) the unlinking occurs during the new() call immediately
       after opening the file, it probably isn't safe to change this value.

        Title   : db
        Usage   : $db->db
        Function: returns tied hash to index database
        Returns : a Berkeley DB tied hashref
        Args    : none
        Throws  : nothing

        Title   : flush
        Usage   : $db->flush
        Function: flushes the cache
        Returns : nothing
        Args    : none
        Throws  : nothing

        Title   : get_Seq_by_version
        Usage   : $seq = $db->get_Seq_by_version('X77802.1');
        Function: Gets a Bio::Seq object by sequence version
        Returns : A Bio::Seq object
        Args    : accession.version (as a string)
        Throws  : "acc.version does not exist" exception