BioPerl
view release on metacpan or search on metacpan
Bio/DB/Expression.pm view on Meta::CPAN
=head1 APPENDIX
The rest of the documentation details each of the object methods.
Internal methods are usually preceded with a _
=cut
# Let the code begin...
package Bio::DB::Expression;
use strict;
use base qw(Bio::Root::HTTPget Bio::Root::Root);
use Bio::Root::HTTPget;
our $DefaultSource = 'geo';
=head2 new()
Usage : my $obj = Bio::DB::Expression->new();
Function: Builds a new Bio::DB::Expression object
Returns : an instance of Bio::DB::Expression
Args :
=cut
sub new {
my($class,@args) = @_;
if( $class =~ /Bio::DB::Expression::(\S+)/ ) {
my ($self) = $class->SUPER::new(@args);
$self->_initialize(@args);
return $self;
} else {
my %param = @args;
@param{ map { lc $_ } keys %param } = values %param; # lowercase keys
my $source = $param{'-source'} || $DefaultSource;
$source = "\L$source"; # normalize capitalization to lower case
# normalize capitalization
return unless( $class->_load_expression_module($source) );
return "Bio::DB::Expression::$source"->new(@args);
}
}
=head2 get_platforms()
Usage :
Function:
Example :
Returns : a list of Bio::Expression::Platform objects
Args :
=cut
sub get_platforms {
my ($self,@args) = @_;
$self->throw_not_implemented();
}
=head2 get_samples()
Usage :
Function:
Example :
Returns : a list of Bio::Expression::Sample objects
Args :
=cut
sub get_samples {
my ($self,@args) = @_;
$self->throw_not_implemented();
}
=head2 get_contacts()
Usage :
Function:
Example :
Returns : a list of Bio::Expression::Contact objects
Args :
=cut
sub get_contacts {
my ($self,@args) = @_;
$self->throw_not_implemented();
}
=head2 get_datasets()
Usage :
Function:
Example :
Returns : a list of Bio::Expression::DataSet objects
Args :
=cut
sub get_datasets {
my ($self,@args) = @_;
$self->throw_not_implemented();
}
=head2 _load_expression_module
Title : _load_expression_module
Usage : *INTERNAL Bio::DB::Expression stuff*
Function: Loads up (like use) a module at run time on demand
Example :
Returns :
Args :
=cut
sub _load_expression_module {
my ($self, $source) = @_;
my $module = "Bio::DB::Expression::" . $source;
my $ok;
eval { $ok = $self->_load_module($module) };
if ( $@ ) {
print STDERR $@;
print STDERR <<END;
$self: $source cannot be found
Exception $@
For more information about the Bio::DB::Expression system please see
the Bio::DB::Expression docs. This includes ways of checking for
formats at compile time, not run time.
END
;
}
return $ok;
}
1;
( run in 0.993 second using v1.01-cache-2.11-cpan-437f7b0c052 )