JAL-2629 update spike branch to latest
[jalview.git] / src / jalview / workers / InformationThread.java
index d42598c..d719189 100644 (file)
@@ -44,6 +44,10 @@ public class InformationThread extends AlignCalcWorker
   @Override
   public void run()
   {
+    if (alignViewport.getAlignment().getHmmSequences().isEmpty())
+    {
+      return;
+    }
     if (calcMan.isPending(this))
     {
       return;
@@ -129,10 +133,10 @@ public class InformationThread extends AlignCalcWorker
     /*
      * alignment HMM profile
      */
-    SequenceI seq = alignment.getHmmConsensus();
-    if (seq != null)
+    List<SequenceI> seqs = alignment.getHmmSequences();
+    if (!seqs.isEmpty())
     {
-      HiddenMarkovModel hmm = seq.getHMM();
+      HiddenMarkovModel hmm = seqs.get(0).getHMM();
       ProfilesI hmmProfiles = AAFrequency.calculateHMMProfiles(hmm, width,
               0, width, alignViewport.isIgnoreBelowBackground(),
               alignViewport.isInfoLetterHeight());
@@ -145,10 +149,10 @@ public class InformationThread extends AlignCalcWorker
     List<SequenceGroup> groups = alignment.getGroups();
     for (SequenceGroup group : groups)
     {
-      seq = group.getHmmConsensus();
-      if (seq != null)
+      seqs = group.getHmmSequences();
+      if (!seqs.isEmpty())
       {
-        HiddenMarkovModel hmm = seq.getHMM();
+        HiddenMarkovModel hmm = seqs.get(0).getHMM();
         ProfilesI hmmProfiles = AAFrequency.calculateHMMProfiles(hmm, width,
                 0, width, group.isIgnoreBelowBackground(),
                 group.isUseInfoLetterHeight());
@@ -193,19 +197,24 @@ public class InformationThread extends AlignCalcWorker
     /*
      * annotation for alignment HMM consensus if present
      */
-    SequenceI hmmSeq = alignment.getHmmConsensus();
-    ProfilesI profile = alignViewport.getHmmProfiles();
-    float m = updateInformationAnnotation(hmmSeq, profile, null, infos);
-    maxInformation = Math.max(maxInformation, m);
+    List<SequenceI> hmmSeqs = alignment.getHmmSequences();
+    if (!hmmSeqs.isEmpty())
+    {
+      ProfilesI profile = alignViewport.getHmmProfiles();
+      float m = updateInformationAnnotation(hmmSeqs.get(0), profile, null,
+              infos);
+      maxInformation = Math.max(maxInformation, m);
+    }
 
     /*
      * annotation for group HMM consensus if present
      */
     for (SequenceGroup group : alignment.getGroups())
     {
-      hmmSeq = group.getHmmConsensus();
+      hmmSeqs = group.getHmmSequences();
       ProfilesI profiles = group.getHmmProfiles();
-      m = updateInformationAnnotation(hmmSeq, profiles, group, infos);
+      float m = updateInformationAnnotation(hmmSeqs.get(0), profiles, group,
+              infos);
       maxInformation = Math.max(maxInformation, m);
     }