JAL-2629 fix hmmsearch/jackhmmer assigning incorrect evalues and scores
[jalview.git] / src / jalview / hmmer / HMMSearch.java
index 248af16..a06f186 100644 (file)
@@ -491,10 +491,11 @@ public class HMMSearch extends HmmerCommand
     while (!"  ------ inclusion threshold ------".equals(line)
             && !"".equals(line))
     {
-      SequenceI seq = seqs[index];
       Scanner scanner = new Scanner(line);
       String evalue = scanner.next();
       String score = scanner.next();
+      checkSequenceOrder(index, scanner);
+      SequenceI seq = seqs[index];
       addScoreAnnotations(evalue, score, seq);
       scanner.close();
       line = br.readLine();
@@ -536,4 +537,29 @@ public class HMMSearch extends HmmerCommand
     }
   }
 
+  private void checkSequenceOrder(int index, Scanner scanner)
+  {
+    String seqName = null;
+
+    for (int i = 0; i < 8; i++)
+    {
+      seqName = scanner.next();
+    }
+
+    if (!seqs[index].getName().equals(seqName))
+    {
+      SequenceI temp = seqs[index];
+
+      for (int j = 0; j < seqs.length; j++)
+      {
+        if (seqs[j].getName().equals(seqName))
+        {
+          seqs[index] = seqs[j];
+          seqs[j] = temp;
+          break;
+        }
+      }
+    }
+  }
+    
 }