Class DummyRichSequenceHandler
- java.lang.Object
-
- org.biojavax.bio.seq.DummyRichSequenceHandler
-
- All Implemented Interfaces:
RichSequenceHandler
- Direct Known Subclasses:
BioSQLRichSequenceHandler
public class DummyRichSequenceHandler extends Object implements RichSequenceHandler
- Since:
- 1.5
- Author:
- Richard Holland
-
-
Constructor Summary
Constructors Constructor Description DummyRichSequenceHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
edit(RichSequence seq, Edit edit)
Apply an edit to the Sequence as specified by the edit object.Iterator<Symbol>
iterator(RichSequence seq)
An Iterator over all Symbols in this SymbolList.String
seqString(RichSequence seq)
Stringify this Sequences.SymbolList
subList(RichSequence seq, int start, int end)
Return a new SymbolList for the symbols start to end inclusive.String
subStr(RichSequence seq, int start, int end)
Return a region of this sequence as a String.Symbol
symbolAt(RichSequence seq, int index)
Return the symbol at index, counting from 1.List<Symbol>
toList(RichSequence seq)
Returns a List of symbols.
-
-
-
Constructor Detail
-
DummyRichSequenceHandler
public DummyRichSequenceHandler()
-
-
Method Detail
-
edit
public void edit(RichSequence seq, Edit edit) throws IndexOutOfBoundsException, IllegalAlphabetException, ChangeVetoException
Apply an edit to the Sequence as specified by the edit object.Description
All edits can be broken down into a series of operations that change contiguous blocks of the sequence. This represent a one of those operations.
When applied, this Edit will replace 'length' number of symbols starting a position 'pos' by the SymbolList 'replacement'. This allow to do insertions (length=0), deletions (replacement=SymbolList.EMPTY_LIST) and replacements (length>=1 and replacement.length()>=1).
The pos and pos+length should always be valid positions on the SymbolList to:
- be edited (between 0 and symL.length()+1).
- To append to a sequence, pos=symL.length()+1, pos=0.
- To insert something at the beginning of the sequence, set pos=1 and length=0.
Examples
RichSequence seq = //code to initialize RichSequence System.out.println(seq.seqString()); // delete 5 bases from position 4 Edit ed = new Edit(4, 5, SymbolList.EMPTY_LIST); seq.edit(ed); System.out.println(seq.seqString()); // delete one base from the start ed = new Edit(1, 1, SymbolList.EMPTY_LIST); seq.edit(ed); // delete one base from the end ed = new Edit(seq.length(), 1, SymbolList.EMPTY_LIST); seq.edit(ed); System.out.println(seq.seqString()); // overwrite 2 bases from position 3 with "tt" ed = new Edit(3, 2, DNATools.createDNA("tt")); seq.edit(ed); System.out.println(seq.seqString()); // add 6 bases to the start ed = new Edit(1, 0, DNATools.createDNA("aattgg"); seq.edit(ed); System.out.println(seq.seqString()); // add 4 bases to the end ed = new Edit(seq.length() + 1, 0, DNATools.createDNA("tttt")); seq.edit(ed); System.out.println(seq.seqString()); // full edit ed = new Edit(3, 2, DNATools.createDNA("aatagaa"); seq.edit(ed); System.out.println(seq.seqString());
- Specified by:
edit
in interfaceRichSequenceHandler
edit
- the Edit to perform- Throws:
IndexOutOfBoundsException
- if the edit does not lie within the SymbolListIllegalAlphabetException
- if the SymbolList to insert has an incompatible alphabetChangeVetoException
- if either the SymboList does not support the edit, or if the change was vetoed
-
symbolAt
public Symbol symbolAt(RichSequence seq, int index) throws IndexOutOfBoundsException
Return the symbol at index, counting from 1.- Specified by:
symbolAt
in interfaceRichSequenceHandler
index
- the offset into this SymbolList- Returns:
- the Symbol at that index
- Throws:
IndexOutOfBoundsException
- if index is less than 1, or greater than the length of the symbol list
-
toList
public List<Symbol> toList(RichSequence seq)
Returns a List of symbols.This should be an immutable list of symbols or a copy.
- Specified by:
toList
in interfaceRichSequenceHandler
- Returns:
- a List of Symbols
-
subStr
public String subStr(RichSequence seq, int start, int end) throws IndexOutOfBoundsException
Return a region of this sequence as a String.This should use the same rules as seqString.
- Specified by:
subStr
in interfaceRichSequenceHandler
start
- the first symbol to includeend
- the last symbol to include- Returns:
- the string representation
- Throws:
IndexOutOfBoundsException
- if either start or end are not within the SymbolList
-
subList
public SymbolList subList(RichSequence seq, int start, int end) throws IndexOutOfBoundsException
Return a new SymbolList for the symbols start to end inclusive.The resulting SymbolList will count from 1 to (end-start + 1) inclusive, and refer to the symbols start to end of the original sequence.
- Specified by:
subList
in interfaceRichSequenceHandler
start
- the first symbol of the new SymbolListend
- the last symbol (inclusive) of the new SymbolList- Throws:
IndexOutOfBoundsException
-
seqString
public String seqString(RichSequence seq)
Stringify this Sequences.It is expected that this will use the symbol's token to render each symbol. It should be parsable back into a SymbolList using the default token parser for this alphabet.
- Specified by:
seqString
in interfaceRichSequenceHandler
- Returns:
- a string representation of the symbol list
-
iterator
public Iterator<Symbol> iterator(RichSequence seq)
An Iterator over all Symbols in this SymbolList.This is an ordered iterator over the Symbols. It cannot be used to edit the underlying symbols.
- Specified by:
iterator
in interfaceRichSequenceHandler
- Returns:
- an iterator
-
-