X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fhmmer%2FHMMERParamStore.java;h=6f1f51f4f7d42cf3b27ba7a32a83dd9da1a5fe66;hb=f024e66fd13fc3c4fb251291b69c36ad9ff5c8d8;hp=d12475a5711b7186a27a893af41eeae8b00e083b;hpb=499fbdac5e7260dcfd51456e0b7eb1dd7ff613b5;p=jalview.git diff --git a/src/jalview/hmmer/HMMERParamStore.java b/src/jalview/hmmer/HMMERParamStore.java index d12475a..6f1f51f 100644 --- a/src/jalview/hmmer/HMMERParamStore.java +++ b/src/jalview/hmmer/HMMERParamStore.java @@ -1,6 +1,7 @@ package jalview.hmmer; import jalview.bin.Cache; +import jalview.datamodel.SequenceI; import jalview.gui.Preferences; import jalview.util.MessageManager; import jalview.viewmodel.AlignmentViewport; @@ -95,6 +96,8 @@ public final class HMMERParamStore implements ParamDatastoreI */ private void getHMMSearchParams(List args) { + addChoiceOfHmm(args); + args.add(new IntegerParameter( MessageManager.getString("label.number_of_results"), MessageManager.getString("label.number_of_results_desc"), true, @@ -102,7 +105,7 @@ public final class HMMERParamStore implements ParamDatastoreI String names = Cache.getProperty(Preferences.HMMSEARCH_DBS); if (names != null && !names.isEmpty()) { - Collection databases = new ArrayList<>(); + List databases = new ArrayList<>(); databases.add(MessageManager.getString("label.this_alignment")); Scanner nameScanner = new Scanner(names); @@ -143,8 +146,8 @@ public final class HMMERParamStore implements ParamDatastoreI false, true, null)); args.add(new LogarithmicParameter( MessageManager.getString("label.seq_e_value"), - MessageManager.getString("label.seq_e_value_desc"), false, -3d, - -37.92977945, 1d, 10d)); + MessageManager.getString("label.seq_e_value_desc"), false, 1D, + 1E-38, 10D, 10D)); /* args.add(new DoubleParameter( MessageManager.getString("label.seq_score"), @@ -153,8 +156,8 @@ public final class HMMERParamStore implements ParamDatastoreI */ args.add(new LogarithmicParameter( MessageManager.getString("label.dom_e_value"), - MessageManager.getString("label.dom_e_value_desc"), false, -3d, - -37.92977945, 1d, 10d)); + MessageManager.getString("label.dom_e_value_desc"), false, 1D, + 1E-38, 10D, 10D)); /* args.add(new DoubleParameter( MessageManager.getString("label.dom_score"), @@ -172,6 +175,8 @@ public final class HMMERParamStore implements ParamDatastoreI */ private void getHMMAlignParams(List args) { + addChoiceOfHmm(args); + boolean def = Cache.getDefault(Preferences.HMMALIGN_TRIM_TERMINI, false); args.add(new BooleanOption( @@ -181,6 +186,29 @@ public final class HMMERParamStore implements ParamDatastoreI } /** + * Adds an argument representing the choice of HMM sequences (profiles) + * against which to perform align or search, provided more than one is found + * + * @param args + */ + protected void addChoiceOfHmm(List args) + { + List hmms = viewport.getAlignment().getHmmSequences(); + if (!hmms.isEmpty()) + { + List options = new ArrayList<>(); + for (SequenceI hmmSeq : hmms) + { + options.add(hmmSeq.getName()); + } + String defseq = options.get(0); + Option option = new Option(MessageManager.getString("label.use_hmm"), + "", true, defseq, defseq, options, null); + args.add(option); + } + } + + /** * Answers default parameters for hmmbuild, taking into account any configured * as user preferences * @@ -188,9 +216,19 @@ public final class HMMERParamStore implements ParamDatastoreI */ private void getHMMBuildParams(List args) { - args.add(new StringParameter(MessageManager.getString("label.hmm_name"), - MessageManager.getString("label.hmm_name_desc"), true, "")); - // todo only enable Use Reference Annotation if RF is present + /* + * name to give the computed alignment HMM consensus sequence + * (Jalview constructs group HMM consensus sequence names) + */ + String defValue = "Alignment_HMM"; + StringParameter nameParam = new StringParameter(MessageManager.getString("label.hmm_name"), + MessageManager.getString("label.hmm_name_desc"), true, defValue, + defValue); + args.add(nameParam); + + /* + * only enable Use Reference Annotation if RF is present + */ if (viewport.hasReferenceAnnotation()) { args.add(new BooleanOption( @@ -199,12 +237,14 @@ public final class HMMERParamStore implements ParamDatastoreI true, true, null)); } + /* + * choice of whether to compute HMM for alignment and/or group(s) + */ Collection options = new ArrayList<>(); options.add(MessageManager.getString("label.alignment")); options.add(MessageManager.getString("label.groups_and_alignment")); options.add(MessageManager.getString("label.groups")); options.add(MessageManager.getString("label.selected_group")); - args.add(new Option(MessageManager.getString("label.hmmbuild_for"), MessageManager.getString("label.hmmbuild_for_desc"), true, MessageManager.getString("label.alignment"),