+
+ /**
+ * 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
+ * included (but not contact features).
+ *
+ * @param fromCol
+ * start column of range inclusive (1..)
+ * @param toCol
+ * end column of range inclusive (1..)
+ * @param types
+ * optional feature types to restrict results to
+ * @return
+ */
+ List<SequenceFeature> findFeatures(int fromCol, int toCol, String... types);
+
+ /**
+ * Method to call to indicate that the sequence (characters or alignment/gaps)
+ * has been modified. Provided to allow any cursors on residue/column
+ * positions to be invalidated.
+ */
+ void sequenceChanged();
+
+ /**
+ *
+ * @return BitSet corresponding to index [0,length) where Comparison.isGap()
+ * returns true.
+ */
+ BitSet getInsertionsAsBits();
+
+ /**
+ * Replaces every occurrence of c1 in the sequence with c2 and returns the
+ * number of characters changed
+ *
+ * @param c1
+ * @param c2
+ */
+ public int replace(char c1, char c2);
+
+ /**
+ * Answers the GeneLociI, or null if not known
+ *
+ * @return
+ */
+ GeneLociI getGeneLoci();
+
+ /**
+ * Sets the mapping to gene loci for the sequence
+ *
+ * @param speciesId
+ * @param assemblyId
+ * @param chromosomeId
+ * @param map
+ */
+ 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
+ */
+ public 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
+ */
+ 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();
+
+ /**
+ * allows passing the result ArrayList as a parameter to avoid unnecessary
+ * construction
+ *
+ * @author Bob Hanson 2019.07.30
+ *
+ *
+ */
+ List<SequenceFeature> findFeatures(int column, String type,
+ List<SequenceFeature> result);
+
+ /**
+ * allows early intervention for renderer if false
+ *
+ * @author Bob Hanson 2019.07.30
+ *
+ */
+ public boolean hasFeatures(String type);
+