JAL-2629 hmmsearch now works for different databases
[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(MessageManager.getString("label.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, MessageManager.getString("label.this_alignment"),
86                 MessageManager.getString("label.this_alignment"), databases,
87                 null));
88       }
89       args.add(new BooleanOption(
90               MessageManager.getString("label.auto_align_seqs"),
91               MessageManager.getString("label.auto_align_seqs_desc"),
92               false, false, true, null));
93       args.add(new BooleanOption(
94               MessageManager.getString("label.use_accessions"),
95               MessageManager.getString("label.use_accessions_desc"),
96               false, false, true, null));
97       args.add(new BooleanOption(
98               MessageManager.getString("label.trim_termini"),
99               MessageManager.getString("label.trim_termini_desc"), false,
100               false, true, null));
101       args.add(new LogarithmicParameter(
102               MessageManager.getString("label.seq_e_value"),
103               MessageManager.getString("label.seq_e_value_desc"), false,
104               0.001d, -63d, 9d, 4d));
105       /*
106       args.add(new DoubleParameter(
107               MessageManager.getString("label.seq_score"),
108               MessageManager.getString("label.seq_score_desc"), false,
109               0d, 0d, 10000d));
110          */
111       args.add(new LogarithmicParameter(
112               MessageManager.getString("label.dom_e_value_desc"),
113               MessageManager.getString("label.dom_e_value_desc"), false,
114               0.001d, -63d, 9d, 4d));
115       /*
116       args.add(new DoubleParameter(
117               MessageManager.getString("label.dom_score"),
118               MessageManager.getString("label.dom_score_desc"), false, 0d,
119               0d,
120               10000d));
121               */
122     }
123     if ("hmmalign".equals(name))
124     {
125       args.add(new BooleanOption(
126               MessageManager.getString("label.trim_termini"),
127               MessageManager.getString(
128                       "label.trim_termini = Trim Non-Matching Termini_desc"),
129               false, false, true, null));
130
131     }
132     if ("hmmbuild".equals(name))
133     {
134       args.add(new BooleanOption(
135               MessageManager.getString("label.trim_termini"),
136               MessageManager.getString(
137                       "label.trim_termini = Trim Non-Matching Termini_desc"),
138               false, false, true, null));
139
140     }
141     return args;
142   }
143
144   @Override
145   public boolean presetExists(String name)
146   {
147     // TODO Auto-generated method stub
148     return false;
149   }
150
151   @Override
152   public void deletePreset(String name)
153   {
154     // TODO Auto-generated method stub
155
156   }
157
158   @Override
159   public void storePreset(String presetName, String text,
160           List<ArgumentI> jobParams)
161   {
162     // TODO Auto-generated method stub
163
164   }
165
166   @Override
167   public void updatePreset(String oldName, String presetName, String text,
168           List<ArgumentI> jobParams)
169   {
170     // TODO Auto-generated method stub
171
172   }
173
174   @Override
175   public WsParamSetI parseServiceParameterFile(String name,
176           String description, String[] serviceURL, String parameters)
177           throws IOException
178   {
179     // TODO Auto-generated method stub
180     return null;
181   }
182
183   @Override
184   public String generateServiceParameterFile(WsParamSetI pset)
185           throws IOException
186   {
187     // TODO Auto-generated method stub
188     return null;
189   }
190
191 }