JAL-2938 update colour schemes enum for class name changes
[jalview.git] / src / jalview / schemes / HmmerGlobalBackground.java
1 package jalview.schemes;
2
3 import jalview.datamodel.AnnotatedCollectionI;
4 import jalview.datamodel.HiddenMarkovModel;
5
6 /**
7  * An HMM colour scheme that uses global ('Uniprot') background frequencies for
8  * residues
9  * 
10  * @author tzvanaalten
11  */
12 public class HmmerGlobalBackground extends HmmerColourScheme
13 {
14   /*
15    * The highest possible log ratio is when match emission probability in
16    * the HMM model is 1, and background (for W) is 0.0109 giving
17    * log(1/0.0109) = log(91.743) = 4.519
18    */
19   private static final float MAX_LOG_RATIO = 4.519f;
20
21   /**
22    * Constructor given a Hidden Markov Model
23    * 
24    * @param markov
25    */
26   public HmmerGlobalBackground(HiddenMarkovModel markov)
27   {
28     super(markov);
29     String alphabetType = markov == null ? ResidueProperties.ALPHABET_AMINO
30             : markov.getAlphabetType();
31     setFrequencies(
32             ResidueProperties.backgroundFrequencies.get(alphabetType));
33   }
34
35   /**
36    * Default constructor (required by ColourSchemes.loadColourSchemes)
37    */
38   public HmmerGlobalBackground()
39   {
40   }
41
42   @Override
43   public String getSchemeName()
44   {
45     return JalviewColourScheme.HMMERU.toString();
46   }
47
48   @Override
49   protected HmmerColourScheme newInstance(AnnotatedCollectionI ac,
50           HiddenMarkovModel model)
51   {
52     return new HmmerGlobalBackground(model);
53   }
54
55   @Override
56   float getMaxInformationScore()
57   {
58     return MAX_LOG_RATIO;
59   }
60
61 }