4 import jalview.bin.Cache;
5 import jalview.gui.Preferences;
6 import jalview.util.MessageManager;
7 import jalview.ws.params.ArgumentI;
8 import jalview.ws.params.ParamDatastoreI;
9 import jalview.ws.params.WsParamSetI;
10 import jalview.ws.params.simple.BooleanOption;
11 import jalview.ws.params.simple.IntegerParameter;
12 import jalview.ws.params.simple.LogarithmicParameter;
13 import jalview.ws.params.simple.Option;
14 import jalview.ws.params.simple.StringParameter;
16 import java.io.IOException;
17 import java.util.ArrayList;
18 import java.util.Collection;
19 import java.util.List;
20 import java.util.Scanner;
23 public class HMMERParamStore implements ParamDatastoreI
28 List<WsParamSetI> presets = new ArrayList<>();
30 public HMMERParamStore(String name)
36 public List<WsParamSetI> getPresets()
38 // TODO Auto-generated method stub
43 public WsParamSetI getPreset(String name)
45 // TODO Auto-generated method stub
50 public List<ArgumentI> getServiceParameters()
52 List<ArgumentI> args = new ArrayList<>();
53 if ("hmmsearch".equals(name))
55 getHMMSearchParams(args);
57 if ("hmmalign".equals(name))
59 getHMMAlignParams(args);
62 if ("hmmbuild".equals(name))
64 getHMMBuildParams(args);
70 private void getHMMSearchParams(List<ArgumentI> args)
72 args.add(new IntegerParameter(
73 MessageManager.getString("label.number_of_results"),
74 MessageManager.getString("label.number_of_results_desc"), true,
76 String names = Cache.getProperty(Preferences.HMMSEARCH_DBS);
77 if (names != null && !names.isEmpty())
79 Collection<String> databases = new ArrayList<>();
80 databases.add(MessageManager.getString("label.this_alignment"));
81 Scanner nameScanner = new Scanner(names);
83 if (nameScanner.hasNext())
85 while (nameScanner.hasNext())
87 String next = nameScanner.next();
90 Cache.setProperty(Preferences.HMMSEARCH_DBS, "");
91 Cache.setProperty(Preferences.HMMSEARCH_DB_PATHS, "");
100 args.add(new Option(MessageManager.getString("label.database"),
101 MessageManager.getString("label.database_for_hmmsearch"),
102 true, MessageManager.getString("label.this_alignment"),
103 MessageManager.getString("label.this_alignment"), databases,
106 args.add(new BooleanOption(
107 MessageManager.getString("label.auto_align_seqs"),
108 MessageManager.getString("label.auto_align_seqs_desc"), false,
110 args.add(new BooleanOption(
111 MessageManager.getString("label.use_accessions"),
112 MessageManager.getString("label.use_accessions_desc"), false,
114 args.add(new BooleanOption(
115 MessageManager.getString("label.trim_termini"),
116 MessageManager.getString("label.trim_termini_desc"), false,
118 args.add(new LogarithmicParameter(
119 MessageManager.getString("label.seq_e_value"),
120 MessageManager.getString("label.seq_e_value_desc"), false,
121 -3d, -37.92977945, 1d, 10d));
123 args.add(new DoubleParameter(
124 MessageManager.getString("label.seq_score"),
125 MessageManager.getString("label.seq_score_desc"), false,
128 args.add(new LogarithmicParameter(
129 MessageManager.getString("label.dom_e_value_desc"),
130 MessageManager.getString("label.dom_e_value_desc"), false,
131 -3d, -37.92977945, 1d, 10d));
133 args.add(new DoubleParameter(
134 MessageManager.getString("label.dom_score"),
135 MessageManager.getString("label.dom_score_desc"), false, 0d,
142 private void getHMMAlignParams(List<ArgumentI> args)
144 args.add(new BooleanOption(
145 MessageManager.getString("label.trim_termini"),
146 MessageManager.getString(
147 "label.trim_termini = Trim Non-Matching Termini_desc"),
148 false, false, true, null));
151 private void getHMMBuildParams(List<ArgumentI> args)
153 args.add(new StringParameter(MessageManager.getString("label.hmm_name"),
154 MessageManager.getString("label.hmm_name_desc"), true, ""));
155 args.add(new BooleanOption(
156 MessageManager.getString("label.use_reference"),
157 MessageManager.getString("label.use_reference_desc"), true,
160 Collection<String> options = new ArrayList<>();
161 options.add(MessageManager.getString("label.alignment"));
162 options.add(MessageManager.getString("label.groups_and_alignment"));
163 options.add(MessageManager.getString("label.groups"));
164 options.add(MessageManager.getString("label.selected_group"));
166 args.add(new Option(MessageManager.getString("label.hmmbuild_for"),
167 MessageManager.getString("label.hmmbuild_for_desc"), true,
168 MessageManager.getString("label.alignment"),
169 MessageManager.getString("label.alignment"), options, null));
173 public boolean presetExists(String name)
175 // TODO Auto-generated method stub
180 public void deletePreset(String name)
182 // TODO Auto-generated method stub
187 public void storePreset(String presetName, String text,
188 List<ArgumentI> jobParams)
190 // TODO Auto-generated method stub
195 public void updatePreset(String oldName, String presetName, String text,
196 List<ArgumentI> jobParams)
198 // TODO Auto-generated method stub
203 public WsParamSetI parseServiceParameterFile(String name,
204 String description, String[] serviceURL, String parameters)
207 // TODO Auto-generated method stub
212 public String generateServiceParameterFile(WsParamSetI pset)
215 // TODO Auto-generated method stub