test HMMER colour scheme
[jalview.git] / src / jalview / schemes / HMMERColourScheme.java
1 package jalview.schemes;
2
3 import jalview.datamodel.AnnotatedCollectionI;
4 import jalview.datamodel.HiddenMarkovModel;
5 import jalview.datamodel.SequenceCollectionI;
6 import jalview.datamodel.SequenceI;
7
8 import java.awt.Color;
9 import java.util.Map;
10
11 public class HMMERColourScheme extends ResidueColourScheme
12 {
13
14   AnnotatedCollectionI alignment;
15
16   HiddenMarkovModel hmm;
17   
18   boolean peptideSpecific;
19
20   boolean nucleotideSpecific;
21
22   public HMMERColourScheme(HiddenMarkovModel markov)
23   {
24     hmm = markov;
25   }
26   public HMMERColourScheme()
27   {
28
29   }
30
31   @Override
32   public Color findColour(char symbol, int position, SequenceI seq,
33           String consensusResidue, float pid)
34   {
35     if (hmm ==null)
36     {
37       return new Color(255, 255, 255);
38     }
39     return findColour(symbol, position);
40   }
41
42   public Color findColour(char symbol, int position)
43   {
44
45
46     Double probability;
47     probability = hmm.getMatchEmissionProbability(position, symbol);
48     // Double redModifier = Math.pow(probability, 0.9);
49     Double doubleGreenModifier;
50     float greenModifier;
51     if (probability < 0.5)
52     {
53       doubleGreenModifier = probability;
54       greenModifier = doubleGreenModifier.floatValue();
55     }
56     else
57     {
58       doubleGreenModifier = Math.pow(probability, 1 / 1.9);
59       greenModifier = doubleGreenModifier.floatValue();
60     }
61     // Double blueModifier = Math.pow(probability, 0.9);
62     return new Color(1f, 1f - greenModifier, 0.f);
63
64   }
65
66   @Override
67   public void alignmentChanged(AnnotatedCollectionI collection,
68           Map<SequenceI, SequenceCollectionI> hiddenReps)
69   {
70
71     collection.setHMM(hmm);
72   }
73
74   @Override
75   public ColourSchemeI getInstance(AnnotatedCollectionI sg,
76           Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
77   {
78     
79     
80     
81     
82
83     HMMERColourScheme markov = new HMMERColourScheme(sg.getHMM());
84     return markov;
85   }
86
87   @Override
88   public boolean isApplicableTo(AnnotatedCollectionI ac)
89   {
90       return true;
91
92   }
93
94   @Override
95   public String getSchemeName()
96   {
97
98     return JalviewColourScheme.HMMER.name();
99   }
100
101   @Override
102   public boolean isSimple()
103   {
104     // TODO Auto-generated method stub
105     return false;
106   }
107
108 }