|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.biojava.utils.AbstractChangeable
org.biojavax.bio.SimpleBioEntry
org.biojavax.bio.seq.ThinRichSequence
public class ThinRichSequence
A simple implementation of RichSequence. It has no sequence data, and delegates to a RichSequenceHandler to do sequence handling.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.biojavax.bio.seq.RichSequence |
---|
RichSequence.IOTools, RichSequence.Terms, RichSequence.Tools |
Nested classes/interfaces inherited from interface org.biojava.bio.Annotatable |
---|
Annotatable.AnnotationForwarder |
Nested classes/interfaces inherited from interface org.biojava.bio.seq.FeatureHolder |
---|
FeatureHolder.EmptyFeatureHolder |
Field Summary |
---|
Fields inherited from interface org.biojavax.bio.seq.RichSequence |
---|
CIRCULAR, SYMLISTVERSION |
Fields inherited from interface org.biojavax.bio.BioEntry |
---|
COMMENT, DESCRIPTION, DIVISION, IDENTIFIER, RANKEDCROSSREF, RANKEDDOCREF, RELATIONS, SEQVERSION, TAXON |
Fields inherited from interface org.biojava.bio.Annotatable |
---|
ANNOTATION |
Fields inherited from interface org.biojava.bio.symbol.SymbolList |
---|
EDIT, EMPTY_LIST |
Fields inherited from interface org.biojava.bio.seq.FeatureHolder |
---|
EMPTY_FEATURE_HOLDER, FEATURES, SCHEMA |
Constructor Summary | |
---|---|
protected |
ThinRichSequence()
|
|
ThinRichSequence(Namespace ns,
String name,
String accession,
int version,
Alphabet alpha,
Double seqversion)
Creates a new instance of ThinRichSequence. |
Method Summary | |
---|---|
boolean |
containsFeature(Feature f)
Check if the feature is present in this holder. |
int |
countFeatures()
Count how many features are contained. |
Feature |
createFeature(Feature.Template ft)
Create a new Feature, and add it to this FeatureHolder. |
void |
edit(Edit edit)
Apply an edit to the SymbolList as specified by the edit object. |
Iterator<Feature> |
features()
Iterate over the features in no well defined order. Warning this method gives access to the original Collection not a copy. |
FeatureHolder |
filter(FeatureFilter filter)
Query this set of features using a supplied FeatureFilter . |
FeatureHolder |
filter(FeatureFilter fc,
boolean recurse)
Return a new FeatureHolder that contains all of the children of this one that passed the filter fc. |
Alphabet |
getAlphabet()
The alphabet that this SymbolList is over. |
protected String |
getAlphabetName()
|
boolean |
getCircular()
Is the sequence circular? Circularity has implications for work with locations and any coordinate work eg symbolAt(int i). |
Set<Feature> |
getFeatureSet()
The features for this sequence. Warning this method gives access to the original Collection not a copy. |
SymbolList |
getInternalSymbolList()
A special function that returns the SymbolList that this RichSequence is based around. |
FeatureFilter |
getSchema()
Return a schema-filter for this FeatureHolder . |
protected int |
getSequenceLength()
|
Double |
getSeqVersion()
The version of the associated symbol list. |
String |
getURN()
A Uniform Resource Identifier (URI) which identifies the sequence represented by this object. |
Iterator |
iterator()
An Iterator over all Symbols in this SymbolList. |
int |
length()
The number of symbols in this SymbolList. |
void |
removeFeature(Feature f)
Remove a feature from this FeatureHolder. |
String |
seqString()
Stringify this symbol list. |
protected void |
setAlphabetName(String alphaname)
|
void |
setCircular(boolean circular)
Circularises the Sequence . |
void |
setFeatureSet(Set<Feature> features)
Sets the features of this sequence. Warning this method gives access to the original Collection not a copy. |
protected void |
setSequenceLength(int length)
|
void |
setSeqVersion(Double seqVersion)
Sets the version of the associated symbol list. |
SymbolList |
subList(int start,
int end)
Return a new SymbolList for the symbols start to end inclusive. |
String |
subStr(int start,
int end)
Return a region of this symbol list as a String. |
Symbol |
symbolAt(int index)
Return the symbol at index, counting from 1. |
List |
toList()
Returns a List of symbols. |
Methods inherited from class org.biojavax.bio.SimpleBioEntry |
---|
addComment, addRankedCrossRef, addRankedDocRef, addRelationship, compareTo, equals, getAccession, getAnnotation, getComments, getDescription, getDivision, getId, getIdentifier, getName, getNamespace, getNoteSet, getRankedCrossRefs, getRankedDocRefs, getRelationships, getRichAnnotation, getTaxon, getVersion, hashCode, removeComment, removeRankedCrossRef, removeRankedDocRef, removeRelationship, setDescription, setDivision, setId, setIdentifier, setNoteSet, setRankedCrossRefs, setTaxon, toString |
Methods inherited from class org.biojava.utils.AbstractChangeable |
---|
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.biojavax.bio.BioEntry |
---|
addComment, addRankedDocRef, addRelationship, getAccession, getComments, getDescription, getDivision, getIdentifier, getName, getNamespace, getRankedDocRefs, getRelationships, getTaxon, getVersion, removeComment, removeRankedDocRef, removeRelationship, setDescription, setDivision, setIdentifier, setTaxon |
Methods inherited from interface org.biojavax.RichAnnotatable |
---|
getNoteSet, getRichAnnotation, setNoteSet |
Methods inherited from interface org.biojava.bio.Annotatable |
---|
getAnnotation |
Methods inherited from interface org.biojava.utils.Changeable |
---|
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener |
Methods inherited from interface org.biojavax.RankedCrossRefable |
---|
addRankedCrossRef, getRankedCrossRefs, removeRankedCrossRef, setRankedCrossRefs |
Methods inherited from interface java.lang.Comparable |
---|
compareTo |
Methods inherited from interface org.biojava.bio.seq.Sequence |
---|
getName |
Constructor Detail |
---|
public ThinRichSequence(Namespace ns, String name, String accession, int version, Alphabet alpha, Double seqversion)
ns
- the namespace for this sequence.name
- the name of the sequence.accession
- the accession of the sequence.version
- the version of the sequence.seqversion
- the version of the symbols for the sequence.protected ThinRichSequence()
Method Detail |
---|
public Double getSeqVersion()
getSeqVersion
in interface RichSequence
public void setSeqVersion(Double seqVersion) throws ChangeVetoException
setSeqVersion
in interface RichSequence
seqVersion
- the version to set.
ChangeVetoException
- if it doesn't want to change.public void setCircular(boolean circular) throws ChangeVetoException
Sequence
. The circular length can then be
said to be the length of the sequence itself.
setCircular
in interface RichSequence
circular
- set to true if you want it to be circular
ChangeVetoException
- if the change is blocked. Some implementations may choose not
to support circularisation and should throw an exception
here. Some implementations may only support this method for
certain Alphabets.public boolean getCircular()
getCircular
in interface RichSequence
public void edit(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:
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 SymbolList
edit
- the Edit to perform
IndexOutOfBoundsException
- if the edit does not lie within the
SymbolList
IllegalAlphabetException
- if the SymbolList to insert has an
incompatible alphabet
ChangeVetoException
- if either the SymboList does not support the
edit, or if the change was vetoedpublic Symbol symbolAt(int index) throws IndexOutOfBoundsException
symbolAt
in interface SymbolList
index
- the offset into this SymbolList
IndexOutOfBoundsException
- if index is less than 1, or greater than
the length of the symbol listpublic List toList()
This is an immutable list of symbols. Do not edit it.
toList
in interface SymbolList
public String subStr(int start, int end) throws IndexOutOfBoundsException
This should use the same rules as seqString.
subStr
in interface SymbolList
start
- the first symbol to includeend
- the last symbol to include
IndexOutOfBoundsException
- if either start or end are not within the
SymbolListpublic SymbolList subList(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 SymbolList
start
- the first symbol of the new SymbolListend
- the last symbol (inclusive) of the new SymbolList
IndexOutOfBoundsException
public String seqString()
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 SymbolList
public int length()
length
in interface SymbolList
public Iterator iterator()
This is an ordered iterator over the Symbols. It cannot be used to edit the underlying symbols.
iterator
in interface SymbolList
public Alphabet getAlphabet()
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 SymbolList
protected void setAlphabetName(String alphaname) throws IllegalSymbolException, BioException
IllegalSymbolException
BioException
protected String getAlphabetName()
protected void setSequenceLength(int length)
protected int getSequenceLength()
public String getURN()
urn:sequence/embl:AL121903It may also be a URL identifying a specific resource, either locally or over the network
file:///home/thomas/myseq.fa|seq22 http://www.mysequences.net/chr22.seq
getURN
in interface Sequence
public FeatureHolder filter(FeatureFilter fc, boolean recurse)
filter
in interface FeatureHolder
fc
- the FeatureFilter to applyrecurse
- true if all features-of-features should be scanned, and a
single flat collection of features returned, or false if
just immediate children should be filtered.public Feature createFeature(Feature.Template ft) throws BioException, ChangeVetoException
createFeature
in interface FeatureHolder
BioException
- if something went wrong during creating the feature
ChangeVetoException
- if this FeatureHolder does not support
creation of new features, or if the change was vetoedpublic void removeFeature(Feature f) throws ChangeVetoException, BioException
removeFeature
in interface FeatureHolder
ChangeVetoException
- if this FeatureHolder does not support
feature removal or if the change was vetoed
BioException
- if there was an error removing the featurepublic boolean containsFeature(Feature f)
containsFeature
in interface FeatureHolder
f
- the Feature to check
public FeatureHolder filter(FeatureFilter filter)
FeatureFilter
.
filter
in interface FeatureHolder
filter
- the FeatureFilter
to apply.
filter
.public Set<Feature> getFeatureSet()
getFeatureSet
in interface RichSequence
public void setFeatureSet(Set<Feature> features) throws ChangeVetoException
setFeatureSet
in interface RichSequence
features
- the features to assign to this sequence, replacing all others.
Must be a set of RichFeature objects.
ChangeVetoException
- if they could not be assigned.public FeatureFilter getSchema()
FeatureHolder
. This is a filter
which all Feature
s immediately contained by this FeatureHolder
will match. It need not directly match their child features, but it can (and should!) provide
information about them using FeatureFilter.OnlyChildren
filters. In cases where there
is no feature hierarchy, this can be indicated by including FeatureFilter.leaf
in
the schema filter.
For the truly non-informative case, it is possible to return FeatureFilter.all
. However,
it is almost always possible to provide slightly more information that this. For example, Sequence
objects should, at a minimum, return FeatureFilter.top_level
. Feature
objects
should, as a minimum, return FeatureFilter.ByParent(new FeatureFilter.ByFeature(this))
.
getSchema
in interface FeatureHolder
public Iterator<Feature> features()
features
in interface FeatureHolder
public int countFeatures()
countFeatures
in interface FeatureHolder
public SymbolList getInternalSymbolList()
getInternalSymbolList
in interface RichSequence
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |