comparison t/massbank_ws_searchspectrum_Test.t @ 0:023c380900ef draft default tip

Init repository with last massbank_ws_searchspectrum master version
author fgiacomoni
date Wed, 19 Apr 2017 11:31:58 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:023c380900ef
1 #! perl
2 use diagnostics;
3 use warnings;
4 no warnings qw/void/;
5 use strict;
6 no strict "refs" ;
7 use Test::More qw( no_plan );
8 #use Test::More tests => 8 ; ## with MAPPER SEQUENCE
9 use FindBin ;
10 use Carp ;
11
12 ## Specific Modules
13 use lib $FindBin::Bin ;
14 my $binPath = $FindBin::Bin ;
15 use lib::massbank_api_Test qw( :ALL ) ;
16 use lib::massbank_mapper_Test qw( :ALL ) ;
17 use lib::massbank_main_Test qw( :ALL ) ;
18
19
20 ## To launch the right sequence : MAIN, API, MAPPER, THREADER, COMPUTE...
21 my $sequence = 'COMPUTE' ;
22 my $current_test = 1 ;
23 my $server = 'EU' ;
24
25
26 if ($sequence eq "COMPUTE") {
27 print "\n\t\t\t\t * * * * * * \n" ;
28 print "\t * * * - - - Test MassBank Main script - - - * * * \n\n" ;
29 sleep 1 ; print "\n** Test $current_test min_from_double_with_delta with doubles **\n" ; $current_test++ ;
30 is_deeply( min_from_double_with_deltaTest (
31 303.0485467, 'Da', 0.01),
32 303.0385467,
33 'Method \'min_and_max_from_double_with_delta\' works with a double and return the attended min value');
34
35 sleep 1 ; print "\n** Test $current_test max_from_double_with_delta with doubles **\n" ; $current_test++ ;
36 is_deeply( max_from_double_with_deltaTest (
37 303.0485467, 'Da', 0.01),
38 303.0585467001,
39 'Method \'max_from_double_with_delta\' works with a double and return the attended max value');
40
41 }
42 elsif ($sequence eq "MAIN") {
43 print "\n\t\t\t\t * * * * * * \n" ;
44 print "\t * * * - - - Test MassBank Main script - - - * * * \n\n" ;
45 ## Test NORMAL file => OK
46 ok( run_main_massbank_pl(
47 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/pcgrp_annot.tsv',
48 1, 14, 7, 1, 0.5,
49 'Positive', 'all', 2, 'unit', 0.3, 5, 'EU',
50 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out1.json',
51 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out1.csv',
52 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out1.xls'),
53 'Main script massbank_ws_searchspectrum.pl with is running and manage normal data (mz, ) ' );
54
55 ## Test BUG file wih relative intensities => OK
56 ok( run_main_massbank_pl(
57 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/261-pcgroups-mz-relative_int.tsv',
58 '2', '1', '3', '1', 0.5,
59 'Positive', 'all', 2, 'unit', 0.3, 5, 'JP',
60 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out2.json',
61 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out2.csv',
62 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out2.xls'),
63 'Main script massbank_ws_searchspectrum.pl with is running and manage real file (mz, relative int, ...)' );
64
65 ## Test BUG file wih real intensities (>10000) => OK
66 ok( run_main_massbank_pl(
67 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/2214-mz-int-pcgroups.tsv',
68 '1', '3', '2', '1', 0.5,
69 'Positive', 'all', 2, 'unit', 0.3, 5, 'JP',
70 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out3.json',
71 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out3.csv',
72 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out3.xls'),
73 'Main script massbank_ws_searchspectrum.pl with is running and manage real file (mz, relative int, ...)' );
74
75 ## Test BUG file wih relative intensities and ppm / 15 / 5 => OK
76 ok( run_main_massbank_pl(
77 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/261-pcgroups-mz-relative_int.tsv',
78 '2', '1', '3', '1', 0.5,
79 'Positive', 'all', 2, 'ppm', 15, 5, 'JP',
80 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out4.json',
81 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out4.csv',
82 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out4.xls'),
83 'Main script massbank_ws_searchspectrum.pl with is running and manage real file (mz, relative int, ...)' );
84
85 ## Test BUG file wih real intensities (>10000) and ppm / 15 / 5 + long file => OK
86 ok( run_main_massbank_pl(
87 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/2214-mz-int-pcgroups.tsv',
88 '1', '3', '2', '1', 0.5,
89 'Positive', 'all', 2, 'ppm', 15, 5, 'JP',
90 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out5.json',
91 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out5.csv',
92 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out5.xls'),
93 'Main script massbank_ws_searchspectrum.pl with is running and manage real file (mz, int, ...)' );
94
95 ## Test BUG file wih real intensities (>10000) and ppm / 15 / 5 + long file -> parameters c5b5ac363f7bdb2d => OK
96 ok( run_main_massbank_pl(
97 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/2214-mz-int-pcgroups.tsv',
98 '1', '3', '2', '1', 0.5,
99 'Positive', "LC-ESI-IT,LC-ESI-ITFT,LC-ESI-ITTOF,LC-ESI-Q,LC-ESI-QFT,LC-ESI-QIT,LC-ESI-QQ,LC-ESI-QTOF,LC-ESI-TOF", 10, 'ppm', 15, 5, 'JP',
100 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out6.json',
101 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out6.csv',
102 '/Users/fgiacomoni/Inra/labs/tests/massbank_V02/out6.xls'),
103 'Main script massbank_ws_searchspectrum.pl with is running and manage real file (mz, int, ...)' );
104
105 }
106
107
108 #-masses
109 #-col_mz 1
110 #-col_pcgroup 14
111 #-col_int 7
112 #-lineheader 1
113 #-mode Positive
114 #-instruments all
115 #-max 2
116 #-unit unit
117 #-tolerance 0.3
118 #-cutoff 5
119 #-server JP
120 #-json /Users/fgiacomoni/Inra/labs/tests/massbank_V02/out.json
121 #-csv /Users/fgiacomoni/Inra/labs/tests/massbank_V02/out.csv
122 #-xls /Users/fgiacomoni/Inra/labs/tests/massbank_V02/out.xls
123
124
125 elsif ($sequence eq "MAPPER") {
126
127 ## testing mapper module of massbank wrapper.
128 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
129 print "\n\t\t\t\t * * * * * * \n" ;
130 print "\t * * * - - - Test MassBank Mapper module - - - * * * \n\n" ;
131
132 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
133 # ARGVTS : $pcs, $mzs, $ints
134 sleep 1 ; print "\n** Test $current_test get_pcgroup_list with pcs array **\n" ; $current_test++ ;
135 is_deeply( get_pcgroup_listTest (
136 [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,8,8,8,8,8,9,9,10,10,10,10,11,12,13,13,13,14,14,14] ),
137 ['1', '2','3','4','5','6','7','8','9','10','11','12','13','14'] ,
138 'Method \'getPcgroupList\' works with various and multiple pcgroups and return the attended uniq pcgroups array');
139
140
141 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
142 # ARGVTS : $pcs, $mzs, $ints
143 print "\n** Test $current_test get_pcgroups with pcs, mzs, ints arrays **\n" ; $current_test++ ;
144 is_deeply( get_pcgroupsTest (
145 [1, 2, 1, 2, 1, 2, 1], ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'], ['300', '300', '300', '300', '300', '300', '300'] ),
146 { '1' => { 'id' => '1',
147 'mzmed' => ['273.096','290.118','292.113','580.179'],
148 'into' => ['300','300','300','300'],
149 'annotation' => {},
150 'massbank_ids' => [] },
151 '2' => { 'annotation' => {},
152 'into' => ['300','300','300'],
153 'mzmed' => ['289.086','291.096','579.169'],
154 'id' => '2',
155 'massbank_ids' => [], }
156 },
157 'Method \'getPcgroups\' works with two pcgroups and return the attended pcgroups object');
158
159 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
160 # ARGVTS : $pcs, $mzs, $ints
161 print "\n** Test $current_test get_pcgroups with pcs, mzs, ints (some can be equal to 0) arrays **\n" ; $current_test++ ;
162 is_deeply( get_pcgroupsTest (
163 [1, 2, 1, 2, 1, 2, 1], ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'], ['0', '300', '300', '300', '300', '300', '300'] ),
164 { '1' => { 'id' => '1',
165 'mzmed' => ['273.096','290.118','292.113','580.179'],
166 'into' => ['0','300','300','300'],
167 'annotation' => {},
168 'massbank_ids' => [] },
169 '2' => { 'annotation' => {},
170 'into' => ['300','300','300'],
171 'mzmed' => ['289.086','291.096','579.169'],
172 'id' => '2',
173 'massbank_ids' => [], }
174 },
175 'Method \'getPcgroups\' works with two pcgroups (with intensity equal to 0) and return the attended pcgroups object');
176
177
178
179 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
180 ## ARGVTS : $header, $init_pcs, $pcgroups
181 sleep 1 ; print "\n** Test $current_test set_massbank_matrix_object with pc array and pcgroups object **\n" ; $current_test++ ;
182 is_deeply( set_massbank_matrix_objectTest ( 'massbank', [1,1,2,2,1],
183 { '1' => { 'id' => '1',
184 'mzmed' => ['273.096','290.118','292.113','580.179'],
185 'into' => ['300','300','300','300'],
186 'annotation' => {'num_res' => 3},
187 'massbank_ids' => ['CA0001', 'CA0011', 'CA0111'] },
188 '2' => { 'annotation' => {'num_res' => 3},
189 'into' => ['300','300','300'],
190 'mzmed' => ['289.086','291.096','579.169'],
191 'id' => '2',
192 'massbank_ids' => ['CA0002', 'CA0022', 'CA0222'], }
193 } ), ## end argvts
194 [ [ 'massbank' ], ['CA0001|CA0011|CA0111'],['CA0001|CA0011|CA0111'], ['CA0002|CA0022|CA0222'], ['CA0002|CA0022|CA0222'], ['CA0001|CA0011|CA0111'] ],
195 'Method \'set_massbank_matrix_object\' works with header, pcs list, pcgroups and return the attended massbank matrix');
196
197 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
198 ## ARGVTS : $header, $init_pcs, $pcgroups
199 sleep 1 ; print "\n** Test $current_test set_massbank_matrix_object with undef hearder, pc array and pcgroups object **\n" ; $current_test++ ;
200 is_deeply( set_massbank_matrix_objectTest ( undef, [1,1,2,2,1],
201 { '1' => { 'id' => '1',
202 'mzmed' => ['273.096','290.118','292.113','580.179'],
203 'into' => ['300','300','300','300'],
204 'annotation' => {'num_res' => 3},
205 'massbank_ids' => ['CA0001', 'CA0011', 'CA0111'] },
206 '2' => { 'annotation' => {'num_res' => 3},
207 'into' => ['300','300','300'],
208 'mzmed' => ['289.086','291.096','579.169'],
209 'id' => '2',
210 'massbank_ids' => ['CA0002', 'CA0022', 'CA0222'], }
211 } ), ## end argvts
212 [ ['CA0001|CA0011|CA0111'],['CA0001|CA0011|CA0111'], ['CA0002|CA0022|CA0222'], ['CA0002|CA0022|CA0222'], ['CA0001|CA0011|CA0111'] ],
213 'Method \'set_massbank_matrix_object\' works with undef header and return the attended massbank matrix');
214
215 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
216 ## ARGVTS : $header, $init_pcs, $pcgroups
217 sleep 1 ; print "\n** Test $current_test set_massbank_matrix_object with empty massbankIds **\n" ; $current_test++ ;
218 is_deeply( set_massbank_matrix_objectTest ( 'massbank', [1,1,2,2,1],
219 { '1' => { 'id' => '1',
220 'mzmed' => ['273.096','290.118','292.113','580.179'],
221 'into' => ['300','300','300','300'],
222 'annotation' => {'num_res' => 3},
223 'massbank_ids' => ['CA0001', 'CA0011', 'CA0111'] },
224 '2' => { 'annotation' => {'num_res' => 0},
225 'into' => ['300','300','300'],
226 'mzmed' => ['289.086','291.096','579.169'],
227 'id' => '2',
228 'massbank_ids' => [], }
229 } ), ## end argvts
230 [ [ 'massbank' ], ['CA0001|CA0011|CA0111'],['CA0001|CA0011|CA0111'], ['No_result_found_on_MassBank'], ['No_result_found_on_MassBank'], ['CA0001|CA0011|CA0111'] ],
231 'Method \'set_massbank_matrix_object\' works with empty massbank_ids and return the attended massbank matrix');
232
233 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
234 ## ARGVTS : $input_matrix_object, $massbank_matrix_object
235 sleep 1 ; print "\n** Test $current_test add_massbank_matrix_to_input_matrix with two matrix **\n" ; $current_test++ ;
236 is_deeply( add_massbank_matrix_to_input_matrixTest (
237 [[ 'pcgroup' ],[1],[1],[2],[2],[1]],
238 [ [ 'massbank' ], ['CA0001|CA0011|CA0111'],['CA0001|CA0011|CA0111'], ['CA0002|CA0022|CA0222'], ['CA0002|CA0022|CA0222'], ['CA0001|CA0011|CA0111'] ],
239 ), ## end argvts
240 [ ['pcgroup','massbank'],[1,'CA0001|CA0011|CA0111'],[1,'CA0001|CA0011|CA0111'],[2,'CA0002|CA0022|CA0222'],[2,'CA0002|CA0022|CA0222'],[1,'CA0001|CA0011|CA0111']
241 ], ## end results
242 'Method \'add_massbank_matrix_to_input_matrix\' works with two wel formatted matrix and return the right csv matrix');
243
244 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
245 ## ARGVTS : $pcgroups_object, threshold
246 sleep 1 ; print "\n** Test $current_test filter_pcgroup_res with pcgroups object and a threshold **\n" ; $current_test++ ;
247 is_deeply( filter_pcgroup_resTest (
248 { '1' => { 'massbank_ids' => ['MB0004', 'MB0005', 'MB0008'], 'annotation' => {'res' => [ {'score' => 0.4, 'id' => 'MB0004'}, {'score' => 0.8, 'id' => 'MB0008' }, {'score' => 0.5, 'id' => 'MB0005' } ], 'num_res' => 3 } }, '2' => { 'massbank_ids' => ['MB0004', 'MB0008', 'MB0007'], 'annotation' => {'res' => [{'score' => 0.4, 'id' => 'MB0004'}, {'score' => 0.8, 'id' => 'MB0008'}, {'score' => 0.7, 'id' => 'MB0007'} ], 'num_res' => 3 } } },
249 0.5
250 ), ## end argvts
251 { '1' => { 'massbank_ids' => ['MB0005', 'MB0008'], 'annotation' => { 'res' => [ {'score' => 0.5, 'id' => 'MB0005' }, {'score' => 0.8, 'id' => 'MB0008'} ], 'num_res' => 2 } }, '2' => { 'massbank_ids' => ['MB0007', 'MB0008'], 'annotation' => {'res' => [{'score' => 0.7, 'id' => 'MB0007' }, {'score' => 0.8, 'id' => 'MB0008' } ], 'num_res' => 2 } } },
252 ## end results
253 'Method \'filter_pcgroup_resTest\' works with well formated pcgroups object and a float for threshold');
254
255 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
256 ## ARGVTS : $pcgroups_object, threshold
257 sleep 1 ; print "\n** Test $current_test filter_pcgroup_res with empty pcgroups object and a threshold **\n" ; $current_test++ ;
258 is_deeply( filter_pcgroup_resTest (
259 { '1' => { 'massbank_ids' => [], 'annotation' => {'res' => [ ], 'num_res' => 1 } }, '2' => { 'massbank_ids' => [], 'annotation' => {'res' => [ ], 'num_res' => 1 } } },
260 0.5
261 ), ## end argvts
262 { '1' => { 'massbank_ids' => [], 'annotation' => { 'res' => [ ], 'num_res' => 0 } }, '2' => { 'massbank_ids' => [], 'annotation' => {'res' => [ ], 'num_res' => 0 } } },
263 ## end results
264 'Method \'filter_pcgroup_resTest\' works with an empty pcgroups object and a float for threshold');
265
266 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
267 ## ARGVTS : $pcgroups_object, threshold
268 sleep 1 ; print "\n** Test $current_test filter_pcgroup_res with pcgroups object but undef params and a threshold **\n" ; $current_test++ ;
269 is_deeply( filter_pcgroup_resTest (
270 { '1' => { 'massbank_ids' => [], 'annotation' => {'res' => [ {'score' => undef, 'id' => undef} ], 'num_res' => 0 } }, '2' => { 'massbank_ids' => ['MB0004', 'MB0008', 'MB0007'], 'annotation' => {'res' => [{'score' => 0.4, 'id' => 'MB0004'}, {'score' => 0.8, 'id' => 'MB0008'}, {'score' => 0.7, 'id' => 'MB0007'} ], 'num_res' => 3 } } },
271 0.5
272 ), ## end argvts
273 { '1' => { 'massbank_ids' => [], 'annotation' => { 'res' => [ {'score' => undef, 'id' => undef } ], 'num_res' => 0 } }, '2' => { 'massbank_ids' => ['MB0007', 'MB0008'], 'annotation' => {'res' => [{'score' => 0.7, 'id' => 'MB0007' }, {'score' => 0.8, 'id' => 'MB0008' } ], 'num_res' => 2 } } },
274 ## end results
275 'Method \'filter_pcgroup_resTest\' works with well formated pcgroups object (but undef value) and a float for threshold');
276
277 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
278 ## ARGVTS : $pcgroups_object
279 sleep 1 ; print "\n** Test $current_test compute_ids_from_pcgroups_res with pcgroups object **\n" ; $current_test++ ;
280 is_deeply( compute_ids_from_pcgroups_resTest (
281 { '1' => { 'massbank_ids' => ['MB0004', 'MB0005', 'MB0008'], 'annotation' => {'res' => [ {'score' => 0.4, 'id' => 'MB0004'}, {'score' => 0.8, 'id' => 'MB0008' }, {'score' => 0.5, 'id' => 'MB0005' } ], 'num_res' => 3 } }, '2' => { 'massbank_ids' => ['MB0004', 'MB0008', 'MB0007'], 'annotation' => {'res' => [{'score' => 0.4, 'id' => 'MB0004'}, {'score' => 0.8, 'id' => 'MB0008'}, {'score' => 0.7, 'id' => 'MB0007'} ], 'num_res' => 3 } } },
282 ), ## end argvts
283 ['MB0004', 'MB0005', 'MB0007', 'MB0008'],
284 ## end results
285 'Method \'compute_ids_from_pcgroups_res\' works with a classic pcgroups object return a nice and unique list of ids');
286
287
288 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
289 ## ARGVTS : $massbank_ids, chunk_size
290 sleep 1 ; print "\n** Test $current_test get_massbank_records_by_chunk with ids list **\n" ; $current_test++ ;
291 is_deeply( get_massbank_records_by_chunkTest (
292 'EU',
293 ['KOX00002', 'KOX00003', 'FU000001', 'TY000040', 'TY000041', 'FU000002'],
294 2
295 ), ## end argvts
296 ['ACCESSION: KOX00002
297 RECORD_TITLE: GABA; LC-ESI-QTOF; MS2; MERGED; [M+H]+
298 DATE: 2011.08.24 (Created 2008.11.28)
299 AUTHORS: Institute for Advanced Biosciences, Keio Univ.
300 LICENSE: Copyright 2006-2011 Keio
301 COMMENT: Peak data in the following records are not open to the public as requested by their authors.
302 COMMENT: Instead MassBank provides the merged spectra for the public.
303 COMMENT: This record was generated by merging the following three MassBank records.
304 COMMENT: [Merging] KO006374 GABA; LC-ESI-QTOF; MS2; CE:10 V [M+H]+
305 COMMENT: [Merging] KO006375 GABA; LC-ESI-QTOF; MS2; CE:20 V [M+H]+
306 COMMENT: [Merging] KO006376 GABA; LC-ESI-QTOF; MS2; CE:30 V [M+H]+
307 COMMENT: [Merging] KO006377 GABA; LC-ESI-QTOF; MS2; CE:40 V [M+H]+
308 COMMENT: [Merging] KO006378 GABA; LC-ESI-QTOF; MS2; CE:50 V [M+H]+
309 CH$NAME: GABA
310 CH$NAME: 4-Aminobutanoate
311 CH$NAME: 4-Aminobutanoic acid
312 CH$NAME: 4-Aminobutylate
313 CH$NAME: 4-Aminobutyrate
314 CH$NAME: 4-Aminobutyric acid
315 CH$NAME: gamma-Aminobutyric acid
316 CH$COMPOUND_CLASS: N/A
317 CH$FORMULA: C4H9NO2
318 CH$EXACT_MASS: 103.06333
319 CH$SMILES: NCCCC(O)=O
320 CH$IUPAC: InChI=1S/C4H9NO2/c5-3-1-2-4(6)7/h1-3,5H2,(H,6,7)
321 CH$LINK: CAS 56-12-2
322 CH$LINK: CHEBI 30566
323 CH$LINK: KEGG C00334
324 CH$LINK: NIKKAJI J1.375G
325 CH$LINK: PUBCHEM SID:3628
326 AC$INSTRUMENT: Qstar, Applied Biosystems
327 AC$INSTRUMENT_TYPE: LC-ESI-QTOF
328 AC$MASS_SPECTROMETRY: MS_TYPE MS2
329 AC$MASS_SPECTROMETRY: ION_MODE POSITIVE
330 MS$FOCUSED_ION: PRECURSOR_M/Z 104
331 MS$FOCUSED_ION: PRECURSOR_TYPE [M+H]+
332 PK$ANNOTATION: 39.0234750963 45.0340397826 68.0500241978 69.0340397826 86.0605888841 87.0446044689 104.0711535704
333 PK$NUM_PEAK: N/A
334 PK$PEAK: m/z int. rel.int.
335 N/A
336 ',
337 'ACCESSION: KOX00003
338 RECORD_TITLE: Adenosine; LC-ESI-QTOF; MS2; MERGED; [M-H]-
339 DATE: 2012.05.21 (Created 2008.11.28)
340 AUTHORS: Institute for Advanced Biosciences, Keio Univ.
341 LICENSE: Copyright 2006-2011 Keio
342 COMMENT: Peak data in the following records are not open to the public as requested by their authors.
343 COMMENT: Instead MassBank provides the merged spectra for the public.
344 COMMENT: This record was generated by merging the following three MassBank records.
345 COMMENT: [Merging] KO004298 Adenosine; LC-ESI-QTOF; MS2; CE:10 V [M-H]-
346 COMMENT: [Merging] KO004299 Adenosine; LC-ESI-QTOF; MS2; CE:20 V [M-H]-
347 COMMENT: [Merging] KO004301 Adenosine; LC-ESI-QTOF; MS2; CE:40 V [M-H]-
348 COMMENT: [Merging] KO004302 Adenosine; LC-ESI-QTOF; MS2; CE:50 V [M-H]-
349 CH$NAME: Adenosine
350 CH$COMPOUND_CLASS: N/A
351 CH$FORMULA: C10H13N5O4
352 CH$EXACT_MASS: 267.09675
353 CH$SMILES: OC[C@@H](O1)[C@@H](O)[C@@H](O)[C@@H]1n(c3)c(n2)c(n3)c(N)nc2
354 CH$IUPAC: InChI=1S/C10H13N5O4/c11-8-5-9(13-2-12-8)15(3-14-5)10-7(18)6(17)4(1-16)19-10/h2-4,6-7,10,16-18H,1H2,(H2,11,12,13)/t4-,6-,7-,10-/m1/s1
355 CH$LINK: CAS 58-61-7
356 CH$LINK: CHEBI 16335
357 CH$LINK: CHEMPDB ADN
358 CH$LINK: KEGG C00212
359 CH$LINK: NIKKAJI J4.501B
360 CH$LINK: PUBCHEM SID:3512
361 AC$INSTRUMENT: Qstar, Applied Biosystems
362 AC$INSTRUMENT_TYPE: LC-ESI-QTOF
363 AC$MASS_SPECTROMETRY: MS_TYPE MS2
364 AC$MASS_SPECTROMETRY: ION_MODE NEGATIVE
365 MS$FOCUSED_ION: PRECURSOR_M/Z 266
366 MS$FOCUSED_ION: PRECURSOR_TYPE [M-H]-
367 PK$ANNOTATION: 107.0357711171 134.0466701544 136.0623202186 266.0889288996
368 PK$NUM_PEAK: N/A
369 PK$PEAK: m/z int. rel.int.
370 N/A
371 ',
372 'ACCESSION: FU000001
373 RECORD_TITLE: 3-Man2GlcNAc; LC-ESI-QQ; MS2; CE:15V; Amide
374 DATE: 2016.01.19 (Created 2009.02.18, modified 2011.05.06)
375 AUTHORS: Matsuura F, Ohta M, Kittaka M, Faculty of Life Science and Biotechnology, Fukuyama University
376 LICENSE: CC BY-SA
377 CH$NAME: 3-Man2GlcNAc
378 CH$NAME: Man-alpha-1-3Man-beta-1-4GlcNac
379 CH$COMPOUND_CLASS: Natural Product; Oligosaccharide; N-linked glycan; High-mannose type
380 CH$FORMULA: C20H35NO16
381 CH$EXACT_MASS: 545.19558
382 CH$SMILES: CC(=O)NC(C(O)1)C(O)C(OC(O2)C(O)C(OC(O3)C(O)C(O)C(O)C(CO)3)C(O)C(CO)2)C(CO)O1
383 CH$IUPAC: InChI=1/C20H35NO16/c1-5(25)21-9-12(28)16(8(4-24)33-18(9)32)36-20-15(31)17(11(27)7(3-23)35-20)37-19-14(30)13(29)10(26)6(2-22)34-19/h6-20,22-24,26-32H,2-4H2,1H3,(H,21,25)/t6-,7-,8-,9-,10-,11-,12-,13+,14-,15+,16-,17+,18+,19-,20+/m1/s1/f/h21H
384 CH$LINK: CHEMSPIDER 24606097
385 CH$LINK: KEGG G00319
386 CH$LINK: OligosaccharideDataBase man 547428
387 CH$LINK: OligosaccharideDataBase2D map5 ODS=1.21 Amide=2.85
388 AC$INSTRUMENT: 2695 HPLC Quadro Micro API, Waters
389 AC$INSTRUMENT_TYPE: LC-ESI-QQ
390 AC$MASS_SPECTROMETRY: MS_TYPE MS2
391 AC$MASS_SPECTROMETRY: ION_MODE POSITIVE
392 AC$MASS_SPECTROMETRY: COLLISION_ENERGY 15.0 V
393 AC$MASS_SPECTROMETRY: DATAFORMAT Centroid
394 AC$MASS_SPECTROMETRY: DESOLVATION_GAS_FLOW 897 L/Hr
395 AC$MASS_SPECTROMETRY: DESOLVATION_TEMPERATURE 399 C
396 AC$MASS_SPECTROMETRY: FRAGMENTATION_METHOD LOW-ENERGY CID
397 AC$MASS_SPECTROMETRY: IONIZATION ESI
398 AC$MASS_SPECTROMETRY: SCANNING 1 amu/sec (m/z = 20-2040)
399 AC$MASS_SPECTROMETRY: SOURCE_TEMPERATURE 100C
400 AC$CHROMATOGRAPHY: COLUMN_NAME TSK-GEL Amide-80 2.0 mm X 250 mm (TOSOH)
401 AC$CHROMATOGRAPHY: COLUMN_TEMPERATURE 40 C
402 AC$CHROMATOGRAPHY: FLOW_GRADIENT 74/26 at 0 min, 50/50 at 60 min.
403 AC$CHROMATOGRAPHY: FLOW_RATE 0.2 ml/min
404 AC$CHROMATOGRAPHY: RETENTION_TIME 7.080 min
405 AC$CHROMATOGRAPHY: SAMPLING_CONE 43.10 V
406 AC$CHROMATOGRAPHY: SOLVENT CH3CN/H2O
407 MS$FOCUSED_ION: DERIVATIVE_FORM C29H46N2O17
408 MS$FOCUSED_ION: DERIVATIVE_MASS 694.27965
409 MS$FOCUSED_ION: DERIVATIVE_TYPE ABEE (p-Aminobenzoic acid ethyl ester)
410 MS$FOCUSED_ION: PRECURSOR_M/Z 695.00
411 MS$FOCUSED_ION: PRECURSOR_TYPE [M+H]+
412 PK$SPLASH: splash10-00080az000-bfe86aa7211a87812a06
413 PK$NUM_PEAK: 8
414 PK$PEAK: m/z int. rel.int.
415 370.8 3.277e5 366
416 371.4 3.036e4 34
417 532.0 5.812e4 65
418 532.6 2.982e5 333
419 533.3 5.196e4 58
420 694.1 4.564e5 510
421 694.8 8.939e5 999
422 695.4 5.537e4 62
423 ',
424 'ACCESSION: FU000002
425 RECORD_TITLE: 3-Man2GlcNAc; LC-ESI-QQ; MS2; CE:20V; Amide
426 DATE: 2016.01.19 (Created 2009.02.18, modified 2011.05.06)
427 AUTHORS: Matsuura F, Ohta M, Kittaka M, Faculty of Life Science and Biotechnology, Fukuyama University
428 LICENSE: CC BY-SA
429 CH$NAME: 3-Man2GlcNAc
430 CH$NAME: Man-alpha-1-3Man-beta-1-5GlcNac
431 CH$COMPOUND_CLASS: Natural Product; Oligosaccharide; N-linked glycan; High-mannose type
432 CH$FORMULA: C20H35NO16
433 CH$EXACT_MASS: 545.19558
434 CH$SMILES: CC(=O)NC(C(O)1)C(O)C(OC(O2)C(O)C(OC(O3)C(O)C(O)C(O)C(CO)3)C(O)C(CO)2)C(CO)O1
435 CH$IUPAC: InChI=1/C20H35NO16/c1-5(25)21-9-12(28)16(8(4-24)33-18(9)32)36-20-15(31)17(11(27)7(3-23)35-20)37-19-14(30)13(29)10(26)6(2-22)34-19/h6-20,22-24,26-32H,2-4H2,1H3,(H,21,25)/t6-,7-,8-,9-,10-,11-,12-,13+,14-,15+,16-,17+,18+,19-,20+/m1/s1/f/h21H
436 CH$LINK: CHEMSPIDER 24606097
437 CH$LINK: KEGG G00319
438 CH$LINK: OligosaccharideDataBase man 547428
439 CH$LINK: OligosaccharideDataBase2D map5 ODS=1.21 Amide=2.85
440 AC$INSTRUMENT: 2695 HPLC Quadro Micro API, Waters
441 AC$INSTRUMENT_TYPE: LC-ESI-QQ
442 AC$MASS_SPECTROMETRY: MS_TYPE MS2
443 AC$MASS_SPECTROMETRY: ION_MODE POSITIVE
444 AC$MASS_SPECTROMETRY: COLLISION_ENERGY 20.0 V
445 AC$MASS_SPECTROMETRY: DATAFORMAT Centroid
446 AC$MASS_SPECTROMETRY: DESOLVATION_GAS_FLOW 897 L/Hr
447 AC$MASS_SPECTROMETRY: DESOLVATION_TEMPERATURE 399 C
448 AC$MASS_SPECTROMETRY: FRAGMENTATION_METHOD LOW-ENERGY CID
449 AC$MASS_SPECTROMETRY: IONIZATION ESI
450 AC$MASS_SPECTROMETRY: SCANNING 1 amu/sec (m/z = 20-2040)
451 AC$MASS_SPECTROMETRY: SOURCE_TEMPERATURE 100C
452 AC$CHROMATOGRAPHY: COLUMN_NAME TSK-GEL Amide-80 2.0 mm X 250 mm (TOSOH)
453 AC$CHROMATOGRAPHY: COLUMN_TEMPERATURE 40 C
454 AC$CHROMATOGRAPHY: FLOW_GRADIENT 74/26 at 0 min, 50/50 at 60 min.
455 AC$CHROMATOGRAPHY: FLOW_RATE 0.2 ml/min
456 AC$CHROMATOGRAPHY: RETENTION_TIME 7.088 min
457 AC$CHROMATOGRAPHY: SAMPLING_CONE 43.10 V
458 AC$CHROMATOGRAPHY: SOLVENT CH3CN/H2O
459 MS$FOCUSED_ION: DERIVATIVE_FORM C29H46N2O17
460 MS$FOCUSED_ION: DERIVATIVE_MASS 694.27965
461 MS$FOCUSED_ION: DERIVATIVE_TYPE ABEE (p-Aminobenzoic acid ethyl ester)
462 MS$FOCUSED_ION: PRECURSOR_M/Z 695.00
463 MS$FOCUSED_ION: PRECURSOR_TYPE [M+H]+
464 PK$SPLASH: splash10-000z0fb000-52e2618a90c53226e008
465 PK$NUM_PEAK: 10
466 PK$PEAK: m/z int. rel.int.
467 324.9 5.549e4 65
468 370.8 8.511e5 999
469 371.3 8.989e4 106
470 486.8 2.622e4 31
471 532.0 5.832e4 68
472 532.7 3.515e5 413
473 533.3 3.910e4 46
474 693.9 4.249e4 50
475 694.5 1.979e5 232
476 695.3 9.682e4 114
477 ',
478 'ACCESSION: TY000040
479 RECORD_TITLE: Aconitine; LC-ESI-ITTOF; MS; [M+H]+
480 DATE: 2016.01.19 (Created 2008.10.10, modified 2011.05.06)
481 AUTHORS: Ken Tanaka
482 LICENSE: CC BY-SA
483 CH$NAME: Aconitine
484 CH$NAME: NSC56464
485 CH$NAME: 16-Ethyl-1alpha,6alpha,19beta-trimethoxy-4-(methoxymethyl)-aconitane-3alpha,8,10alpha,11,18alpha-pentol, 8-acetate 10-benzoate
486 CH$NAME: 20-ethyl-3alpha,13,15alpha-trihydroxy-1alpha,6alpha,16beta-trimethoxy-4-(methoxymethyl)aconitane-8,14alpha-diyl 8-acetate 14-benzoate
487 CH$COMPOUND_CLASS: Natural Product; Alkaloid
488 CH$FORMULA: C34H47NO11
489 CH$EXACT_MASS: 645.31491
490 CH$SMILES: COC(C7)C(C61[H])(C5([H])2)C(N(CC(COC)6C7O)CC)([H])C(C(C5([H])3)(C(C(OC)C(O)(C(OC(=O)c(c4)cccc4)3)C2)O)OC(C)=O)([H])C1OC
491 CH$IUPAC: InChI=1S/C34H47NO11/c1-7-35-15-31(16-41-3)20(37)13-21(42-4)33-19-14-32(40)28(45-30(39)18-11-9-8-10-12-18)22(19)34(46-17(2)36,27(38)29(32)44-6)23(26(33)35)24(43-5)25(31)33/h8-12,19-29,37-38,40H,7,13-16H2,1-6H3/t19-,20-,21+,22-,23+,24+,25-,26+,27+,28-,29+,31+,32-,33+,34-/m1/s1
492 CH$LINK: CAS 302-27-2
493 CH$LINK: NIKKAJI J9.871J
494 CH$LINK: PUBCHEM 245005
495 AC$INSTRUMENT: Shimadzu LC20A-IT-TOFMS
496 AC$INSTRUMENT_TYPE: LC-ESI-ITTOF
497 AC$MASS_SPECTROMETRY: MS_TYPE MS
498 AC$MASS_SPECTROMETRY: ION_MODE POSITIVE
499 AC$MASS_SPECTROMETRY: CDL_TEMPERATURE 200 C
500 AC$MASS_SPECTROMETRY: INTERFACE_VOLTAGE +4.50 kV
501 AC$MASS_SPECTROMETRY: SCANNING_RANGE 100-2000
502 AC$CHROMATOGRAPHY: COLUMN_NAME Waters Atlantis T3 (2.1 x 150 mm, 5 um)
503 AC$CHROMATOGRAPHY: COLUMN_TEMPERATURE 40 C
504 AC$CHROMATOGRAPHY: FLOW_GRADIENT 10 % B to 100 % B/40 min
505 AC$CHROMATOGRAPHY: FLOW_RATE 0.2 ml/min
506 AC$CHROMATOGRAPHY: RETENTION_TIME 1197.701
507 AC$CHROMATOGRAPHY: SOLVENT (A)5 mM ammonium acetate, (B)CH3CN
508 MS$FOCUSED_ION: ION_TYPE [M+H]+
509 PK$SPLASH: splash10-000000z000-1f6554288e1249b37bcb
510 PK$NUM_PEAK: 3
511 PK$PEAK: m/z int. rel.int.
512 646.3223 64380108 999
513 647.3252 26819201 416
514 648.3309 7305831 113
515 ',
516 'ACCESSION: TY000041
517 RECORD_TITLE: Atropine; LC-ESI-ITTOF; MS; [M+H]+
518 DATE: 2016.01.19 (Created 2008.10.10, modified 2011.05.06)
519 AUTHORS: Ken Tanaka
520 LICENSE: CC BY-SA
521 CH$NAME: Atropine
522 CH$NAME: Benzeneacetic acid, alpha-(hydroxymethyl)- (3-endo)-8-methyl-8-azabicyclo[3.2.1]oct-3-yl ester
523 CH$NAME: 1alphaH,5alphaH-Tropan-3alpha-ol (+-)-tropate (ester)
524 CH$NAME: Benzeneacetic acid, alpha-(hydroxymethyl)-, 8-methyl-8-azabicyclo[3.2.1]oct-3-yl ester, endo-
525 CH$NAME: (+-)-Atropine
526 CH$NAME: (+-)-Hyoscyamine
527 CH$NAME: Tropine (+-)-tropate
528 CH$NAME: dl-Tropyl tropate
529 CH$NAME: dl-Hyoscyamine
530 CH$NAME: Tropine tropate
531 CH$NAME: Atropinol
532 CH$NAME: Eyesules
533 CH$NAME: Atropen
534 CH$NAME: Isopto-atropine
535 CH$NAME: Troyl tropate
536 CH$NAME: Belladenal
537 CH$NAME: Atropina
538 CH$NAME: Cytospaz
539 CH$NAME: Donnagel
540 CH$NAME: Anaspaz
541 CH$NAME: Atnaa
542 CH$NAME: Lonox
543 CH$NAME: Neo-Diophen
544 CH$NAME: DL-Tropanyl 2-hydroxy-1-phenylpropionate
545 CH$NAME: 2-Phenylhydracrylic acid 3-alpha-tropanyl ester
546 CH$NAME: tropan-3alpha-yl 3-hydroxy-2-phenylpropanoate
547 CH$NAME: 8-Methyl-8-azabicyclo[3.2.1]oct-3-yl tropate
548 CH$NAME: 8-Methyl-8-azabicyclo[3.2.1]oct-3-yl 3-hydroxy-2-phenylpropanoate
549 CH$NAME: alpha-(Hydroxymethyl)benzeneacetic acid 8-methyl-8-azabicyclo(3.2.1)oct-3-yl ester
550 CH$NAME: Benzeneacetic acid, alpha-(hydroxymethyl)-, (3-endo)-8-methyl-8-azabicyclo(3.2.1)oct-3-yl ester
551 CH$NAME: (3-endo)-8-methyl-8-azabicyclo[3.2.1]oct-3-yl (2S)-3-hydroxy-2-phenylpropanoate
552 CH$NAME: [(1R,5S)-8-methyl-8-azabicyclo[3.2.1]octan-3-yl] 3-hydroxy-2-phenylpropanoate
553 CH$NAME: beta-(Hydroxymethyl)benzeneacetic acid 8-methyl-8-azabicyclo[3.2.1]oct-3-yl ester
554 CH$NAME: endo-(+/-)-alpha-(Hydroxymethyl)benzeneacetic acid 8-methyl-8-azabicyclo[3.2.1]oct-3-yl ester
555 CH$COMPOUND_CLASS: Natural Product; Alkaloid
556 CH$FORMULA: C17H23NO3
557 CH$EXACT_MASS: 289.16779
558 CH$SMILES: OCC(C(=O)OC(C2)CC(C3)N(C)C(C3)2)c(c1)cccc1
559 CH$IUPAC: InChI=1S/C17H23NO3/c1-18-13-7-8-14(18)10-15(9-13)21-17(20)16(11-19)12-5-3-2-4-6-12/h2-6,13-16,19H,7-11H2,1H3/t13-,14+,15+,16?
560 CH$LINK: CAS 51-55-8
561 CH$LINK: NIKKAJI J237.402A
562 CH$LINK: PUBCHEM 174174
563 AC$INSTRUMENT: Shimadzu LC20A-IT-TOFMS
564 AC$INSTRUMENT_TYPE: LC-ESI-ITTOF
565 AC$MASS_SPECTROMETRY: MS_TYPE MS
566 AC$MASS_SPECTROMETRY: ION_MODE POSITIVE
567 AC$MASS_SPECTROMETRY: CDL_TEMPERATURE 200 C
568 AC$MASS_SPECTROMETRY: INTERFACE_VOLTAGE +4.50 kV
569 AC$MASS_SPECTROMETRY: SCANNING_RANGE 100-2000
570 AC$CHROMATOGRAPHY: COLUMN_NAME Waters Atlantis T3 (2.1 x 150 mm, 5 um)
571 AC$CHROMATOGRAPHY: COLUMN_TEMPERATURE 40 C
572 AC$CHROMATOGRAPHY: FLOW_GRADIENT 10 % B to 100 % B/40 min
573 AC$CHROMATOGRAPHY: FLOW_RATE 0.2 ml/min
574 AC$CHROMATOGRAPHY: RETENTION_TIME 641.701
575 AC$CHROMATOGRAPHY: SOLVENT (A)5 mM ammonium acetate, (B)CH3CN
576 MS$FOCUSED_ION: ION_TYPE [M+H]+
577 PK$SPLASH: splash10-00z0000000-bdadd43ab0e2444986f1
578 PK$NUM_PEAK: 2
579 PK$PEAK: m/z int. rel.int.
580 290.1754 109188681 999
581 291.1762 21571851 197
582 '
583 ],
584 ## end results
585 'Method \'get_massbank_records_by_chunk\' works with a full ids list and return a nice and unique list of records from WS-MassBank');
586
587
588 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
589
590 ## END of MAPPER SEQUENCE ##
591
592 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
593 }
594
595 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
596
597 ## START of API SEQUENCE ##
598
599 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
600 elsif ($sequence eq "API") {
601
602 ## testing connectMassBank on Japan and DE servers.
603 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
604 print "\n\t\t\t\t * * * * * * \n" ;
605 print "\t * * * - - - Test MassBank API from SOAP - - - * * * \n\n" ;
606
607
608
609 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
610 print "\n** Test $current_test connectMassBankJP with real uri and proxy **\n" ; $current_test++;
611 isa_ok( connectMassBankJPTest(), 'SOAP::Lite' );
612
613 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
614 print "\n** Test $current_test connectMassBankDE with real uri and proxy **\n" ; $current_test++ ;
615 isa_ok( connectMassBankDETest(), 'SOAP::Lite' );
616
617 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
618 print "\n** Test $current_test getInstrumentTypes with the JP server **\n" ; $current_test++ ;
619 #is_deeply( getInstrumentTypesTest('JP'), ['APCI-ITFT', 'APCI-ITTOF','CE-ESI-TOF', 'CI-B', 'EI-B', 'EI-EBEB', 'ESI-ITFT', 'ESI-ITTOF', 'FAB-B', 'FAB-EB', 'FAB-EBEB', 'FD-B', 'FI-B', 'GC-EI-QQ', 'GC-EI-TOF', 'LC-APCI-QTOF', 'LC-APPI-QQ', 'LC-ESI-IT', 'LC-ESI-ITFT', 'LC-ESI-ITTOF', 'LC-ESI-Q', 'LC-ESI-QFT', 'LC-ESI-QIT', 'LC-ESI-QQ', 'LC-ESI-QTOF', 'LC-ESI-TOF', 'MALDI-QIT', 'MALDI-TOF', 'MALDI-TOFTOF'], "Works with \'JP server\' and return a list of instrument types");
620 print "-- no test -- skipped because JP getInstrumentTypes method is down\n" ;
621
622 print "\n** Test $current_test getInstrumentTypes with the DE server **\n" ; $current_test++ ;
623 #is_deeply( getInstrumentTypesTest('EU'), ['APCI-ITFT', 'APCI-ITTOF', 'CE-ESI-TOF', 'CI-B', 'EI-B', 'EI-EBEB', 'ESI-FTICR', 'ESI-ITFT', 'ESI-ITTOF', 'FAB-B', 'FAB-EB', 'FAB-EBEB', 'FD-B', 'FI-B', 'GC-EI-QQ', 'GC-EI-TOF', 'HPLC-ESI-TOF', 'LC-APCI-Q', 'LC-APCI-QTOF', 'LC-APPI-QQ', 'LC-ESI-IT', 'LC-ESI-ITFT', 'LC-ESI-ITTOF', 'LC-ESI-Q', 'LC-ESI-QFT', 'LC-ESI-QIT', 'LC-ESI-QQ', 'LC-ESI-QTOF', 'LC-ESI-TOF', 'MALDI-QIT', 'MALDI-TOF', 'MALDI-TOFTOF', 'UPLC-ESI-QTOF'], "Works with $server server and return a list of instrument types");
624 print "-- no test -- skipped because DE method is down\n" ;
625 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
626
627 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
628 print "\n** Test $current_test initRecordObject on a well formatted massbank record string **\n" ; $current_test++ ;
629 is_deeply( initRecordObjectTest('ACCESSION: KOX00001
630 RECORD_TITLE: GABA; LC-ESI-QTOF; MS2; MERGED; [M-H]-
631 DATE: 2011.08.24 (Created 2008.11.28)
632 AUTHORS: Institute for Advanced Biosciences, Keio Univ.
633 LICENSE: Copyright 2006-2011 Keio
634 COMMENT: Peak data in the following records are not open to the public as requested by their authors.
635 COMMENT: Instead MassBank provides the merged spectra for the public.
636 COMMENT: This record was generated by merging the following three MassBank records.
637 COMMENT: [Merging] KO004290 GABA; LC-ESI-QTOF; MS2; CE:10 V [M-H]-
638 COMMENT: [Merging] KO004291 GABA; LC-ESI-QTOF; MS2; CE:20 V [M-H]-
639 COMMENT: [Merging] KO004292 GABA; LC-ESI-QTOF; MS2; CE:30 V [M-H]-
640 CH$NAME: GABA
641 CH$NAME: 4-Aminobutanoate
642 CH$NAME: 4-Aminobutanoic acid
643 CH$NAME: 4-Aminobutylate
644 CH$NAME: 4-Aminobutyrate
645 CH$NAME: 4-Aminobutyric acid
646 CH$NAME: gamma-Aminobutyric acid
647 CH$COMPOUND_CLASS: N/A
648 CH$FORMULA: C4H9NO2
649 CH$EXACT_MASS: 103.06333
650 CH$SMILES: NCCCC(O)=O
651 CH$IUPAC: InChI=1S/C4H9NO2/c5-3-1-2-4(6)7/h1-3,5H2,(H,6,7)
652 CH$LINK: CAS 56-12-2
653 CH$LINK: CHEBI 30566
654 CH$LINK: KEGG C00334
655 CH$LINK: NIKKAJI J1.375G
656 CH$LINK: PUBCHEM SID:3628
657 AC$INSTRUMENT: Qstar, Applied Biosystems
658 AC$INSTRUMENT_TYPE: LC-ESI-QTOF
659 AC$MASS_SPECTROMETRY: MS_TYPE MS2
660 AC$MASS_SPECTROMETRY: ION_MODE NEGATIVE
661 MS$FOCUSED_ION: PRECURSOR_M/Z 102
662 MS$FOCUSED_ION: PRECURSOR_TYPE [M-H]-
663 PK$ANNOTATION: 41.9979886273 84.0449388199 102.0555035062
664 PK$NUM_PEAK: N/A
665 PK$PEAK: m/z int. rel.int.
666 N/A
667 '),
668 {
669 'CH$NAME' => 'gamma-Aminobutyric acid',
670 'AC$MASS_SPECTROMETRY' => 'ION_MODE NEGATIVE',
671 'CH$LINK: PUBCHEM SID' => '3628',
672 'ACCESSION' => 'KOX00001',
673 'CH$COMPOUND_CLASS' => 'N/A',
674 'LICENSE' => 'Copyright 2006-2011 Keio',
675 'COMMENT: [Merging] KO004292 GABA; LC-ESI-QTOF; MS2; CE' => '30 V [M-H]-',
676 'COMMENT: [Merging] KO004291 GABA; LC-ESI-QTOF; MS2; CE' => '20 V [M-H]-',
677 'CH$IUPAC' => 'InChI=1S/C4H9NO2/c5-3-1-2-4(6)7/h1-3,5H2,(H,6,7)',
678 'PK$ANNOTATION' => '41.9979886273 84.0449388199 102.0555035062',
679 'AUTHORS' => 'Institute for Advanced Biosciences, Keio Univ.',
680 'PK$NUM_PEAK' => 'N/A',
681 'CH$SMILES' => 'NCCCC(O)=O',
682 'AC$INSTRUMENT_TYPE' => 'LC-ESI-QTOF',
683 'CH$EXACT_MASS' => '103.06333',
684 'CH$LINK' => 'NIKKAJI J1.375G',
685 'CH$FORMULA' => 'C4H9NO2',
686 'PK$PEAK' => {
687 'relint' => [],
688 'int' => [],
689 'mz' => []
690 },
691 'DATE' => '2011.08.24 (Created 2008.11.28)',
692 'MS$FOCUSED_ION' => 'PRECURSOR_TYPE [M-H]-',
693 'RECORD_TITLE' => 'GABA; LC-ESI-QTOF; MS2; MERGED; [M-H]-',
694 'COMMENT: [Merging] KO004290 GABA; LC-ESI-QTOF; MS2; CE' => '10 V [M-H]-',
695 'AC$INSTRUMENT' => 'Qstar, Applied Biosystems',
696 'COMMENT' => 'This record was generated by merging the following three MassBank records.'
697 },
698 "Works with a well formatted massbank record string and return one record object from \"KOX00001\" id");
699
700 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
701 print "\n** Test $current_test initRecordObject on a well formatted massbank record string (has peaks !!) **\n" ; $current_test++ ;
702 is_deeply( initRecordObjectTest('ACCESSION: TY000040
703 RECORD_TITLE: Aconitine; LC-ESI-ITTOF; MS; [M+H]+
704 DATE: 2011.05.06 (Created 2008.10.10)
705 AUTHORS: Ken Tanaka
706 LICENSE: CC BY-SA
707 CH$NAME: Aconitine
708 CH$NAME: NSC56464
709 CH$NAME: 16-Ethyl-1alpha,6alpha,19beta-trimethoxy-4-(methoxymethyl)-aconitane-3alpha,8,10alpha,11,18alpha-pentol, 8-acetate 10-benzoate
710 CH$NAME: 20-ethyl-3alpha,13,15alpha-trihydroxy-1alpha,6alpha,16beta-trimethoxy-4-(methoxymethyl)aconitane-8,14alpha-diyl 8-acetate 14-benzoate
711 CH$COMPOUND_CLASS: Natural Product; Alkaloid
712 CH$FORMULA: C34H47NO11
713 CH$EXACT_MASS: 645.31491
714 CH$SMILES: COC(C7)C(C61[H])(C5([H])2)C(N(CC(COC)6C7O)CC)([H])C(C(C5([H])3)(C(C(OC)C(O)(C(OC(=O)c(c4)cccc4)3)C2)O)OC(C)=O)([H])C1OC
715 CH$IUPAC: InChI=1S/C34H47NO11/c1-7-35-15-31(16-41-3)20(37)13-21(42-4)33-19-14-32(40)28(45-30(39)18-11-9-8-10-12-18)22(19)34(46-17(2)36,27(38)29(32)44-6)23(26(33)35)24(43-5)25(31)33/h8-12,19-29,37-38,40H,7,13-16H2,1-6H3/t19-,20-,21+,22-,23+,24+,25-,26+,27+,28-,29+,31+,32-,33+,34-/m1/s1
716 CH$LINK: CAS 302-27-2
717 CH$LINK: NIKKAJI J9.871J
718 CH$LINK: PUBCHEM 245005
719 AC$INSTRUMENT: Shimadzu LC20A-IT-TOFMS
720 AC$INSTRUMENT_TYPE: LC-ESI-ITTOF
721 AC$MASS_SPECTROMETRY: MS_TYPE MS
722 AC$MASS_SPECTROMETRY: ION_MODE POSITIVE
723 AC$MASS_SPECTROMETRY: CDL_TEMPERATURE 200 C
724 AC$MASS_SPECTROMETRY: INTERFACE_VOLTAGE +4.50 kV
725 AC$MASS_SPECTROMETRY: SCANNING_RANGE 100-2000
726 AC$CHROMATOGRAPHY: COLUMN_NAME Waters Atlantis T3 (2.1 x 150 mm, 5 um)
727 AC$CHROMATOGRAPHY: COLUMN_TEMPERATURE 40 C
728 AC$CHROMATOGRAPHY: FLOW_GRADIENT 10 % B to 100 % B/40 min
729 AC$CHROMATOGRAPHY: FLOW_RATE 0.2 ml/min
730 AC$CHROMATOGRAPHY: RETENTION_TIME 1197.701
731 AC$CHROMATOGRAPHY: SOLVENT (A)5 mM ammonium acetate, (B)CH3CN
732 MS$FOCUSED_ION: ION_TYPE [M+H]+
733 PK$NUM_PEAK: 3
734 PK$PEAK: m/z int. rel.int.
735 646.3223 64380108 999
736 647.3252 26819201 416
737 648.3309 7305831 113
738 '),
739 {
740 'MS$FOCUSED_ION' => 'ION_TYPE [M+H]+',
741 'CH$COMPOUND_CLASS' => 'Natural Product; Alkaloid',
742 'CH$EXACT_MASS' => '645.31491',
743 'AC$MASS_SPECTROMETRY' => 'SCANNING_RANGE 100-2000',
744 'AC$INSTRUMENT' => 'Shimadzu LC20A-IT-TOFMS',
745 'PK$PEAK' => {
746 'mz' => [
747 '646.3223',
748 '647.3252',
749 '648.3309'
750 ],
751 'int' => [
752 '64380108',
753 '26819201',
754 '7305831'
755 ],
756 'relint' => [
757 '999',
758 '416',
759 '113'
760 ]
761 },
762 'CH$IUPAC' => 'InChI=1S/C34H47NO11/c1-7-35-15-31(16-41-3)20(37)13-21(42-4)33-19-14-32(40)28(45-30(39)18-11-9-8-10-12-18)22(19)34(46-17(2)36,27(38)29(32)44-6)23(26(33)35)24(43-5)25(31)33/h8-12,19-29,37-38,40H,7,13-16H2,1-6H3/t19-,20-,21+,22-,23+,24+,25-,26+,27+,28-,29+,31+,32-,33+,34-/m1/s1',
763 'AC$CHROMATOGRAPHY' => 'SOLVENT (A)5 mM ammonium acetate, (B)CH3CN',
764 'DATE' => '2011.05.06 (Created 2008.10.10)',
765 'LICENSE' => 'CC BY-SA',
766 'AC$INSTRUMENT_TYPE' => 'LC-ESI-ITTOF',
767 'CH$FORMULA' => 'C34H47NO11',
768 'CH$LINK' => 'PUBCHEM 245005',
769 'CH$NAME' => '20-ethyl-3alpha,13,15alpha-trihydroxy-1alpha,6alpha,16beta-trimethoxy-4-(methoxymethyl)aconitane-8,14alpha-diyl 8-acetate 14-benzoate',
770 'PK$NUM_PEAK' => '3',
771 'ACCESSION' => 'TY000040',
772 'RECORD_TITLE' => 'Aconitine; LC-ESI-ITTOF; MS; [M+H]+',
773 'CH$SMILES' => 'COC(C7)C(C61[H])(C5([H])2)C(N(CC(COC)6C7O)CC)([H])C(C(C5([H])3)(C(C(OC)C(O)(C(OC(=O)c(c4)cccc4)3)C2)O)OC(C)=O)([H])C1OC',
774 'AUTHORS' => 'Ken Tanaka'
775 },
776 "Works with a well formatted massbank record string and return one record object from \"KOX00001\" id");
777
778 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
779 print "\n** Test $current_test getRecord on $server server with a true ID **\n" ; $current_test++ ;
780 is_deeply( getRecordInfoTest($server, ['KOX00001']),
781 ['ACCESSION: KOX00001
782 RECORD_TITLE: GABA; LC-ESI-QTOF; MS2; MERGED; [M-H]-
783 DATE: 2011.08.24 (Created 2008.11.28)
784 AUTHORS: Institute for Advanced Biosciences, Keio Univ.
785 LICENSE: Copyright 2006-2011 Keio
786 COMMENT: Peak data in the following records are not open to the public as requested by their authors.
787 COMMENT: Instead MassBank provides the merged spectra for the public.
788 COMMENT: This record was generated by merging the following three MassBank records.
789 COMMENT: [Merging] KO004290 GABA; LC-ESI-QTOF; MS2; CE:10 V [M-H]-
790 COMMENT: [Merging] KO004291 GABA; LC-ESI-QTOF; MS2; CE:20 V [M-H]-
791 COMMENT: [Merging] KO004292 GABA; LC-ESI-QTOF; MS2; CE:30 V [M-H]-
792 CH$NAME: GABA
793 CH$NAME: 4-Aminobutanoate
794 CH$NAME: 4-Aminobutanoic acid
795 CH$NAME: 4-Aminobutylate
796 CH$NAME: 4-Aminobutyrate
797 CH$NAME: 4-Aminobutyric acid
798 CH$NAME: gamma-Aminobutyric acid
799 CH$COMPOUND_CLASS: N/A
800 CH$FORMULA: C4H9NO2
801 CH$EXACT_MASS: 103.06333
802 CH$SMILES: NCCCC(O)=O
803 CH$IUPAC: InChI=1S/C4H9NO2/c5-3-1-2-4(6)7/h1-3,5H2,(H,6,7)
804 CH$LINK: CAS 56-12-2
805 CH$LINK: CHEBI 30566
806 CH$LINK: KEGG C00334
807 CH$LINK: NIKKAJI J1.375G
808 CH$LINK: PUBCHEM SID:3628
809 AC$INSTRUMENT: Qstar, Applied Biosystems
810 AC$INSTRUMENT_TYPE: LC-ESI-QTOF
811 AC$MASS_SPECTROMETRY: MS_TYPE MS2
812 AC$MASS_SPECTROMETRY: ION_MODE NEGATIVE
813 MS$FOCUSED_ION: PRECURSOR_M/Z 102
814 MS$FOCUSED_ION: PRECURSOR_TYPE [M-H]-
815 PK$ANNOTATION: 41.9979886273 84.0449388199 102.0555035062
816 PK$NUM_PEAK: N/A
817 PK$PEAK: m/z int. rel.int.
818 N/A
819 '],
820 "Works with $server server and return one record from \"KOX00001\" id");
821
822 ## test a false massbank ID - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
823 print "\n** Test $current_test getRecord with a false ID **\n" ; $current_test++ ;
824 is_deeply( getRecordInfoTest($server, ['KOX100101']), [undef], "Method \'getRecordInfo\' works with $server server and manage no sended record from \"KOX100101\" a false id");
825
826 ## test a false massbank ID - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
827 print "\n** Test $current_test getRecord with a false ID into a real list **\n" ; $current_test++;
828 is_deeply( getRecordInfoTest($server, ['KOX100101', 'KOX00001']), ['ACCESSION: KOX00001
829 RECORD_TITLE: GABA; LC-ESI-QTOF; MS2; MERGED; [M-H]-
830 DATE: 2011.08.24 (Created 2008.11.28)
831 AUTHORS: Institute for Advanced Biosciences, Keio Univ.
832 LICENSE: Copyright 2006-2011 Keio
833 COMMENT: Peak data in the following records are not open to the public as requested by their authors.
834 COMMENT: Instead MassBank provides the merged spectra for the public.
835 COMMENT: This record was generated by merging the following three MassBank records.
836 COMMENT: [Merging] KO004290 GABA; LC-ESI-QTOF; MS2; CE:10 V [M-H]-
837 COMMENT: [Merging] KO004291 GABA; LC-ESI-QTOF; MS2; CE:20 V [M-H]-
838 COMMENT: [Merging] KO004292 GABA; LC-ESI-QTOF; MS2; CE:30 V [M-H]-
839 CH$NAME: GABA
840 CH$NAME: 4-Aminobutanoate
841 CH$NAME: 4-Aminobutanoic acid
842 CH$NAME: 4-Aminobutylate
843 CH$NAME: 4-Aminobutyrate
844 CH$NAME: 4-Aminobutyric acid
845 CH$NAME: gamma-Aminobutyric acid
846 CH$COMPOUND_CLASS: N/A
847 CH$FORMULA: C4H9NO2
848 CH$EXACT_MASS: 103.06333
849 CH$SMILES: NCCCC(O)=O
850 CH$IUPAC: InChI=1S/C4H9NO2/c5-3-1-2-4(6)7/h1-3,5H2,(H,6,7)
851 CH$LINK: CAS 56-12-2
852 CH$LINK: CHEBI 30566
853 CH$LINK: KEGG C00334
854 CH$LINK: NIKKAJI J1.375G
855 CH$LINK: PUBCHEM SID:3628
856 AC$INSTRUMENT: Qstar, Applied Biosystems
857 AC$INSTRUMENT_TYPE: LC-ESI-QTOF
858 AC$MASS_SPECTROMETRY: MS_TYPE MS2
859 AC$MASS_SPECTROMETRY: ION_MODE NEGATIVE
860 MS$FOCUSED_ION: PRECURSOR_M/Z 102
861 MS$FOCUSED_ION: PRECURSOR_TYPE [M-H]-
862 PK$ANNOTATION: 41.9979886273 84.0449388199 102.0555035062
863 PK$NUM_PEAK: N/A
864 PK$PEAK: m/z int. rel.int.
865 N/A
866 '], "Method \'getRecordInfo\' works with $server server and don\'t send record from \"KOX100101\" a false id into a list");
867
868
869 ## test an undef massbank IDs list - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
870 print "\n** Test $current_test getRecord with a undef list of IDs **\n" ; $current_test++;
871 is_deeply( getRecordInfoTest($server, undef), [], "Method \'getRecordInfo\' works with $server server and manage undef massbank ids list");
872
873 ## test an empty massbank IDs list - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
874 print "\n** Test $current_test getRecord with a void list of IDs **\n" ; $current_test++ ;
875 is_deeply( getRecordInfoTest($server, [] ), [], "Method \'getRecordInfo\' works with $server server and manage empty massbank ids list");
876
877 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
878 print "\n** Test $current_test getRecord on $server server with only one real ID **\n" ; $current_test++;
879 is_deeply( getRecordInfoTest($server, ['KOX00001']),
880 ['ACCESSION: KOX00001
881 RECORD_TITLE: GABA; LC-ESI-QTOF; MS2; MERGED; [M-H]-
882 DATE: 2011.08.24 (Created 2008.11.28)
883 AUTHORS: Institute for Advanced Biosciences, Keio Univ.
884 LICENSE: Copyright 2006-2011 Keio
885 COMMENT: Peak data in the following records are not open to the public as requested by their authors.
886 COMMENT: Instead MassBank provides the merged spectra for the public.
887 COMMENT: This record was generated by merging the following three MassBank records.
888 COMMENT: [Merging] KO004290 GABA; LC-ESI-QTOF; MS2; CE:10 V [M-H]-
889 COMMENT: [Merging] KO004291 GABA; LC-ESI-QTOF; MS2; CE:20 V [M-H]-
890 COMMENT: [Merging] KO004292 GABA; LC-ESI-QTOF; MS2; CE:30 V [M-H]-
891 CH$NAME: GABA
892 CH$NAME: 4-Aminobutanoate
893 CH$NAME: 4-Aminobutanoic acid
894 CH$NAME: 4-Aminobutylate
895 CH$NAME: 4-Aminobutyrate
896 CH$NAME: 4-Aminobutyric acid
897 CH$NAME: gamma-Aminobutyric acid
898 CH$COMPOUND_CLASS: N/A
899 CH$FORMULA: C4H9NO2
900 CH$EXACT_MASS: 103.06333
901 CH$SMILES: NCCCC(O)=O
902 CH$IUPAC: InChI=1S/C4H9NO2/c5-3-1-2-4(6)7/h1-3,5H2,(H,6,7)
903 CH$LINK: CAS 56-12-2
904 CH$LINK: CHEBI 30566
905 CH$LINK: KEGG C00334
906 CH$LINK: NIKKAJI J1.375G
907 CH$LINK: PUBCHEM SID:3628
908 AC$INSTRUMENT: Qstar, Applied Biosystems
909 AC$INSTRUMENT_TYPE: LC-ESI-QTOF
910 AC$MASS_SPECTROMETRY: MS_TYPE MS2
911 AC$MASS_SPECTROMETRY: ION_MODE NEGATIVE
912 MS$FOCUSED_ION: PRECURSOR_M/Z 102
913 MS$FOCUSED_ION: PRECURSOR_TYPE [M-H]-
914 PK$ANNOTATION: 41.9979886273 84.0449388199 102.0555035062
915 PK$NUM_PEAK: N/A
916 PK$PEAK: m/z int. rel.int.
917 N/A
918 '],
919 "Method \'getRecordInfo\' works with $server server and return one record from \"KOX00001\" id");
920
921 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
922
923
924 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
925 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
926 # Structure of res : %ret = {'res' => [], 'num_res' => int, 'pcgroup_id'=> int }
927 print "\n** Test $current_test searchSpectrum with a list of mzs, intensities and real search parameters **\n" ; $current_test++;
928 is_deeply( searchSpectrumTest(
929 ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'],
930 ['300', '300', '300', '300', '300', '300', '300'],
931 'Positive', # mode
932 ['all'], # instrument
933 '2', # max return / only 2 for test
934 'unit', # unit (unit or ppm)
935 0.3, # tol with unit = unit / can be also 50 with unit = ppm
936 50 # cutoff
937 ),
938 { 'num_res' => 2, 'pcgroup_id' => 1, 'res' =>
939 [
940 {
941 'title' => 'Lormetazepam; LC-ESI-Q; MS; POS; 60 V',
942 'exactMass' => '334.02758',
943 'score' => '0.428034082411',
944 'id' => 'WA001260',
945 'formula' => 'C16H12Cl2N2O2'
946 },
947 {
948 'formula' => 'C16H12Cl2N2O2',
949 'exactMass' => '334.02758',
950 'score' => '0.385859601865',
951 'id' => 'WA001261',
952 'title' => 'Lormetazepam; LC-ESI-Q; MS; POS; 45 V'
953 }
954 ]
955 },
956 "Method \'searchSpectrum\' works with $server server and return a list of entries from given mzs list");
957
958 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
959 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
960 # Structure of res : %ret = {'res' => [], 'num_res' => int, 'pcgroup_id'=> int }
961 print "\n** Test $current_test searchSpectrum with the Atrazine fingerprint and real search parameters **\n" ; $current_test++;
962 is_deeply( searchSpectrumTest(
963 ['68.0245', '96.056', '104.0014', '132.0328', '138.1031', '146.0233', '174.0547', '180.125', '188.0703'],
964 ['300', '300', '300', '300', '300', '300', '300'],
965 'Positive', # mode
966 ['all'], # instrument
967 '2', # max return / only 2 for test
968 'unit', # unit (unit or ppm)
969 0.3, # tol with unit = unit / can be also 50 with unit = ppm
970 50 # cutoff
971 ),
972 { 'num_res' => 2, 'pcgroup_id' => 1, 'res' =>
973 [
974 {
975 'title' => 'Lormetazepam; LC-ESI-Q; MS; POS; 60 V',
976 'exactMass' => '334.02758',
977 'score' => '0.428034082411',
978 'id' => 'WA001260',
979 'formula' => 'C16H12Cl2N2O2'
980 },
981 {
982 'formula' => 'C16H12Cl2N2O2',
983 'exactMass' => '334.02758',
984 'score' => '0.385859601865',
985 'id' => 'WA001261',
986 'title' => 'Lormetazepam; LC-ESI-Q; MS; POS; 45 V'
987 }
988 ]
989 },
990 "Method \'searchSpectrum\' works with $server server and return the Atrazine record from given mzs list");
991
992
993
994 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
995 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
996 print "\n** Test $current_test searchSpectrum with a list of mzs, intensities and real search parameters **\n" ; $current_test++;
997 is_deeply( searchSpectrumTest(
998 ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'],
999 ['5', '5', '5', '5', '5', '5', '5'],
1000 'Positive', # mode
1001 ['all'], # instrument
1002 '2', # max return / only 2 for test
1003 'unit', # unit (unit or ppm)
1004 0.3, # tol with unit = unit / can be also 50 with unit = ppm
1005 50 # cutoff
1006 ),
1007 { 'num_res' => 2, 'pcgroup_id' => 1, 'res' =>
1008 [
1009 {
1010 'title' => 'Lormetazepam; LC-ESI-Q; MS; POS; 60 V',
1011 'exactMass' => '334.02758',
1012 'score' => '0.428034082411',
1013 'id' => 'WA001260',
1014 'formula' => 'C16H12Cl2N2O2'
1015 },
1016 {
1017 'formula' => 'C16H12Cl2N2O2',
1018 'exactMass' => '334.02758',
1019 'score' => '0.385859601865',
1020 'id' => 'WA001261',
1021 'title' => 'Lormetazepam; LC-ESI-Q; MS; POS; 45 V'
1022 }
1023 ]
1024 },
1025 "Method \'searchSpectrum\' works with $server server and return a list of entries from given mzs list with no intensity (very low in true)");
1026 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1027 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
1028 print "\n** Test $current_test searchSpectrum with a list of mzs, intensities and real search parameters - /!\\ Bug - Real intensity **\n" ; $current_test++;
1029 is_deeply( searchSpectrumTest(
1030 ['121.5145853','121.6260795','126.186473','126.2979602','126.4094198','184.0731041'],
1031 ['614328.101','298110.8522','1372105.065','799423.8448','99064.65118','2342541.316'],
1032 'Positive', # mode
1033 ['all'], # instrument
1034 '2', # max return / only 2 for test
1035 'unit', # unit (unit or ppm)
1036 0.3, # tol with unit = unit / can be also 50 with unit = ppm
1037 50 # cutoff
1038 ),
1039 { 'num_res' => 1, 'pcgroup_id' => 1, 'res' =>
1040 [
1041 {
1042 'formula' => 'C12H13NO2',
1043 'id' => 'KO003209',
1044 'title' => '3-Indolebutyric acid; LC-ESI-QQ; MS2; CE:30 V; [M+H]+',
1045 'score' => '0.239887404489',
1046 'exactMass' => '203.09463'
1047 }
1048 ]
1049 },
1050 "Method \'searchSpectrum\' works with $server server and return a list of entries from given mzs list /!\\ Bug - Real intensity");
1051
1052 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1053 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
1054 print "\n** Test $current_test searchSpectrum with a list of mzs, intensities and real search parameters - /!\\ Bug - Real relative intensity **\n" ; $current_test++;
1055 is_deeply( searchSpectrumTest(
1056 ['121.51459','121.62608','126.18647','126.29796','126.40942','184.0731','385.23','502.29222','503.29564','548.33424','550.32453','551.32481','566.28931','566.79058','568.339'],
1057 ['2','1','7','4','1','5','0','18','5','4','1','1','0','0','999'],
1058 'Positive', # mode
1059 ['all'], # instrument
1060 '2', # max return / only 2 for test
1061 'unit', # unit (unit or ppm)
1062 0.3, # tol with unit = unit / can be also 50 with unit = ppm
1063 50 # cutoff
1064 ),
1065 { 'num_res' => 2, 'pcgroup_id' => 1, 'res' =>
1066 [
1067 {
1068 'id' => 'CA000162',
1069 'exactMass' => '568.42803',
1070 'title' => 'beta,beta-Carotene-2,2\'-diol; FAB-EBEB; MS2; m/z: 568.43; [M]*+',
1071 'formula' => 'C40H56O2',
1072 'score' => '0.904567659364'
1073 },
1074 {
1075 'exactMass' => '568.42803',
1076 'id' => 'CA000153',
1077 'score' => '0.620521335460',
1078 'formula' => 'C40H56O2',
1079 'title' => 'Isozeaxanthin; FAB-EBEB; MS2; m/z: 568.43; [M]*+'
1080 }
1081 ]
1082 },
1083 "Method \'searchSpectrum\' works with $server server and return a list of entries from given mzs list /!\\ Bug - Real relative intensity");
1084
1085 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1086 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
1087 print "\n** Test $current_test searchSpectrum with a list of mzs, intensities and max = 2 **\n" ; $current_test++;
1088 is_deeply( searchSpectrumNBTest(
1089 ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'],
1090 ['300', '300', '300', '300', '300', '300', '300'],
1091 'Positive', # mode
1092 ['all'], # instrument
1093 '2', # max return / only 2 for test
1094 'unit', # unit (unit or ppm)
1095 0.3, # tol with unit = unit / can be also 50 with unit = ppm
1096 50 # cutoff
1097 ),
1098 2,
1099 'Method \'searchSpectrum\' works with $server server and return the right number of entries from given mzs list and parameters (max)');
1100
1101 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1102 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
1103 print "\n** Test $current_test searchSpectrum with a list of mzs, but no intensity (in true very low) and max = 2 **\n" ; $current_test++;
1104 is_deeply( searchSpectrumNBTest(
1105 ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'],
1106 [10, 10, 10, 10, 10, 10, 10 ],
1107 'Positive', # mode
1108 ['all'], # instrument
1109 '2', # max return / only 2 for test
1110 'unit', # unit (unit or ppm)
1111 0.3, # tol with unit = unit / can be also 50 with unit = ppm
1112 50 # cutoff
1113 ),
1114 2,
1115 'Method \'searchSpectrum\' works with $server server and return the right number of entries from given mzs list and no intensity');
1116
1117 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1118 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff
1119 print "\n** Test $current_test searchSpectrum with a list of mzs, intensities and no optionnal parameter like instrument, unit, tolerance and cutoff **\n" ; $current_test ++;
1120 is_deeply( searchSpectrumNBTest(
1121 ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'],
1122 ['300', '300', '300', '300', '300', '300', '300'],
1123 'Positive', # mode
1124 undef, # instrument
1125 '2', # max return / only 2 for test
1126 undef, # unit (unit or ppm)
1127 undef, # tol with unit = unit / can be also 50 with unit = ppm
1128 undef # cutoff
1129 ),
1130 2,
1131 'Method \'searchSpectrum\' works with $server server and return the right number of entries from def parameters (instrument, unit, tolerance, cutoff )');
1132
1133 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1134 # ARGVTS : $mzs, $intensities, $ion, $instruments, $max, $unit, $tol, $cutoff, $max
1135 print "\n** Test $current_test searchSpectrum with a list of mzs, intensities and no conf parameters for instrument, unit, tolerance and cutoff (value by default) **\n" ; $current_test++;
1136 is_deeply( searchSpectrumNBTest(
1137 ['273.096', '289.086', '290.118', '291.096', '292.113', '579.169', '580.179'],
1138 ['300', '300', '300', '300', '300', '300', '300'],
1139 'Positive', # mode
1140 undef, # instrument - ['all'] by default
1141 undef, # max return - 0 by default
1142 undef, # unit - unit by default
1143 undef, # tol - 0.3 (by default) with unit = unit / can be also 50 (by default) with unit = ppm
1144 undef # cutoff - 5 by default
1145 ),
1146 388,
1147 'Method \'searchSpectrum\' works with $server server and return the right number of entries (363) with undef parameters (instrument, unit, tolerance, cutoff, max )');
1148
1149 ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1150 # ARGVTS : $ids
1151 print "\n** Test $current_test getPeak with a list ids **\n" ; $current_test++;
1152 is_deeply( getPeakTest( ['PR020003', 'FU000001']),
1153 [
1154 {
1155 'numPeaks' => '9',
1156 'mzs' => ['207.0897','210.0499','224.5345','225.2768','226.0377','226.9938','227.9228','243.1025','410.0056'],
1157 'intensities' => ['8.488e2','9.442e2','1.093e3','5.294e4','2.896e4','7.015e3','7.870e2','4.024e3','5.620e2'],
1158 'id' => 'PR020003'
1159 },
1160 {
1161 'id' => 'FU000001',
1162 'intensities' => ['3.277e5', '3.036e4', '5.812e4', '2.982e5', '5.196e4','4.564e5', '8.939e5','5.537e4'],
1163 'mzs' => ['370.8', '371.4', '532.0', '532.6', '533.3', '694.1', '694.8','695.4'],
1164 'numPeaks' => '8'
1165 }
1166 ],
1167 'Method \'getPeak\' works with $server server and return the peak lists from given ids list');
1168
1169
1170
1171
1172 print "\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ;
1173
1174 }
1175 else {
1176 croak "Can\'t launch any test : no sequence clearly defined !!!!\n" ;
1177 }
1178