module BioDSL::Trim
Module containing methods for end trimming sequences with suboptimal quality scores.
Public Instance Methods
Method to progressively trim a Seq
object sequence from both ends until a run of min_len residues with quality scores above min_qual is encountered.
# File lib/BioDSL/seq/trim.rb, line 79 def quality_trim(min_qual, min_len = 1) check_trim_args(min_qual, min_len) pos_right = trim_right_pos_c(@qual, length, min_qual, min_len, Seq::SCORE_BASE) pos_left = trim_left_pos_c(@qual, length, min_qual, min_len, Seq::SCORE_BASE) pos_left = pos_right if pos_left > pos_right self[pos_left...pos_right] end
Method to progressively trim a Seq
object sequence from both ends until a run of min_len residues with quality scores above min_qual is encountered.
# File lib/BioDSL/seq/trim.rb, line 94 def quality_trim!(min_qual, min_len = 1) subseq = quality_trim(min_qual, min_len) self.seq = subseq.seq @qual = subseq.qual self end
Method to progressively trim a Seq
object sequence from the left end until a run of min_len residues with quality scores above min_qual is encountered.
# File lib/BioDSL/seq/trim.rb, line 59 def quality_trim_left(min_qual, min_len = 1) check_trim_args(min_qual, min_len) pos = trim_left_pos_c(@qual, length, min_qual, min_len, Seq::SCORE_BASE) self[pos..length] end
Method to progressively trim a Seq
object sequence from the left end until a run of min_len residues with quality scores above min_qual is encountered.
# File lib/BioDSL/seq/trim.rb, line 70 def quality_trim_left!(min_qual, min_len = 1) subseq = quality_trim_left(min_qual, min_len) self.seq = subseq.seq @qual = subseq.qual self end
Method to progressively trim a Seq
object sequence from the right end until a run of min_len residues with quality scores above min_qual is encountered.
# File lib/BioDSL/seq/trim.rb, line 38 def quality_trim_right(min_qual, min_len = 1) check_trim_args(min_qual, min_len) pos = trim_right_pos_c(@qual, length, min_qual, min_len, Seq::SCORE_BASE) self[0..pos] end
Method to progressively trim a Seq
object sequence from the right end until a run of min_len residues with quality scores above min_qual is encountered.
# File lib/BioDSL/seq/trim.rb, line 49 def quality_trim_right!(min_qual, min_len = 1) subseq = quality_trim_right(min_qual, min_len) self.seq = subseq.seq @qual = subseq.qual self end
Private Instance Methods
Method to check the arguments for trimming and raise on bad sequence, qualities, and min_qual.
# File lib/BioDSL/seq/trim.rb, line 105 def check_trim_args(min_qual, min_len) fail TrimError, 'no sequence' if @seq.nil? fail TrimError, 'no quality score' if @qual.nil? unless (Seq::SCORE_MIN..Seq::SCORE_MAX).include? min_qual fail TrimError, "minimum quality value: #{min_qual} out of range: " \ "#{Seq::SCORE_MIN} .. #{Seq::SCORE_MAX}" end fail TrimError, 'min_len must be larger than zero' if min_len <= 0 end