Raw content of Bio::EnsEMBL::DBSQL::AffyArrayAdaptor
=head1 LICENSE
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
=head1 CONTACT
Please email comments or questions to the public Ensembl
developers list at .
Questions may also be sent to the Ensembl help desk at
.
=cut
=head1 NAME
Bio::EnsEMBL::DBSQL::AffyArrayAdaptor - A database adaptor for fetching and
storing AffyArray objects.
=head1 SYNOPSIS
my $aaa = $db->get_AffyArrayAdaptor();
my $array = $aaa->fetch_by_name('Affy-1');
my @arrays = @{ $aaa->fetch_all() };
=head1 DESCRIPTION
The AffyArrayAdaptor is a database adaptor for storing and retrieving
AffyArray objects.
=head1 METHODS
=cut
package Bio::EnsEMBL::DBSQL::AffyArrayAdaptor;
use strict;
use warnings;
use Bio::EnsEMBL::AffyArray;
use Bio::EnsEMBL::DBSQL::OligoArrayAdaptor;
use vars qw(@ISA);
@ISA = qw(Bio::EnsEMBL::DBSQL::OligoArrayAdaptor);
=head2 _default_where_clause
Args : None
Example : None
Description: PROTECTED implementation of superclass abstract method.
Ensures this adaptor only returns Affy arrays.
Returntype : string
Exceptions : None
Caller : Internal
Status : Medium Risk
=cut
sub _default_where_clause {
my $self = shift;
return "oa.type='AFFY'";
}
=head2 _objs_from_sth
Arg [1] : DBI statement handle object
Example : None
Description: PROTECTED implementation of superclass abstract method.
Creates AffyArray objects from an executed DBI statement
handle.
Returntype : Listref of Bio::EnsEMBL::AffyArray objects
Exceptions : None
Caller : Internal
Status : Medium Risk
=cut
sub _objs_from_sth {
my ($self, $sth) = @_;
my (@result, $array_id, $parent_id, $setsize, $name, $type);
$sth->bind_columns( \$array_id, \$parent_id, \$setsize, \$name, \$type );
while ( $sth->fetch() ) {
my $array = Bio::EnsEMBL::AffyArray->new(
-dbID => $array_id,
-adaptor => $self,
-name => $name,
-setsize => $setsize,
);
push @result, $array;
if ($parent_id) {
my $parent_array = Bio::EnsEMBL::AffyArray->new(
-dbID => $parent_id,
-adaptor => $self,
);
$array->superset($parent_array);
}
}
return \@result;
}
=head2 list_dbIDs
Args : None
Example : my @array_ids = @{$aaa->list_dbIDs()};
Description: Gets an array of internal IDs for all AffyArray objects
in the current database. NOTE: In a multi-species
database, this method will return the dbIDs of all
AffyArray objects, not just the ones associated with the
current species.
Returntype : List of ints
Exceptions : None
Caller : ?
Status : Medium Risk
=cut
sub list_dbIDs {
my ($self) = @_;
#return $self->_list_dbIDs('oligo_array');
# Can't use _list_dbIDs because only want OligoArray objects of type AFFY
my @out;
# FIXME: This SQL will not work as expected on multi-species
# databases. It needs to be anchored in a coord_system entry
# coord_system.species_id = $self->species_id(). /ak4@2008-07-15
my $sql = "SELECT oligo_array_id FROM oligo_array WHERE type='AFFY'";
my $sth = $self->prepare($sql);
$sth->execute;
while (my ($id) = $sth->fetchrow() ) {
push @out, $id;
}
$sth->finish;
return \@out;
}
1;