Module: SSW::DNA
- Defined in:
- lib/ssw/dna.rb
Constant Summary collapse
- Elements =
%w[A C G T N].freeze
- DNA2INT =
{ 'A' => 0, 'a' => 0, 'C' => 1, 'c' => 1, 'G' => 2, 'g' => 2, 'T' => 3, 't' => 3, 'N' => 4, 'n' => 4 }.freeze
- INT2DNA =
{ 0 => 'A', 1 => 'C', 2 => 'G', 3 => 'T', 4 => 'N' }.freeze
- DNARC =
reverse complement
{ 'A' => 'T', 'C' => 'G', 'G' => 'C', 'T' => 'A', 'N' => 'N', 'a' => 'T', 'c' => 'G', 'g' => 'C', 't' => 'A', 'n' => 'N' }.freeze
Class Method Summary collapse
-
.from_int_array(arr) ⇒ String
Transform numerical sequence into DNA sequence.
-
.revcomp(seq) ⇒ String
reverse complement.
-
.to_int_array(seq) ⇒ Array
Transform DNA sequence into numerical sequence.
Class Method Details
.from_int_array(arr) ⇒ String
Transform numerical sequence into DNA sequence.
49 50 51 52 53 54 55 |
# File 'lib/ssw/dna.rb', line 49 def from_int_array(arr) raise ArgumentError, 'arr must be an Array' unless arr.is_a? Array arr.map do |i| INT2DNA[i] || 'N' end.join end |
.revcomp(seq) ⇒ String
reverse complement
63 64 65 66 67 |
# File 'lib/ssw/dna.rb', line 63 def revcomp(seq) seq.each_char.map do |base| DNARC[base] end.join.reverse end |
.to_int_array(seq) ⇒ Array
Transform DNA sequence into numerical sequence.
35 36 37 38 39 40 41 |
# File 'lib/ssw/dna.rb', line 35 def to_int_array(seq) raise ArgumentError, 'seq must be a string' unless seq.is_a? String seq.each_char.map do |base| DNA2INT[base] || DNA2INT['N'] end end |