import jalview.datamodel.ContactMatrixI;
import jalview.datamodel.Mapping;
import jalview.datamodel.SequenceI;
+import jalview.util.MapList;
public interface MappableContactMatrixI extends ContactMatrixI
{
boolean hasReferenceSeq();
SequenceI getReferenceSeq();
+
/**
* remaps the matrix to a new reference sequence
- * @param dsq
- * @param sqmpping - mapping from current reference to new reference - 1:1 only
+ *
+ * @param dsq
+ * @param sqmpping
+ * - mapping from current reference to new reference - 1:1 only
* @return new ContactMatrixI instance with updated mapping
*/
MappableContactMatrixI liftOver(SequenceI dsq, Mapping sqmpping);
-
+
/**
* like ContactMatrixI.getContactList(int column) but
- * @param localFrame - sequence or other object that this contact matrix is associated with
- * @param column - position in localFrame
+ *
+ * @param localFrame
+ * - sequence or other object that this contact matrix is associated
+ * with
+ * @param column
+ * - position in localFrame
* @return ContactListI that returns contacts w.r.t. localFrame
*/
-
+
ContactListI getMappableContactList(SequenceI localFrame, int column);
+ /**
+ *
+ * Similar to AlignedCodonFrame.getMappingBetween
+ *
+ * @param sequenceRef
+ * - a reference sequence mappable to this contactMatrix - may be
+ * null
+ * @return null or the MapList mapping to the coordinates of the reference
+ * sequence (or if hasReferenceSeq() is false, and sequenceRef is
+ * null, any mapping present)
+ *
+ */
+ MapList getMapFor(SequenceI sequenceRef);
+
+ /**
+ * Locate a position in the mapped sequence for a column in the matrix - use
+ * this to resolve positions corresponding to column clusters
+ *
+ * @param localFrame
+ * - sequence derivced from reference sequence
+ * @param column
+ * - matrix row/column
+ * @return sequence position(s) corresponding to column in contact matrix
+ */
+ int[] getMappedPositionsFor(SequenceI localFrame, int column);
}