# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
require 'inline'
+require 'maasha/seq/backtrack'
+
+include BackTrack
# Error class for all exceptions to do with Trim.
class TrimError < StandardError; end
self.subseq!(pos_left, pos_right - pos_left)
end
+ # Method to locate a pattern in a sequence and trim all sequence to the left
+ # including the pattern.
+ def patmatch_trim_left!(pattern, options = {})
+ match = self.patmatch(pattern, options)
+
+ if match
+ stop = self.length
+
+ self.seq = self.seq[match.pos + match.length .. stop]
+ self.qual = self.qual[match.pos + match.length .. stop] if self.qual
+
+ return self
+ end
+
+ nil
+ end
+
+ # Method to locate a pattern in a sequence and trim all sequence to the right
+ # including the pattern.
+ def patmatch_trim_right!(pattern, options = {})
+ match = self.patmatch(pattern, options)
+
+ if match
+ self.seq = self.seq[0 ... match.pos]
+ self.qual = self.qual[0 ... match.pos] if self.qual
+
+ return self
+ end
+
+ nil
+ end
+
private
# Method to check the arguments for trimming and raise on bad sequence, qualities,