From 893e2c5644233d53a7eca9c0e127d4002bd5ed03 Mon Sep 17 00:00:00 2001 From: martinahansen Date: Fri, 29 Jun 2012 13:44:59 +0000 Subject: [PATCH] added scores_mean method to seq.rb git-svn-id: http://biopieces.googlecode.com/svn/trunk@1850 74ccb610-7750-0410-82ae-013aeee3265d --- code_ruby/lib/maasha/seq.rb | 8 ++++++++ code_ruby/test/maasha/test_seq.rb | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/code_ruby/lib/maasha/seq.rb b/code_ruby/lib/maasha/seq.rb index 95c0f30..aac8d5e 100644 --- a/code_ruby/lib/maasha/seq.rb +++ b/code_ruby/lib/maasha/seq.rb @@ -499,6 +499,14 @@ class Seq self end + + # Method to calculate and return the mean quality score. + def scores_mean + raise SeqError, "Missing qual in entry" if self.qual.nil? + + na_qual = NArray.to_na(self.qual, "byte") + (na_qual - SCORE_BASE).mean + end end __END__ diff --git a/code_ruby/test/maasha/test_seq.rb b/code_ruby/test/maasha/test_seq.rb index a8f58ce..d177d31 100755 --- a/code_ruby/test/maasha/test_seq.rb +++ b/code_ruby/test/maasha/test_seq.rb @@ -622,6 +622,16 @@ class TestSeq < Test::Unit::TestCase @entry.qual = 'BCDEFGHI' assert_equal('BCDEFGHI', @entry.convert_scores!('illumina18', 'illumina18').qual) end + + def test_Seq_scores_mean_without_qual_raises + @entry.qual = nil + assert_raise(SeqError) { @entry.scores_mean } + end + + def test_Seq_scores_mean_returns_correctly + @entry.qual = '@@hh' + assert_equal(20.0, @entry.scores_mean) + end end __END__ -- 2.39.5