3 import jalview.datamodel.AlignmentI;
4 import jalview.datamodel.HiddenMarkovModel;
5 import jalview.datamodel.SequenceI;
6 import jalview.gui.AlignFrame;
7 import jalview.io.DataSourceType;
8 import jalview.io.FileFormat;
9 import jalview.util.MessageManager;
11 import java.io.FileNotFoundException;
12 import java.io.IOException;
15 public class HMMBuildThread implements Runnable
23 Map<Integer, SequenceI> hmmSeqs;
25 public HMMBuildThread(AlignFrame af)
28 alignment = af.getViewport().getAlignment();
34 barID = System.currentTimeMillis();
35 af.setProgressBar(MessageManager.getString("status.running_hmmbuild"),
43 } catch (FileNotFoundException e)
45 // TODO Auto-generated catch block
52 } catch (IOException | InterruptedException e)
54 // TODO Auto-generated catch block
60 } catch (IOException | InterruptedException e)
62 // TODO Auto-generated catch block
70 af.setProgressBar(MessageManager.getString("status.running_hmmbuild"),
76 private void exportAlignment() throws IOException
78 hmmSeqs = alignment.getHMMConsensusSequences(true);
79 if (!alignment.isAligned())
83 HMMERCommands.exportData(alignment, true, false,
84 new HiddenMarkovModel());
87 private void runCommand() throws IOException, InterruptedException
89 final String command = HMMERCommands.HMMBUILD + HMMERCommands.NAME
90 + af.getName() + HMMERCommands.SPACE
91 + HMMERCommands.JALVIEWDIRECTORY + HMMERCommands.HMMBUFFER
92 + HMMERCommands.JALVIEWDIRECTORY + HMMERCommands.ALIGNMENTBUFFER;
93 HMMERCommands.runCommand(command);
96 private void importData() throws IOException, InterruptedException
98 af.loadJalviewDataFile(HMMERCommands.HMMBUFFER, DataSourceType.FILE,
99 FileFormat.HMMER3, null);
100 for (Map.Entry<Integer, SequenceI> entry : hmmSeqs.entrySet())
102 SequenceI seq = entry.getValue();
103 Integer pos = entry.getKey();
104 HMMERCommands.addHMMConsensusSequence(af, seq, pos);
106 af.alignPanel.alignmentChanged();