31bcadfc6e77f1631f3faf8ba38c5d81fed261ad
[jalview.git] / src / jalview / schemes / HmmerGlobalBackground.java
1 package jalview.schemes;
2
3 import jalview.datamodel.AnnotatedCollectionI;
4 import jalview.datamodel.SequenceCollectionI;
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 sequence collection
23    * 
24    * @param ac
25    */
26   public HmmerGlobalBackground(SequenceCollectionI ac)
27   {
28     super(ac.getHmmSequences());
29     String alphabetType = getHmm() == null
30             ? ResidueProperties.ALPHABET_AMINO
31             : getHmm().getAlphabetType();
32     setFrequencies(
33             ResidueProperties.backgroundFrequencies.get(alphabetType));
34   }
35
36   /**
37    * Default constructor (required by ColourSchemes.loadColourSchemes)
38    */
39   public HmmerGlobalBackground()
40   {
41   }
42
43   @Override
44   public String getSchemeName()
45   {
46     return JalviewColourScheme.HMMERU.toString();
47   }
48
49   @Override
50   protected HmmerColourScheme newInstance(AnnotatedCollectionI ac)
51   {
52     return new HmmerGlobalBackground(ac);
53   }
54
55   @Override
56   float getMaxInformationScore()
57   {
58     return MAX_LOG_RATIO;
59   }
60
61 }