X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fhmmer%2FHMMBuildThread.java;h=656b6e5e347ed7bdb0ee4d6adc717d3e00c02287;hb=ef660a21d6304c84f215341a9a29e112c82119fd;hp=880ed0d6fb4eb7e849e87bb2982cb0a181c04f9b;hpb=f846d1d381fefac7b430554f175f8c7c41ddfe45;p=jalview.git diff --git a/src/jalview/hmmer/HMMBuildThread.java b/src/jalview/hmmer/HMMBuildThread.java index 880ed0d..656b6e5 100644 --- a/src/jalview/hmmer/HMMBuildThread.java +++ b/src/jalview/hmmer/HMMBuildThread.java @@ -1,16 +1,20 @@ 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; @@ -24,11 +28,13 @@ public class HMMBuildThread implements Runnable { HMMERCommands cmds = new HMMERCommands(); AlignFrame af; + + AlignViewport viewport; AlignmentI alignment; SequenceGroup group; + boolean forGroup = false; - boolean canRun = true; File hmmTemp = null; @@ -36,6 +42,17 @@ public class HMMBuildThread implements Runnable 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; @@ -52,8 +69,11 @@ public class HMMBuildThread implements Runnable 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) { @@ -94,8 +114,11 @@ public class HMMBuildThread implements Runnable } 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]; @@ -121,8 +144,11 @@ public class HMMBuildThread implements Runnable boolean ran = runCommand(); if (!ran) { - JvOptionPane.showInternalMessageDialog(af, + if (af != null) + { + JvOptionPane.showInternalMessageDialog(af, MessageManager.getString("warn.hmmbuild_failed")); + } return; } } catch (IOException | InterruptedException e) @@ -144,8 +170,12 @@ public class HMMBuildThread implements Runnable e.printStackTrace(); } finally { - af.setProgressBar(MessageManager.getString("status.running_hmmbuild"), + if (af != null) + { + af.setProgressBar( + MessageManager.getString("status.running_hmmbuild"), barID); + } } } @@ -172,7 +202,11 @@ public class HMMBuildThread implements Runnable } else { - String name = af.getName(); + String name = null; + if (af != null) + { + name = af.getName(); + } if (name == null) { name = "Alignment"; @@ -196,20 +230,38 @@ public class HMMBuildThread implements Runnable 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) + { + } + } } - - - }