X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdatamodel%2FMappableContactMatrixI.java;h=9ca88cc14278f84fc8c276309691ae6b3aaa207c;hb=bc1a3842b31a35a7794f4afec4911ad421c7c3e4;hp=4abaa5deb5b99123ad0da1333347aad6f13ea08a;hpb=9e40070f757fc662aba39ba6314be4937276ead4;p=jalview.git diff --git a/src/jalview/ws/datamodel/MappableContactMatrixI.java b/src/jalview/ws/datamodel/MappableContactMatrixI.java index 4abaa5d..9ca88cc 100644 --- a/src/jalview/ws/datamodel/MappableContactMatrixI.java +++ b/src/jalview/ws/datamodel/MappableContactMatrixI.java @@ -1,9 +1,30 @@ +/* + * 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; import jalview.datamodel.ContactMatrixI; import jalview.datamodel.Mapping; import jalview.datamodel.SequenceI; +import jalview.util.MapList; public interface MappableContactMatrixI extends ContactMatrixI { @@ -11,21 +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 + * + * @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(); }