X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fhmmer%2FHMMBuild.java;h=cb087fad8de3a0e0558e8e29b6ea717513ed2301;hb=747167089ecf8d6afc70d417f5a20352e029bd95;hp=88f28dd325c00872a10ade1ea0167cc1fd2fcde6;hpb=ac8746eeccd41605a304b89cf43f7780526f10f8;p=jalview.git diff --git a/src/jalview/hmmer/HMMBuild.java b/src/jalview/hmmer/HMMBuild.java index 88f28dd..cb087fa 100644 --- a/src/jalview/hmmer/HMMBuild.java +++ b/src/jalview/hmmer/HMMBuild.java @@ -1,10 +1,11 @@ package jalview.hmmer; +import jalview.analysis.SeqsetUtils.SequenceInfo; import jalview.api.AlignViewportI; import jalview.bin.Cache; +import jalview.bin.Console; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; -import jalview.datamodel.AlignmentView; import jalview.datamodel.AnnotatedCollectionI; import jalview.datamodel.ResidueCount; import jalview.datamodel.SequenceGroup; @@ -23,6 +24,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Hashtable; import java.util.List; +import java.util.Map; /** * A class that runs the hmmbuild command as a separate process. @@ -59,7 +61,7 @@ public class HMMBuild extends HmmerCommand { if (params == null || params.isEmpty()) { - Cache.log.error("No parameters to HMMBuild!|"); + Console.error("No parameters to HMMBuild!|"); return; } @@ -116,20 +118,18 @@ public class HMMBuild extends HmmerCommand else if (MessageManager.getString("label.groups_and_alignment") .equals(value)) { - AlignmentView av = viewport.getAlignmentView(true); - runBuildFor.add(av.getVisibleAlignment('-')); - runBuildFor.addAll(av.getVisibleGroups('-')); + runBuildFor.add(viewport.getAlignmentView(false) + .getVisibleAlignment('-')); + runBuildFor.addAll(viewport.getAlignment().getGroups()); } else if (MessageManager.getString("label.groups").equals(value)) { - AlignmentView av = viewport.getAlignmentView(false); - runBuildFor.addAll(av.getVisibleGroups('-')); + runBuildFor.addAll(viewport.getAlignment().getGroups()); } else if (MessageManager.getString("label.selected_group") .equals(value)) { - AlignmentView av = viewport.getAlignmentView(true); - runBuildFor.add(av.getVisibleAlignment('-')); + runBuildFor.add(viewport.getSelectionGroup()); } } else if (MessageManager.getString("label.use_reference") @@ -193,14 +193,18 @@ public class HMMBuild extends HmmerCommand .getSelectionAsNewSequences((AlignmentI) ac.getContext()); for (SequenceI seq : sel) { - copy.add(seq); + if (seq != null) + { + copy.add(seq); + } } } // TODO rather than copy alignment data we should anonymize in situ - // export/File import could use anonymization hash to reinstate references // at import level ? + SequenceI[] copyArray = copy.toArray(new SequenceI[copy.size()]); - Hashtable sequencesHash = stashSequences(copyArray); + Map sequencesHash = stashSequences(copyArray); exportStockholm(copyArray, alignmentFile, ac); @@ -231,33 +235,6 @@ public class HMMBuild extends HmmerCommand } /** - * A helper method that deletes any HMM consensus sequence from the given - * collection, and from the parent alignment if ac is a subgroup - * - * @param ac - */ - void deleteHmmSequences(AnnotatedCollectionI ac) - { - List hmmSeqs = ac.getHmmSequences(); - for (SequenceI hmmSeq : hmmSeqs) - { - if (ac instanceof SequenceGroup) - { - ((SequenceGroup) ac).deleteSequence(hmmSeq, false); - AnnotatedCollectionI context = ac.getContext(); - if (context != null && context instanceof AlignmentI) - { - ((AlignmentI) context).deleteSequence(hmmSeq); - } - } - else - { - ((AlignmentI) ac).deleteSequence(hmmSeq); - } - } - } - - /** * Constructs and executes the hmmbuild command as a separate process * * @param sequencesFile @@ -356,13 +333,16 @@ public class HMMBuild extends HmmerCommand { if (hmmFile.length() == 0L) { - Cache.log.error("Error: hmmbuild produced empty hmm file"); + Console.error("Error: hmmbuild produced empty hmm file"); return; } HMMFile file = new HMMFile( new FileParse(hmmFile.getAbsolutePath(), DataSourceType.FILE)); SequenceI hmmSeq = file.getHMM().getConsensusSequence(); + + + ResidueCount counts = new ResidueCount(alignment.getSequences()); hmmSeq.getHMM().setBackgroundFrequencies(counts);