import java.awt.Color;
import java.awt.Font;
import java.util.Hashtable;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
AlignmentView getAlignmentView(boolean selectedOnly, boolean markGroups);
/**
+ * @return an alignment view, optionally without a complement view
+ * @param selectedOnly
+ * @param markGroups
+ * @param withComplement - false if no complement view required
+ */
+ AlignmentView getAlignmentViewWithComplement(boolean selectedOnly,
+ boolean markGroups, boolean withComplement);
+
+ /**
* This method returns the visible alignment as text, as seen on the GUI, ie
* if columns are hidden they will not be returned in the result. Use this for
* calculating trees, PCA, redundancy etc on views which contain hidden
* - a group defined on sequences in the alignment held by the view
*/
void addSequenceGroup(SequenceGroup sequenceGroup);
+
+ /**
+ * Returns an interator over the [start, end] column positions of the visible
+ * regions of the alignment
+ *
+ * @param selectedRegionOnly
+ * if true, and the view has a selection region,
+ * then only the intersection of visible columns
+ * with the selection region is returned
+ * @return
+ */
+ Iterator<int[]> getViewAsVisibleContigs(boolean selectedRegionOnly);
}