Bio::EnsEMBL::Compara::Filter BestHit
Package variablesGeneral documentationMethods
Toolbar
WebCvsRaw content
Package variables
No package variables defined.
Synopsis
No synopsis!
Description
No description!
Methods
filterDescriptionCode
Methods description
filtercode    nextTop
    Title   :   filter
Usage : filter(\@)
Function: Clean the Array of Bio::EnsEMBL::DnaDnaAlignFeature in 2 steps,
First, sort FeaturePairs by score descending, identity % descending
Second, hits are kept if they do not exactly overlap the subject sequence of previous strored,
higher scored hits.
Returns : Array reference of Bio::EnsEMBL::DnaDnaAlignFeature
Args : Array reference of Bio::EnsEMBL::DnaDnaAlignFeature
Methods code
filterdescriptionprevnextTop
sub filter {
  my ($self,$DnaDnaAlignFeatures) = @_;

  @{$DnaDnaAlignFeatures} = sort {$b->score <=> $a->score ||
				    $b->percent_id <=> $a->percent_id} @{$DnaDnaAlignFeatures};
  
  my @DnaDnaAlignFeatures_filtered;

  foreach my $fp (@{$DnaDnaAlignFeatures}) {
    if ($fp->strand < 0) {
      $fp->reverse_complement;
    }

    my $add_fp = 1;
    
    foreach my $feature_filtered (@DnaDnaAlignFeatures_filtered) {

      my ($start,$end) = ($feature_filtered->start,$feature_filtered->end);

      if ($fp->start == $start && $fp->end == $end) {
	$add_fp = 0;
	last;
      }
    }
    push @DnaDnaAlignFeatures_filtered, $fp if ($add_fp);
  }
  return\@ DnaDnaAlignFeatures_filtered;
}

1;
}
General documentation
No general documentation available.