private static final String HMMSEARCH = "hmmsearch";
+ private static final String JACKHMMER = "jackhmmer";
+
private String name;
private List<WsParamSetI> presets = new ArrayList<>();
return new HMMERParamStore(HMMSEARCH, viewport);
}
+ public static HMMERParamStore forJackhmmer(AlignmentViewport viewport)
+ {
+ return new HMMERParamStore(JACKHMMER, viewport);
+ }
+
@Override
public List<WsParamSetI> getPresets()
{
case HMMBUILD:
getHMMBuildParams(args);
break;
+ case JACKHMMER:
+ getJackhmmerParams(args);
default:
}
MessageManager.getString(HMMSearch.TRIM_TERMINI_KEY),
MessageManager.getString("label.trim_termini_desc"), false,
false, true, null));
+ args.add(new BooleanOption(
+ MessageManager.getString(HMMSearch.RETURN_N_NEW_SEQ),
+ MessageManager.getString("label.check_for_new_sequences_desc"),
+ false, false, false, null));
/*
* 'Parameters'
String thisAlignment = MessageManager
.getString(HMMSearch.THIS_ALIGNMENT_KEY);
String database = MessageManager.getString("label.database");
- args.add(new RadioChoiceParameter(
- MessageManager.getString("action.search"), null,
- Arrays.asList(thisAlignment,
- database),
- thisAlignment));
args.add(new FileParameter(database, "", false, "", ""));
args.add(new IntegerParameter(
MessageManager.getString(HMMSearch.NUMBER_OF_RESULTS_KEY),
args.add(new LogarithmicParameter(
MessageManager.getString(HMMSearch.SEQ_EVALUE_KEY),
MessageManager.getString("label.seq_e_value_desc"), false, 1D,
- 1E-38, 10D));
+ 1E-100, 10D));
args.add(new LogarithmicParameter(
MessageManager.getString(HMMSearch.DOM_EVALUE_KEY),
MessageManager.getString("label.dom_e_value_desc"), false, 1D,
- 1E-38, 10D));
+ 1E-100, 10D));
args.add(
new DoubleParameter(
MessageManager.getString(HMMSearch.SEQ_SCORE_KEY),
}
/**
+ * Answers default parameters for jackhmmer, taking into account any configured
+ * as user preferences
+ *
+ * @param args
+ */
+ private void getJackhmmerParams(List<ArgumentI> args)
+ {
+
+ /*
+ * 'Parameters'
+ */
+ addChoiceOfSequence(args);
+
+ // addChoiceOfDatabase(args);
+
+ String database = MessageManager.getString("label.database");
+ args.add(new FileParameter(database, "", false, "", ""));
+ args.add(new RadioChoiceParameter(
+ MessageManager.getString(JackHMMER.REPORTING_CUTOFF_KEY), null,
+ Arrays.asList(MessageManager.getString(JackHMMER.CUTOFF_NONE),
+ MessageManager.getString(JackHMMER.CUTOFF_EVALUE),
+ MessageManager.getString(JackHMMER.CUTOFF_SCORE)),
+ MessageManager.getString(JackHMMER.CUTOFF_EVALUE)));
+ args.add(new LogarithmicParameter(
+ MessageManager.getString(JackHMMER.SEQ_EVALUE_KEY),
+ MessageManager.getString("label.seq_e_value_desc"), false, 1D,
+ 1E-38, 10D));
+ args.add(new LogarithmicParameter(
+ MessageManager.getString(JackHMMER.DOM_EVALUE_KEY),
+ MessageManager.getString("label.dom_e_value_desc"), false, 1D,
+ 1E-38, 10D));
+ args.add(new DoubleParameter(
+ MessageManager.getString(JackHMMER.SEQ_SCORE_KEY),
+ MessageManager.getString("label.seq_score_desc"), false, 0d, 0d,
+ 1000d));
+ args.add(new DoubleParameter(
+ MessageManager.getString(JackHMMER.DOM_SCORE_KEY),
+ MessageManager.getString("label.dom_score_desc"), false, 0d, 0d,
+ 1000d));
+ }
+
+ /**
* Constructs a choice parameter for database to search; always includes 'this
* alignment', and also includes any databases held under user preferences key
* "HMMSEARCH_DBS" as a comma-delimited list
}
/**
+ * Adds an argument representing the choice of sequence against which to perform
+ * jackhmmer
+ *
+ * @param args
+ */
+ protected void addChoiceOfSequence(List<ArgumentI> args)
+ {
+ List<SequenceI> sequences = viewport.getAlignment().getSequences();
+
+ List<String> options = new ArrayList<>();
+
+ for (SequenceI seq : sequences)
+ {
+ options.add(seq.getName());
+ }
+
+ String defseq = options.get(0);
+ ArgumentI arg = new StringParameter(
+ MessageManager.getString("label.use_sequence"), null, true,
+ defseq,
+ defseq, options, null);
+ args.add(arg);
+ }
+
+ /**
* Answers default parameters for hmmbuild, taking into account any configured
* as user preferences
*