X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdatamodel%2FMappableContactMatrixI.java;h=9ca88cc14278f84fc8c276309691ae6b3aaa207c;hb=bc1a3842b31a35a7794f4afec4911ad421c7c3e4;hp=052bc2ff41945f31c986a08ba7a54274eeb50276;hpb=f3d6a13271e3f34dfb4e40d6a2a7df1d392f8014;p=jalview.git diff --git a/src/jalview/ws/datamodel/MappableContactMatrixI.java b/src/jalview/ws/datamodel/MappableContactMatrixI.java index 052bc2f..9ca88cc 100644 --- a/src/jalview/ws/datamodel/MappableContactMatrixI.java +++ b/src/jalview/ws/datamodel/MappableContactMatrixI.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.ws.datamodel; import jalview.datamodel.ContactListI; @@ -12,31 +32,68 @@ 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 + * 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) + * @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 single column in the matrix. + * 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); + + /** + * Locate a position in the mapped sequence for a contiguous range of columns + * 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 from, int to); + + ContactMatrixI getMappedMatrix(); }