Interface Feature
-
- All Superinterfaces:
Annotatable,Changeable,FeatureHolder
- All Known Subinterfaces:
ComponentFeature,FramedFeature,HomologyFeature,RemoteFeature,RestrictionSite,RichFeature,SimilarityPairFeature,StrandedFeature
- All Known Implementing Classes:
ProjectedFeature,SimpleFeature,SimpleFramedFeature,SimpleHomologyFeature,SimpleRemoteFeature,SimpleRestrictionSite,SimpleRichFeature,SimpleSimilarityPairFeature,SimpleStrandedFeature
public interface Feature extends FeatureHolder, Annotatable
A feature within a sequence, or nested within another feature.Common operations
// loop over all features in a sequence for(Iterator fi = mySeq.features(); fi.hasNext(); ) { Feature f = (Feature) fi.next(); System.out.println(f.getType() + "\t" + f.getLocation()); } // loop over all features that are children of this one, such as exons in a // gene for(Iterator cfi = feature.features(); cfi.hasNext(); ) { ... // extract all stranded features that are directly on a sequence FeatureHolder strandedFeatures = mySeq.filter( new FeatureFilter.ByClass(StrandedFeature.class), false ); for(fi = strandedFeatures.features(); ... // find all features with the type property set to "EXON" no matter how // far down the feature hierachy they are FeatureHolder repeats = mySeq.filter( new FeatureFilter.ByType("EXON"), true; );Description
Features contain annotation and a location. The type of the feature is something like 'Repeat' or 'BetaStrand'. Where the feature has been read from an EMBL or Genbank source the type will be the same as the feature key in the feature table e.g. 'gene', 'CDS', 'repeat_unit', 'misc_feature'. The source of the feature is something like 'genscan', 'repeatmasker' or 'made-up'.
Features are always contained by a parent
FeatureHolder, which may either be aSequenceor anotherFeature. Feature instances should never be constructed directly by client code, and the BioJava core does not contain any publicly accessible implementations of theFeatureinterface. Instead, you should create a suitableFeature.Template, then pass this to thecreateFeaturemethod of aSequenceorFeature.We may need some standardisation for what the fields mean. In particular, we should be compliant where sensible with GFF.
- Author:
- Matthew Pocock, Thomas Down, Keith James
- See Also:
RichFeature
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classFeature.ByLocationComparatorByLocationComparatorcomparesFeatures by the minimum base position of theirLocation.static classFeature.TemplateTemplate class for a plain feature.-
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 Modifier and Type Field Description static Feature.ByLocationComparatorbyLocationOrderbyLocationOrdercontains aFeaturecomparator which compares by the minimum base position of theirLocation.static ChangeTypeLOCATIONThe location of this feature is being altered.static StringPROPERTY_DATA_KEYThis is used as a key in theAnnotationwhere it identifies internal data.static ChangeTypeSOURCEThe source of this feature has alteredstatic ChangeTypeSOURCETERMThe ontological source of this feature has alteredstatic ChangeTypeTYPEThe type of this feature has altered.static ChangeTypeTYPETERMThe ontological type of this feature has altered.-
Fields inherited from interface org.biojava.bio.Annotatable
ANNOTATION
-
Fields inherited from interface org.biojava.bio.seq.FeatureHolder
EMPTY_FEATURE_HOLDER, FEATURES, SCHEMA
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Iteratorfeatures()Iterate over any child features which are held by this feature.LocationgetLocation()The location of this feature.FeatureHoldergetParent()Return theFeatureHolderto which this feature has been attached.SequencegetSequence()Return theSequenceobject to which this feature is (ultimately) attached.StringgetSource()The source of the feature.TermgetSourceTerm()An ontology term defining the source of this feature.SymbolListgetSymbols()Return a list of symbols that are contained in this feature.StringgetType()The type of the feature.TermgetTypeTerm()An ontology term defining the type of feature.Feature.TemplatemakeTemplate()Create a new Template that could be used to generate a feature identical to this one.voidsetLocation(Location loc)The new location for this feature.voidsetSource(String source)Change the source of the Feature.voidsetSourceTerm(Term t)Set the source ontology-term for this feature.voidsetType(String type)Change the type of this feature.voidsetTypeTerm(Term t)Set the type ontology-term for this feature.-
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.biojava.bio.seq.FeatureHolder
containsFeature, countFeatures, createFeature, filter, filter, getSchema, removeFeature
-
-
-
-
Field Detail
-
PROPERTY_DATA_KEY
static final String PROPERTY_DATA_KEY
This is used as a key in theAnnotationwhere it identifies internal data. This is not printed when theFeatureis written to a flatfile. E.g. the original feature's EMBL location string (if it has one) is stored here.- See Also:
- Constant Field Values
-
LOCATION
static final ChangeType LOCATION
The location of this feature is being altered.
-
TYPE
static final ChangeType TYPE
The type of this feature has altered.
-
SOURCE
static final ChangeType SOURCE
The source of this feature has altered
-
TYPETERM
static final ChangeType TYPETERM
The ontological type of this feature has altered.
-
SOURCETERM
static final ChangeType SOURCETERM
The ontological source of this feature has altered
-
byLocationOrder
static final Feature.ByLocationComparator byLocationOrder
byLocationOrdercontains aFeaturecomparator which compares by the minimum base position of theirLocation.
-
-
Method Detail
-
getLocation
Location getLocation()
The location of this feature.The location may be complicated, or simply a range. The annotation is assumed to apply to all the region contained within the location.
- Returns:
- a Location anchoring this feature
-
setLocation
void setLocation(Location loc) throws ChangeVetoException
The new location for this feature.The location may be complicated or simply a range. The annotation is assumed to apply to the entire region contained within the location. Any values returned from methods that rely on the old location must not be affected.
- Parameters:
loc- the new Location for this feature- Throws:
ChangeVetoException- if the location can't be altered
-
setType
void setType(String type) throws ChangeVetoException
Change the type of this feature.- Parameters:
type- new type String- Throws:
ChangeVetoException- if the type can't be altered
-
getTypeTerm
Term getTypeTerm()
An ontology term defining the type of feature. This is optional, and will default toOntoTools.ANYin implementations which aren't ontology aware.- Since:
- 1.4
-
setTypeTerm
void setTypeTerm(Term t) throws ChangeVetoException, InvalidTermException
Set the type ontology-term for this feature. If this succeeds, it will generally also change the source name.- Throws:
ChangeVetoException- if changes are not allowedInvalidTermException- if the specified term is not an acceptable type for this feature.- Since:
- 1.4
-
getSourceTerm
Term getSourceTerm()
An ontology term defining the source of this feature. This is optional, and will default toOntoTools.ANYin implementations which aren't ontology aware.- Since:
- 1.4
-
setSourceTerm
void setSourceTerm(Term t) throws ChangeVetoException, InvalidTermException
Set the source ontology-term for this feature. If this succeeds, it will generally also change the source name.- Throws:
ChangeVetoException- if changes are not allowedInvalidTermException- if the specified term is not an acceptable type for this feature.- Since:
- 1.4
-
getSource
String getSource()
The source of the feature. This may be a program or process.- Returns:
- the source, or generator
-
setSource
void setSource(String source) throws ChangeVetoException
Change the source of the Feature.- Parameters:
source- the new source String- Throws:
ChangeVetoException- if the source can't be altered
-
getSymbols
SymbolList getSymbols()
Return a list of symbols that are contained in this feature.The symbols may not be contiguous in the original sequence, but they will be concatenated together in the resulting SymbolList.
The order of the Symbols within the resulting symbol list will be according to the concept of ordering within the location object.
If the feature location is modified then this does not modify any SymbolList produced by earlier invocations of this method.
- Returns:
- a SymbolList containing each symbol of the parent sequence contained within this feature in the order they appear in the parent
-
getParent
FeatureHolder getParent()
Return theFeatureHolderto which this feature has been attached. This will be aSequenceobject for top level features, and aFeatureobject for features further down the tree.
-
getSequence
Sequence getSequence()
Return theSequenceobject to which this feature is (ultimately) attached. For top level features, this will be equal to theFeatureHolderreturned bygetParent.- Returns:
- the ultimate parent Sequence
-
features
Iterator features()
Iterate over any child features which are held by this feature. The order of iteration MAY be significant for some types of Feature.- Specified by:
featuresin interfaceFeatureHolder- Returns:
- an Iterator
-
makeTemplate
Feature.Template makeTemplate()
Create a new Template that could be used to generate a feature identical to this one. The fields of the template can be edited without changing the feature.- Returns:
- a new Template that would make a feature like this one
-
-