Bio::DB::FileCache.3pm

Langue: en

Version: 2010-05-19 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

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

SYNOPSIS

   $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.

CONTACT

Lincoln Stein <lstein@cshl.org>

Support

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

bioperl-l@bioperl.org

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:
   http://bugzilla.open-bio.org/
 
 

APPENDIX

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

new

  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().

get_Seq_by_id

  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
 
 

get_Seq_by_acc

  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
 
 

seqdb

  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
 
 

file_name

  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.

keep

  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.

db

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

flush

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

get_Seq_by_version

  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