JAL-2629 uniquify all hmmer command sequence outputs
[jalview.git] / src / jalview / hmmer / HMMSearch.java
index b40b079..f714afc 100644 (file)
@@ -25,6 +25,7 @@ import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Hashtable;
 import java.util.List;
 import java.util.Scanner;
 
@@ -44,6 +45,8 @@ public class HMMSearch extends HmmerCommand
 
   private String databaseName;
 
+  Hashtable sequencesHash;
+
   /**
    * Constructor for the HMMSearchThread
    * 
@@ -277,12 +280,10 @@ public class HMMSearch extends HmmerCommand
       AlignmentI copy = new Alignment(al);
       deleteHmmSequences(copy);
 
-      SequenceI[] seqs = copy.getSequencesArray();
+      sequencesHash = stashSequences(copy.getSequencesArray());
 
-      // hmmsearch fails if duplicate sequence names in file
-      renameDuplicates(seqs);
+      exportStockholm(copy.getSequencesArray(), databaseFile, null);
 
-      exportStockholm(copy.getSequencesArray(), databaseFile, null, true);
     }
 
     args.add(getFilePath(hmmFile, true));
@@ -312,6 +313,9 @@ public class HMMSearch extends HmmerCommand
       StockholmFile file = new StockholmFile(new FileParse(
               inputAlignmentTemp.getAbsolutePath(), DataSourceType.FILE));
       seqs = file.getSeqsAsArray();
+
+      recoverSequences(sequencesHash, seqs);
+
       // look for PP cons and ref seq in alignment only annotation
       AlignmentAnnotation modelpos = null, ppcons = null;
       for (AlignmentAnnotation aa : file.getAnnotations())