package jalview.hmmer;
+
import jalview.bin.Cache;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.AlignViewport;
import jalview.gui.JvOptionPane;
import jalview.gui.Preferences;
import jalview.io.DataSourceType;
import jalview.io.FileFormat;
import jalview.io.FileLoader;
+import jalview.io.FileParse;
+import jalview.io.HMMFile;
import jalview.util.MessageManager;
import java.io.File;
{
HMMERCommands cmds = new HMMERCommands();
AlignFrame af;
+
+ AlignViewport viewport;
AlignmentI alignment;
SequenceGroup group;
+
boolean forGroup = false;
- boolean canRun = true;
File hmmTemp = null;
long barID;
+ /**
+ * This is used for validation purposes. Do not use!
+ *
+ * @param viewport
+ */
+ public HMMBuildThread(AlignmentI alignment)
+ {
+ this.alignment = alignment;
+ forGroup = false;
+ }
+
public HMMBuildThread(AlignFrame af)
{
this.af = af;
public void run()
{
barID = System.currentTimeMillis();
+ if (af != null)
+ {
af.setProgressBar(MessageManager.getString("status.running_hmmbuild"),
barID);
+ }
cmds.HMMERFOLDER = Cache.getProperty(Preferences.HMMER_PATH);
if (alignment == null && group == null)
{
}
if (array.length < 1)
{
- JOptionPane.showMessageDialog(af,
+ if (af != null)
+ {
+ JOptionPane.showMessageDialog(af,
MessageManager.getString("warn.no_sequence_data"));
+ }
return;
}
SequenceI[] newArr = new SequenceI[array.length];
boolean ran = runCommand();
if (!ran)
{
- JvOptionPane.showInternalMessageDialog(af,
+ if (af != null)
+ {
+ JvOptionPane.showInternalMessageDialog(af,
MessageManager.getString("warn.hmmbuild_failed"));
+ }
return;
}
} catch (IOException | InterruptedException e)
e.printStackTrace();
} finally
{
- af.setProgressBar(MessageManager.getString("status.running_hmmbuild"),
+ if (af != null)
+ {
+ af.setProgressBar(
+ MessageManager.getString("status.running_hmmbuild"),
barID);
+ }
}
}
}
else
{
- String name = af.getName();
+ String name = null;
+ if (af != null)
+ {
+ name = af.getName();
+ }
if (name == null)
{
name = "Alignment";
private void importData() throws IOException, InterruptedException
{
- cmds.addHMMConsensusSequences(af);
- FileLoader loader = new FileLoader();
- loader.LoadFileOntoAlignmentWaitTillLoaded(af.getViewport(),
- hmmTemp.getAbsolutePath(), DataSourceType.FILE,
- FileFormat.HMMER3);
+ if (af != null)
+ {
+ cmds.addHMMConsensusSequences(af);
+
+ FileLoader loader = new FileLoader();
+ loader.LoadFileOntoAlignmentWaitTillLoaded(viewport,
+ hmmTemp.getAbsolutePath(), DataSourceType.FILE,
+ FileFormat.HMMER3);
+ }
+ else
+ {
+ HMMFile file = new HMMFile(new FileParse(hmmTemp.getAbsolutePath(),
+ DataSourceType.FILE));
+ alignment.addSequence(file.getSeqsAsArray()[0]);
+ }
hmmTemp.delete();
stoTemp.delete();
}
- public boolean canRun()
+ public void hmmbuildWaitTillComplete()
{
- return canRun;
+ Thread loader = new Thread(this);
+ loader.start();
+
+ while (loader.isAlive())
+ {
+ try
+ {
+ Thread.sleep(500);
+ } catch (Exception ex)
+ {
+ }
+ }
}
-
-
-
}