JAL-2629 JAL-2937 remove redundant is/setHMMConsensusSequence
[jalview.git] / src / jalview / datamodel / HiddenMarkovModel.java
index dd27fa6..3c2c437 100644 (file)
@@ -1,5 +1,6 @@
 package jalview.datamodel;
 
+import jalview.bin.Cache;
 import jalview.io.HMMFile;
 import jalview.schemes.ResidueProperties;
 import jalview.util.Comparison;
@@ -82,11 +83,13 @@ public class HiddenMarkovModel
   }
 
   /**
-   * Copy constructor
+   * Copy constructor given a new aligned sequence with which to associate the
+   * HMM profile
    * 
    * @param hmm
+   * @param sq
    */
-  public HiddenMarkovModel(HiddenMarkovModel hmm)
+  public HiddenMarkovModel(HiddenMarkovModel hmm, SequenceI sq)
   {
     super();
     this.fileProperties = new HashMap<>(hmm.fileProperties);
@@ -94,6 +97,15 @@ public class HiddenMarkovModel
     this.nodes = new ArrayList<>(hmm.nodes);
     this.symbolIndexLookup = hmm.symbolIndexLookup;
     this.fileHeader = new String(hmm.fileHeader);
+    this.hmmSeq = sq;
+    if (sq.getDatasetSequence() == hmm.mapToHmmConsensus.getTo())
+    {
+      this.mapToHmmConsensus = hmm.mapToHmmConsensus;
+    }
+    else
+    {
+      Cache.log.error("Error: HMM copied with change of mapped sequence");
+    }
   }
 
   /**
@@ -549,8 +561,6 @@ public class HiddenMarkovModel
             lastResNo - gapCount);
     seq.createDatasetSequence();
     seq.setHMM(this);
-    seq.setIsHMMConsensusSequence(true);
-
     this.hmmSeq = seq;
 
     /*
@@ -611,5 +621,15 @@ public class HiddenMarkovModel
       buildConsensusSequence();
     }
   }
+
+  /**
+   * Sets the aligned consensus sequence this HMM is the model for
+   * 
+   * @param hmmSeq
+   */
+  public void setHmmSeq(SequenceI hmmSeq)
+  {
+    this.hmmSeq = hmmSeq;
+  }
 }