Bio::EnsEMBL::Analysis::RunnableDB Pseudogene2x
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvsRaw content
Summary
Bio::EnsEMBL::Analysis::RunnableDB::Pseudogene2x.pm
Package variables
No package variables defined.
Included modules
Bio::EnsEMBL::Analysis::Config::Pseudogene
Bio::EnsEMBL::Analysis::Runnable::Pseudogene2x
Bio::EnsEMBL::Analysis::RunnableDB::Pseudogene_DB
Bio::EnsEMBL::DBSQL::DBConnection
Bio::EnsEMBL::Utils::Exception qw ( verbose throw warning stack_trace )
Inherit
Bio::EnsEMBL::Analysis::RunnableDB::Pseudogene_DB
Synopsis
my $runnabledb = Bio::EnsEMBL::Analysis::RunnableDB::Pseudogene_DB->new(
-db => $db_adaptor,
-input_id => $slice_id,
-analysis => $analysis,
);
$runnabledb->fetch_input();
$runnabledb->run();
my @array = @{$runnabledb->output};
$runnabledb->write_output();
Description
This object wraps Bio::EnsEMBL::Analysis::Runnable::Pseudogene2x.pm
Specidfic behaviour for Pseudogene identification in 2x gene-builds
Methods
fetch_input
No description
Code
get_all_repeat_blocks
No description
Code
make_runnable
No description
Code
Methods description
None available.
Methods code
fetch_inputdescriptionprevnextTop
sub fetch_input {
  my( $self) = @_;

  $self->SUPER::fetch_input;

  my $genes_slice = $self->query;

  my @seq_level_features;
  foreach my $bit (@{$genes_slice->project('seqlevel')}) {
    push @seq_level_features, Bio::EnsEMBL::Feature->new(-start => $bit->from_start + $genes_slice->start - 1,
                                                         -end   => $bit->from_end   + $genes_slice->start - 1,
                                                         -strand => 1);
  }

  foreach my $run (@{$self->runnable}) {
    $run->seqlevel(\@seq_level_features);
  }
}
get_all_repeat_blocksdescriptionprevnextTop
sub get_all_repeat_blocks {
  my ($self,$repeat_ref) = @_;
  my @repeat_blocks;
  my @repeats = @{$repeat_ref};
  @repeats = sort {$a->start <=> $b->start} @repeats;
  my $curblock = undef;

 REPLOOP: foreach my $repeat (@repeats) {
    my $rc = $repeat->repeat_consensus;
    if ($rc->repeat_class !~ /LINE/ && 
        $rc->repeat_class !~ /LTR/ && 
        $rc->repeat_class !~ /SINE/ &&
        $rc->repeat_class !~ /Unknown/) {  
      next REPLOOP;
    }
    if ($repeat->start <= 0) { 
      $repeat->start(1); 
    }
    if (defined($curblock) && $curblock->end >= $repeat->start) {
      if ($repeat->end > $curblock->end) { 
	$curblock->end($repeat->end); 
      }
    } else {
      $curblock = Bio::EnsEMBL::Feature->new(
                                             -START => $repeat->start,
                                             -END => $repeat->end, 
                                             -STRAND => $repeat->strand
                                             );
      push (@repeat_blocks,$curblock);
    }
  }
    @repeat_blocks = sort {$a->start <=> $b->start} @repeat_blocks;
  return\@repeat_blocks;
}

1;
}
make_runnabledescriptionprevnextTop
sub make_runnable {
  my ($self) = @_;

  my $run = Bio::EnsEMBL::Analysis::Runnable::Pseudogene2x->new
      ( 
        -analysis => $self->analysis,
        -genes => $self->genes,
        -repeat_features => $self->repeat_blocks,
        -PS_REPEAT_TYPES              => $self->PS_REPEAT_TYPES,
		    -PS_FRAMESHIFT_INTRON_LENGTH  => $self->PS_FRAMESHIFT_INTRON_LENGTH,
				-PS_MAX_INTRON_LENGTH         => $self->PS_MAX_INTRON_LENGTH,
				-PS_MAX_INTRON_COVERAGE       => $self->PS_MAX_INTRON_COVERAGE,
				-PS_MAX_EXON_COVERAGE         => $self->PS_MAX_EXON_COVERAGE,
				-PS_NUM_FRAMESHIFT_INTRONS    => $self->PS_NUM_FRAMESHIFT_INTRONS,
				-PS_NUM_REAL_INTRONS          => $self->PS_NUM_REAL_INTRONS,
				-SINGLE_EXON                  => $self->SINGLE_EXON,
				-INDETERMINATE                => $self->INDETERMINATE,
				-PS_MIN_EXONS                 => $self->PS_MIN_EXONS,
				-PS_MULTI_EXON_DIR            => $self->PS_MULTI_EXON_DIR,
				-BLESSED_BIOTYPES             => $self->BLESSED_BIOTYPES,
				-PS_PSEUDO_TYPE               => $self->PS_PSEUDO_TYPE,
				-PS_BIOTYPE                   => $self->PS_BIOTYPE,
				-PS_REPEAT_TYPE              => $self->PS_REPEAT_TYPE,
				-DEBUG                        => $self->DEBUG,
																																					
      );
  $self->runnable($run);
}
General documentation
CONTACTTop
Post questions to the Ensembl development list: ensembl-dev@ebi.ac.uk
APPENDIXTop