1 package jalview.schemes;
3 import jalview.datamodel.AnnotatedCollectionI;
4 import jalview.datamodel.HiddenMarkovModel;
5 import jalview.datamodel.ResidueCount;
7 import java.util.HashMap;
11 * An HMM colour scheme that uses local (alignment or sub-group) background
12 * frequencies for residues
16 public class HmmerLocalBackground extends HmmerColourScheme
21 * Constructor given a Hidden Markov Model
27 public HmmerLocalBackground(AnnotatedCollectionI sg,
28 HiddenMarkovModel markov)
35 * Default constructor (required by ColourSchemes.loadColourSchemes)
37 public HmmerLocalBackground()
42 public String getSchemeName()
44 return JalviewColourScheme.HMMERA.toString();
48 * Counts and stores the relative frequency of every residue in the alignment
52 public void countFrequencies(AnnotatedCollectionI sg)
54 Map<Character, Float> freqs = new HashMap<>();
55 ResidueCount counts = new ResidueCount(sg.getSequences());
56 int total = counts.getTotalResidueCount(); // excludes gaps
58 for (char symbol : counts.getSymbolCounts().symbols)
60 double freq = counts.getCount(symbol) / (double) total;
61 freqs.put(symbol, (float) freq);
64 setFrequencies(freqs);
66 logTotalCount = (float) Math.log(total);
70 float getMaxInformationScore()
76 protected HmmerColourScheme newInstance(AnnotatedCollectionI ac,
77 HiddenMarkovModel model)
79 return new HmmerLocalBackground(ac, model);