Raw content of Bio::EnsEMBL::Analysis::RunnableDB::Finished::Augustus # Ensembl module for Bio::EnsEMBL::Analysis::RunnableDB::Finished::Augustus # # Copyright (c) 2004 Ensembl # =head1 NAME =head1 SYNOPSIS my $runnabledb = Bio::EnsEMBL::Analysis::RunnableDB::Finished::Augustus-> new( -input_id => 'contig::AL805961.22.1.166258:1:166258:1', -db => $db, -analysis => $analysis, ); $runnabledb->fetch_input; $runnabledb->run; $runnabledb->write_output; =head1 DESCRIPTION fetches sequence data from database an instantiates and runs the augustus runnable, this inherits from the Genscan runnableDB an as such doesnt implement much itself =head1 CONTACT Post questions to : anacode-people@sanger.ac.uk =cut package Bio::EnsEMBL::Analysis::RunnableDB::Finished::Augustus; use strict; use warnings; use Bio::EnsEMBL::Analysis::RunnableDB::Genscan; use Bio::EnsEMBL::Analysis::Runnable::Finished::Augustus; use Bio::EnsEMBL::Analysis::Config::General; use Bio::EnsEMBL::Utils::Exception qw(throw warning); use vars qw(@ISA); @ISA = qw(Bio::EnsEMBL::Analysis::RunnableDB::Genscan); =head2 runnable_path Arg [1] : Bio::EnsEMBL::Analysis::RunnableDB::Finished::Augustus Function : return the runnable path Returntype: string Exceptions: Example : my $runnable = $self->runnable_path->new ( -query => $self->query, -program => $self->analysis->program_file, -analysis => $self->analysis, %parameters, ); =cut sub runnable_path{ my ($self); return "Bio::EnsEMBL::Analysis::Runnable::Finished::Augustus"; } sub write_output{ my ($self) = @_; my $adaptor = $self->db->get_PredictionTranscriptAdaptor; my $dbh = $self->db->dbc->db_handle; my @output = @{$self->output}; my $ff = $self->feature_factory; $dbh->begin_work; eval { foreach my $pt(@output){ $pt->analysis($self->analysis); $pt->slice($self->query) if(!$pt->slice); print STDERR "Validate transcript ".$pt->seqname."\n"; # dismiss transcript with invalid translation eval { $ff->validate_prediction_transcript($pt, 1); }; if($@){ warning($@); next; } $adaptor->store($pt); } $dbh->commit; }; if ($@) { $dbh->rollback; throw("UNABLE TO WRITE PREDICTION TRANSCRIPTS IN DATABASE\n[$@]\n"); } } 1;