record[:FORWARD_POS] = forward.last.pos
record[:FORWARD_LEN] = forward.last.length
pos = forward.last.pos + forward.last.length
- seq.subseq!(pos)
+ len = seq.length - pos
+ seq.subseq!(pos, len) if len > 0
end
- if reverse = seq.patscan(options[:reverse].to_s, pos, options[:mismatches], options[:insertions], options[:deletions])
+ if pos < seq.length && reverse = seq.patscan(options[:reverse].to_s, pos, options[:mismatches], options[:insertions], options[:deletions])
record[:REVERSE_POS] = reverse.first.pos
record[:REVERSE_LEN] = reverse.first.length
- pos = reverse.first.pos
- seq.subseq!(0, pos)
+ pos = 0
+ len = reverse.first.pos
+ seq.subseq!(pos, len) if len > 0
end
if pos > 0