JAL-2629 adjust parameter min and max to better suit HMMER ranges
[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       getHMMSearchParams(args);
55     }
56     if ("hmmalign".equals(name))
57     {
58       getHMMAlignParams(args);
59
60     }
61     if ("hmmbuild".equals(name))
62     {
63
64
65     }
66     return args;
67   }
68
69   private void getHMMSearchParams(List<ArgumentI> args)
70   {
71     args.add(new IntegerParameter(
72             MessageManager.getString("label.number_of_results"),
73             MessageManager.getString("label.number_of_results_desc"), true,
74             100, 0, 100000));
75     String names = Cache.getProperty(Preferences.HMMSEARCH_DBS);
76     if (names != null && !names.isEmpty())
77     {
78       Collection<String> databases = new ArrayList<>();
79       databases.add(MessageManager.getString("label.this_alignment"));
80       Scanner nameScanner = new Scanner(names);
81
82       if (nameScanner.hasNext())
83       {
84         while (nameScanner.hasNext())
85         {
86           String next = nameScanner.next();
87           if (next == "null")
88           {
89             Cache.setProperty(Preferences.HMMSEARCH_DBS, "");
90             Cache.setProperty(Preferences.HMMSEARCH_DB_PATHS, "");
91           }
92           else
93           {
94             databases.add(next);
95           }
96         }
97       }
98       nameScanner.close();
99       args.add(new Option(MessageManager.getString("label.database"),
100               MessageManager.getString("label.database_for_hmmsearch"),
101               true, MessageManager.getString("label.this_alignment"),
102               MessageManager.getString("label.this_alignment"), databases,
103               null));
104     }
105     args.add(new BooleanOption(
106             MessageManager.getString("label.auto_align_seqs"),
107             MessageManager.getString("label.auto_align_seqs_desc"), false,
108             false, true, null));
109     args.add(new BooleanOption(
110             MessageManager.getString("label.use_accessions"),
111             MessageManager.getString("label.use_accessions_desc"), false,
112             false, true, null));
113     args.add(new BooleanOption(
114             MessageManager.getString("label.trim_termini"),
115             MessageManager.getString("label.trim_termini_desc"), false,
116             false, true, null));
117     args.add(new LogarithmicParameter(
118             MessageManager.getString("label.seq_e_value"),
119             MessageManager.getString("label.seq_e_value_desc"), false,
120             -9.96578, -126d, 3.3219d, 2d));
121     /*
122     args.add(new DoubleParameter(
123             MessageManager.getString("label.seq_score"),
124             MessageManager.getString("label.seq_score_desc"), false,
125             0d, 0d, 10000d));
126        */
127     args.add(new LogarithmicParameter(
128             MessageManager.getString("label.dom_e_value_desc"),
129             MessageManager.getString("label.dom_e_value_desc"), false,
130             -9.96578, -126d, 3.3219d, 2d));
131     /*
132     args.add(new DoubleParameter(
133             MessageManager.getString("label.dom_score"),
134             MessageManager.getString("label.dom_score_desc"), false, 0d,
135             0d,
136             10000d));
137             */
138   }
139
140   private void getHMMAlignParams(List<ArgumentI> args)
141   {
142     args.add(new BooleanOption(
143             MessageManager.getString("label.trim_termini"),
144             MessageManager.getString(
145                     "label.trim_termini = Trim Non-Matching Termini_desc"),
146             false, false, true, null));
147   }
148
149   @Override
150   public boolean presetExists(String name)
151   {
152     // TODO Auto-generated method stub
153     return false;
154   }
155
156   @Override
157   public void deletePreset(String name)
158   {
159     // TODO Auto-generated method stub
160
161   }
162
163   @Override
164   public void storePreset(String presetName, String text,
165           List<ArgumentI> jobParams)
166   {
167     // TODO Auto-generated method stub
168
169   }
170
171   @Override
172   public void updatePreset(String oldName, String presetName, String text,
173           List<ArgumentI> jobParams)
174   {
175     // TODO Auto-generated method stub
176
177   }
178
179   @Override
180   public WsParamSetI parseServiceParameterFile(String name,
181           String description, String[] serviceURL, String parameters)
182           throws IOException
183   {
184     // TODO Auto-generated method stub
185     return null;
186   }
187
188   @Override
189   public String generateServiceParameterFile(WsParamSetI pset)
190           throws IOException
191   {
192     // TODO Auto-generated method stub
193     return null;
194   }
195
196 }