From: martinahansen Date: Mon, 5 Sep 2011 13:47:15 +0000 (+0000) Subject: added hamming_distance method to seq.rb X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0153863ce54bf865f397a1c4b6a45b0180d71e31;p=biopieces.git added hamming_distance method to seq.rb git-svn-id: http://biopieces.googlecode.com/svn/trunk@1516 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/code_ruby/lib/maasha/seq.rb b/code_ruby/lib/maasha/seq.rb index 3b950ae..260a2b7 100644 --- a/code_ruby/lib/maasha/seq.rb +++ b/code_ruby/lib/maasha/seq.rb @@ -24,6 +24,7 @@ require 'maasha/digest' require 'maasha/patternmatcher' +require 'maasha/bits' #require 'maasha/patscan' # Residue alphabets @@ -227,6 +228,12 @@ class Seq end end + # Method to determine the Hamming Distance between + # two Sequence objects (case insensitive). + def hamming_distance(seq) + self.seq.upcase.hamming_distance(seq.seq.upcase) + end + # Method that generates a random sequence of a given length and type. def generate(length, type) raise SeqError, "Cannot generate sequence length < 1: #{length}" if length <= 0 diff --git a/code_ruby/test/maasha/test_seq.rb b/code_ruby/test/maasha/test_seq.rb index 93737d4..7859fbe 100755 --- a/code_ruby/test/maasha/test_seq.rb +++ b/code_ruby/test/maasha/test_seq.rb @@ -218,6 +218,12 @@ class TestSeq < Test::Unit::TestCase assert_equal("cgauCGAU", @entry.reverse_complement) end + def test_Seq_hamming_distance_returns_correctly + seq1 = Seq.new("test1", "ATCG") + seq2 = Seq.new("test2", "atgg") + assert_equal(1, seq1.hamming_distance(seq2)) + end + def test_Seq_generate_with_length_lt_1_raises assert_raise(SeqError) { @entry.generate(-10, "dna") } assert_raise(SeqError) { @entry.generate(0, "dna") }