org.biojava.bio.chromatogram
Interface Chromatogram

All Known Implementing Classes:
AbstractChromatogram

public interface Chromatogram

Encapsulates the basic information you would want from a chromatogram. Read-only.

Author:
Rhett Sutphin (UI CBCB)

Field Summary
static java.lang.Object DNA
          The sequence label for the list of called bases
static java.lang.Object OFFSETS
          The sequence label for the trace offsets of the called bases
 
Method Summary
 Alignment getBaseCalls()
          Returns an alignment that describes the base calls for this chromatogram.
 int getMax()
          Gets the max intensity from all the traces.
 int getMax(AtomicSymbol nucleotide)
          Gets the max intensity on the trace for the specified nucleotide.
 int getSequenceLength()
          Returns the number of bases called by whatever base-calling software analyzed the chromatogram as loaded.
 int getSignificantBits()
          Returns the number of bits of the traces which are significant.
 int[] getTrace(AtomicSymbol nucleotide)
          Returns an array containing the intensities of the sampled waveform representing the chromatogram trace for base nucleotide.
 int getTraceLength()
          Returns the length of the trace of the Chromatogram.
 Chromatogram reverseComplement()
          Returns a new Chromatogram representing the reverse complement of this one.
 

Field Detail

DNA

public static final java.lang.Object DNA
The sequence label for the list of called bases


OFFSETS

public static final java.lang.Object OFFSETS
The sequence label for the trace offsets of the called bases

Method Detail

getMax

public int getMax()
Gets the max intensity from all the traces. Must be equivalent to the max of calling getMax(AtomicSymbol) on each of the four non-ambiguous DNA nucleotides.

Returns:
the max intensity

getMax

public int getMax(AtomicSymbol nucleotide)
           throws IllegalSymbolException
Gets the max intensity on the trace for the specified nucleotide.

Parameters:
nucleotide - the trace to examine. Must be a concrete (non-ambiguous) nucleotide from the DNA alphabet
Returns:
the max intensity
Throws:
IllegalSymbolException - when the nucleotide isn't from the DNA alphabet

getTraceLength

public int getTraceLength()
Returns the length of the trace of the Chromatogram.

Returns:
the number of samples in the trace
See Also:
getTrace(AtomicSymbol)

getTrace

public int[] getTrace(AtomicSymbol nucleotide)
               throws IllegalSymbolException
Returns an array containing the intensities of the sampled waveform representing the chromatogram trace for base nucleotide. This may be a reference the actual internal representation of the samples, so callers must not modify it.

The resulting array for each nucleotide must be getTraceLength() ints long.

Parameters:
nucleotide - the trace to examine. Must be the symbol for A, C, G, or T as provided by DNATools
Returns:
an array of integers representing the values of a particular chromatogram trace.
Throws:
IllegalSymbolException - if nucleotide isn't in the DNA alphabet

getSignificantBits

public int getSignificantBits()
Returns the number of bits of the traces which are significant. For instance, if the chromatogram were originally encoded with a single byte per trace sample, this method must return 8.

Returns:
the number of significant bits

getBaseCalls

public Alignment getBaseCalls()
Returns an alignment that describes the base calls for this chromatogram. All of the SymbolLists in this alignment must be the same length and that length must equal getSequenceLength().

The alignment must contain, at the least, two sequences:

  1. A sequence containing the called bases. The alphabet of this list must be DNATools.getDNA(). The label for this list in the alignment must be Chromatogram.DNA
  2. A sequence containing the trace offsets at which the called bases were called. The alphabet of this list must be an IntegerAlphabet or a IntegerAlphabet.SubIntegerAlphabet. The label for this list in the alignment must be Chromatogram.OFFSETS.

Implementors may provide other sequences as they see fit.

Returns:
an alignment of at least two sequences, as described above.

getSequenceLength

public int getSequenceLength()
Returns the number of bases called by whatever base-calling software analyzed the chromatogram as loaded. Must equal getBaseCalls().length().

Returns:
the number of bases

reverseComplement

public Chromatogram reverseComplement()
Returns a new Chromatogram representing the reverse complement of this one.

Implementors should copy the metadata about the chromatogram (i.e., base calls) as is appropriate to their formats.

Returns:
a new chromatogram that is the reverse complement of this one