org.biojava.bio.seq
Interface FeatureFilter

All Superinterfaces:
Serializable
All Known Subinterfaces:
BioSQLFeatureFilter, OptimizableFilter
All Known Implementing Classes:
BioSQLAcceptAllFilter, BioSQLAcceptNoneFilter, BioSQLFeatureFilter.And, BioSQLFeatureFilter.ByName, BioSQLFeatureFilter.ByNote, BioSQLFeatureFilter.ByNoteTermOnly, BioSQLFeatureFilter.ByRank, BioSQLFeatureFilter.BySequenceName, BioSQLFeatureFilter.BySourceTerm, BioSQLFeatureFilter.BySourceTermName, BioSQLFeatureFilter.ByStrand, BioSQLFeatureFilter.ByTypeTerm, BioSQLFeatureFilter.ByTypeTermName, BioSQLFeatureFilter.ContainedByRichLocation, BioSQLFeatureFilter.HibernateFeatureFilter, BioSQLFeatureFilter.Not, BioSQLFeatureFilter.Or, BioSQLFeatureFilter.OverlapsRichLocation, FeatureFilter.And, FeatureFilter.AnnotationContains, FeatureFilter.ByAncestor, FeatureFilter.ByAnnotation, FeatureFilter.ByAnnotationType, FeatureFilter.ByChild, FeatureFilter.ByClass, FeatureFilter.ByComponentName, FeatureFilter.ByDescendant, FeatureFilter.ByFeature, FeatureFilter.ByPairwiseScore, FeatureFilter.ByParent, FeatureFilter.BySequenceName, FeatureFilter.BySource, FeatureFilter.ByType, FeatureFilter.ContainedByLocation, FeatureFilter.FrameFilter, FeatureFilter.HasAnnotation, FeatureFilter.Not, FeatureFilter.OnlyChildren, FeatureFilter.OnlyDescendants, FeatureFilter.Or, FeatureFilter.OverlapsLocation, FeatureFilter.ShadowContainedByLocation, FeatureFilter.ShadowOverlapsLocation, FeatureFilter.StrandFilter

public interface FeatureFilter
extends Serializable

A filter for accepting or rejecting a feature.

It is possible to write custom FeatureFilters by implementing this interface. There are also a wide range of built-in features, and it is possible to build complex queries using FeatureFilter.And, FeatureFilter.Or, and FeatureFilter.Not. Where possible, use of the built-in filters is preferable to writing new filters, since the methods in the FilterUtils class have access to special knowledge about the built-in filter types and how they relate to one another.

If the filter is to be used in a remote process, it is recognized that it may be serialized and sent over to run remotely, rather than each feature being retrieved locally.

Since:
1.0
Author:
Matthew Pocock, Thomas Down

Nested Class Summary
static class FeatureFilter.And
          A filter that returns all features accepted by both child filter.
static class FeatureFilter.AnnotationContains
          Retrieve features that contain a given annotation, and that the set of values contains the value given.
static class FeatureFilter.ByAncestor
          Filter by applying a nested FeatureFilter to all ancestor features.
static class FeatureFilter.ByAnnotation
          Retrieve features that contain a given annotation with a given value.
static class FeatureFilter.ByAnnotationType
          A filter that returns all features that have an annotation bundle that is of a given annotation type.
static class FeatureFilter.ByChild
          Filter by applying a nested FeatureFilter to the child features.
static class FeatureFilter.ByClass
          Filter which accepts only those filters which are an instance of a specific Java class
static class FeatureFilter.ByComponentName
          Accepts features which are ComponentFeatures and have a componentSequenceName property of the specified value.
static class FeatureFilter.ByDescendant
          Filter by applying a nested FeatureFilter to all descendant features.
static class FeatureFilter.ByFeature
          Accept only features which are equal to the specified feature
static class FeatureFilter.ByPairwiseScore
          ByPairwiseScore is used to filter SimilarityPairFeatures by their score.
static class FeatureFilter.ByParent
          Filter by applying a nested FeatureFilter to the parent feature.
static class FeatureFilter.BySequenceName
          Accept features that reside on a sequence with a particular name.
static class FeatureFilter.BySource
          Construct one of these to filter features by source.
static class FeatureFilter.ByType
          Construct one of these to filter features by type.
static class FeatureFilter.ContainedByLocation
          A filter that returns all features contained within a location.
static class FeatureFilter.FrameFilter
          Accept features with a given reading frame.
static class FeatureFilter.HasAnnotation
          Retrieve features that contain a given annotation with any value.
static class FeatureFilter.Not
          A filter that returns all features not accepted by a child filter.
static class FeatureFilter.OnlyChildren
          Accepts features where all immediate children meet the supplied filter.
static class FeatureFilter.OnlyDescendants
          Accepts features where all descendants meet the supplied filter.
static class FeatureFilter.Or
          A filter that returns all features accepted by at least one child filter.
static class FeatureFilter.OverlapsLocation
          A filter that returns all features overlapping a location.
static class FeatureFilter.ShadowContainedByLocation
          A filter that accepts all features whose shadow is contained by a specified Location.
static class FeatureFilter.ShadowOverlapsLocation
          A filter that accepts all features whose shadow overlaps a specified Location.
static class FeatureFilter.StrandFilter
          Accept features with a given strandedness.
 
Field Summary
static FeatureFilter all
          All features are selected by this filter.
static FeatureFilter leaf
          A filter which accepts features with no children
static FeatureFilter none
          No features are selected by this filter.
static FeatureFilter top_level
          A filter which accepts only top-level Features.
 
Method Summary
 boolean accept(Feature f)
          This method determines whether a feature is to be accepted.
 

Field Detail

all

static final FeatureFilter all
All features are selected by this filter.


none

static final FeatureFilter none
No features are selected by this filter.


top_level

static final FeatureFilter top_level
A filter which accepts only top-level Features. This is true is getParent() returns a Sequence instance.

Since:
1.3

leaf

static final FeatureFilter leaf
A filter which accepts features with no children

Since:
1.3
Method Detail

accept

boolean accept(Feature f)
This method determines whether a feature is to be accepted.

Parameters:
f - the Feature to evaluate
Returns:
true if this feature is to be selected in, or false if it is to be ignored