public class ChunkedSymbolList extends AbstractSymbolList implements Serializable
AbstractSymbolList.EditScreener, AbstractSymbolList.EditTranslaterEDIT, EMPTY_LIST| Constructor and Description |
|---|
ChunkedSymbolList(SymbolList[] chunks,
int chunkSize,
int length,
Alphabet alpha) |
| Modifier and Type | Method and Description |
|---|---|
void |
edit(Edit edit)
Apply an edit to the SymbolList as specified by the edit object.
|
protected void |
finalize() |
Alphabet |
getAlphabet()
The alphabet that this SymbolList is over.
|
int |
length()
The number of symbols in this SymbolList.
|
SymbolList |
subList(int start,
int end)
Return a new SymbolList for the symbols start to end inclusive.
|
Symbol |
symbolAt(int pos)
Return the symbol at index, counting from 1.
|
equals, hashCode, iterator, seqString, subStr, toList, toStringaddChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListeneraddChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListenerpublic ChunkedSymbolList(SymbolList[] chunks, int chunkSize, int length, Alphabet alpha)
public Alphabet getAlphabet()
SymbolList
Every symbol within this SymbolList is a member of this alphabet.
alphabet.contains(symbol) == true
for each symbol that is within this sequence.
getAlphabet in interface SymbolListpublic int length()
SymbolListlength in interface SymbolListpublic Symbol symbolAt(int pos)
SymbolListsymbolAt in interface SymbolListpos - the offset into this SymbolListpublic SymbolList subList(int start, int end)
SymbolListThe 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 SymbolListsubList in class AbstractSymbolListstart - the first symbol of the new SymbolListend - the last symbol (inclusive) of the new SymbolListpublic void edit(Edit edit) throws IllegalAlphabetException, ChangeVetoException
SymbolListAll 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:
SymbolList seq = DNATools.createDNA("atcaaaaacgctagc");
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 SymbolListedit in class AbstractSymbolListedit - the Edit to performIllegalAlphabetException - if the SymbolList to insert has an
incompatible alphabetChangeVetoException - if either the SymboList does not support the
edit, or if the change was vetoedCopyright © 2020 BioJava. All rights reserved.