X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fhmmer%2FHMMERParamStore.java;h=f95d738cf564991a89ff8a035d2d6ec06c4df125;hb=1beac3545a78d4c5c3274dbb53296708d693efe0;hp=452097b8b149e6649a3b8f4df26fcb844f8f1fb4;hpb=a82f1e47eef845557e95e61116e6b34bdd3242f3;p=jalview.git diff --git a/src/jalview/hmmer/HMMERParamStore.java b/src/jalview/hmmer/HMMERParamStore.java index 452097b..f95d738 100644 --- a/src/jalview/hmmer/HMMERParamStore.java +++ b/src/jalview/hmmer/HMMERParamStore.java @@ -32,6 +32,8 @@ public final class HMMERParamStore implements ParamDatastoreI private static final String HMMSEARCH = "hmmsearch"; + private static final String JACKHMMER = "jackhmmer"; + private String name; private List presets = new ArrayList<>(); @@ -59,6 +61,11 @@ public final class HMMERParamStore implements ParamDatastoreI return new HMMERParamStore(HMMSEARCH, viewport); } + public static HMMERParamStore forJackhmmer(AlignmentViewport viewport) + { + return new HMMERParamStore(JACKHMMER, viewport); + } + @Override public List getPresets() { @@ -86,6 +93,8 @@ public final class HMMERParamStore implements ParamDatastoreI case HMMBUILD: getHMMBuildParams(args); break; + case JACKHMMER: + getJackhmmerParams(args); default: } @@ -162,6 +171,52 @@ public final class HMMERParamStore implements ParamDatastoreI } /** + * Answers default parameters for jackhmmer, taking into account any configured + * as user preferences + * + * @param args + */ + private void getJackhmmerParams(List args) + { + + /* + * 'Parameters' + */ + addChoiceOfSequence(args); + + // addChoiceOfDatabase(args); + + String thisAlignment = MessageManager + .getString(JackHMMER.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 RadioChoiceParameter( + MessageManager.getString(JackHMMER.REPORTING_CUTOFF_KEY), null, + Arrays.asList(JackHMMER.CUTOFF_NONE, JackHMMER.CUTOFF_EVALUE, + JackHMMER.CUTOFF_SCORE), + 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 @@ -254,6 +309,31 @@ public final class HMMERParamStore implements ParamDatastoreI } /** + * Adds an argument representing the choice of sequence against which to perform + * jackhmmer + * + * @param args + */ + protected void addChoiceOfSequence(List args) + { + List sequences = viewport.getAlignment().getSequences(); + + List 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 *