]> git.donarmstrong.com Git - biopieces.git/commitdiff
fixed double insertion of indels in alignments (missing .dup)
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 19 Apr 2012 09:28:57 +0000 (09:28 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 19 Apr 2012 09:28:57 +0000 (09:28 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@1805 74ccb610-7750-0410-82ae-013aeee3265d

code_ruby/lib/maasha/align.rb

index 737f2f8f978c4e28477677939f6961d14df344de..d3e5b444ecb36934a6f320e72609f3f2cfaa86cd 100755 (executable)
@@ -101,7 +101,7 @@ class Align
       entries.each do |entry|
         raise AlignError, "Duplicate sequence name: #{entry.seq_name}" if index.has_key? entry.seq_name
 
-        index[entry.seq_name] = entry
+        index[entry.seq_name] = entry.dup
 
         stdin.puts entry.to_fasta
       end
@@ -148,13 +148,13 @@ class Align
     if self.members != 2
       raise AlignError "Bad number of members for similarity calculation: #{self.members}"
     end
-      
+
     na1 = NArray.to_na(@entries[0].seq.upcase, "byte")
     na2 = NArray.to_na(@entries[1].seq.upcase, "byte")
 
     shared   = (na1 - na2).count_false
     total    = (@entries[0].length < @entries[1].length) ? @entries[0].length : @entries[1].length
-    identity = (shared.to_f / total).round(2)
+    identity = shared.to_f / total
 
     identity
   end
@@ -186,6 +186,15 @@ class Align
     output
   end
 
+  # Method for iterating each of the aligned sequences.
+  def each
+    if block_given?
+      @entries.each { |entry| yield entry }
+    else
+      return @entries
+    end
+  end
+
   private
 
   class Consensus