JAL-2629 JAL-2937 remove redundant is/setHMMConsensusSequence
[jalview.git] / src / jalview / datamodel / SequenceI.java
index b666f83..6d34d07 100755 (executable)
@@ -24,6 +24,7 @@ import jalview.datamodel.features.SequenceFeaturesI;
 import jalview.util.MapList;
 
 import java.util.BitSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
 
@@ -228,6 +229,13 @@ public interface SequenceI extends ASequenceI
   public int[] gapMap();
 
   /**
+   * Build a bitset corresponding to sequence gaps
+   * 
+   * @return a BitSet where set values correspond to gaps in the sequence
+   */
+  public BitSet gapBitset();
+
+  /**
    * Returns an int array where indices correspond to each position in sequence
    * char array and the element value gives the result of findPosition for that
    * index in the sequence.
@@ -492,18 +500,6 @@ public interface SequenceI extends ASequenceI
   public List<DBRefEntry> getPrimaryDBRefs();
 
   /**
-   * Updates mapping of Hidden Markov Model nodes to aligned sequence positions
-   * (e.g. after an alignment edit). The nodes of the HMM (excluding the first
-   * node, with model average values), are associated in turn with non-gapped
-   * sequence positions.
-   */
-  public void updateHMMMapping();
-
-  boolean isHMMConsensusSequence();
-
-  void setIsHMMConsensusSequence(boolean isHMMConsensusSequence);
-
-  /**
    * Answers true if the sequence has annotation for Hidden Markov Model
    * information content, else false
    */
@@ -539,8 +535,6 @@ public interface SequenceI extends ASequenceI
    */
   BitSet getInsertionsAsBits();
 
-  void mapToReference(AlignmentAnnotation rf);
-
   /**
    * Replaces every occurrence of c1 in the sequence with c2 and returns the
    * number of characters changed
@@ -567,4 +561,33 @@ public interface SequenceI extends ASequenceI
    */
   void setGeneLoci(String speciesId, String assemblyId,
           String chromosomeId, MapList map);
+
+
+  /**
+   * Returns the sequence string constructed from the substrings of a sequence
+   * defined by the int[] ranges provided by an iterator. E.g. the iterator
+   * could iterate over all visible regions of the alignment
+   * 
+   * @param it
+   *          the iterator to use
+   * @return a String corresponding to the sequence
+   */
+  String getSequenceStringFromIterator(Iterator<int[]> it);
+
+  /**
+   * Locate the first position in this sequence which is not contained in an
+   * iterator region. If no such position exists, return 0
+   * 
+   * @param it
+   *          iterator over regions
+   * @return first residue not contained in regions
+   */
+  int firstResidueOutsideIterator(Iterator<int[]> it);
+
+  /**
+   * Answers true if this sequence has an associated Hidden Markov Model
+   * 
+   * @return
+   */
+  boolean hasHMMProfile();
 }