package jalview.schemes;
import jalview.datamodel.AnnotatedCollectionI;
-import jalview.datamodel.HiddenMarkovModel;
import jalview.datamodel.ResidueCount;
+import jalview.datamodel.SequenceCollectionI;
+import jalview.datamodel.SequenceI;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
float logTotalCount;
/**
- * Constructor given a Hidden Markov Model
+ * Constructor given a sequence collection
*
- * @param sg
- *
- * @param markov
+ * @param ac
*/
- public HmmerLocalBackground(AnnotatedCollectionI sg,
- HiddenMarkovModel markov)
+ public HmmerLocalBackground(AnnotatedCollectionI ac)
{
- super(markov);
- countFrequencies(sg);
+ super(ac.getHmmSequences());
+ countFrequencies(ac);
}
/**
/**
* Counts and stores the relative frequency of every residue in the alignment
+ * (apart from any HMM consensus sequences)
*
- * @param sg
+ * @param sc
*/
- public void countFrequencies(AnnotatedCollectionI sg)
+ public void countFrequencies(SequenceCollectionI sc)
{
+ // TODO or total counts in Consensus Profile (how do we get at it?)?
Map<Character, Float> freqs = new HashMap<>();
- ResidueCount counts = new ResidueCount(sg.getSequences());
+
+ /*
+ * count symbols, excluding any HMM consensus sequences
+ */
+ ResidueCount counts = new ResidueCount();
+ List<SequenceI> seqs = sc.getSequences();
+ for (SequenceI seq : seqs)
+ {
+ if (!seq.hasHMMProfile())
+ {
+ for (char c : seq.getSequence())
+ {
+ counts.add(c);
+ }
+ }
+ }
int total = counts.getTotalResidueCount(); // excludes gaps
for (char symbol : counts.getSymbolCounts().symbols)
}
@Override
- protected HmmerColourScheme newInstance(AnnotatedCollectionI ac,
- HiddenMarkovModel model)
+ protected HmmerColourScheme newInstance(AnnotatedCollectionI ac)
{
- return new HmmerLocalBackground(ac, model);
+ return new HmmerLocalBackground(ac);
}
}