X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=6db870cbd6bd68a6465cdcf1414add8680a6cb97;hb=6076783c7a50cc6d318b2478b10800aedb9288c4;hp=854b39ddec8e171b014ed6a2261b1e0abe09107a;hpb=d595e9cf7672de6d60165b536bc3def4b31f2352;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index 854b39d..6db870c 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -1606,4 +1606,47 @@ public class SequenceGroup implements AnnotatedCollectionI normaliseSequenceLogo = state; } + /** + * Returns all HMM consensus sequences. This will not return real sequences + * with HMMs. If remove is set to true, the consensus sequences will be + * removed from the alignment. + */ + @Override // TODO make this more efficient. + public List getHMMConsensusSequences(boolean remove) + { + List seqs = new ArrayList<>(); + int position = 0; + int seqsRemoved = 0; + boolean endReached = false; + + while (!endReached) + { + SequenceI seq = sequences.get(position); + if (seq.isHMMConsensusSequence()) + { + if (remove) + { + sequences.remove(position); + seqsRemoved++; + seq.setPreviousPosition(seqsRemoved + position - 1); + } + else + { + position++; + } + seqs.add(seq); + } + else + { + position++; + } + + if (position >= sequences.size()) + { + endReached = true; + } + } + return seqs; + } + }