| Bio-SAGE-DataProcessing documentation | Contained in the Bio-SAGE-DataProcessing distribution. |
Bio::SAGE::DataProcessing::AveragePhredFilter - A filter that validates sequences based on average Phred score.
use Bio::SAGE::DataProcessing::AveragePhredFilter; $filter = new Bio::SAGE::DataProcessing::AveragePhredFilter->new( 30, 15 );
This module is a concrete subclass of Bio::SAGE::DataProcessing::Filter. The implementation considers a sequence valid if the average quality of all nucleotides meet a given value.
Included with Bio::SAGE::DataProcessing.
This module requires the Bio::SAGE::DataProcessing::Filter package.
1.10 2004.06.19 - Initial release. 0.01 2004.05.02 - prototype
Constructor.
Arguments
$avgPhred
The average phred value of all nucleotides required for a sequence to be considered valid.
$minPhred (optional)
The minimum phred value that all nucleotides in a sequence must have in order to be considered valid. The default value if this argument is not specified is 0.
Usage
my $filter = Bio::SAGE::DataProcessing::MinimumPhredFilter->new( 30, 20 );
if( $filter->is_tag_valid( "AAAAAA", "20 40 40 40 30 35" ) ) {
print "VALID!\n";
}
This implements the is_valid subroutine required in concrete subclasses of Bio::SAGE::DataProcessing::Filter.
Arguments
$sequence
The tag sequence.
$scores
A space-separated string of Phred scores for the specified sequence.
Returns
Returns non-zero if the valid, zero if invalid.
Usage
my $filter = Bio::SAGE::DataProcessing::MinimumPhredFilter->new();
if( $filter->is_tag_valid( "AAAAAA", "20 40 40 40 30 35" ) ) {
print "VALID!\n";
}
The default implementation provided by the base class Bio::SAGE::DataProcessing::Filter is used. See the documentation for the base class for more information.
Copyright(c)2004 Scott Zuyderduyn <scottz@bccrc.ca>. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Scott Zuyderduyn <scottz@bccrc.ca> BC Cancer Research Centre
1.20
Bio::SAGE::DataProcessing(1). Bio::SAGE::DataProcessing::Filter(1).
Nothing yet.
| Bio-SAGE-DataProcessing documentation | Contained in the Bio-SAGE-DataProcessing distribution. |
# *%) $Id: AveragePhredFilter.pm,v 1.6 2004/10/15 22:30:46 scottz Exp $ # # Copyright (c) 2004 Scott Zuyderduyn <scottz@bccrc.ca>. # All rights reserved. This program is free software; you # can redistribute it and/or modify it under the same # terms as Perl itself. package Bio::SAGE::DataProcessing::AveragePhredFilter;
use Bio::SAGE::DataProcessing::Filter; use base qw( Bio::SAGE::DataProcessing::Filter ); use strict; use diagnostics; use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK ); #require Exporter; #require AutoLoader; #@ISA = qw( Exporter AutoLoader ); @ISA = qw( Bio::SAGE::DataProcessing::Filter ); @EXPORT = qw(); $VERSION = $Bio::SAGE::DataProcessing::VERSION; my $PACKAGE = "Bio::SAGE::DataProcessing::AveragePhredFilter";
####################################################### sub new { #######################################################
my $class = shift;
return $class->SUPER::new( @_ );
}
####################################################### sub is_valid { #######################################################
my $this = shift;
my $sequence = shift || die( $PACKAGE . "::is_valid no sequence defined." );
my $scores = shift; # || die( $PACKAGE . "::is_valid no scores defined." );
if( !defined( $scores ) ) { return 1; } # force valid
if( $Bio::SAGE::DataProcessing::DEBUG >= 1 ) {
print STDERR $PACKAGE . "::is_valid looking at " . $scores . "\n";
}
my $min_avg_phred = $this->{'args'}[0];
my $min_phred = $this->{'args'}[1];
my $avg = 0;
my @scores = split( /\s/, $scores );
foreach my $score ( @scores ) {
if( $score < $min_phred ) {
if( $Bio::SAGE::DataProcessing::DEBUG >= 1 ) {
print STDERR " $score does not meet minimum $min_phred\n";
}
return 0;
}
$avg += $score;
}
$avg /= scalar( @scores );
if( $avg < $min_avg_phred ) {
if( $Bio::SAGE::DataProcessing::DEBUG >= 1 ) {
print STDERR " $avg does not meet minimum avg. phred $min_avg_phred\n";
}
return 0;
}
return 1;
}
#######################################################
#######################################################
1; __END__