JAL-2629 add ability to add and select a DB for hmmsearch
[jalview.git] / src / jalview / hmmer / HMMERParamStore.java
1 package jalview.hmmer;
2
3
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
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;
20
21
22 public class HMMERParamStore implements ParamDatastoreI
23 {
24
25   String name;
26
27   List<WsParamSetI> presets = new ArrayList<>();
28
29   public HMMERParamStore(String name)
30   {
31     this.name = name;
32   }
33
34   @Override
35   public List<WsParamSetI> getPresets()
36   {
37     // TODO Auto-generated method stub
38     return presets;
39   }
40
41   @Override
42   public WsParamSetI getPreset(String name)
43   {
44     // TODO Auto-generated method stub
45     return null;
46   }
47
48   @Override
49   public List<ArgumentI> getServiceParameters()
50   {
51     List<ArgumentI> args = new ArrayList<>();
52     if ("hmmsearch".equals(name))
53     {
54       args.add(new IntegerParameter(
55               MessageManager.getString("label.number_of_results"),
56               MessageManager
57                       .getString("label.number_of_results_desc"),
58               true, 100, 0, 100000));
59       String names = Cache.getProperty(Preferences.HMMSEARCH_DBS);
60       if (names != null && !names.isEmpty())
61       {
62         Collection<String> databases = new ArrayList<>();
63         databases.add("This Alignment");
64         Scanner nameScanner = new Scanner(names);
65
66         if (nameScanner.hasNext())
67         {
68           while (nameScanner.hasNext())
69           {
70             String next = nameScanner.next();
71             if (next == "null")
72             {
73               Cache.setProperty(Preferences.HMMSEARCH_DBS, "");
74               Cache.setProperty(Preferences.HMMSEARCH_DB_PATHS, "");
75             }
76             else
77             {
78               databases.add(next);
79             }
80           }
81         }
82         nameScanner.close();
83         args.add(new Option(MessageManager.getString("label.database"),
84                 MessageManager.getString("label.database_for_hmmsearch"),
85                 true, "This Alignment", "This Alignment", databases, null));
86       }
87       args.add(new BooleanOption(
88               MessageManager.getString("label.auto_align_seqs"),
89               MessageManager.getString("label.auto_align_seqs_desc"),
90               false, false, true, null));
91       args.add(new BooleanOption(
92               MessageManager.getString("label.use_accessions"),
93               MessageManager.getString("label.use_accessions_desc"),
94               false, false, true, null));
95       args.add(new BooleanOption(
96               MessageManager.getString("label.trim_termini"),
97               MessageManager.getString("label.trim_termini_desc"), false,
98               false, true, null));
99       args.add(new LogarithmicParameter(
100               MessageManager.getString("label.seq_e_value"),
101               MessageManager.getString("label.seq_e_value_desc"), false,
102               0.001d, -63d, 9d, 4d));
103       /*
104       args.add(new DoubleParameter(
105               MessageManager.getString("label.seq_score"),
106               MessageManager.getString("label.seq_score_desc"), false,
107               0d, 0d, 10000d));
108          */
109       args.add(new LogarithmicParameter(
110               MessageManager.getString("label.dom_e_value_desc"),
111               MessageManager.getString("label.dom_e_value_desc"), false,
112               0.001d, -63d, 9d, 4d));
113       /*
114       args.add(new DoubleParameter(
115               MessageManager.getString("label.dom_score"),
116               MessageManager.getString("label.dom_score_desc"), false, 0d,
117               0d,
118               10000d));
119               */
120     }
121     if ("hmmalign".equals(name))
122     {
123       args.add(new BooleanOption(
124               MessageManager.getString("label.trim_termini"),
125               MessageManager.getString(
126                       "label.trim_termini = Trim Non-Matching Termini_desc"),
127               false, false, true, null));
128
129     }
130     if ("hmmbuild".equals(name))
131     {
132       args.add(new BooleanOption(
133               MessageManager.getString("label.trim_termini"),
134               MessageManager.getString(
135                       "label.trim_termini = Trim Non-Matching Termini_desc"),
136               false, false, true, null));
137
138     }
139     return args;
140   }
141
142   @Override
143   public boolean presetExists(String name)
144   {
145     // TODO Auto-generated method stub
146     return false;
147   }
148
149   @Override
150   public void deletePreset(String name)
151   {
152     // TODO Auto-generated method stub
153
154   }
155
156   @Override
157   public void storePreset(String presetName, String text,
158           List<ArgumentI> jobParams)
159   {
160     // TODO Auto-generated method stub
161
162   }
163
164   @Override
165   public void updatePreset(String oldName, String presetName, String text,
166           List<ArgumentI> jobParams)
167   {
168     // TODO Auto-generated method stub
169
170   }
171
172   @Override
173   public WsParamSetI parseServiceParameterFile(String name,
174           String description, String[] serviceURL, String parameters)
175           throws IOException
176   {
177     // TODO Auto-generated method stub
178     return null;
179   }
180
181   @Override
182   public String generateServiceParameterFile(WsParamSetI pset)
183           throws IOException
184   {
185     // TODO Auto-generated method stub
186     return null;
187   }
188
189 }