Method: Bio::SangerChromatogram#complement!

Defined in:
lib/bio/db/sanger_chromatogram/chromatogram.rb

#complement!Object

Reverses and complements the current chromatogram object including its sequence, traces and qualities



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/bio/db/sanger_chromatogram/chromatogram.rb', line 95

def complement!
  # reverse traces
  tmp_trace = @atrace
  @atrace = @ttrace.reverse
  @ttrace = tmp_trace.reverse
  tmp_trace = @ctrace
  @ctrace = @gtrace.reverse
  @gtrace = tmp_trace.reverse

  # reverse base qualities
  if (defined? @aqual) && @aqual # if qualities exist
    tmp_qual = @aqual
    @aqual = @tqual.reverse
    @tqual = tmp_qual.reverse
    tmp_qual = @cqual
    @cqual = @gqual.reverse
    @gqual = tmp_qual.reverse
  end

  #reverse qualities
  @qualities = @qualities.reverse

  #reverse peak indices
  @peak_indices = @peak_indices.map{|index| @atrace.size - index}
  @peak_indices.reverse!

  # reverse sequence
  @sequence = @sequence.reverse.tr('atgcnrykmswbvdh','tacgnyrmkswvbhd')
end