package jalview.schemes;
-import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.HiddenMarkovModel;
import jalview.datamodel.SequenceCollectionI;
import jalview.util.Comparison;
import java.awt.Color;
+import java.util.List;
import java.util.Map;
public class HMMERColourScheme extends ResidueColourScheme
}
Double prob;
prob = hmm.getMatchEmissionProbability(position, symbol);
- double freq = ResidueProperties.aminoBackgroundFrequencies.get(symbol);
- Double value = prob - freq;
-
+ double freq = 0;
+ if ("amino".equals(hmm.getAlphabetType()))
+ {
+ if (!ResidueProperties.aminoBackgroundFrequencies.containsKey(symbol))
+ {
+ return Color.white;
+ }
+ freq = ResidueProperties.aminoBackgroundFrequencies.get(symbol);
+ }
+ else if ("DNA".equals(hmm.getAlphabetType()))
+ {
+ if (!ResidueProperties.dnaBackgroundFrequencies.containsKey(symbol))
+ {
+ return Color.white;
+ }
+ freq = ResidueProperties.dnaBackgroundFrequencies.get(symbol);
+ }
+ else if ("RNA".equals(hmm.getAlphabetType()))
+ {
+ if (!ResidueProperties.rnaBackgroundFrequencies.containsKey(symbol))
+ {
+ return Color.white;
+ }
+ freq = ResidueProperties.rnaBackgroundFrequencies.get(symbol);
+ }
+ if (prob == 0)
+ {
+ return Color.red;
+ }
+ Double value = Math.log(prob / freq);
Color colour = null;
- if (value >= 0)
+ if (value > 0)
{
colour = ColorUtils.getGraduatedColour(value.floatValue(), 0,
- Color.WHITE, 1f, Color.green);
+ Color.WHITE, 4.52f, Color.blue);
}
else if (value < 0)
{
- return Color.YELLOW;
+ return Color.ORANGE;
}
return colour;
public void alignmentChanged(AnnotatedCollectionI collection,
Map<SequenceI, SequenceCollectionI> hiddenReps)
{
- AlignmentAnnotation[] annArr = collection.getAlignmentAnnotation();
- for (AlignmentAnnotation ann : annArr)
+ List<SequenceI> seqs = collection.getSequences();
+ for (SequenceI seq : seqs)
{
- if (ann.label.indexOf("Information Content") > -1)
+ if (seq.getHMM() != null)
{
- hmm = ann.getHMM();
+ hmm = seq.getHMM();
+ break;
}
}
}
+
+
@Override
public ColourSchemeI getInstance(AnnotatedCollectionI sg,
Map<SequenceI, SequenceCollectionI> hiddenRepSequences)
{
HiddenMarkovModel markov = null;
- AlignmentAnnotation[] annArr = sg.getAlignmentAnnotation();
- for (AlignmentAnnotation ann : annArr)
+ List<SequenceI> seqs = sg.getSequences();
+ for (SequenceI seq : seqs)
{
- if (ann.label.indexOf("Information Content") > -1)
+ if (seq.getHMM() != null)
{
- markov = ann.getHMM();
+ markov = seq.getHMM();
+ break;
}
}
-
-
-
-
-
HMMERColourScheme colour = new HMMERColourScheme(markov);
return colour;