Class | Bio::SangerChromatogram
In: | lib/bio/db/sanger_chromatogram/chromatogram.rb
Parent: | Object

## Description

This is the Superclass for the Abif and Scf classes that allow importing of the common scf and abi sequence chromatogram formats The following attributes are Common to both the Abif and Scf subclasses

- chromatogram_type (String): This is extracted from the chromatogram file itself and will probably be either .scf or ABIF for Scf and Abif files respectively.
- version (String): The version of the Scf or Abif file
- sequence (String): the sequence contained within the chromatogram as a string.
- qualities (Array): the quality scores of each base as an array of integers. These will probably be phred scores.
- peak_indices (Array): if the sequence traces contained within the chromatogram are imagined as being plotted on an x,y graph, the peak indices are the x positions of the peaks that represent the nucleotides bases found in the sequence from the chromatogram. For example if the peak_indices are [16,24,37,49 .…] and the sequence is AGGT.…, at position 16 the traces in the chromatogram were base-called as an A, position 24 a G, position 37 a G, position 49 a T etc
- atrace, ctrace, gtrace, ttrace (Array): If the sequence traces contained within the chromatogram are imagined as being plotted on an x,y graph, these attributes are arrays of y positions for each of the 4 nucleotide bases along the length of the x axis. If these were plotted joined by lines of different colours then the resulting graph should look like the original chromatogram file when viewed in a chromtogram viewer such as Chromas, 4Peaks or FinchTV.
- dye_mobility (String): The mobility of the dye used when sequencing. This can influence the base calling

## Usage

      filename = "path/to/sequence_chromatogram_file"

for Abif files

      chromatogram_ff = Bio::Abif.open(filename)

for Scf files

      chromatogram_ff = Bio::Scf.open(filename)

      chromatogram = chromatogram_ff.next_entry
      chromatogram.to_seq # => returns a Bio::Sequence object
      chromatogram.sequence # => returns the sequence contained within the chromatogram as a string
      chromatogram.qualities # => returns an array of quality values for each base
      chromatogram.atrace # => returns an array of the a trace y positions

### Methods

complement complement! open seq sequence_string to_biosequence to_seq

### Attributes

atrace | [RW] | An array of ‘y’ positions (see description) for the ‘A’ trace from the chromatogram (Array
chromatogram_type | [RW] | The type of chromatogram file .scf for Scf files and ABIF doe Abif files
ctrace | [RW] | An array of ‘y’ positions (see description) for the ‘C’ trace from the chromatogram (Array
dye_mobility | [RW] | The mobility of the dye used when sequencing (String)
gtrace | [RW] | An array of ‘y’ positions (see description) for the ‘G’ trace from the chromatogram (Array
peak_indices | [RW] | An array ‘x’ positions (see description) on the trace where the bases occur/have been called (Array)
qualities | [RW] | An array of quality scores for each base in the sequence (Array)
sequence | [RW] | The sequence contained within the chromatogram (String)
ttrace | [RW] | An array of ‘y’ positions (see description) for the ‘T’ trace from the chromatogram (Array
version | [RW] | The Version of the Scf or Abif file (String)

### Public Class methods

open(filename)

[Source]

        # File lib/bio/db/sanger_chromatogram/chromatogram.rb, line 74
    74:     def self.open(filename)
    75:       Bio::FlatFile.open(self, filename)
    76:     end

### Public Instance methods

complement()

Returns a new chromatogram object of the appropriate subclass (scf or abi) where the sequence, traces and qualities have all been revesed and complemented

[Source]

         # File lib/bio/db/sanger_chromatogram/chromatogram.rb, line 127
    127:     def complement
    128:       chromatogram = self.dup
    129:       chromatogram.complement!
    130:       return chromatogram
    131:     end

complement!()

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

[Source]

         # File lib/bio/db/sanger_chromatogram/chromatogram.rb, line 96
     96:     def complement!
     97:       # reverse traces
     98:       tmp_trace = @atrace
     99:       @atrace = @ttrace.reverse
    100:       @ttrace = tmp_trace.reverse
    101:       tmp_trace = @ctrace
    102:       @ctrace = @gtrace.reverse
    103:       @gtrace = tmp_trace.reverse
    104:
    105:       # reverse base qualities
    106:       if !@aqual.nil? # if qualities exist
    107:         tmp_qual = @aqual
    108:         @aqual = @tqual.reverse
    109:         @tqual = tmp_qual.reverse
    110:         tmp_qual = @cqual
    111:         @cqual = @gqual.reverse
    112:         @gqual = tmp_qual.reverse
    113:       end
    114:
    115:       #reverse qualities
    116:       @qualities = @qualities.reverse
    117:
    118:       #reverse peak indices
    119:       @peak_indices = @peak_indices.map{|index| @atrace.size - index}
    120:       @peak_indices.reverse!
    121:
    122:       # reverse sequence
    123:       @sequence = @sequence.reverse.tr('atgcnrykmswbvdh','tacgnyrmkswvbhd')
    124:     end

seq()

Returns a Bio::Sequence::NA object based on the sequence from the chromatogram

[Source]

        # File lib/bio/db/sanger_chromatogram/chromatogram.rb, line 79
    79:     def seq
    80:       Bio::Sequence::NA.new(@sequence)
    81:     end

sequence_string()

Returns the sequence from the chromatogram as a string

[Source]

        # File lib/bio/db/sanger_chromatogram/chromatogram.rb, line 90
    90:     def sequence_string
    91:       @sequence
    92:     end

to_biosequence()

Returns a Bio::Sequence object based on the sequence from the chromatogram

[Source]

        # File lib/bio/db/sanger_chromatogram/chromatogram.rb, line 84
    84:     def to_biosequence
    85:       Bio::Sequence.adapter(self, Bio::Sequence::Adapter::SangerChromatogram)
    86:     end

to_seq()

Alias for to_biosequence

[Validate]