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