X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FAlignmentI.java;h=7386d4b6677648265bb1cebb9421a84ab9b546b3;hb=3714de3baf8f4ee3fc11e93a0fdc8bee96c1594f;hp=b076ea78c41264265241eb0c79d258f2fe27b977;hpb=621b23ed6783d2c4c7caaf6d58151217b2fa4f1d;p=jalview.git diff --git a/src/jalview/datamodel/AlignmentI.java b/src/jalview/datamodel/AlignmentI.java index b076ea7..7386d4b 100755 --- a/src/jalview/datamodel/AlignmentI.java +++ b/src/jalview/datamodel/AlignmentI.java @@ -24,7 +24,6 @@ import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.function.Consumer; /** * Data structure to hold and manipulate a multiple sequence alignment @@ -49,15 +48,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 * @@ -505,8 +518,6 @@ public interface AlignmentI extends AnnotatedCollectionI * - null or specific sequence reference * @param groupRef * - null or specific group reference - * @param method - * - CalcId for the annotation (must match) * * @return existing annotation matching the given attributes */ @@ -581,8 +592,43 @@ 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); - public void forEachSequence(Consumer c, int start, int end); + /** + * Insert a sequence at a position in an alignment + * + * @param i + * The index of the position. + * @param snew + * The new sequence. + */ + void insertSequenceAt(int i, SequenceI snew); + + /** + * 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); }