de.jstacs.data
Class Sequence.SubSequence

java.lang.Object
  extended by de.jstacs.data.Sequence
      extended by de.jstacs.data.sequences.RecursiveSequence
          extended by de.jstacs.data.Sequence.SubSequence
All Implemented Interfaces:
Comparable<Sequence>
Enclosing class:
Sequence

protected static class Sequence.SubSequence
extends RecursiveSequence

This class handles subsequences. Sequence.SubSequences are often used to extract the Sequence of a sliding window on a long Sequence. The class is implemented in such a way that it avoids chains of Sequence.SubSequences.

Author:
Jens Keilwagen

Nested Class Summary
 
Nested classes/interfaces inherited from class de.jstacs.data.Sequence
Sequence.CompositeSequence, Sequence.SubSequence
 
Field Summary
 
Fields inherited from class de.jstacs.data.sequences.RecursiveSequence
content
 
Fields inherited from class de.jstacs.data.Sequence
alphabetCon, annotation, rc
 
Constructor Summary
Sequence.SubSequence(AlphabetContainer abc, Sequence seq, int start, int length)
          This constructor should be used if one wants to create a Sample of Sequence.SubSequences of defined length.
Sequence.SubSequence(Sequence seq, int start, int length)
          This is a very efficient way to create a Sequence.SubSequence of defined length for Sequences with a simple AlphabetContainer.
 
Method Summary
 int discreteVal(int pos)
          Returns the discrete value at position pos of the Sequence.CompositeSequence.
protected  Sequence flatCloneWithoutAnnotation()
          Works in analogy to Object.clone(), but does not clone the annotation.
protected  int getIndex(int pos)
          Returns the index in the internal sequence.
 int getLength()
          Returns the length of the Sequence.CompositeSequence.
 Sequence reverseComplement(int start, int end)
          This method returns a new instance of Sequence.CompositeSequence containing a reverse part of the complementary current Sequence.CompositeSequence.
 
Methods inherited from class de.jstacs.data.sequences.RecursiveSequence
continuousVal
 
Methods inherited from class de.jstacs.data.Sequence
annotate, compareTo, complement, complement, create, create, create, equals, getAlphabetContainer, getAnnotation, getCompositeSequence, getCompositeSequence, getSubSequence, getSubSequence, getSubSequence, getSubSequence, hashCode, reverse, reverse, reverseComplement, toDiscrete, toString, toString, toString, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Sequence.SubSequence

public Sequence.SubSequence(AlphabetContainer abc,
                            Sequence seq,
                            int start,
                            int length)
This constructor should be used if one wants to create a Sample of Sequence.SubSequences of defined length. With this constructor you are enabled to create a Sample where every Sequence has the same AlphabetContainer instance.

Internally it is checked that the AlphabetContainer matches with the one of the Sequence.SubSequence.

Parameters:
abc - the new AlphabetContainer
seq - the original Sequence
start - the index of the start position
length - the length of the new sequence

Sequence.SubSequence

public Sequence.SubSequence(Sequence seq,
                            int start,
                            int length)
This is a very efficient way to create a Sequence.SubSequence of defined length for Sequences with a simple AlphabetContainer.

Parameters:
seq - the original Sequence
start - the index of the start position
length - the length of the new Sequence
Method Detail

reverseComplement

public Sequence reverseComplement(int start,
                                  int end)
                           throws OperationNotSupportedException
Description copied from class: Sequence
This method returns a new instance of Sequence.CompositeSequence containing a reverse part of the complementary current Sequence.CompositeSequence. For more details see the methods Sequence.reverse() and Sequence.complement().

Overrides:
reverseComplement in class Sequence
Parameters:
start - the start position (inclusive) in the original Sequence.CompositeSequence
end - the end position (exclusive) in the original Sequence.CompositeSequence
Returns:
the reverse complementary Sequence.CompositeSequence of the part
Throws:
OperationNotSupportedException - if the current Sequence.CompositeSequence is not discrete and simple ((not based on a ComplementableDiscreteAlphabet)
See Also:
Sequence.reverse(), Sequence.complement(), ComplementableDiscreteAlphabet

getIndex

protected final int getIndex(int pos)
Description copied from class: RecursiveSequence
Returns the index in the internal sequence.

Specified by:
getIndex in class RecursiveSequence
Parameters:
pos - the index in the external sequence
Returns:
the index in the internal sequence

discreteVal

public final int discreteVal(int pos)
Description copied from class: Sequence
Returns the discrete value at position pos of the Sequence.CompositeSequence.

Overrides:
discreteVal in class RecursiveSequence
Parameters:
pos - the position of the Sequence.CompositeSequence
Returns:
the discrete value at position pos of the Sequence.CompositeSequence

getLength

public int getLength()
Description copied from class: Sequence
Returns the length of the Sequence.CompositeSequence.

Specified by:
getLength in class Sequence
Returns:
the length of the Sequence.CompositeSequence

flatCloneWithoutAnnotation

protected Sequence flatCloneWithoutAnnotation()
Description copied from class: Sequence
Works in analogy to Object.clone(), but does not clone the annotation. This method is used in Sequence.annotate(boolean, SequenceAnnotation...).

Specified by:
flatCloneWithoutAnnotation in class Sequence
Returns:
the cloned Sequence.CompositeSequence without annotation