Bio::EnsEMBL::Analysis::Tools::Otter::DBSQL
DnaAlignFeatureHistoryAdaptor
Toolbar
Summary
Bio::EnsEMBL::Analysis::Tools::Otter::DBSQL::DnaAlignFeatureHistoryAdaptor
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
fetches the DnaAlignFeatureHistory objects from an Otter database
Description
Methods
_columns | No description | Code |
_objFromHashref | Description | Code |
_objs_from_sth | No description | Code |
_tables | No description | Code |
clear_cache | No description | Code |
fetch_all_by_seq_region | No description | Code |
fetch_by_DnaAlignFeature_info | No description | Code |
new | No description | Code |
Methods description
Arg [1] : $sth Description: Private helper function generates an DnaAlignFeatureHistory object Returntype : Bio::EnsEMBL::Analysis::Tools::Otter::DnaAlignFeatureHistory Exceptions : none Caller : Bio::EnsEMBL::DBSQL::AnalsisAdaptor::fetch_* methods Status : Stable |
Methods code
sub _columns
{ my $self = shift;
return ('dafh.align_feature_history_id','dafh.seq_region_id',
'dafh.analysis_id','dafh.align_feature_id_start',
'dafh.align_feature_id_end','dafh.db_version','dafh.date'); } |
sub _objFromHashref
{ my $self = shift;
my $rowHash = shift;
my $aa = $self->db->get_AnalysisAdaptor();
my $analysis = $aa->fetch_by_dbID($rowHash->{analysis_id});
my $dna_align_feature_history = Bio::EnsEMBL::Analysis::Tools::Otter::DnaAlignFeatureHistory->new(
-id => $rowHash->{align_feature_history_id},
-seq_region_id => $rowHash->{seq_region_id},
-analysis => $analysis,
-align_feature_id_start => $rowHash->{align_feature_id_start},
-align_feature_id_end => $rowHash->{align_feature_id_end},
-db_version => $rowHash->{db_version},
-date => $rowHash->{date},
-adaptor => $self,
);
return $dna_align_feature_history; } |
sub _objs_from_sth
{ my ($self, $sth) = @_;
my $aa = $self->db->get_AnalysisAdaptor();
my @out;
my ($align_feature_history_id, $seq_region_id, $analysis_id, $align_feature_id_start,
$align_feature_id_end, $db_version, $date);
$sth->bind_columns(\$align_feature_history_id,\$ seq_region_id,\$ analysis_id,\$ align_feature_id_start,\$
align_feature_id_end,\$ db_version,\$ date);
while($sth->fetch()) {
my $analysis = $aa->fetch_by_dbID($analysis_id);
push @out, Bio::EnsEMBL::Analysis::Tools::Otter::DnaAlignFeatureHistory->new(
-id => $align_feature_history_id,
-seq_region_id => $seq_region_id,
-analysis => $analysis,
-align_feature_id_start => $align_feature_id_start,
-align_feature_id_end => $align_feature_id_end,
-db_version => $db_version,
-date => $date,
-adaptor => $self,
);
}
return\@ out;
}
1; } |
sub _tables
{ my $self = shift;
return (['dna_align_feature_history' , 'dafh']); } |
sub clear_cache
{ my ($self) = @_;
$self->{'_dafh_cache'} = (); } |
sub fetch_all_by_seq_region
{ my $self = shift;
my ($seq_region_id, $analysis_id, $daf_id) = @_;
my ($daf_history, $dbID);
my $rowHashRef;
my $sth = $self->prepare(
"SELECT align_feature_history_id, ".
"seq_region_id, analysis_id, align_feature_id_start, ".
"align_feature_id_end, db_version, date ".
"FROM dna_align_feature_history ".
"WHERE seq_region_id = ? ".
"AND analysis_id = ? ".
"AND align_feature_id_start <= ? ".
"AND align_feature_id_end >= ? "
);
$sth->bind_param(1,$seq_region_id ,SQL_INTEGER);
$sth->bind_param(2,$analysis_id ,SQL_SMALLINT);
$sth->bind_param(3,$daf_id ,SQL_INTEGER);
$sth->bind_param(4,$daf_id ,SQL_INTEGER);
$sth->execute;
while ($rowHashRef = $sth->fetchrow_hashref) {
my $daf_history = $self->_objFromHashref($rowHashRef);
foreach my $num ($daf_history->align_feature_id_start .. $daf_history->align_feature_id_end) {
my $key = uc(join(':', $daf_history->seq_region_id,$daf_history->analysis->dbID,$daf_id));
$self->{_dafh_cache}->{$key} = $daf_history;
}
}
$sth->finish;
my @daf_histories = values %{$self->{_dafh_cache}};
return\@ daf_histories; } |
sub fetch_by_DnaAlignFeature_info
{ my $self = shift;
my ($dna_align_feature_id, $seq_region_id, $analysis_id) = @_;
my $key = uc(join(':', $seq_region_id,$analysis_id,$dna_align_feature_id));
if (!defined $self->db->no_cache || !$self->db->no_cache){
if (exists($self->{'_dafh_cache'}->{$key}) && defined $self->{'_dafh_cache'}->{$key}) {
return $self->{'_dafh_cache'}->{$key};
} else {
}
}
$self->fetch_all_by_seq_region($seq_region_id, $analysis_id, $dna_align_feature_id);
my $original_key = uc(join(':', $seq_region_id,$analysis_id,$dna_align_feature_id));
my $dafh = $self->{'_dafh_cache'}->{$original_key};
if (!defined $self->db->no_cache || !$self->db->no_cache){
foreach my $num ($dafh->align_feature_id_start .. $dafh->align_feature_id_end) {
my $k = uc(join(':', $seq_region_id,$analysis_id,$num));
if (!exists $self->{'_dafh_cache'}->{$k} || !defined $self->{'_dafh_cache'}->{$k}) {
$self->{'_dafh_cache'}->{$k} = $dafh;
}
}
}
return $dafh; } |
sub new
{ my ($class, $db) = @_;
my $self = $class->SUPER::new($db);
return $self; } |
General documentation