Some lost files
[proteocache.git] / testsrc / compbio / ws / client / TestAAConWS.java
1 package compbio.ws.client;\r
2 \r
3 import static org.testng.Assert.assertEquals;\r
4 import static org.testng.Assert.assertNotNull;\r
5 import static org.testng.Assert.fail;\r
6 import static org.testng.Assert.assertTrue;\r
7 import java.io.File;\r
8 import java.io.FileInputStream;\r
9 import java.io.FileNotFoundException;\r
10 import java.io.IOException;\r
11 import java.net.ConnectException;\r
12 import java.util.ArrayList;\r
13 import java.util.List;\r
14 \r
15 import javax.xml.ws.WebServiceException;\r
16 \r
17 import org.testng.annotations.BeforeTest;\r
18 import org.testng.annotations.Test;\r
19 \r
20 import compbio.data.msa.JABAService;\r
21 import compbio.data.msa.SequenceAnnotation;\r
22 import compbio.data.sequence.ConservationMethod;\r
23 import compbio.data.sequence.FastaSequence;\r
24 import compbio.data.sequence.ScoreManager;\r
25 import compbio.data.sequence.SequenceUtil;\r
26 import compbio.metadata.AllTestSuit;\r
27 import compbio.metadata.JobSubmissionException;\r
28 import compbio.metadata.LimitExceededException;\r
29 import compbio.metadata.Option;\r
30 import compbio.metadata.Preset;\r
31 import compbio.metadata.PresetManager;\r
32 import compbio.metadata.ResultNotAvailableException;\r
33 import compbio.metadata.RunnerConfig;\r
34 import compbio.metadata.UnsupportedRuntimeException;\r
35 import compbio.metadata.WrongParameterException;\r
36 import compbio.runner.conservation.AACon;\r
37 import compbio.util.SysPrefs;\r
38 \r
39 public class TestAAConWS {\r
40 \r
41         SequenceAnnotation<AACon> msaws;\r
42 \r
43         @BeforeTest(groups = {AllTestSuit.test_group_webservices})\r
44         void initConnection() {\r
45                 /*\r
46                  * URL url = null; try { url = new\r
47                  * URL("http://localhost:8080/jabaws/AAConWS?wsdl"); } catch\r
48                  * (MalformedURLException e) { e.printStackTrace();\r
49                  * fail(e.getLocalizedMessage()); } String namespace =\r
50                  * "http://msa.data.compbio/01/12/2010/"; QName qname = new\r
51                  * QName(namespace, "AAConWS"); Service serv = Service.create(url,\r
52                  * qname); msaws = serv.getPort(new QName(namespace, "AAConWSPort"),\r
53                  * Annotation.class);\r
54                  */try {\r
55                         JABAService client = Jws2Client.connect(\r
56                                         "http://localhost:8080/jabaws", Services.AAConWS);\r
57                         msaws = (SequenceAnnotation<AACon>) client;\r
58                 } catch (ConnectException e) {\r
59                         e.printStackTrace();\r
60                         fail(e.getMessage());\r
61                 } catch (WebServiceException e) {\r
62                         e.printStackTrace();\r
63                         fail(e.getMessage());\r
64                 }\r
65         }\r
66 \r
67         @Test(groups = {AllTestSuit.test_group_webservices})\r
68         public void testAnalize() throws FileNotFoundException, IOException {\r
69 \r
70                 /*\r
71                  * MsaWS msaws = serv.getPort(new QName(\r
72                  * "http://msa.data.compbio/01/01/2010/", "ClustalWSPort"),\r
73                  * MsaWS.class);\r
74                  */\r
75                 // Annotation<AACon> msaws = serv.getPort(new QName(namespace,\r
76                 // "ClustalWSPort"), Annotation.class);\r
77 \r
78                 // List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
79                 // AAConTester.test_alignment_input));\r
80 \r
81                 String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
82                                 + File.separator;\r
83 \r
84                 List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
85                                 CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
86                                                 + File.separator + "TO1381.fasta.aln"));\r
87 \r
88                 try {\r
89                         System.out.println("Pres: " + msaws.getPresets().getPresets());\r
90                         String jobId = msaws.analize(fsl);\r
91                         System.out.println("J: " + jobId);\r
92                         ScoreManager result = msaws.getAnnotation(jobId);\r
93                         assertNotNull(result);\r
94                         assertEquals(result.asSet().size(), 1);\r
95 \r
96                         assertEquals(result.asSet().iterator().next().getMethod(),\r
97                                         ConservationMethod.SHENKIN.toString());\r
98                         List<Float> scores = result.asSet().iterator().next().getScores();\r
99                         assertNotNull(scores);\r
100                         assertEquals(scores.size(), 568);\r
101 \r
102                         // Using presets\r
103                         PresetManager<AACon> presets = msaws.getPresets();\r
104                         jobId = msaws.presetAnalize(fsl,\r
105                                         presets.getPresetByName("Quick conservation"));\r
106                         result = msaws.getAnnotation(jobId);\r
107                         assertNotNull(result);\r
108                         assertEquals(result.asSet().size(), 13);\r
109 \r
110                         jobId = msaws.presetAnalize(fsl,\r
111                                         presets.getPresetByName("Slow conservation"));\r
112                         result = msaws.getAnnotation(jobId);\r
113                         assertNotNull(result);\r
114                         assertEquals(result.asSet().size(), 5);\r
115 \r
116                         jobId = msaws.presetAnalize(fsl,\r
117                                         presets.getPresetByName("Complete conservation"));\r
118                         result = msaws.getAnnotation(jobId);\r
119                         assertNotNull(result);\r
120                         assertEquals(result.asSet().size(), 18);\r
121 \r
122                 } catch (UnsupportedRuntimeException e) {\r
123                         e.printStackTrace();\r
124                         fail(e.getMessage());\r
125                 } catch (LimitExceededException e) {\r
126                         e.printStackTrace();\r
127                         fail(e.getMessage());\r
128                 } catch (JobSubmissionException e) {\r
129                         e.printStackTrace();\r
130                         fail(e.getMessage());\r
131                 } catch (ResultNotAvailableException e) {\r
132                         e.printStackTrace();\r
133                         fail(e.getMessage());\r
134                 } catch (WrongParameterException e) {\r
135                         e.printStackTrace();\r
136                         fail(e.getMessage());\r
137                 }\r
138 \r
139         }\r
140         @Test(groups = {AllTestSuit.test_group_webservices})\r
141         public void testRecoverArgsForPreset() throws Exception {\r
142                 PresetManager<AACon> presets = msaws.getPresets();\r
143                 for (Preset<AACon> preset:presets.getPresets())\r
144                 {\r
145                         List<Option<AACon>> args = preset.getArguments(msaws.getRunnerOptions());\r
146                         List opts = preset.getOptions();\r
147                         assertTrue(args.size()>=opts.size(),"Couldn't recover all Option items for preset "+preset.getName());\r
148                 }\r
149         }\r
150         @Test(groups = {AllTestSuit.test_group_webservices})\r
151         public void testPresetAnalize() throws FileNotFoundException, IOException {\r
152 \r
153                 String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
154                                 + File.separator;\r
155 \r
156                 List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
157                                 CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
158                                                 + File.separator + "TO1381.fasta.aln"));\r
159 \r
160                 try {\r
161                         System.out.println("Pres: " + msaws.getPresets().getPresets());\r
162 \r
163                         // Using presets\r
164                         PresetManager<AACon> presets = msaws.getPresets();\r
165                         String jobId = msaws.presetAnalize(fsl,\r
166                                         presets.getPresetByName("Quick conservation"));\r
167                         ScoreManager result = msaws.getAnnotation(jobId);\r
168                         assertNotNull(result);\r
169                         assertEquals(result.asSet().size(), 13);\r
170 \r
171                         jobId = msaws.presetAnalize(fsl,\r
172                                         presets.getPresetByName("Slow conservation"));\r
173                         result = msaws.getAnnotation(jobId);\r
174                         assertNotNull(result);\r
175                         assertEquals(result.asSet().size(), 5);\r
176 \r
177                         jobId = msaws.presetAnalize(fsl,\r
178                                         presets.getPresetByName("Complete conservation"));\r
179                         result = msaws.getAnnotation(jobId);\r
180                         assertNotNull(result);\r
181                         assertEquals(result.asSet().size(), 18);\r
182 \r
183                 } catch (UnsupportedRuntimeException e) {\r
184                         e.printStackTrace();\r
185                         fail(e.getMessage());\r
186                 } catch (LimitExceededException e) {\r
187                         e.printStackTrace();\r
188                         fail(e.getMessage());\r
189                 } catch (JobSubmissionException e) {\r
190                         e.printStackTrace();\r
191                         fail(e.getMessage());\r
192                 } catch (ResultNotAvailableException e) {\r
193                         e.printStackTrace();\r
194                         fail(e.getMessage());\r
195                 } catch (WrongParameterException e) {\r
196                         e.printStackTrace();\r
197                         fail(e.getMessage());\r
198                 }\r
199 \r
200         }\r
201 \r
202         @Test(groups = {AllTestSuit.test_group_webservices})\r
203         public void testCustomAnalize() throws FileNotFoundException, IOException {\r
204 \r
205                 String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
206                                 + File.separator;\r
207 \r
208                 List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
209                                 CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
210                                                 + File.separator + "TO1381.fasta.aln"));\r
211 \r
212                 // Using options\r
213                 RunnerConfig<AACon> options = msaws.getRunnerOptions();\r
214                 // System.out.println(options.getArguments());\r
215 \r
216                 try {\r
217                         List<Option<AACon>> args = new ArrayList<Option<AACon>>();\r
218                         Option<AACon> arg,normarg;\r
219                         args.add(arg=options.getArgument("SMERFS"));\r
220                         args.add(normarg=options.getArgument("Normalize"));\r
221                         arg.setValue(arg.getPossibleValues().get(0));\r
222                         // options.getArgument("SMERFS Column Scoring Method")\r
223                         // .setDefaultValue("MAX_SCORE");\r
224                         // options.getArgument("SMERFS Gap Threshhold").setDefaultValue("1");\r
225                         String jobId = msaws.customAnalize(fsl, args);\r
226                         ScoreManager result = msaws.getAnnotation(jobId);\r
227                         assertNotNull(result);\r
228                         assertEquals(result.asSet().size(), 1);\r
229                         assertEquals(result.asSet().iterator().next().getScores().get(0),\r
230                                         0.698f);\r
231                         args.remove(normarg); // remove normalization argument\r
232                         // System.out.println(options);\r
233                         jobId = msaws.customAnalize(fsl, args);\r
234                         result = msaws.getAnnotation(jobId);\r
235                         assertNotNull(result);\r
236                         assertEquals(result.asSet().size(), 1);\r
237                         assertEquals(result.asSet().iterator().next().getScores().get(0),\r
238                                         0.401f);\r
239 \r
240                 } catch (WrongParameterException e) {\r
241                         e.printStackTrace();\r
242                         fail(e.getMessage());\r
243                 } catch (UnsupportedRuntimeException e) {\r
244                         e.printStackTrace();\r
245                         fail(e.getMessage());\r
246                 } catch (LimitExceededException e) {\r
247                         e.printStackTrace();\r
248                         fail(e.getMessage());\r
249                 } catch (JobSubmissionException e) {\r
250                         e.printStackTrace();\r
251                         fail(e.getMessage());\r
252                 } catch (ResultNotAvailableException e) {\r
253                         e.printStackTrace();\r
254                         fail(e.getMessage());\r
255                 }\r
256         }\r
257 }\r