From 0153863ce54bf865f397a1c4b6a45b0180d71e31 Mon Sep 17 00:00:00 2001 From: martinahansen Date: Mon, 5 Sep 2011 13:47:15 +0000 Subject: [PATCH] added hamming_distance method to seq.rb git-svn-id: http://biopieces.googlecode.com/svn/trunk@1516 74ccb610-7750-0410-82ae-013aeee3265d --- code_ruby/lib/maasha/seq.rb | 7 +++++++ code_ruby/test/maasha/test_seq.rb | 6 ++++++ 2 files changed, 13 insertions(+) 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") } -- 2.39.5