]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_ruby/lib/maasha/seq.rb
fixed another bug in find orfs
[biopieces.git] / code_ruby / lib / maasha / seq.rb
index b5f07f610d17a9ac1d3704bd8f545ac07890702f..92d33982e90bdfbab281e9a4249e06b1b4d96fe6 100644 (file)
@@ -520,10 +520,12 @@ class Seq
         if pos_end = self.seq.index(regex_stop, pos_beg)
           length = (pos_end - pos_beg) + 3
 
-          if size_min <= length and length <= size_max
-            subseq = self.subseq(pos_beg, length)
+          if (length % 3) == 0
+            if size_min <= length and length <= size_max
+              subseq = self.subseq(pos_beg, length)
 
-            orfs << [subseq, pos_beg, pos_end + 3]
+              orfs << [subseq, pos_beg, pos_end + 3]
+            end
           end
         end
 
@@ -534,7 +536,7 @@ class Seq
     if pick_longest
       orf_hash = {}
 
-      orfs.each { |orf| orf_hash[orf.last] = orf }
+      orfs.each { |orf| orf_hash[orf.last] = orf unless orf_hash[orf.last] }
 
       orfs = orf_hash.values
     end