3 import jalview.bin.Cache;
4 import jalview.datamodel.AlignmentI;
5 import jalview.datamodel.HiddenMarkovModel;
6 import jalview.datamodel.SequenceI;
7 import jalview.gui.AlignFrame;
8 import jalview.gui.Preferences;
9 import jalview.io.DataSourceType;
10 import jalview.io.FileFormat;
11 import jalview.util.MessageManager;
13 import java.io.FileNotFoundException;
14 import java.io.IOException;
17 public class HMMBuildThread implements Runnable
25 Map<Integer, SequenceI> hmmSeqs;
27 public HMMBuildThread(AlignFrame af)
30 alignment = af.getViewport().getAlignment();
36 barID = System.currentTimeMillis();
37 af.setProgressBar(MessageManager.getString("status.running_hmmbuild"),
39 HMMERCommands.HMMERFOLDER = Cache.getProperty(Preferences.HMMER_PATH);
45 hmmSeqs = alignment.getHMMConsensusSequences(true);
46 HMMERCommands.exportData(alignment, true, false,
47 new HiddenMarkovModel());
48 } catch (FileNotFoundException e)
50 // TODO Auto-generated catch block
57 } catch (IOException | InterruptedException e)
59 // TODO Auto-generated catch block
65 } catch (IOException | InterruptedException e)
67 // TODO Auto-generated catch block
75 af.setProgressBar(MessageManager.getString("status.running_hmmbuild"),
83 private void runCommand() throws IOException, InterruptedException
85 final String command = HMMERCommands.HMMERFOLDER
86 + HMMERCommands.HMMBUILD + HMMERCommands.NAME
87 + af.getName() + HMMERCommands.SPACE
88 + HMMERCommands.JALVIEWDIRECTORY + HMMERCommands.HMMBUFFER
89 + HMMERCommands.JALVIEWDIRECTORY + HMMERCommands.ALIGNMENTBUFFER;
90 HMMERCommands.runCommand(command);
93 private void importData() throws IOException, InterruptedException
95 af.loadJalviewDataFile(HMMERCommands.HMMBUFFER, DataSourceType.FILE,
96 FileFormat.HMMER3, null);
97 for (Map.Entry<Integer, SequenceI> entry : hmmSeqs.entrySet())
99 SequenceI seq = entry.getValue();
100 Integer pos = entry.getKey();
101 HMMERCommands.addHMMConsensusSequence(af, seq, pos);
103 af.alignPanel.alignmentChanged();