import jalview.io.DataSourceType;
import jalview.io.FileParse;
import jalview.io.HMMFile;
+import jalview.util.FileUtils;
import jalview.util.MessageManager;
import jalview.ws.params.ArgumentI;
File alignmentFile = null;
try
{
- hmmFile = createTempFile("hmm", ".hmm");
- alignmentFile = createTempFile("output", ".sto");
+ hmmFile = FileUtils.createTempFile("hmm", ".hmm");
+ alignmentFile = FileUtils.createTempFile("output", ".sto");
if (ac instanceof Alignment)
{
boolean ran = runCommand(alignmentFile, hmmFile, ac);
if (!ran)
{
+ JvOptionPane.showInternalMessageDialog(af, MessageManager
+ .formatMessage("warn.command_failed", "hmmbuild"));
return;
}
importData(hmmFile, ac);
*/
void deleteHmmSequences(AnnotatedCollectionI ac)
{
- SequenceI hmmSeq = ac.getHmmConsensus();
- if (hmmSeq != null)
+ List<SequenceI> hmmSeqs = ac.getHmmSequences();
+ for (SequenceI hmmSeq : hmmSeqs)
{
if (ac instanceof SequenceGroup)
{
args.add(ARG_DNA);
}
- args.add(hmmFile.getAbsolutePath());
- args.add(sequencesFile.getAbsolutePath());
+ args.add(getFilePath(hmmFile));
+ args.add(getFilePath(sequencesFile));
return runCommand(args);
}
private void importData(File hmmFile, AnnotatedCollectionI ac)
throws IOException
{
+ if (hmmFile.length() == 0L)
+ {
+ Cache.log.error("Error: hmmbuild produced empty hmm file");
+ return;
+ }
+
HMMFile file = new HMMFile(
new FileParse(hmmFile.getAbsolutePath(), DataSourceType.FILE));
SequenceI hmmSeq = file.getHMM().getConsensusSequence();
+ if (hmmSeq == null)
+ {
+ // hmmbuild failure not detected earlier
+ return;
+ }
+
if (ac instanceof SequenceGroup)
{
SequenceGroup grp = (SequenceGroup) ac;
alignment.insertSequenceAt(topIndex, hmmSeq);
ac.setSeqrep(hmmSeq);
grp.addSequence(hmmSeq, false);
- grp.setHmmConsensus(hmmSeq);
}
else
{
alignment.insertSequenceAt(0, hmmSeq);
- alignment.setHmmConsensus(hmmSeq);
- }
-
- if (af.getSelectedHMM() == null)
- {
- af.setSelectedHMMSequence(hmmSeq);
}
}
}