X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fhmmer%2FHMMBuild.java;h=0c47c1dd8011fc05ef682d1f39fb113439eb94ac;hb=0d519ae0c45b0b9962b4589e84c262a71bb2f346;hp=88f28dd325c00872a10ade1ea0167cc1fd2fcde6;hpb=ac8746eeccd41605a304b89cf43f7780526f10f8;p=jalview.git
diff --git a/src/jalview/hmmer/HMMBuild.java b/src/jalview/hmmer/HMMBuild.java
index 88f28dd..0c47c1d 100644
--- a/src/jalview/hmmer/HMMBuild.java
+++ b/src/jalview/hmmer/HMMBuild.java
@@ -4,7 +4,6 @@ import jalview.api.AlignViewportI;
import jalview.bin.Cache;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
-import jalview.datamodel.AlignmentView;
import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.ResidueCount;
import jalview.datamodel.SequenceGroup;
@@ -116,20 +115,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,12 +190,16 @@ 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);
@@ -231,33 +232,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
@@ -363,6 +337,9 @@ public class HMMBuild extends HmmerCommand
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);