JAL-2629 uniquify all hmmer command sequence outputs
[jalview.git] / src / jalview / hmmer / JackHMMER.java
index 58b1b75..e532ab7 100644 (file)
@@ -20,6 +20,7 @@ import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Hashtable;
 import java.util.List;
 import java.util.Scanner;
 
@@ -39,6 +40,8 @@ public class JackHMMER extends HmmerCommand
 
   private String databaseName;
 
+  Hashtable sequencesHash;
+
   /**
    * Constructor for the JackhmmerThread
    * 
@@ -79,7 +82,7 @@ public class JackHMMER extends HmmerCommand
               ".txt");
 
       exportStockholm(new SequenceI[] { seq }, seqFile.getAbsoluteFile(),
-              null, true);
+              null);
 
       boolean ran = runCommand(searchOutputFile, hitsAlignmentFile,
               seqFile);
@@ -251,10 +254,9 @@ public class JackHMMER extends HmmerCommand
 
       deleteHmmSequences(copy);
 
-      // jackhmmer fails if file contains duplicate sequence names
-      renameDuplicates(copy.getSequencesArray());
+      sequencesHash = stashSequences(copy.getSequencesArray());
 
-      exportStockholm(copy.getSequencesArray(), databaseFile, null, true);
+      exportStockholm(copy.getSequencesArray(), databaseFile, null);
     }
 
     args.add(getFilePath(seqFile, true));
@@ -282,6 +284,8 @@ public class JackHMMER extends HmmerCommand
               inputAlignmentTemp.getAbsolutePath(), DataSourceType.FILE));
       seqs = file.getSeqsAsArray();
 
+      recoverSequences(sequencesHash, seqs);
+
       readTable(searchOutputFile);
 
       int seqCount = Math.min(seqs.length, seqsToReturn);