Raw content of Bio::EnsEMBL::Funcgen::Channel
#
# Ensembl module for Bio::EnsEMBL::Funcgen::Channel
#
# You may distribute this module under the same terms as Perl itself
=head1 NAME
Bio::EnsEMBL::Funcgen::Channel - A module to represent a single channel of an ExperimentalChip
=head1 SYNOPSIS
use Bio::EnsEMBL::Funcgen::Channel;
my $array = Bio::EnsEMBL::Funcgen::Channel->new(
-EXPERIMENTAL_CHIP_ID => $ec_id,
-SAMPLE_ID => $sample_id,
-TYPE => $type,
-DYE => $dye,
);
#-replace TYPE with DENOMINATOR?
my $db_adaptor = Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor->new(...);
my $chan_a = $db_adaptor->get_ChannelAdaptor();
my $chan = $chan_a->fetch_by_type_ExperimentalChip($type, $ExpChip);
=head1 DESCRIPTION
A Channel object represents a single channel on an ExperimentalChip. The data
are stored in the channel table, and associated expermental variables are
stored in the experimental_variable table.
=head1 AUTHOR
This module was created by Nathan Johnson.
This module is part of the Ensembl project: /
=head1 CONTACT
Post comments or questions to the Ensembl development list: ensembl-dev@ebi.ac.uk
=head1 METHODS
=cut
use strict;
use warnings;
package Bio::EnsEMBL::Funcgen::Channel;
use Bio::EnsEMBL::Utils::Argument qw( rearrange );
use Bio::EnsEMBL::Utils::Exception qw( throw warning );
use Bio::EnsEMBL::Funcgen::Storable;
use vars qw(@ISA);
@ISA = qw(Bio::EnsEMBL::Funcgen::Storable);
=head2 new
Arg [-EXPERIMENTAL_CHIP_ID]: int - the experimental chip dbID
Example : my $array = Bio::EnsEMBL::Funcgen::Channel->new(
-EXPERIMENTAL_CHIP_ID => $ec_id,
-SAMPLE_ID => $sample_id,
-TYPE => $type,
-DYE => $dye,
);
Description: Creates a new Bio::EnsEMBL::Funcgen::Channel object.
Returntype : Bio::EnsEMBL::Funcgen::Channel
Exceptions : None
Caller : General
Status : Medium Risk
=cut
sub new {
my $caller = shift;
my $class = ref($caller) || $caller;
my $self = $class->SUPER::new(@_);
#can we lc these?
my ($ec_id, $sample_id, $type, $dye)
= rearrange( ['EXPERIMENTAL_CHIP_ID', 'SAMPLE_ID', 'TYPE', 'DYE'], @_ );
$self->sample_id($sample_id) if defined $sample_id;
$self->experimental_chip_id($ec_id) if defined $ec_id;
$self->type($type) if defined $type;
$self->dye($dye) if defined $dye;
return $self;
}
=head2 sample_id
Arg [1] : (optional) string - the sample id for this Channel
Example : my $sample_id = $chan->sample_id();
Description: Getter, setter and lazy loader of sample_id attribute.
Returntype : string
Exceptions : None
Caller : General
Status : Medium Risk
=cut
sub sample_id {
my $self = shift;
$self->{'sample_id'} = shift if @_;
if ( ! exists $self->{'sample_id'} && $self->dbID() && $self->adaptor() ) {
$self->adaptor->fetch_attributes($self);
}
return $self->{'sample_id'};
}
=head2 experimental_chip_id
Arg [1] : (optional) int - the experimenta chip dbID
Example : my $ec_id = $chan->experimental_chip_id();
Description: Getter, setter and lazy loader of experimental_chip_id attribute
Returntype : int
Exceptions : None
Caller : General
Status : Medium Risk
=cut
sub experimental_chip_id {
my $self = shift;
$self->{'experimental_chip_id'} = shift if @_;
if ( !exists $self->{'experimental_chip_id'} && $self->dbID() && $self->adaptor() ) {
$self->adaptor->fetch_attributes($self);
}
return $self->{'experimental_chip_id'};
}
=head2 type
Arg [1] : (optional) string - the channel type e.g. EXPERIMENTAL or CONTROL
Example : my $type = $chan->type();
Description: Getter, setter and lazy loader of type attribute
Returntype : string
Exceptions :
Caller : General
Status : Medium Risk
=cut
sub type {
my $self = shift;
$self->{'type'} = shift if @_;
#warn "we need to control EXPERIMENTAL OR CONTROL here or enum on DB";
if ( !exists $self->{'type'} && $self->dbID() && $self->adaptor() ) {
$self->adaptor->fetch_attributes($self);
}
return $self->{'type'};
}
=head2 dye
Arg [1] : (optional) string - the channel type e.g. EXPERIMENTAL or CONTROL
Example : my $dye = $chan->dye();
Description: Getter, setter and lazy loader of dye attribute
Returntype : string
Exceptions :
Caller : General
Status : Medium Risk
=cut
sub dye {
my $self = shift;
$self->{'dye'} = shift if @_;
#if ( !exists $self->{'dye'} && $self->dbID() && $self->adaptor() ) {
# $self->adaptor->fetch_attributes($self);
#}
return $self->{'dye'};
}
1;