From: gmungoc Date: Tue, 17 Apr 2018 17:44:41 +0000 (+0100) Subject: Merge branch 'features/mchmmer' of https://source.jalview.org/git/jalview.git into... X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=d31b51985d01217340aa5f6470d3fd3c2314e3eb;p=jalview.git Merge branch 'features/mchmmer' of https://source.jalview.org/git/jalview.git into features/mchmmer Conflicts: src/jalview/hmmer/HmmerCommand.java --- d31b51985d01217340aa5f6470d3fd3c2314e3eb diff --cc .classpath index c85feaf,c85feaf..dd4fd0d --- a/.classpath +++ b/.classpath @@@ -66,7 -66,7 +66,7 @@@ -- ++ diff --cc src/jalview/hmmer/HmmerCommand.java index 8888c20,dfd5395..f8f2cde --- a/src/jalview/hmmer/HmmerCommand.java +++ b/src/jalview/hmmer/HmmerCommand.java @@@ -254,11 -254,11 +254,11 @@@ public abstract class HmmerCommand impl File file = FileUtils.getExecutable(cmd, binariesFolder); if (file == null && af != null) { - JvOptionPane.showInternalMessageDialog(af, - MessageManager.getString("warn.hmm_command_failed")); + JvOptionPane.showInternalMessageDialog(af, MessageManager + .formatMessage("label.executable_not_found", cmd)); } - return file == null ? null : file.getAbsolutePath(); + return file == null ? null : getFilePath(file); } /** @@@ -281,27 -281,29 +281,54 @@@ } /** + * Answers the HMM profile for the profile sequence the user selected (default + * is just the first HMM sequence in the alignment) + * + * @return + */ + protected HiddenMarkovModel getHmmProfile() + { + String alignToParamName = MessageManager.getString("label.use_hmm"); + for (ArgumentI arg : params) + { + String name = arg.getName(); + if (name.equals(alignToParamName)) + { + String seqName = arg.getValue(); + SequenceI hmmSeq = alignment.findName(seqName); + if (hmmSeq.hasHMMProfile()) + { + return hmmSeq.getHMM(); + } + } + } + return null; + } ++ ++ /** + * Answers an absolute path to the given file, in a format suitable for + * processing by a hmmer command. On a Windows platform, the native Windows file + * path is converted to Cygwin format, by replacing '\'with '/' and drive letter + * X with /cygdrive/x. + * + * @param resultFile + * @return + */ + protected String getFilePath(File resultFile) + { + String path = resultFile.getAbsolutePath(); + if (Platform.isWindows()) + { + // the first backslash escapes '\' for the regular expression argument + path = path.replaceAll("\\" + File.separator, "/"); + int colon = path.indexOf(':'); + if (colon > 0) + { + String drive = path.substring(0, colon); + path = path.replaceAll(drive + ":", "/cygdrive/" + drive); + } + } + + return path; + } }