import jalview.datamodel.SequenceI;
import jalview.gui.ColourMenuHelper.ColourChangeListener;
import jalview.gui.ViewSelectionMenu.ViewSetProvider;
+import jalview.hmmer.HMMAlignThread;
+import jalview.hmmer.HMMBuildThread;
import jalview.io.AlignmentProperties;
import jalview.io.AnnotationFile;
import jalview.io.BioJsHTMLOutput;
import java.beans.PropertyChangeEvent;
import java.io.File;
import java.io.FileWriter;
+import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.util.ArrayList;
public static final int DEFAULT_HEIGHT = 500;
+ boolean autoAlignNewSequences;
+
+ boolean recurring;
+
/*
* The currently displayed panel (selected tabbed view if more than one)
*/
ap.av.updateConservation(ap);
ap.av.updateConsensus(ap);
ap.av.updateStrucConsensus(ap);
+ ap.av.updateInformation(ap);
}
}
}
@Override
+ public void hmmBuild_actionPerformed(ActionEvent e)
+ throws IOException, InterruptedException
+ {
+ new Thread(new HMMBuildThread(this)).start();
+ alignPanel.repaint();
+
+ }
+
+ @Override
+ public void hmmAlign_actionPerformed(ActionEvent e)
+ throws IOException, InterruptedException
+ {
+ SequenceI seq = getViewport().getAlignment()
+ .getHMMConsensusSequences(false).get(0);
+ new Thread(new HMMAlignThread(this, true)).start();
+ alignPanel.repaint();
+ }
+
+ @Override
+ public void autoAlignSeqs_actionPerformed(boolean autoAlignSeqs)
+ {
+ autoAlignNewSequences = autoAlignSeqs;
+ alignPanel.repaint();
+ }
+
+ @Override
+ public void hmmSearch_actionPerformed(ActionEvent e)
+ {
+ alignPanel.repaint();
+ }
+
+ @Override
public void reload_actionPerformed(ActionEvent e)
{
if (fileName != null)
@Override
public void associatedData_actionPerformed(ActionEvent e)
+ throws IOException, InterruptedException
{
// Pick the tree file
JalviewFileChooser chooser = new JalviewFileChooser(
*
* @param e
* DOCUMENT ME!
+ * @throws InterruptedException
+ * @throws IOException
*/
@Override
protected void pasteNew_actionPerformed(ActionEvent e)
+ throws IOException, InterruptedException
{
paste(true);
}
*
* @param e
* DOCUMENT ME!
+ * @throws InterruptedException
+ * @throws IOException
*/
@Override
protected void pasteThis_actionPerformed(ActionEvent e)
+ throws IOException, InterruptedException
{
paste(false);
}
*
* @param newAlignment
* true to paste to a new alignment, otherwise add to this.
+ * @throws InterruptedException
+ * @throws IOException
*/
- void paste(boolean newAlignment)
+ void paste(boolean newAlignment) throws IOException, InterruptedException
{
boolean externalPaste = true;
try
System.out.println("Exception whilst pasting: " + ex);
// could be anything being pasted in here
}
-
}
@Override
*
* @param file
* either a filename or a URL string.
+ * @throws InterruptedException
+ * @throws IOException
*/
public void loadJalviewDataFile(String file, DataSourceType sourceType,
FileFormatI format, SequenceI assocSeq)
+ throws IOException, InterruptedException
{
try
{
}
else if (FileFormat.HMMER3.equals(format))
{
- HMMFile hmmFile = new HMMFile(new FileParse(file, sourceType)); // TODO
- // need
- // to
- // follow
- // standard
- // pipeline
- hmmFile.parse();
+ HMMFile hmmFile = new HMMFile(new FileParse(file, sourceType));
HiddenMarkovModel hmm = hmmFile.getHMM();
- AlignmentAnnotation annotation = hmm.createAnnotation(
- getViewport().getAlignment().getWidth());
- getViewport().getAlignment().addAnnotation(annotation);
- annotation.setHMM(hmm);
- int length = getViewport().getAlignment().getWidth();
- Sequence consensus = hmm.getConsensusSequence(length);
- SequenceI[] consensusArr = new Sequence[] { consensus };
- AlignmentI newAlignment = new Alignment(consensusArr);
- newAlignment.append(getViewport().getAlignment());
- getViewport().setAlignment(newAlignment);
+ SequenceI hmmSeq = hmm.initHMMSequence(this, 0);
+ getViewport().initInformation(hmmSeq);
+ getViewport().updateInformation(alignPanel);
+
isAnnotation = true;
- alignPanel.repaint();
}
else if (FileFormat.Jnet.equals(format))
}
if (isAnnotation)
{
-
alignPanel.adjustAnnotationHeight();
viewport.updateSequenceIdColours();
buildSortByAnnotationScoresMenu();
+ (format != null ? "(parsing as '" + format
+ "' file)" : ""), oom, Desktop.desktop);
}
+ if (autoAlignNewSequences && !recurring)
+ {
+ recurring = true;
+ HiddenMarkovModel hmm = getViewport().getAlignment()
+ .getHMMConsensusSequences(false).get(0).getHMM();
+ new Thread(new HMMAlignThread(this, false)).start();
+ }
+ recurring = false;
}
/**
}
}
}
+
}