package jalview.ws.datamodel; import jalview.datamodel.ContactListI; 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 * @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 * @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); }