X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignmentI.java;h=4b1220b1ab98bb4d23e31c3106c0c5b473ec5ef2;hb=48a66195bf4aee8b2c479d3bbbf4c1fb8b824f5a;hp=1b5207f59ac807e30396429a5137fb84cfe143d9;hpb=163ed5b997bbda48e4cdd950e87a8fe01baae7fb;p=jalview.git diff --git a/src/jalview/datamodel/AlignmentI.java b/src/jalview/datamodel/AlignmentI.java index 1b5207f..4b1220b 100755 --- a/src/jalview/datamodel/AlignmentI.java +++ b/src/jalview/datamodel/AlignmentI.java @@ -5,22 +5,21 @@ * 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 License + * 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 License for more details. + * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General License + * 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.datamodel; -import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Set; @@ -48,15 +47,29 @@ public interface AlignmentI extends AnnotatedCollectionI /** * - * Calculates the maximum width of the alignment, including gaps. + * Answers the width of the alignment, including gaps, that is, the length of + * the longest sequence, or -1 if there are no sequences. Avoid calling this + * method repeatedly where possible, as it has to perform a calculation. Note + * that this width includes any hidden columns. * - * @return Greatest sequence length within alignment, or -1 if no sequences - * present + * @return + * @see AlignmentI#getVisibleWidth() */ @Override int getWidth(); /** + * + * Answers the visible width of the alignment, including gaps, that is, the + * length of the longest sequence, excluding any hidden columns. Answers -1 if + * there are no sequences. Avoid calling this method repeatedly where + * possible, as it has to perform a calculation. + * + * @return + */ + int getVisibleWidth(); + + /** * Calculates if this set of sequences (visible and invisible) are all the * same length * @@ -389,7 +402,7 @@ public interface AlignmentI extends AnnotatedCollectionI * * @return hashtable of alignment properties (or null if none are defined) */ - Hashtable getProperties(); + Map getProperties(); /** * add a reference to a frame of aligned codons for this alignment @@ -580,6 +593,34 @@ public interface AlignmentI extends AnnotatedCollectionI */ AlignedCodonFrame getMapping(SequenceI mapFrom, SequenceI mapTo); - public void setHiddenColumns(HiddenColumns cols); + /** + * Set the hidden columns collection on the alignment. Answers true if the + * hidden column selection changed, else false. + * + * @param cols + * @return + */ + public boolean setHiddenColumns(HiddenColumns cols); + + /** + * Set the first sequence as representative and hide its insertions. Typically + * used when loading JPred files. + */ + public void setupJPredAlignment(); + + /** + * Add gaps into the sequences aligned to profileseq under the given + * AlignmentView + * + * @param profileseq + * sequence in al which sequences are aligned to + * @param input + * alignment view where sequence corresponding to profileseq is first + * entry + * @return new HiddenColumns for new alignment view, with insertions into + * profileseq marked as hidden. + */ + public HiddenColumns propagateInsertions(SequenceI profileseq, + AlignmentView input); }