import jalview.ws.params.ParamDatastoreI;
import jalview.ws.params.WsParamSetI;
import jalview.ws.params.simple.BooleanOption;
+import jalview.ws.params.simple.DoubleParameter;
import jalview.ws.params.simple.IntegerParameter;
import jalview.ws.params.simple.LogarithmicParameter;
import jalview.ws.params.simple.Option;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Scanner;
*/
private void getHMMSearchParams(List<ArgumentI> args)
{
+ /*
+ * 'Options'
+ */
addChoiceOfHmm(args);
- args.add(new IntegerParameter(
- MessageManager.getString("label.number_of_results"),
- MessageManager.getString("label.number_of_results_desc"), true,
- 100, 0, 100000));
String names = Cache.getProperty(Preferences.HMMSEARCH_DBS);
if (names != null && !names.isEmpty())
{
List<String> databases = new ArrayList<>();
- databases.add(MessageManager.getString("label.this_alignment"));
+ databases.add(MessageManager.getString(HMMSearch.THIS_ALIGNMENT_KEY));
Scanner nameScanner = new Scanner(names);
if (nameScanner.hasNext())
}
}
nameScanner.close();
- args.add(new Option(MessageManager.getString("label.database"),
+ args.add(new StringParameter(
+ MessageManager.getString(HMMSearch.DATABASE_KEY),
MessageManager.getString("label.database_for_hmmsearch"),
- true, MessageManager.getString("label.this_alignment"),
- MessageManager.getString("label.this_alignment"), databases,
- null));
+ true, MessageManager.getString(HMMSearch.THIS_ALIGNMENT_KEY),
+ MessageManager.getString(HMMSearch.THIS_ALIGNMENT_KEY),
+ databases));
}
args.add(new BooleanOption(
- MessageManager.getString("label.auto_align_seqs"),
+ MessageManager.getString(HMMSearch.AUTO_ALIGN_SEQS_KEY),
MessageManager.getString("label.auto_align_seqs_desc"), false,
false, true, null));
args.add(new BooleanOption(
- MessageManager.getString("label.use_accessions"),
+ MessageManager.getString(HMMSearch.USE_ACCESSIONS_KEY),
MessageManager.getString("label.use_accessions_desc"), false,
false, true, null));
args.add(new BooleanOption(
- MessageManager.getString("label.trim_termini"),
+ MessageManager.getString(HMMSearch.TRIM_TERMINI_KEY),
MessageManager.getString("label.trim_termini_desc"), false,
false, true, null));
+
+ /*
+ * 'Parameters'
+ */
+ args.add(new IntegerParameter(
+ MessageManager.getString(HMMSearch.NUMBER_OF_RESULTS_KEY),
+ MessageManager.getString("label.number_of_results_desc"), true,
+ 100, 0, 100000));
+ args.add(new StringParameter(
+ MessageManager.getString(HMMSearch.REPORTING_CUTOFF_KEY), null,
+ true, HMMSearch.CUTOFF_NONE, HMMSearch.CUTOFF_NONE,
+ Arrays.asList(HMMSearch.CUTOFF_NONE, HMMSearch.CUTOFF_EVALUE,
+ HMMSearch.CUTOFF_SCORE)));
args.add(new LogarithmicParameter(
- MessageManager.getString("label.seq_e_value"),
+ MessageManager.getString(HMMSearch.SEQ_EVALUE_KEY),
MessageManager.getString("label.seq_e_value_desc"), false, 1D,
- 1E-38, 10D, 10D));
- /*
- args.add(new DoubleParameter(
- MessageManager.getString("label.seq_score"),
- MessageManager.getString("label.seq_score_desc"), false,
- 0d, 0d, 10000d));
- */
+ 1E-38, 10D));
args.add(new LogarithmicParameter(
- MessageManager.getString("label.dom_e_value"),
+ MessageManager.getString(HMMSearch.DOM_EVALUE_KEY),
MessageManager.getString("label.dom_e_value_desc"), false, 1D,
- 1E-38, 10D, 10D));
- /*
- args.add(new DoubleParameter(
- MessageManager.getString("label.dom_score"),
- MessageManager.getString("label.dom_score_desc"), false, 0d,
- 0d,
- 10000d));
- */
+ 1E-38, 10D));
+ args.add(
+ new DoubleParameter(
+ MessageManager.getString(HMMSearch.SEQ_SCORE_KEY),
+ MessageManager.getString("label.seq_score_desc"), false,
+ 0d, 0d, 1000d));
+ args.add(
+ new DoubleParameter(
+ MessageManager.getString(HMMSearch.DOM_SCORE_KEY),
+ MessageManager.getString("label.dom_score_desc"), false,
+ 0d, 0d, 1000d));
}
/**
/**
* Adds an argument representing the choice of HMM sequences (profiles)
- * against which to perform align or search, provided more than one is found
+ * against which to perform align or search, provided at least one is found
*
* @param args
*/
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);
+ ArgumentI arg = new StringParameter(
+ MessageManager.getString("label.use_hmm"), null, true, defseq,
+ defseq, options);
+ args.add(arg);
}
}
/*
* choice of whether to compute HMM for alignment and/or group(s)
+ * - only if there are any groups
*/
- Collection<String> 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"),
- MessageManager.getString("label.alignment"), options, null));
+ if (!viewport.getAlignment().getGroups().isEmpty())
+ {
+ Collection<String> 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"),
+ MessageManager.getString("label.alignment"), options, null));
+ }
}
@Override