X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fhmmer%2FHMMAlign.java;h=dd85c7459ccc1dfbe56cb950b86db2f2277ad4be;hb=747167089ecf8d6afc70d417f5a20352e029bd95;hp=44828aaf0c5ccfcb2b4d02377f1868fd2f3da8df;hpb=b1a54bfee07ae00588a38864114d4c69b22fd971;p=jalview.git diff --git a/src/jalview/hmmer/HMMAlign.java b/src/jalview/hmmer/HMMAlign.java index 44828aa..dd85c74 100644 --- a/src/jalview/hmmer/HMMAlign.java +++ b/src/jalview/hmmer/HMMAlign.java @@ -1,6 +1,7 @@ package jalview.hmmer; import jalview.analysis.AlignmentSorter; +import jalview.analysis.SeqsetUtils.SequenceInfo; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.AlignmentOrder; @@ -14,6 +15,7 @@ import jalview.gui.JvOptionPane; import jalview.gui.SplitFrame; import jalview.io.DataSourceType; import jalview.io.StockholmFile; +import jalview.util.FileUtils; import jalview.util.MessageManager; import jalview.viewmodel.seqfeatures.FeatureRendererSettings; import jalview.ws.params.ArgumentI; @@ -23,6 +25,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; +import java.util.Map; import javax.swing.JInternalFrame; @@ -30,8 +33,6 @@ public class HMMAlign extends HmmerCommand { static final String HMMALIGN = "hmmalign"; - static final String ARG_TRIM = "--trim"; - private final AlignmentI dataset; /** @@ -63,17 +64,15 @@ public class HMMAlign extends HmmerCommand @Override public void run() { - HiddenMarkovModel hmm = af.getSelectedHMM(); - if (hmm == null) - { - System.err.println("Can't run hmmalign as no HMM profile selected"); - return; - } + HiddenMarkovModel hmm = getHmmProfile(); long msgId = System.currentTimeMillis(); af.setProgressBar(MessageManager.getString("status.running_hmmalign"), msgId); + // ensure alignments are the same length + alignment.padGaps(); + AlignmentView msa = af.gatherSequencesForAlignment(); SequenceI[][] subAlignments = msa.getVisibleContigs(alignment.getGapCharacter()); @@ -83,12 +82,12 @@ public class HMMAlign extends HmmerCommand int job = 0; for (SequenceI[] seqs : subAlignments) { - Hashtable sequencesHash = stashSequences(seqs); + Map sequencesHash = stashSequences(seqs); try { - File modelFile = createTempFile("hmm", ".hmm"); - File alignmentFile = createTempFile("output", ".sto"); - File resultFile = createTempFile("input", ".sto"); + File modelFile = FileUtils.createTempFile("hmm", ".hmm"); + File alignmentFile = FileUtils.createTempFile("output", ".sto"); + File resultFile = FileUtils.createTempFile("input", ".sto"); exportStockholm(seqs, alignmentFile.getAbsoluteFile(), null); exportHmm(hmm, modelFile.getAbsoluteFile()); @@ -96,8 +95,8 @@ public class HMMAlign extends HmmerCommand boolean ran = runCommand(modelFile, alignmentFile, resultFile); if (!ran) { - JvOptionPane.showInternalMessageDialog(af, - MessageManager.getString("warn.hmmalign_failed")); + JvOptionPane.showInternalMessageDialog(af, MessageManager + .formatMessage("warn.command_failed", "hmmalign")); return; } @@ -156,9 +155,9 @@ public class HMMAlign extends HmmerCommand } } args.add("-o"); - args.add(resultFile.getAbsolutePath()); - args.add(modelFile.getAbsolutePath()); - args.add(alignmentFile.getAbsolutePath()); + args.add(getFilePath(resultFile, true)); + args.add(getFilePath(modelFile, true)); + args.add(getFilePath(alignmentFile, true)); return runCommand(args); } @@ -176,7 +175,7 @@ public class HMMAlign extends HmmerCommand private SequenceI[] importData(File resultFile, List allOrders) throws IOException { - StockholmFile file = new StockholmFile(resultFile.getAbsolutePath(), + StockholmFile file = new StockholmFile(getFilePath(resultFile, false), DataSourceType.FILE); SequenceI[] result = file.getSeqsAsArray(); AlignmentOrder msaorder = new AlignmentOrder(result); @@ -211,14 +210,6 @@ public class HMMAlign extends HmmerCommand al.setDataset(dataset); } - /* - * hack to ensure hmm set on alignment - */ - if (al.getSequenceAt(0).isHMMConsensusSequence()) - { - al.setHmmConsensus(al.getSequenceAt(0)); - } - displayInNewFrame(al, allOrders, hidden, title); }