Merge branch 'features/mchmmer' of https://source.jalview.org/git/jalview.git into...
[jalview.git] / src / jalview / hmmer / HMMAlign.java
index 44828aa..b5f047e 100644 (file)
@@ -14,6 +14,7 @@ import jalview.gui.JvOptionPane;
 import jalview.gui.SplitFrame;
 import jalview.io.DataSourceType;
 import jalview.io.StockholmFile;
+import jalview.util.FileUtils;
 import jalview.util.MessageManager;
 import jalview.viewmodel.seqfeatures.FeatureRendererSettings;
 import jalview.ws.params.ArgumentI;
@@ -63,12 +64,7 @@ public class HMMAlign extends HmmerCommand
   @Override
   public void run()
   {
-    HiddenMarkovModel hmm = af.getSelectedHMM();
-    if (hmm == null)
-    {
-      System.err.println("Can't run hmmalign as no HMM profile selected");
-      return;
-    }
+    HiddenMarkovModel hmm = getHmmProfile();
 
     long msgId = System.currentTimeMillis();
     af.setProgressBar(MessageManager.getString("status.running_hmmalign"),
@@ -86,9 +82,9 @@ public class HMMAlign extends HmmerCommand
       Hashtable sequencesHash = stashSequences(seqs);
       try
       {
-        File modelFile = createTempFile("hmm", ".hmm");
-        File alignmentFile = createTempFile("output", ".sto");
-        File resultFile = createTempFile("input", ".sto");
+        File modelFile = FileUtils.createTempFile("hmm", ".hmm");
+        File alignmentFile = FileUtils.createTempFile("output", ".sto");
+        File resultFile = FileUtils.createTempFile("input", ".sto");
 
         exportStockholm(seqs, alignmentFile.getAbsoluteFile(), null);
         exportHmm(hmm, modelFile.getAbsoluteFile());
@@ -96,8 +92,8 @@ public class HMMAlign extends HmmerCommand
         boolean ran = runCommand(modelFile, alignmentFile, resultFile);
         if (!ran)
         {
-          JvOptionPane.showInternalMessageDialog(af,
-                  MessageManager.getString("warn.hmmalign_failed"));
+          JvOptionPane.showInternalMessageDialog(af, MessageManager
+                  .formatMessage("warn.command_failed", "hmmalign"));
           return;
         }
 
@@ -156,9 +152,9 @@ public class HMMAlign extends HmmerCommand
       }
     }
     args.add("-o");
-    args.add(resultFile.getAbsolutePath());
-    args.add(modelFile.getAbsolutePath());
-    args.add(alignmentFile.getAbsolutePath());
+    args.add(getFilePath(resultFile));
+    args.add(getFilePath(modelFile));
+    args.add(getFilePath(alignmentFile));
     
     return runCommand(args);
   }
@@ -176,7 +172,7 @@ public class HMMAlign extends HmmerCommand
   private SequenceI[] importData(File resultFile,
           List<AlignmentOrder> allOrders) throws IOException
   {
-    StockholmFile file = new StockholmFile(resultFile.getAbsolutePath(),
+    StockholmFile file = new StockholmFile(getFilePath(resultFile),
             DataSourceType.FILE);
     SequenceI[] result = file.getSeqsAsArray();
     AlignmentOrder msaorder = new AlignmentOrder(result);
@@ -211,14 +207,6 @@ public class HMMAlign extends HmmerCommand
       al.setDataset(dataset);
     }
 
-    /*
-     * hack to ensure hmm set on alignment
-     */
-    if (al.getSequenceAt(0).isHMMConsensusSequence())
-    {
-      al.setHmmConsensus(al.getSequenceAt(0));
-    }
-
     displayInNewFrame(al, allOrders, hidden, title);
   }