JAL-3285 code changes to HMMER colour schemes not included in merge
[jalview.git] / src / jalview / schemes / HmmerGlobalBackground.java
index 76d77ab..a24b7ab 100644 (file)
@@ -1,7 +1,8 @@
 package jalview.schemes;
 
+import jalview.api.AlignViewportI;
 import jalview.datamodel.AnnotatedCollectionI;
-import jalview.datamodel.HiddenMarkovModel;
+import jalview.datamodel.SequenceCollectionI;
 
 /**
  * An HMM colour scheme that uses global ('Uniprot') background frequencies for
@@ -19,15 +20,18 @@ public class HmmerGlobalBackground extends HmmerColourScheme
   private static final float MAX_LOG_RATIO = 4.519f;
 
   /**
-   * Constructor given a Hidden Markov Model
+   * Constructor given a sequence collection
    * 
-   * @param markov
+   * @param ac
    */
-  public HmmerGlobalBackground(HiddenMarkovModel markov)
+  public HmmerGlobalBackground(SequenceCollectionI ac)
   {
-    super(markov);
-    setFrequencies(ResidueProperties.backgroundFrequencies
-            .get(getHmm().getAlphabetType()));
+    super(ac.getHmmSequences());
+    String alphabetType = getHmm() == null
+            ? ResidueProperties.ALPHABET_AMINO
+            : getHmm().getAlphabetType();
+    setFrequencies(
+            ResidueProperties.backgroundFrequencies.get(alphabetType));
   }
 
   /**
@@ -44,10 +48,9 @@ public class HmmerGlobalBackground extends HmmerColourScheme
   }
 
   @Override
-  protected HmmerColourScheme newInstance(AnnotatedCollectionI ac,
-          HiddenMarkovModel model)
+  protected HmmerColourScheme newInstance(AnnotatedCollectionI ac)
   {
-    return new HmmerGlobalBackground(model);
+    return new HmmerGlobalBackground(ac);
   }
 
   @Override
@@ -56,4 +59,15 @@ public class HmmerGlobalBackground extends HmmerColourScheme
     return MAX_LOG_RATIO;
   }
 
+  /**
+   * Answers a new colour scheme instance based on the HMM of the first sequence
+   * in alignment that has an HMM
+   */
+  @Override
+  public ColourSchemeI getInstance(AlignViewportI viewport,
+          AnnotatedCollectionI ac)
+  {
+    return newInstance(ac);
+  }
+
 }