Bio::DB::FileCache.3pm

Langue: en

Version: 2009-03-10 (debian - 07/07/09)

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>

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