Merge branch 'features/mchmmer' into merge/wsinterfaces_mchmmer_JAL-3070_JAL-1950
[jalview.git] / src / jalview / hmmer / HMMSearch.java
index 4c5bfb3..6cda421 100644 (file)
@@ -160,6 +160,25 @@ public class HMMSearch extends HmmerCommand
 
     List<String> args = new ArrayList<>();
     args.add(command);
+    buildArguments(args, searchOutputFile, hitsAlignmentFile, hmmFile);
+
+    return runCommand(args);
+  }
+
+  /**
+   * Appends command line arguments to the given list, to specify input and
+   * output files for the search, and any additional options that may have been
+   * passed from the parameters dialog
+   * 
+   * @param args
+   * @param searchOutputFile
+   * @param hitsAlignmentFile
+   * @param hmmFile
+   * @throws IOException
+   */
+  protected void buildArguments(List<String> args, File searchOutputFile,
+          File hitsAlignmentFile, File hmmFile) throws IOException
+  {
     args.add("-o");
     args.add(getFilePath(searchOutputFile));
     args.add("-A");
@@ -176,6 +195,7 @@ public class HMMSearch extends HmmerCommand
     String seqScoreCutoff = null;
     String domScoreCutoff = null;
     databaseName = "Alignment";
+    boolean searchAlignment = false;
 
     if (params != null)
     {
@@ -187,6 +207,18 @@ public class HMMSearch extends HmmerCommand
         {
           seqsToReturn = Integer.parseInt(arg.getValue());
         }
+        else if (MessageManager.getString("action.search").equals(name))
+        {
+          searchAlignment = arg.getValue().equals(
+                  MessageManager.getString(HMMSearch.THIS_ALIGNMENT_KEY));
+        }
+        else if (MessageManager.getString(DATABASE_KEY).equals(name))
+        {
+          dbPath = arg.getValue();
+          int pos = dbPath.lastIndexOf(File.separator);
+          databaseName = dbPath.substring(pos + 1);
+          databaseFile = new File(dbPath);
+        }
         else if (MessageManager.getString(AUTO_ALIGN_SEQS_KEY)
                 .equals(name))
         {
@@ -261,8 +293,9 @@ public class HMMSearch extends HmmerCommand
       args.add(domScoreCutoff);
     }
 
-    if (!dbFound || MessageManager.getString(THIS_ALIGNMENT_KEY)
-            .equals(dbPath))
+//    if (!dbFound || MessageManager.getString(THIS_ALIGNMENT_KEY)
+//            .equals(dbPath))
+      if (searchAlignment)
     {
       /*
        * no external database specified for search, so
@@ -282,8 +315,6 @@ public class HMMSearch extends HmmerCommand
 
     args.add(getFilePath(hmmFile));
     args.add(getFilePath(databaseFile));
-
-    return runCommand(args);
   }
 
   /**