Module | Bio::NucleicAcid::Data
In: | lib/bio/data/na.rb

### Methods

[] na name names to_re weight

### Constants

NAMES

=

{ 'y' => '[tc]', 'r' => '[ag]', 'w' => '[at]', 's' => '[gc]', 'k' => '[tg]', 'm' => '[ac]', 'b' => '[tgc]', 'd' => '[atg]', 'h' => '[atc]', 'v' => '[agc]', 'n' => '[atgc]', 'a' => 'a', 't' => 't', 'g' => 'g', 'c' => 'c', 'u' => 'u', 'A' => 'Adenine', 'T' => 'Thymine', 'G' => 'Guanine', 'C' => 'Cytosine', 'U' => 'Uracil', 'Y' => 'pYrimidine', 'R' => 'puRine', 'W' => 'Weak', 'S' => 'Strong', 'K' => 'Keto', 'M' => 'aroMatic', 'B' => 'not A', 'D' => 'not C', 'H' => 'not G', 'V' => 'not T', }

IUPAC code

- Faisst and Meyer (Nucleic Acids Res. 20:3-26, 1992)
- www.ncbi.nlm.nih.gov/collab/FT/

WEIGHT | = | { # Calculated by BioPerl's Bio::Tools::SeqStats.pm :-) 'a' => 135.15, 't' => 126.13, 'g' => 151.15, 'c' => 111.12, 'u' => 112.10, :adenine => 135.15, :thymine => 126.13, :guanine => 151.15, :cytosine => 111.12, :uracil => 112.10, :deoxyribose_phosphate => 196.11, :ribose_phosphate => 212.11, :hydrogen => 1.00794, :water => 18.015, }

### Public Instance methods

[](x)

[Source]

         # File lib/bio/data/na.rb, line 146
    146:     def [](x)
    147:       NAMES[x]
    148:     end

na()

Alias for names

name(x)

[Source]

         # File lib/bio/data/na.rb, line 156
    156:     def name(x)
    157:       NAMES[x.to_s.upcase]
    158:     end

names()

backward compatibility

[Source]

         # File lib/bio/data/na.rb, line 151
    151:     def names
    152:       NAMES
    153:     end

to_re(seq, rna = false)

[Source]

         # File lib/bio/data/na.rb, line 160
    160:     def to_re(seq, rna = false)
    161:       replace = {
    162:         'y' => '[tcy]',
    163:         'r' => '[agr]',
    164:         'w' => '[atw]',
    165:         's' => '[gcs]',
    166:         'k' => '[tgk]',
    167:         'm' => '[acm]',
    168:         'b' => '[tgcyskb]',
    169:         'd' => '[atgrwkd]',
    170:         'h' => '[atcwmyh]',
    171:         'v' => '[agcmrsv]',
    172:         'n' => '[atgcyrwskmbdhvn]'
    173:       }
    174:       replace.default = '.'
    175:
    176:       str = seq.to_s.downcase
    177:       str.gsub!(/[^atgcu]/) { |na|
    178:         replace[na]
    179:       }
    180:       if rna
    181:         str.tr!("t", "u")
    182:       end
    183:       Regexp.new(str)
    184:     end

weight(x = nil, rna = nil)

[Source]

         # File lib/bio/data/na.rb, line 117
    117:     def weight(x = nil, rna = nil)
    118:       if x
    119:         if x.length > 1
    120:           if rna
    121:             phosphate = WEIGHT[:ribose_phosphate]
    122:           else
    123:             phosphate = WEIGHT[:deoxyribose_phosphate]
    124:           end
    125:           hydrogen    = WEIGHT[:hydrogen]
    126:           water       = WEIGHT[:water]
    127:
    128:           total = 0.0
    129:           x.each_byte do |byte|
    130:             base = byte.chr.downcase
    131:             if WEIGHT[base]
    132:               total += WEIGHT[base] + phosphate - hydrogen * 2
    133:             else
    134:               raise "Error: invalid nucleic acid '#{base}'"
    135:             end
    136:           end
    137:           total -= water * (x.length - 1)
    138:         else
    139:           WEIGHT[x.to_s.downcase]
    140:         end
    141:       else
    142:         WEIGHT
    143:       end
    144:     end

[Validate]