JAL-2938 extracted base class for Hmmer colour schems
[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     setFrequencies(ResidueProperties.backgroundFrequencies
30             .get(getHmm().getAlphabetType()));
31   }
32
33   /**
34    * Default constructor (required by ColourSchemes.loadColourSchemes)
35    */
36   public HmmerGlobalBackground()
37   {
38   }
39
40   @Override
41   public String getSchemeName()
42   {
43     return JalviewColourScheme.HMMERU.toString();
44   }
45
46   @Override
47   protected HmmerColourScheme newInstance(AnnotatedCollectionI ac,
48           HiddenMarkovModel model)
49   {
50     return new HmmerGlobalBackground(model);
51   }
52
53   @Override
54   float getMaxInformationScore()
55   {
56     return MAX_LOG_RATIO;
57   }
58
59 }