package jalview.datamodel;
+import jalview.bin.Cache;
import jalview.io.HMMFile;
import jalview.schemes.ResidueProperties;
import jalview.util.Comparison;
}
/**
- * 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);
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");
+ }
}
/**
lastResNo - gapCount);
seq.createDatasetSequence();
seq.setHMM(this);
- seq.setIsHMMConsensusSequence(true);
-
this.hmmSeq = seq;
/*
buildConsensusSequence();
}
}
+
+ /**
+ * Sets the aligned consensus sequence this HMM is the model for
+ *
+ * @param hmmSeq
+ */
+ public void setHmmSeq(SequenceI hmmSeq)
+ {
+ this.hmmSeq = hmmSeq;
+ }
}