X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequence.java;fp=src%2Fjalview%2Fdatamodel%2FSequence.java;h=4736981618af38b91ab2023bf4948bb1688cf07a;hb=36e82a30ba2cd0c1331d8735214ebbe2139790ce;hp=a6735149910e828e7759d1a2229d3e840c46ad41;hpb=60230a4056ce0094603ca68c6596129e1048dc85;p=jalview.git diff --git a/src/jalview/datamodel/Sequence.java b/src/jalview/datamodel/Sequence.java index a673514..4736981 100755 --- a/src/jalview/datamodel/Sequence.java +++ b/src/jalview/datamodel/Sequence.java @@ -1563,6 +1563,41 @@ public class Sequence extends ASequence implements SequenceI } + /** + * Maps the HMM sequence to the reference annotation. + * + * @param rf + */ + @Override + public void mapToReference(AlignmentAnnotation rf) + { + if (this.isHMMConsensusSequence) + { + int node = 1; + hmm.emptyNodeLookup(); + for (int i = 0; i < getLength(); i++) + { + if (rf.annotations[i].displayCharacter.equals("x") + || rf.annotations[i].displayCharacter.equals("X")) + { + if (i < hmm.getNodeAlignmentColumn(node)) + { + this.deleteChars(i, hmm.getNodeAlignmentColumn(node)); + updateHMMMapping(); + } + else if (i > hmm.getNodeAlignmentColumn(node)) + { + int length = i - hmm.getNodeAlignmentColumn(node); + this.insertCharAt(hmm.getNodeAlignmentColumn(node), length, + '-'); + updateHMMMapping(); + } + node++; + } + } + } + } + @Override public boolean isHMMConsensusSequence() {