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