JAL-3285 fix incorrect file paths on HMMAlign/Search results
authortva <tva@10.205.251.175>
Thu, 6 Jun 2019 14:28:52 +0000 (15:28 +0100)
committertva <tva@10.205.251.175>
Thu, 6 Jun 2019 14:28:52 +0000 (15:28 +0100)
src/jalview/hmmer/HMMAlign.java
src/jalview/hmmer/HMMBuild.java
src/jalview/hmmer/HMMSearch.java
src/jalview/hmmer/HmmerCommand.java

index b5f047e..57e35e7 100644 (file)
@@ -152,9 +152,9 @@ public class HMMAlign extends HmmerCommand
       }
     }
     args.add("-o");
-    args.add(getFilePath(resultFile));
-    args.add(getFilePath(modelFile));
-    args.add(getFilePath(alignmentFile));
+    args.add(getFilePath(resultFile, true));
+    args.add(getFilePath(modelFile, true));
+    args.add(getFilePath(alignmentFile, true));
     
     return runCommand(args);
   }
@@ -172,7 +172,7 @@ public class HMMAlign extends HmmerCommand
   private SequenceI[] importData(File resultFile,
           List<AlignmentOrder> allOrders) throws IOException
   {
-    StockholmFile file = new StockholmFile(getFilePath(resultFile),
+    StockholmFile file = new StockholmFile(getFilePath(resultFile, false),
             DataSourceType.FILE);
     SequenceI[] result = file.getSeqsAsArray();
     AlignmentOrder msaorder = new AlignmentOrder(result);
index ee133ff..0b6e3ee 100644 (file)
@@ -334,8 +334,8 @@ public class HMMBuild extends HmmerCommand
       args.add(ARG_DNA);
     }
 
-    args.add(getFilePath(hmmFile));
-    args.add(getFilePath(sequencesFile));
+    args.add(getFilePath(hmmFile, true));
+    args.add(getFilePath(sequencesFile, true));
 
     return runCommand(args);
   }
index 1883fef..3773e84 100644 (file)
@@ -181,9 +181,9 @@ public class HMMSearch extends HmmerCommand
           File hitsAlignmentFile, File hmmFile) throws IOException
   {
     args.add("-o");
-    args.add(getFilePath(searchOutputFile));
+    args.add(getFilePath(searchOutputFile, true));
     args.add("-A");
-    args.add(getFilePath(hitsAlignmentFile));
+    args.add(getFilePath(hitsAlignmentFile, true));
 
     boolean dbFound = false;
     String dbPath = "";
@@ -314,8 +314,8 @@ public class HMMSearch extends HmmerCommand
       exportStockholm(copy.getSequencesArray(), databaseFile, null);
     }
 
-    args.add(getFilePath(hmmFile));
-    args.add(getFilePath(databaseFile));
+    args.add(getFilePath(hmmFile, true));
+    args.add(getFilePath(databaseFile, true));
   }
 
   /**
index 73995af..20e0083 100644 (file)
@@ -257,7 +257,8 @@ public abstract class HmmerCommand implements Runnable
    * @return
    * @throws IOException
    */
-  protected String getCommandPath(String cmd) throws IOException
+  protected String getCommandPath(String cmd)
+          throws IOException
   {
     String binariesFolder = Cache.getProperty(Preferences.HMMER_PATH);
     // ensure any symlink to the directory is resolved:
@@ -269,7 +270,7 @@ public abstract class HmmerCommand implements Runnable
               .formatMessage("label.executable_not_found", cmd));
     }
 
-    return file == null ? null : getFilePath(file);
+    return file == null ? null : getFilePath(file, true);
   }
 
   /**
@@ -323,12 +324,15 @@ public abstract class HmmerCommand implements Runnable
    * X with /cygdrive/x.
    * 
    * @param resultFile
+   * @param isInCygwin
+   *                     True if file is to be read/written from within the Cygwin
+   *                     shell. Should be false for any imports.
    * @return
    */
-  protected String getFilePath(File resultFile)
+  protected String getFilePath(File resultFile, boolean isInCygwin)
   {
     String path = resultFile.getAbsolutePath();
-    if (Platform.isWindows())
+    if (Platform.isWindows() && isInCygwin)
     {
       // the first backslash escapes '\' for the regular expression argument
       path = path.replaceAll("\\" + File.separator, "/");