public class BioSQLRichSequenceHandler extends DummyRichSequenceHandler
Constructor and Description |
---|
BioSQLRichSequenceHandler(Object session)
Requires a Hibernate session to work correctly.
|
Modifier and Type | Method and Description |
---|---|
void |
edit(RichSequence seq,
Edit edit)
Apply an edit to the Sequence as specified by the edit object.
|
Iterator |
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 |
toList(RichSequence seq)
Returns a List of symbols.
|
public BioSQLRichSequenceHandler(Object session)
public void edit(RichSequence seq, Edit edit) throws IndexOutOfBoundsException, IllegalAlphabetException, ChangeVetoException
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:
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());
edit
in interface RichSequenceHandler
edit
in class DummyRichSequenceHandler
edit
- the Edit to performIndexOutOfBoundsException
- 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 vetoedpublic Symbol symbolAt(RichSequence seq, int index) throws IndexOutOfBoundsException
symbolAt
in interface RichSequenceHandler
symbolAt
in class DummyRichSequenceHandler
index
- the offset into this SymbolListIndexOutOfBoundsException
- if index is less than 1, or greater than
the length of the symbol listpublic List toList(RichSequence seq)
This should be an immutable list of symbols or a copy.
toList
in interface RichSequenceHandler
toList
in class DummyRichSequenceHandler
public String subStr(RichSequence seq, int start, int end) throws IndexOutOfBoundsException
This should use the same rules as seqString.
subStr
in interface RichSequenceHandler
subStr
in class DummyRichSequenceHandler
start
- the first symbol to includeend
- the last symbol to includeIndexOutOfBoundsException
- if either start or end are not within the
SymbolListpublic SymbolList subList(RichSequence seq, int start, int end) throws IndexOutOfBoundsException
The resulting SymbolList will count from 1 to (end-start + 1) inclusive, and refer to the symbols start to end of the original sequence.
subList
in interface RichSequenceHandler
subList
in class DummyRichSequenceHandler
start
- the first symbol of the new SymbolListend
- the last symbol (inclusive) of the new SymbolListIndexOutOfBoundsException
public String seqString(RichSequence seq)
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.
seqString
in interface RichSequenceHandler
seqString
in class DummyRichSequenceHandler
public Iterator iterator(RichSequence seq)
This is an ordered iterator over the Symbols. It cannot be used to edit the underlying symbols.
iterator
in interface RichSequenceHandler
iterator
in class DummyRichSequenceHandler
Copyright © 2014 BioJava. All rights reserved.