@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"),
msgId);
+ // ensure alignments are the same length
+ alignment.padGaps();
+
AlignmentView msa = af.gatherSequencesForAlignment();
SequenceI[][] subAlignments = msa.getVisibleContigs(alignment.getGapCharacter());
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;
}
}
}
args.add("-o");
- args.add(resultFile.getAbsolutePath());
- args.add(modelFile.getAbsolutePath());
- args.add(alignmentFile.getAbsolutePath());
+ args.add(getFilePath(resultFile, true));
+ args.add(getFilePath(modelFile, true));
+ args.add(getFilePath(alignmentFile, true));
return runCommand(args);
}
private SequenceI[] importData(File resultFile,
List<AlignmentOrder> allOrders) throws IOException
{
- StockholmFile file = new StockholmFile(resultFile.getAbsolutePath(),
+ StockholmFile file = new StockholmFile(getFilePath(resultFile, false),
DataSourceType.FILE);
SequenceI[] result = file.getSeqsAsArray();
AlignmentOrder msaorder = new AlignmentOrder(result);
al.setDataset(dataset);
}
- /*
- * hack to ensure hmm set on alignment
- */
- if (al.getSequenceAt(0).hasHMMProfile())
- {
- al.setHmmConsensus(al.getSequenceAt(0));
- }
-
displayInNewFrame(al, allOrders, hidden, title);
}