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
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