Raw content of Bio::EnsEMBL::Analysis::RunnableDB::Funcgen::MAT # Ensembl module for Bio::EnsEMBL::Analysis::RunnableDB::Funcgen::MAT # # Copyright (c) 2007 Ensembl # =head1 NAME Bio::EnsEMBL::Analysis::RunnableDB::Funcgen::MAT =head1 SYNOPSIS my $runnable = Bio::EnsEMBL::Analysis::RunnableDB::Funcgen::MAT->new ( -db => $db, -input_id => 'chromosome::20:1:100000:1', -analysis => $analysis, ); $runnable->fetch_input; $runnable->run; $runnable->write_output; =head1 DESCRIPTION This module provides an interface between the ensembl functional genomics database and the Runnable MAT which wraps the program MAT (Model-based Analysis of Tiling-array, see http://chip.dfci.harvard.edu/~wli/MAT). =head1 AUTHOR Stefan Graf, Ensembl Functional Genomics - / =head1 CONTACT Post questions to the Ensembl development list: ensembl-dev@ebi.ac.uk =cut package Bio::EnsEMBL::Analysis::RunnableDB::Funcgen::MAT; use strict; use warnings; use Data::Dumper; use Bio::EnsEMBL::Analysis::RunnableDB; use Bio::EnsEMBL::Analysis::RunnableDB::Funcgen; use Bio::EnsEMBL::Analysis::Runnable::Funcgen::MAT; use Bio::EnsEMBL::Analysis::Config::General; use Bio::EnsEMBL::Analysis::Config::Funcgen::MAT; use Bio::EnsEMBL::Utils::Exception qw(throw warning); use Bio::EnsEMBL::Funcgen::Importer; use vars qw(@ISA); @ISA = qw(Bio::EnsEMBL::Analysis::RunnableDB::Funcgen); =head2 new Arg [1] : Arg [2] : Description : Instantiates new MAT runnabledb Returntype : Bio::EnsEMBL::Analysis::RunnableDB::Funcgen::MAT object Exceptions : Example : =cut sub new { print "Analysis::RunnableDB::Funcgen::MAT::new\n"; my ($class,@args) = @_; my $self = $class->SUPER::new(@args); $self->read_and_check_config($CONFIG); return $self; } =head2 query Arg [1] : Bio::EnsEMBL::Analysis::RunnableDB Arg [2] : integer Function : container for chip number Returntype: integer Exceptions: throws if passed the incorrect value Example : =cut sub query { my ($self, $chip) = @_; if($chip){ throw("Must pass RunnableDB::Funcgen::MAT::query an integer ". "specifying the chip to process not ".$chip) unless($chip =~ m/^\d+$/); $self->{'chip'} = $chip; } return $self->{'chip'}; } =head2 check_Sets Arg [1] : Bio::EnsEMBL::Analysis::RunnableDB Function : fetch and set ResultSets of interest Returntype: 1 Exceptions: none Example : =cut sub check_Sets { warn("\nNEED TO IMPLEMENT SETTING OF RESULT/DATA/FEATURE SET!!!\n\n"); } sub fetch_input { my ($self) = @_; print "Analysis::RunnableDB::Funcgen::MAT::fetch_input\n"; my $runnable = 'Bio::EnsEMBL::Analysis::Runnable::Funcgen::' .$self->analysis->module; warn("No input to fetch since we are going to work directly on the CEL files."); $runnable = $runnable->new ( -query => $self->query, -program => $self->analysis->program_file, -analysis => $self->analysis, ); $self->runnable($runnable); return 1; } sub write_output{ print "RunnableDB::Funcgen::MAT::write_output\n"; my ($self) = @_; my @result_files = map { $_->resultsfile } @{$self->runnable}; print Dumper @result_files; my $Importer = Bio::EnsEMBL::Funcgen::Importer->new ( -name => $ENV{EXPERIMENT}, -vendor => $ENV{VENDOR}, -format => $ENV{FORMAT}, -db => $self->db, -host => $self->db->host, -port => $self->db->port, -user => $self->db->username, -pass => $self->db->password, -dbname => $self->db->dbname, -species => $ENV{SPECIES}, -data_version => $ENV{DATA_VERSION}, -input_dir => $ENV{ANALYSIS_WORK_DIR}, -output_dir => $ENV{ANALYSIS_WORK_DIR}, -result_files => \@result_files, -experimental_set_name => $ENV{EXP_SET}, -exp_date => $ENV{EXP_DATE}, -feature_analysis => $self->analysis->logic_name, -feature_type_name => $ENV{FEATURE_TYPE}, -cell_type_name => $ENV{CELL_TYPE}, -location => $ENV{LOCATION}, -contact => $ENV{CONTACT}, -group => $ENV{EGROUP}, -recover => 1, -verbose => 1, # -ssh => $ssh, # -array_set => $array_set, # -array_name => $array_name, # -result_set_name => $rset_name, #not implemented yet # -write_mage => $write_mage, # -update_xml => $update_xml, # -no_mage => $no_mage, # -data_root => $data_dir, # -dump_fasta => $fasta, # -norm_method => $nmethod, # -farm => $farm, # -input_dir => $input_dir, # -exp_date => $exp_date, # -result_files => \@result_files, # -old_dvd_format => $old_dvd_format, #Exp does not build input dir, but could #This allows input dir to be somewhere #other than efg dir structure ); $Importer->register_experiment(); } 1;