X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FHiddenMarkovModel.java;h=6b8b09562dcdc9011c9d910201630d068ed37c78;hb=bea1d9b563d2fea018de3dbde9112dd59149126e;hp=975bacbf9648082975a9057ed7711b87c8b0b807;hpb=d5477e299373c07a2b1f92421dcf454b0fe40b56;p=jalview.git diff --git a/src/jalview/datamodel/HiddenMarkovModel.java b/src/jalview/datamodel/HiddenMarkovModel.java index 975bacb..6b8b095 100644 --- a/src/jalview/datamodel/HiddenMarkovModel.java +++ b/src/jalview/datamodel/HiddenMarkovModel.java @@ -74,6 +74,9 @@ public class HiddenMarkovModel */ private Mapping mapToHmmConsensus; + // stores background frequencies of alignment from which this model came + private Map backgroundFrequencies; + /** * Constructor */ @@ -97,6 +100,7 @@ public class HiddenMarkovModel this.symbolIndexLookup = hmm.symbolIndexLookup; this.fileHeader = new String(hmm.fileHeader); this.hmmSeq = sq; + this.backgroundFrequencies = hmm.getBackgroundFrequencies(); if (sq.getDatasetSequence() == hmm.mapToHmmConsensus.getTo()) { // same dataset sequence e.g. after realigning search results @@ -640,5 +644,29 @@ public class HiddenMarkovModel { this.hmmSeq = hmmSeq; } + + public void setBackgroundFrequencies(Map bkgdFreqs) + { + backgroundFrequencies = bkgdFreqs; + } + + public void setBackgroundFrequencies(ResidueCount bkgdFreqs) + { + backgroundFrequencies = new HashMap<>(); + + int total = bkgdFreqs.getTotalResidueCount(); + + for (char c : bkgdFreqs.getSymbolCounts().symbols) + { + backgroundFrequencies.put(c, bkgdFreqs.getCount(c) * 1f / total); + } + + } + + public Map getBackgroundFrequencies() + { + return backgroundFrequencies; + } + }