org.biojava.bio.alignment
Interface EditableAlignment

All Known Implementing Classes:
FlexibleAlignment

public interface EditableAlignment

EditableAlignment is an interface that defines methods for shifting bases within an Alignment.

Shift should work as follows. Bases within a sequence can be shifted to the right with offset > 1 to the left with offset < 1. Shifting bases will be allowed if:

  • 1: Shift would remove only gaps on one side, they will be replace with gaps on the other.
  • 2: Shift is at the end of a sequence. It will add gaps if the range location is less than the whole sequence.
  • Shifts that would delete bases will throw a IllegalEditException

    If the Alignment is an UnequalLengthAlignment it should be acceptable to shift bases in such a way as to increase (or decrease) the size of the overall length of the alignment, i.e. shift them over the edge.

    Author:
    David Waring

    Field Summary
    static ChangeType GAPS
               
    static ChangeType LOCATION
               
     
    Method Summary
     void edit(java.lang.Object label, Edit edit)
               edit() allows edits on an individual sequence, they should be reflected back to the underlying SymbolList.
     void shiftAtAlignmentLoc(java.lang.Object label, Location loc, int offset)
              loc in this case is the Alignment Location
     void shiftAtSequenceLoc(java.lang.Object label, Location loc, int offset)
              loc in this case is the SymbolList Location
     

    Field Detail

    LOCATION

    static final ChangeType LOCATION

    GAPS

    static final ChangeType GAPS
    Method Detail

    edit

    void edit(java.lang.Object label,
              Edit edit)
              throws ChangeVetoException

    edit() allows edits on an individual sequence, they should be reflected back to the underlying SymbolList.

    Throws:
    ChangeVetoException

    shiftAtAlignmentLoc

    void shiftAtAlignmentLoc(java.lang.Object label,
                             Location loc,
                             int offset)
                             throws ChangeVetoException,
                                    IllegalAlignmentEditException,
                                    java.lang.IndexOutOfBoundsException
    loc in this case is the Alignment Location

    Throws:
    ChangeVetoException
    IllegalAlignmentEditException
    java.lang.IndexOutOfBoundsException

    shiftAtSequenceLoc

    void shiftAtSequenceLoc(java.lang.Object label,
                            Location loc,
                            int offset)
                            throws ChangeVetoException,
                                   IllegalAlignmentEditException,
                                   java.lang.IndexOutOfBoundsException
    loc in this case is the SymbolList Location

    Throws:
    ChangeVetoException
    IllegalAlignmentEditException
    java.lang.IndexOutOfBoundsException