Raw content of Bio::EnsEMBL::Analysis::RunnableDB::BlastRfam # Ensembl module for Bio::EnsEMBL::Analysis::RunnableDB::Blast # # Copyright (c) 2004 Ensembl # =head1 NAME Bio::EnsEMBL::Analysis::RunnableDB::BlastRfam =head1 SYNOPSIS my $blast = Bio::EnsEMBL::Analysis::RunnableDB::BlastRfam-> new( -analysis => $analysis, -db => $db, -input_id => 'contig::AL1347153.1.3517:1:3571:1' ); $blast->fetch_input; $blast->run; my @output =@{$blast->output}; =head1 DESCRIPTION Modified blast runnable for specific use with RFAMSEQ. Use for running BLASTN of genomic vs RFAMSEQ prior to ncRNA analysis using Infernal. Slice size seems best around 200k =head1 CONTACT Post questions to the Ensembl development list: ensembl-dev@ebi.ac.uk =cut package Bio::EnsEMBL::Analysis::RunnableDB::BlastRfam; use strict; use warnings; use Bio::EnsEMBL::Analysis::RunnableDB::Blast; use Bio::EnsEMBL::Analysis::Runnable::BlastRfam; use Bio::EnsEMBL::Utils::Exception qw(throw warning); use Bio::EnsEMBL::Analysis::Config::General; use Bio::EnsEMBL::Analysis::Config::Blast; use Bio::EnsEMBL::Analysis::RunnableDB::BaseGeneBuild; use Bio::EnsEMBL::Analysis::Config::Databases qw(DATABASES DNA_DBNAME); use vars qw(@ISA); @ISA = qw(Bio::EnsEMBL::Analysis::RunnableDB::Blast Bio::EnsEMBL::Analysis::RunnableDB::BaseGeneBuild); =head2 fetch_input Arg [1] : Bio::EnsEMBL::Analysis::RunnableDB::Blast Function : fetch sequence out of database, instantiate the filter, parser and finally the blast runnable Returntype: 1 Exceptions: none Example : =cut sub fetch_input{ my ($self) = @_; # attach dna-db to db my $dna_db = $self->get_dbadaptor($DNA_DBNAME); $self->db->dnadb($dna_db); my $slice = $self->fetch_sequence($self->input_id, $self->db,['Dust']); $self->query($slice); my %blast = %{$self->BLAST_PARAMS}; my $parser = $self->make_parser; my $filter; if($self->BLAST_FILTER){ $filter = $self->make_filter; } my $seq = $self->query; my $runnable = Bio::EnsEMBL::Analysis::Runnable::BlastRfam->new ( -query => $seq, -program => $self->analysis->program_file, -parser => $parser, -filter => $filter, -database => $self->analysis->db_file, -analysis => $self->analysis, -params => \%blast, ); $self->runnable($runnable); return 1; }