JAL-3515 Build a WSPreferences page for Slivka services.
[jalview.git] / src / jalview / datamodel / HiddenMarkovModel.java
index 975bacb..6b8b095 100644 (file)
@@ -74,6 +74,9 @@ public class HiddenMarkovModel
    */
   private Mapping mapToHmmConsensus;
 
+  // stores background frequencies of alignment from which this model came
+  private Map<Character, Float> 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<Character, Float> 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<Character, Float> getBackgroundFrequencies()
+  {
+    return backgroundFrequencies;
+  }
+
 }