1 package jalview.schemes;
3 import jalview.datamodel.AnnotatedCollectionI;
4 import jalview.datamodel.HiddenMarkovModel;
5 import jalview.datamodel.SequenceCollectionI;
6 import jalview.datamodel.SequenceI;
7 import jalview.util.ColorUtils;
8 import jalview.util.Comparison;
10 import java.awt.Color;
13 public class HMMERColourScheme extends ResidueColourScheme
16 AnnotatedCollectionI alignment;
18 HiddenMarkovModel hmm;
20 boolean peptideSpecific;
22 boolean nucleotideSpecific;
24 public HMMERColourScheme(HiddenMarkovModel markov)
28 public HMMERColourScheme()
34 public Color findColour(char symbol, int position, SequenceI seq,
35 String consensusResidue, float pid)
41 return findColour(symbol, position);
44 public Color findColour(char symbol, int position)
47 if (Comparison.isGap(symbol))
52 prob = hmm.getMatchEmissionProbability(position, symbol);
54 if ("amino".equals(hmm.getAlphabetType()))
56 if (!ResidueProperties.aminoBackgroundFrequencies.containsKey(symbol))
60 freq = ResidueProperties.aminoBackgroundFrequencies.get(symbol);
62 else if ("DNA".equals(hmm.getAlphabetType()))
64 if (!ResidueProperties.dnaBackgroundFrequencies.containsKey(symbol))
68 freq = ResidueProperties.dnaBackgroundFrequencies.get(symbol);
70 else if ("RNA".equals(hmm.getAlphabetType()))
72 if (!ResidueProperties.rnaBackgroundFrequencies.containsKey(symbol))
76 freq = ResidueProperties.rnaBackgroundFrequencies.get(symbol);
82 Double value = Math.log(prob / freq);
87 colour = ColorUtils.getGraduatedColour(value.floatValue(), 0,
88 Color.WHITE, 3f, Color.blue);
105 public void alignmentChanged(AnnotatedCollectionI collection,
106 Map<SequenceI, SequenceCollectionI> hiddenReps)
108 SequenceI seq = collection.getSequences().get(0);
115 public ColourSchemeI getInstance(AnnotatedCollectionI sg,
116 Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
118 HiddenMarkovModel markov = null;
119 SequenceI seq = sg.getSequences().get(0);
120 markov = seq.getHMM();
121 HMMERColourScheme colour = new HMMERColourScheme(markov);
127 public boolean isApplicableTo(AnnotatedCollectionI ac)
134 public String getSchemeName()
137 return JalviewColourScheme.HMMER.name();
141 public boolean isSimple()
143 // TODO Auto-generated method stub