3 import jalview.bin.Cache;
4 import jalview.gui.Preferences;
5 import jalview.util.MessageManager;
6 import jalview.ws.params.ArgumentI;
7 import jalview.ws.params.ParamDatastoreI;
8 import jalview.ws.params.WsParamSetI;
9 import jalview.ws.params.simple.BooleanOption;
10 import jalview.ws.params.simple.IntegerParameter;
11 import jalview.ws.params.simple.LogarithmicParameter;
12 import jalview.ws.params.simple.Option;
13 import jalview.ws.params.simple.StringParameter;
15 import java.io.IOException;
16 import java.util.ArrayList;
17 import java.util.Collection;
18 import java.util.List;
19 import java.util.Scanner;
21 public class HMMERParamStore implements ParamDatastoreI
25 List<WsParamSetI> presets = new ArrayList<>();
27 public HMMERParamStore(String nam)
33 public List<WsParamSetI> getPresets()
39 public WsParamSetI getPreset(String nam)
45 public List<ArgumentI> getServiceParameters()
47 List<ArgumentI> args = new ArrayList<>();
48 if ("hmmsearch".equals(name))
50 getHMMSearchParams(args);
52 if ("hmmalign".equals(name))
54 getHMMAlignParams(args);
57 if ("hmmbuild".equals(name))
59 getHMMBuildParams(args);
65 private void getHMMSearchParams(List<ArgumentI> args)
67 args.add(new IntegerParameter(
68 MessageManager.getString("label.number_of_results"),
69 MessageManager.getString("label.number_of_results_desc"), true,
71 String names = Cache.getProperty(Preferences.HMMSEARCH_DBS);
72 if (names != null && !names.isEmpty())
74 Collection<String> databases = new ArrayList<>();
75 databases.add(MessageManager.getString("label.this_alignment"));
76 Scanner nameScanner = new Scanner(names);
78 if (nameScanner.hasNext())
80 while (nameScanner.hasNext())
82 String next = nameScanner.next();
85 Cache.setProperty(Preferences.HMMSEARCH_DBS, "");
86 Cache.setProperty(Preferences.HMMSEARCH_DB_PATHS, "");
95 args.add(new Option(MessageManager.getString("label.database"),
96 MessageManager.getString("label.database_for_hmmsearch"),
97 true, MessageManager.getString("label.this_alignment"),
98 MessageManager.getString("label.this_alignment"), databases,
101 args.add(new BooleanOption(
102 MessageManager.getString("label.auto_align_seqs"),
103 MessageManager.getString("label.auto_align_seqs_desc"), false,
105 args.add(new BooleanOption(
106 MessageManager.getString("label.use_accessions"),
107 MessageManager.getString("label.use_accessions_desc"), false,
109 args.add(new BooleanOption(
110 MessageManager.getString("label.trim_termini"),
111 MessageManager.getString("label.trim_termini_desc"), false,
113 args.add(new LogarithmicParameter(
114 MessageManager.getString("label.seq_e_value"),
115 MessageManager.getString("label.seq_e_value_desc"), false, -3d,
116 -37.92977945, 1d, 10d));
118 args.add(new DoubleParameter(
119 MessageManager.getString("label.seq_score"),
120 MessageManager.getString("label.seq_score_desc"), false,
123 args.add(new LogarithmicParameter(
124 MessageManager.getString("label.dom_e_value_desc"),
125 MessageManager.getString("label.dom_e_value_desc"), false, -3d,
126 -37.92977945, 1d, 10d));
128 args.add(new DoubleParameter(
129 MessageManager.getString("label.dom_score"),
130 MessageManager.getString("label.dom_score_desc"), false, 0d,
136 private void getHMMAlignParams(List<ArgumentI> args)
138 args.add(new BooleanOption(
139 MessageManager.getString("label.trim_termini"),
140 MessageManager.getString("label.trim_termini_desc"),
141 false, false, true, null));
144 private void getHMMBuildParams(List<ArgumentI> args)
146 args.add(new StringParameter(MessageManager.getString("label.hmm_name"),
147 MessageManager.getString("label.hmm_name_desc"), true, ""));
148 // todo only enable Use Reference Annotation if RF is present
149 args.add(new BooleanOption(
150 MessageManager.getString("label.use_reference"),
151 MessageManager.getString("label.use_reference_desc"), true,
154 Collection<String> options = new ArrayList<>();
155 options.add(MessageManager.getString("label.alignment"));
156 options.add(MessageManager.getString("label.groups_and_alignment"));
157 options.add(MessageManager.getString("label.groups"));
158 options.add(MessageManager.getString("label.selected_group"));
160 args.add(new Option(MessageManager.getString("label.hmmbuild_for"),
161 MessageManager.getString("label.hmmbuild_for_desc"), true,
162 MessageManager.getString("label.alignment"),
163 MessageManager.getString("label.alignment"), options, null));
167 public boolean presetExists(String name)
173 public void deletePreset(String name)
178 public void storePreset(String presetName, String text,
179 List<ArgumentI> jobParams)
181 // TODO Auto-generated method stub
186 public void updatePreset(String oldName, String presetName, String text,
187 List<ArgumentI> jobParams)
192 public WsParamSetI parseServiceParameterFile(String name,
193 String description, String[] serviceURL, String parameters)
200 public String generateServiceParameterFile(WsParamSetI pset)