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