Bio-Maxd
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Bio/Maxd.pm view on Meta::CPAN
package Bio::Maxd;
require 5.005_62;
use strict;
use warnings;
use File::Basename;
require Exporter;
use AutoLoader qw(AUTOLOAD);
our @ISA = qw(Exporter);
our %EXPORT_TAGS = ( 'all' => [ qw(
) ] );
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
our @EXPORT = qw(
);
our $VERSION = '0.04';
sub new {
my $self=shift;
my $class=ref($self) || $self;
my(%data,$tag);
while (@_) {$tag = shift; if ($tag =~ /^-/) {$tag =~ s/^-//;$data{lc($tag)} = shift;}}
$data{'dbase'} = "maxd" if (!$data{'dbase'});
if (!$data{'host'}) {
use Sys::Hostname;
my $hostname = hostname();
$data{'host'} = $data{'host'} || $ENV{'MAXD_HOSTDB'} || $hostname || "localhost";
}
if (!$data{'user'} || !$data{'pass'}) {
($data{'user'},$data{'pass'}) = split(/\//,$ENV{'MAXD_USERID'});
}
$data{'dbh'} = _dbconnect ($data{'host'},$data{'dbase'},$data{'user'},$data{'pass'});
# verify special tables
my($ok,$tname);
my $st = "show tables";
my $sh = $data{'dbh'}->prepare($st);
my $rv = $sh->execute;
while($tname= $sh->fetchrow_array) {
if ($tname =~ /^Image_Seq$/i) { $ok = 1; last; }
}
if (!$ok) {
print STDERR "WARNING: Run 'extendMaxD' to configure database\n";
$data{'dbh'} = undef;
}
$self = bless {} => $class;
foreach $tag (keys %data) { $self->{$tag} = $data{$tag}; }
return $self;
}
sub export {
my $self=shift;
my(%data,$tag);
foreach $tag (keys %{$self}) { $data{$tag} = $self->{$tag};}
while (@_) {$tag = shift; if ($tag =~ /^-/) {$tag =~ s/^-//;$data{lc($tag)} = shift;}}
return 0 if (ref($data{'dbh'}) ne "DBI::db");
# valid submitter ?
($data{'submitter_id'},$data{'submitter_name'}) =
_submitterFromSubmitterData($data{'dbh'},$data{'submitter'});
return (_error(501,$data{'submitter'})) if ($data{'submitter_id'}< 0);
print "Submitter:\tname:$data{'submitter_name'}\tID:$data{'submitter_id'}\n"
if ($data{'verbose'});
# valid repository URL ?
$data{'repository_url'} = "." if (!-d $data{'repository_url'});
$data{'repository_url'} .= "/" . $data{'submitter_name'};
$data{'repository_url'} =~ s/ +/_/g;
mkdir($data{'repository_url'},0755);
# valid experiment ?
return 0 if (!$data{'experiment'});
($data{'experiment_id'},$data{'experiment_name'})
= _experimentIDfromExperiment($data{'dbh'},$data{'experiment'},
$data{'submitter_id'});
return (_error(502,"experiment $data{'experiment'} unknown"))
if ($data{'experiment_id'} < 0);
print "Experiment:\tname:$data{'experiment_name'}\tID:$data{'experiment_id'}\n"
if ($data{'verbose'});
# valid array type ?
return 0 if (not defined $data{'array_type'});
$data{'array_name'} = $data{'array_type'} if (!$data{'array_name'});
$data{'array_id'} = $data{'array_type'} if ($data{'array_type'} =~ /^\d+/);
$data{'array_id'} = _arrayIDfromArrayType($data{'dbh'},$data{'array_type'})
if (!$data{'array_id'});
return (_error(502,"array $data{'array_type'} unknown")) if ($data{'array_id'} < 0);
print "Array Type:\tname:$data{'array_type'}\tID:$data{'array_id'}\n"
if ($data{'verbose'});
#valid export format ?
$data{'format'} = lc($data{'format'});
$data{'format'} = "genespring" if (!$data{'format'});
return (_error(501,"unknown export format $data{'format'}"))
if ($data{'format'} !~ /\bgenespring\b/);
my $templateDir = $ENV{'MAXD_TEMPLATES'} || ".";
return (_error(501,"unable to find template for $data{'format'}"))
if (!-f "$templateDir/$data{'format'}\.tmpl");
print "Export format:\t$data{'format'}\n" if ($data{'verbose'});
print "collecting hybridisation\n" if ($data{'verbose'});
my %hybD = _hybridisationByExperimentIDArrayID($data{'dbh'},
$data{'experiment_id'},$data{'array_id'});
print "collecting tissue\n" if ($data{'verbose'});
my(%TisSrc) = _sourceNameTissueByExperiment($data{'dbh'},\%hybD);
my $numOfExp = scalar(keys %hybD);
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.049 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )