* 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
*/
* - 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
*/
public boolean addSequenceFeature(SequenceFeature sf);
+ /**
+ * Deletes the feature from the sequence (if found). To be precise, deletes
+ * the first feature {@code f} found where {@code f.equals(sf)}.
+ *
+ * @param sf
+ */
public void deleteFeature(SequenceFeature sf);
public void setDatasetSequence(SequenceI seq);
*/
public int firstResidueOutsideIterator(Iterator<int[]> it);
+ /**
+ * @author Bob Hanson 2019.07.30
+ *
+ * get a 4-byte color, with caching
+ *
+ */
+ public int getColor(int i);
+
+ /**
+ * @author Bob Hanson 2019.07.30
+ *
+ * set a 4-byte color, with caching
+ *
+ */
+ public int setColor(int i, int argb);
+
+ /**
+ * @author Bob Hanson 2019.07.30
+ *
+ * allows resetting the color cache
+ *
+ */
+ public void resetColors();
+
+ /**
+ * Answers a (possibly empty) list of features of the specified type that
+ * overlap the specified column position. If parameter {@code result} is not
+ * null, features are appended to it and the (possibly extended) list is
+ * returned.
+ */
+ List<SequenceFeature> findFeatures(int column, String type,
+ List<SequenceFeature> result);
+
+ /**
+ * Answers true if this store contains at least one feature, else false
+ *
+ * @return
+ */
+ public boolean hasFeatures(String type);
}