Merge branch 'develop' into developtomchmmer
[jalview.git] / src / jalview / datamodel / SequenceI.java
index 8dce31e..d06adcb 100755 (executable)
@@ -46,6 +46,10 @@ public interface SequenceI extends ASequenceI
    */
   public void setName(String name);
 
+  public HiddenMarkovModel getHMM();
+
+  public void setHMM(HiddenMarkovModel hmm);
+
   /**
    * Get the display name
    */
@@ -112,9 +116,11 @@ public interface SequenceI extends ASequenceI
    * get a range on the sequence as a string
    * 
    * @param start
-   *          position relative to start of sequence including gaps (from 0)
+   *          (inclusive) position relative to start of sequence including gaps
+   *          (from 0)
    * @param end
-   *          position relative to start of sequence including gaps (from 0)
+   *          (exclusive) position relative to start of sequence including gaps
+   *          (from 0)
    * 
    * @return String containing all gap and symbols in specified range
    */
@@ -206,14 +212,17 @@ public interface SequenceI extends ASequenceI
   public int findPosition(int i);
 
   /**
-   * Returns the from-to sequence positions (start..) for the given column
-   * positions (1..), or null if no residues are included in the range
+   * Returns the sequence positions for first and last residues lying within the
+   * given column positions [fromColum,toColumn] (where columns are numbered
+   * from 1), or null if no residues are included in the range
    * 
    * @param fromColum
+   *          - first column base 1
    * @param toColumn
+   *          - last column, base 1
    * @return
    */
-  public Range findPositions(int fromColum, int toColumn);
+  public ContiguousI findPositions(int fromColum, int toColumn);
 
   /**
    * Returns an int array where indices correspond to each residue in the
@@ -496,6 +505,12 @@ public interface SequenceI extends ASequenceI
   public List<DBRefEntry> getPrimaryDBRefs();
 
   /**
+   * Answers true if the sequence has annotation for Hidden Markov Model
+   * information content, else false
+   */
+  boolean hasHMMAnnotation();
+
+  /**
    * Returns a (possibly empty) list of sequence features that overlap the given
    * alignment column range, optionally restricted to one or more specified
    * feature types. If the range is all gaps, then features which enclose it are
@@ -532,7 +547,7 @@ public interface SequenceI extends ASequenceI
    * @param c1
    * @param c2
    */
-  public int replace(char c1, char c2);
+  int replace(char c1, char c2);
 
   /**
    * Answers the GeneLociI, or null if not known
@@ -562,7 +577,7 @@ public interface SequenceI extends ASequenceI
    *          the iterator to use
    * @return a String corresponding to the sequence
    */
-  public String getSequenceStringFromIterator(Iterator<int[]> it);
+  String getSequenceStringFromIterator(Iterator<int[]> it);
 
   /**
    * Locate the first position in this sequence which is not contained in an
@@ -572,5 +587,12 @@ public interface SequenceI extends ASequenceI
    *          iterator over regions
    * @return first residue not contained in regions
    */
-  public int firstResidueOutsideIterator(Iterator<int[]> it);
+  int firstResidueOutsideIterator(Iterator<int[]> it);
+
+  /**
+   * Answers true if this sequence has an associated Hidden Markov Model
+   * 
+   * @return
+   */
+  boolean hasHMMProfile();
 }