Module: BioDSL::Homopolymer
- Included in:
- Seq
- Defined in:
- lib/BioDSL/seq/homopolymer.rb
Overview
Namespace for Homopolymer
Defined Under Namespace
Classes: Homopolymer
Instance Method Summary collapse
Instance Method Details
#each_homopolymer(min = 1) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/BioDSL/seq/homopolymer.rb', line 35 def each_homopolymer(min = 1) fail HomopolymerError, "Bad min value: #{min}" if min <= 0 list = [] regex = Regexp.new("A{#{min},}|T{#{min},}|G{#{min},}|C{#{min},}|" \ "N{#{min},}") @seq.upcase.scan(regex) do |match| hp = Homopolymer.new(match, match.length, $`.length) if block_given? yield hp else list << hp end end block_given? ? self : list end |