X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fhmmer%2FHMMSearch.java;fp=src%2Fjalview%2Fhmmer%2FHMMSearch.java;h=d2b469fdf28072d483c032078d3e36e232fad364;hb=dd2b17330673faf79c5e239afd163668fdb3fe0a;hp=f714afcef11d02154c530dad5cdc22f1132dc0ed;hpb=d71391d37943d1f6a5bf0af74996229f4d290cb0;p=jalview.git diff --git a/src/jalview/hmmer/HMMSearch.java b/src/jalview/hmmer/HMMSearch.java index f714afc..d2b469f 100644 --- a/src/jalview/hmmer/HMMSearch.java +++ b/src/jalview/hmmer/HMMSearch.java @@ -39,8 +39,12 @@ public class HMMSearch extends HmmerCommand boolean trim = false; + boolean returnNoOfNewSeqs = false; + int seqsToReturn = Integer.MAX_VALUE; + boolean searchAlignment = true; + SequenceI[] seqs; private String databaseName; @@ -168,7 +172,6 @@ public class HMMSearch extends HmmerCommand String seqScoreCutoff = null; String domScoreCutoff = null; databaseName = "Alignment"; - boolean searchAlignment = false; if (params != null) { @@ -180,18 +183,6 @@ public class HMMSearch extends HmmerCommand { seqsToReturn = Integer.parseInt(arg.getValue()); } - else if (MessageManager.getString("action.search").equals(name)) - { - searchAlignment = arg.getValue().equals( - MessageManager.getString(HMMSearch.THIS_ALIGNMENT_KEY)); - } - else if (MessageManager.getString(DATABASE_KEY).equals(name)) - { - dbPath = arg.getValue(); - int pos = dbPath.lastIndexOf(File.separator); - databaseName = dbPath.substring(pos + 1); - databaseFile = new File(dbPath); - } else if (MessageManager.getString(AUTO_ALIGN_SEQS_KEY) .equals(name)) { @@ -247,6 +238,11 @@ public class HMMSearch extends HmmerCommand databaseName = dbPath.substring(pos + 1); databaseFile = new File(dbPath); } + searchAlignment = false; + } + else if (MessageManager.getString(RETURN_N_NEW_SEQ).equals(name)) + { + returnNoOfNewSeqs = true; } } } @@ -314,7 +310,10 @@ public class HMMSearch extends HmmerCommand inputAlignmentTemp.getAbsolutePath(), DataSourceType.FILE)); seqs = file.getSeqsAsArray(); - recoverSequences(sequencesHash, seqs); + if (searchAlignment) + { + recoverSequences(sequencesHash, seqs); + } // look for PP cons and ref seq in alignment only annotation AlignmentAnnotation modelpos = null, ppcons = null; @@ -365,6 +364,7 @@ public class HMMSearch extends HmmerCommand } } } + if (realign) { realignResults(hmmAndSeqs); @@ -386,8 +386,14 @@ public class HMMSearch extends HmmerCommand + hmmSeq.getName(); Desktop.addInternalFrame(alignFrame, ttl, AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); + + int nNew = checkForNewSequences(); + JvOptionPane.showMessageDialog(af.alignPanel, nNew + " " + + MessageManager.getString("label.new_returned")); + } + hmmTemp.delete(); inputAlignmentTemp.delete(); searchOutputFile.delete(); @@ -400,6 +406,25 @@ public class HMMSearch extends HmmerCommand } } + private int checkForNewSequences() + { + int nNew = seqs.length; + + for (SequenceI resultSeq : seqs) + { + for (SequenceI aliSeq : alignment.getSequencesArray()) + { + if (resultSeq.getName().equals(aliSeq.getName())) + { + nNew--; + } + } + } + + return nNew; + + } + /** * Realigns the given sequences using hmmalign, to the HMM profile sequence * which is the first in the array, and opens the results in a new frame @@ -428,6 +453,10 @@ public class HMMSearch extends HmmerCommand } HmmerCommand hmmalign = new HMMAlign(frame, alignArgs); hmmalign.run(); + + int nNew = checkForNewSequences(); + JvOptionPane.showMessageDialog(frame.alignPanel, + nNew + " " + MessageManager.getString("label.new_returned")); } /**