--- /dev/null
+package jalview.schemes;
+
+import jalview.datamodel.AnnotatedCollectionI;
+import jalview.datamodel.HiddenMarkovModel;
+import jalview.datamodel.SequenceCollectionI;
+import jalview.datamodel.SequenceI;
+
+import java.awt.Color;
+import java.util.Map;
+
+public class HMMERColourScheme extends ResidueColourScheme
+{
+
+ AnnotatedCollectionI alignment;
+
+ HiddenMarkovModel hmm;
+
+ boolean peptideSpecific;
+
+ boolean nucleotideSpecific;
+
+ public HMMERColourScheme(HiddenMarkovModel markov)
+ {
+ hmm = markov;
+ }
+ public HMMERColourScheme()
+ {
+
+ }
+
+ @Override
+ public Color findColour(char symbol, int position, SequenceI seq,
+ String consensusResidue, float pid)
+ {
+ if (hmm ==null)
+ {
+ return new Color(255, 255, 255);
+ }
+ return findColour(symbol, position);
+ }
+
+ public Color findColour(char symbol, int position)
+ {
+
+
+ Double probability;
+ probability = hmm.getMatchEmissionProbability(position, symbol);
+ // Double redModifier = Math.pow(probability, 0.9);
+ Double doubleGreenModifier;
+ float greenModifier;
+ if (probability < 0.5)
+ {
+ doubleGreenModifier = probability;
+ greenModifier = doubleGreenModifier.floatValue();
+ }
+ else
+ {
+ doubleGreenModifier = Math.pow(probability, 1 / 1.9);
+ greenModifier = doubleGreenModifier.floatValue();
+ }
+ // Double blueModifier = Math.pow(probability, 0.9);
+ return new Color(1f, 1f - greenModifier, 0.f);
+
+ }
+
+ @Override
+ public void alignmentChanged(AnnotatedCollectionI collection,
+ Map<SequenceI, SequenceCollectionI> hiddenReps)
+ {
+
+ collection.setHMM(hmm);
+ }
+
+ @Override
+ public ColourSchemeI getInstance(AnnotatedCollectionI sg,
+ Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
+ {
+
+
+
+
+
+ HMMERColourScheme markov = new HMMERColourScheme(sg.getHMM());
+ return markov;
+ }
+
+ @Override
+ public boolean isApplicableTo(AnnotatedCollectionI ac)
+ {
+ return true;
+
+ }
+
+ @Override
+ public String getSchemeName()
+ {
+
+ return JalviewColourScheme.HMMER.name();
+ }
+
+ @Override
+ public boolean isSimple()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}