d5508f16b46941373ea559e8652df284d730d109
[jalview.git] / src / jalview / schemes / HmmerGlobalBackground.java
1 package jalview.schemes;
2
3 import jalview.datamodel.AnnotatedCollectionI;
4
5 /**
6  * An HMM colour scheme that uses global ('Uniprot') background frequencies for
7  * residues
8  * 
9  * @author tzvanaalten
10  */
11 public class HmmerGlobalBackground extends HmmerColourScheme
12 {
13   /*
14    * The highest possible log ratio is when match emission probability in
15    * the HMM model is 1, and background (for W) is 0.0109 giving
16    * log(1/0.0109) = log(91.743) = 4.519
17    */
18   private static final float MAX_LOG_RATIO = 4.519f;
19
20   /**
21    * Constructor given a Hidden Markov Model
22    * 
23    * @param markov
24    */
25   public HmmerGlobalBackground(AnnotatedCollectionI ac)
26   {
27     super(ac.getHmmConsensus());
28     String alphabetType = getHmm() == null
29             ? ResidueProperties.ALPHABET_AMINO
30             : getHmm().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   {
51     return new HmmerGlobalBackground(ac);
52   }
53
54   @Override
55   float getMaxInformationScore()
56   {
57     return MAX_LOG_RATIO;
58   }
59
60 }