Bio::EnsEMBL::Utils
SeqRegionCache
Toolbar
Summary
Bio::EnsEMBL::Utils::SeqRegionCache - A shared LRU cache of information about
seq_regions
Package variables
No package variables defined.
Included modules
Synopsis
use Bio::EnsEMBL::DBSQL::DBAdaptor;
$db = Bio::EnsEMBL::DBSQL::DBAdaptor->new(...);
$seq_region_cache = $db->get_SeqRegionCache();
$key = "$seq_region_name:$coord_system_id";
$array = $seq_region_cache->{$key};
if ($array) {
$name = $array->[1];
$length = $array->[3];
} else {
# cache miss, get the info from the database
# ...
# cache the retrieved information
$seq_region_cache->{$key} = [
$seq_region_id, $seq_region_name,
$coord_system_id, $seq_region_length
];
}
Description
This module is simply a convenient place to put a cache of sequence
region information which is shared by several adaptors for a given
database.
Methods
Methods description
None available.
Methods code
new | description | prev | next | Top |
sub new
{
my $class = shift;
my %id_cache;
my %name_cache;
tie(%name_cache, 'Bio::EnsEMBL::Utils::Cache', $SEQ_REGION_CACHE_SIZE);
tie(%id_cache, 'Bio::EnsEMBL::Utils::Cache', $SEQ_REGION_CACHE_SIZE);
return bless {'name_cache' =>\% name_cache,
'id_cache' =>\% id_cache}, $class;
}
1;
}
General documentation
Copyright (c) 1999-2009 The European Bioinformatics Institute and
Genome Research Limited. All rights reserved.
This software is distributed under a modified Apache license.
For license details, please see
/info/about/code_licence.html