---
name: "Bio::DB::FileCache"
section: "3pm"
platform: "linux"
package: "libbio-perl-perl"
version: "1.7.8-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Bio::DB::FileCache"
---

# Bio::DB::FileCache(3pm)

In file cache for BioSeq objects

## 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:

```
  https://github.com/bioperl/bioperl-live/issues
```

## 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
```
