## org.biojava.bio.seq.homol
Interface SimilarityPairFeature

All Superinterfaces:
  Annotatable, Changeable, Feature, FeatureHolder, StrandedFeature

All Known Implementing Classes:
  SimpleSimilarityPairFeature

    public interface SimilarityPairFeature

extends StrandedFeature

`SimilarityPairFeature` describes a pairwise similarity between two nucleotide sequences (as it extends `StrandedFeature`). It is analagous to, and based on, the BioPerl Bio::SeqFeature::SimilarityPair.

It is different from `HomologyFeature` in that it expresses a relationship between only two sequence regions (rather than >= 2), with one clearly defined as the query sequence and the other as the subject (database hit). These are identified by constant labels in the `Alignment`. `HomologyFeature` identifies the related sequence regions by means of an `Homology` instance which contains an `Alignment` which uses the `HomologyFeature`s themselves as labels.

In cases where there is no alignment available, for example when MSPCrunch output or GFF have been used, the `EmptyPairwiseAlignment` in the EMPTY_PAIRWISE field may be used. This may also be useful if an implementation elides the alignment data for some reason.

Since:
  1.2
Author:
  Keith James

Nested Class Summary
`static class` `SimilarityPairFeature.EmptyPairwiseAlignment` `EmptyPairwiseAlignment` empty pairwise alignment which has labels to empty symbol lists.
`static class` `SimilarityPairFeature.Template` `Template` for construction of `SimilarityPairFeature`s.

Nested classes/interfaces inherited from interface org.biojava.bio.seq.StrandedFeature
`StrandedFeature.Strand`

Nested classes/interfaces inherited from interface org.biojava.bio.seq.Feature
`Feature.ByLocationComparator`

Nested classes/interfaces inherited from interface org.biojava.bio.seq.FeatureHolder
`FeatureHolder.EmptyFeatureHolder`

Nested classes/interfaces inherited from interface org.biojava.bio.Annotatable
`Annotatable.AnnotationForwarder`

Field Summary
`static Alignment` `EMPTY_PAIRWISE` Constant `EMPTY_PAIRWISE` is an empty alignment for situations where there is no available alignment data or the implementation does not want to create one.
`static String` `QUERY_LABEL` Constant `QUERY_LABEL` is the alignment label used for all query sequences.
`static ChangeType` `SIBLING` The sibling of this feature has altered.
`static String` `SUBJECT_LABEL` Constant `SUBJECT_LABEL` is the alignment label used for all subject sequences.

Fields inherited from interface org.biojava.bio.seq.StrandedFeature
`NEGATIVE, POSITIVE, STRAND, UNKNOWN`

Fields inherited from interface org.biojava.bio.seq.Feature
`byLocationOrder, LOCATION, PROPERTY_DATA_KEY, SOURCE, SOURCETERM, TYPE, TYPETERM`

Fields inherited from interface org.biojava.bio.seq.FeatureHolder
`EMPTY_FEATURE_HOLDER, FEATURES, SCHEMA`

Fields inherited from interface org.biojava.bio.Annotatable
`ANNOTATION`

Method Summary
`Alignment` `getAlignment()` `getAlignment` returns the `Alignment` of two similar features.
`double` `getScore()` `getScore` returns the alignment score.
`SimilarityPairFeature` `getSibling()` `getSibling` returns the sibling `Feature`, query for subject and vice versa.
`void` `setSibling(SimilarityPairFeature sibling)` `setSibling` sets the sibling feature of the pair.

Methods inherited from interface org.biojava.bio.seq.StrandedFeature
`getStrand, getSymbols, setStrand`

Methods inherited from interface org.biojava.bio.seq.Feature
`features, getLocation, getParent, getSequence, getSource, getSourceTerm, getType, getTypeTerm, makeTemplate, setLocation, setSource, setSourceTerm, setType, setTypeTerm`

Methods inherited from interface org.biojava.bio.seq.FeatureHolder
`containsFeature, countFeatures, createFeature, filter, filter, getSchema, removeFeature`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Methods inherited from interface org.biojava.bio.Annotatable
`getAnnotation`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Field Detail

### SIBLING

    static final ChangeType SIBLING

  The sibling of this feature has altered.

### QUERY_LABEL

    static final String QUERY_LABEL

  Constant `QUERY_LABEL` is the alignment label used for all query sequences.

  See Also:
    Constant Field Values

### SUBJECT_LABEL

    static final String SUBJECT_LABEL

  Constant `SUBJECT_LABEL` is the alignment label used for all subject sequences.

  See Also:
    Constant Field Values

### EMPTY_PAIRWISE

    static final Alignment EMPTY_PAIRWISE

  Constant `EMPTY_PAIRWISE` is an empty alignment for situations where there is no available alignment data or the implementation does not want to create one.

Method Detail

### getSibling

    SimilarityPairFeature getSibling()

  `getSibling` returns the sibling `Feature`, query for subject and vice versa.

  Returns:
    a `Feature`.

### setSibling

    void setSibling(SimilarityPairFeature sibling)
                    throws ChangeVetoException

  `setSibling` sets the sibling feature of the pair. This is used to set the reciprocal `SimilarityPairFeature` as both cannot be set using the `Template`.

  Throws:
    `ChangeVetoException`

### getAlignment

    Alignment getAlignment()

  `getAlignment` returns the `Alignment` of two similar features.

  Returns:
    an `Alignment` value.

### getScore

    double getScore()

  `getScore` returns the alignment score.

  Returns:
    a `double`.