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
26 List<WsParamSetI> presets = new ArrayList<>();
28 public HMMERParamStore(String name)
34 public List<WsParamSetI> getPresets()
36 // TODO Auto-generated method stub
41 public WsParamSetI getPreset(String name)
43 // TODO Auto-generated method stub
48 public List<ArgumentI> getServiceParameters()
50 List<ArgumentI> args = new ArrayList<>();
51 if ("hmmsearch".equals(name))
53 getHMMSearchParams(args);
55 if ("hmmalign".equals(name))
57 getHMMAlignParams(args);
60 if ("hmmbuild".equals(name))
62 getHMMBuildParams(args);
68 private void getHMMSearchParams(List<ArgumentI> args)
70 args.add(new IntegerParameter(
71 MessageManager.getString("label.number_of_results"),
72 MessageManager.getString("label.number_of_results_desc"), true,
74 String names = Cache.getProperty(Preferences.HMMSEARCH_DBS);
75 if (names != null && !names.isEmpty())
77 Collection<String> databases = new ArrayList<>();
78 databases.add(MessageManager.getString("label.this_alignment"));
79 Scanner nameScanner = new Scanner(names);
81 if (nameScanner.hasNext())
83 while (nameScanner.hasNext())
85 String next = nameScanner.next();
88 Cache.setProperty(Preferences.HMMSEARCH_DBS, "");
89 Cache.setProperty(Preferences.HMMSEARCH_DB_PATHS, "");
98 args.add(new Option(MessageManager.getString("label.database"),
99 MessageManager.getString("label.database_for_hmmsearch"),
100 true, MessageManager.getString("label.this_alignment"),
101 MessageManager.getString("label.this_alignment"), databases,
104 args.add(new BooleanOption(
105 MessageManager.getString("label.auto_align_seqs"),
106 MessageManager.getString("label.auto_align_seqs_desc"), false,
108 args.add(new BooleanOption(
109 MessageManager.getString("label.use_accessions"),
110 MessageManager.getString("label.use_accessions_desc"), false,
112 args.add(new BooleanOption(
113 MessageManager.getString("label.trim_termini"),
114 MessageManager.getString("label.trim_termini_desc"), false,
116 args.add(new LogarithmicParameter(
117 MessageManager.getString("label.seq_e_value"),
118 MessageManager.getString("label.seq_e_value_desc"), false, -3d,
119 -37.92977945, 1d, 10d));
121 args.add(new DoubleParameter(
122 MessageManager.getString("label.seq_score"),
123 MessageManager.getString("label.seq_score_desc"), false,
126 args.add(new LogarithmicParameter(
127 MessageManager.getString("label.dom_e_value_desc"),
128 MessageManager.getString("label.dom_e_value_desc"), false, -3d,
129 -37.92977945, 1d, 10d));
131 args.add(new DoubleParameter(
132 MessageManager.getString("label.dom_score"),
133 MessageManager.getString("label.dom_score_desc"), false, 0d,
139 private void getHMMAlignParams(List<ArgumentI> args)
141 args.add(new BooleanOption(
142 MessageManager.getString("label.trim_termini"),
143 MessageManager.getString("label.trim_termini_desc"),
144 false, false, true, null));
147 private void getHMMBuildParams(List<ArgumentI> args)
149 args.add(new StringParameter(MessageManager.getString("label.hmm_name"),
150 MessageManager.getString("label.hmm_name_desc"), true, ""));
151 args.add(new BooleanOption(
152 MessageManager.getString("label.use_reference"),
153 MessageManager.getString("label.use_reference_desc"), true,
156 Collection<String> options = new ArrayList<>();
157 options.add(MessageManager.getString("label.alignment"));
158 options.add(MessageManager.getString("label.groups_and_alignment"));
159 options.add(MessageManager.getString("label.groups"));
160 options.add(MessageManager.getString("label.selected_group"));
162 args.add(new Option(MessageManager.getString("label.hmmbuild_for"),
163 MessageManager.getString("label.hmmbuild_for_desc"), true,
164 MessageManager.getString("label.alignment"),
165 MessageManager.getString("label.alignment"), options, null));
169 public boolean presetExists(String name)
171 // TODO Auto-generated method stub
176 public void deletePreset(String name)
178 // TODO Auto-generated method stub
183 public void storePreset(String presetName, String text,
184 List<ArgumentI> jobParams)
186 // TODO Auto-generated method stub
191 public void updatePreset(String oldName, String presetName, String text,
192 List<ArgumentI> jobParams)
194 // TODO Auto-generated method stub
199 public WsParamSetI parseServiceParameterFile(String name,
200 String description, String[] serviceURL, String parameters)
203 // TODO Auto-generated method stub
208 public String generateServiceParameterFile(WsParamSetI pset)
211 // TODO Auto-generated method stub