Module: BioDSL::Trim

Included in:
Seq
Defined in:
lib/BioDSL/seq/trim.rb

Overview

Module containing methods for end trimming sequences with suboptimal quality scores.

Instance Method Summary collapse

Instance Method Details

#quality_trim(min_qual, min_len = 1) ⇒ Object

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.



79
80
81
82
83
84
85
86
87
88
89
90
# 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

#quality_trim!(min_qual, min_len = 1) ⇒ Object

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.



94
95
96
97
98
99
# 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

#quality_trim_left(min_qual, min_len = 1) ⇒ Object

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.



59
60
61
62
63
64
65
# 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

#quality_trim_left!(min_qual, min_len = 1) ⇒ Object

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.



70
71
72
73
74
75
# 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

#quality_trim_right(min_qual, min_len = 1) ⇒ Object

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.



38
39
40
41
42
43
44
# 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

#quality_trim_right!(min_qual, min_len = 1) ⇒ Object

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.



49
50
51
52
53
54
# 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