0
|
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.'/lib' ;
|
|
14 my $binPath = $FindBin::Bin ;
|
|
15 use utilsTest qw( :ALL ) ;
|
|
16 use hmdb_apiTest qw( :ALL ) ;
|
|
17
|
|
18
|
|
19 ## If needed to launch parallele test sequences : SEQ01, SEQ02, SEQ03, ...
|
|
20 my $sequence = 'SEQ02' ;
|
|
21 my $current_test = 1 ;
|
|
22
|
|
23 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
24
|
|
25 ## START of SEQ01 SEQUENCE ##
|
|
26
|
|
27 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
28
|
|
29 if ($sequence eq "SEQ01") {
|
|
30
|
|
31 print "\n\t\t\t\t * * * * * * \n" ;
|
|
32 print "\t * * * - - - Test module utils - - - * * * \n\n" ;
|
|
33
|
|
34 ## - - - - - - - - - - - - - - - - - - NEXT - - - - - - - - - - - - - - - - - - - -
|
|
35 # ARGVTS : $argt1, ...
|
|
36 sleep 1 ; print "\n** Test $current_test getHttpFileVersion with a valid url **\n" ; $current_test++ ;
|
|
37 is_deeply( getHttpFileVersionTest ( ## input parameters : here only one argt
|
|
38 'http://www.hmdb.ca/system/downloads/current/urine_metabolites.zip',
|
|
39 ),
|
|
40 'v2018Jul09',
|
|
41 'Method \'getHttpFileVersion\' works with a valid url and return the attended output');
|
|
42
|
|
43
|
|
44 ## - - - - - - - - - - - - - - - - - - - NEXT - - - - - - - - - - - - - - - - - - -
|
|
45 # ARGVTS : $argt1, ...
|
|
46 sleep 1 ; print "\n** Test $current_test getHttpFile with a valid url and fileName **\n" ; $current_test++ ;
|
|
47 is_deeply( getHttpFileTest ( ## input parameters : here only one argt
|
|
48 'http://www.hmdb.ca/system/downloads/current/csf_metabolites.zip',
|
|
49 '/tmp/CSF_v2018Jul09/CSF_v2018Jul09.zip'
|
|
50 ),
|
|
51 1,
|
|
52 'Method \'getHttpFile\' works with a valid url and a file name and return the attended output (a file)');
|
|
53
|
|
54
|
|
55 ## - - - - - - - - - - - - - - - - - - - NEXT - - - - - - - - - - - - - - - - - - -
|
|
56 # ARGVTS : $argt1, ...
|
|
57 sleep 1 ; print "\n** Test $current_test unzipFile with a valid url, a dir and fileName **\n" ; $current_test++ ;
|
|
58 is_deeply( unzipFileTest ( ## input parameters : here only one argt
|
|
59 '/tmp/CSF_v2018Jul09/CSF_v2018Jul09.zip',
|
|
60 '/tmp/CSF_v2018Jul09/csf_metabolites.xml',
|
|
61 'csf_metabolites.xml'
|
|
62
|
|
63 ),
|
|
64 1,
|
|
65 'Method \'unzipFile\' works with a valid url and a file name and return the attended output (1)');
|
|
66
|
|
67 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
68
|
|
69 ## END of SEQ01 SEQUENCE ##
|
|
70
|
|
71 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
72
|
|
73 }
|
|
74
|
|
75 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
76
|
|
77 ## START of SEQ02 SEQUENCE ##
|
|
78
|
|
79 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
80 elsif ($sequence eq "SEQ02") {
|
|
81 print "\n\t\t\t\t * * * * * * \n" ;
|
|
82 print "\t * * * - - - Test SEQ02 Main script - - - * * * \n\n" ;
|
|
83
|
|
84 ## - - - - - - - - - - - - - - - - - - - NEXT - - - - - - - - - - - - - - - - - - -
|
|
85 # ARGVTS : $argt1, ...
|
|
86 # sleep 1 ; print "\n** Test $current_test getMetaboliteFeatures with a valid xml file **\n" ; $current_test++ ;
|
|
87 # is_deeply( getMetaboliteFeaturesTest ( ## input parameters : here only one argt
|
|
88 # '/Users/fgiacomoni/Inra/labs/perl/downloader-bank-hmdb/banks/CSF_v2018Jul09/csf_metabolites.xml',
|
|
89 # ),
|
|
90 # 450,
|
|
91 # 'Method \'getMetaboliteFeatures\' works with a valid xml and return the attended output (HASH)');
|
|
92
|
|
93 ## - - - - - - - - - - - - - - - - - - - NEXT - - - - - - - - - - - - - - - - - - -
|
|
94 # ARGVTS : $argt1, ...
|
|
95 sleep 1 ; print "\n** Test $current_test buildMetabolitesArray with a hash of metabolites **\n" ; $current_test++ ;
|
|
96 is_deeply( buildMetabolitesArrayTest ( ## input parameters : here only one argt
|
|
97 { 'HMDB0001565' => { 'metabolite_name' => 'Phosphorylcholine',
|
|
98 'monisotopic_molecular_weight' => '184.073869485',
|
|
99 '[M+H]+' => '185.081145885',
|
|
100 '[M-H]-' => '183.066593085',
|
|
101 'chemical_formula' => 'C5H15NO4P',
|
|
102 'inchikey' => 'YHHSONZFOIEMCP-UHFFFAOYSA-O' },
|
|
103 'HMDB0006088' => { 'monisotopic_molecular_weight' => '180.063388116',
|
|
104 '[M+H]+' => '181.070664516',
|
|
105 '[M-H]-' => '179.056111716',
|
|
106 'inchikey' => 'CDAISMWEOUEBRE-CDRYSYESSA-N',
|
|
107 'chemical_formula' => 'C6H12O6',
|
|
108 'metabolite_name' => 'scyllo-Inositol' }
|
|
109 },
|
|
110 ['HMDB_ID','MzBank', '[M+H]+', '[M-H]-','MetName', 'ChemFormula', 'INChIkey']
|
|
111 ),
|
|
112 [
|
|
113 [
|
|
114 'HMDB_ID',
|
|
115 'MzBank',
|
|
116 '[M+H]+',
|
|
117 '[M-H]-',
|
|
118 'MetName',
|
|
119 'ChemFormula',
|
|
120 'INChIkey'
|
|
121 ],
|
|
122 [
|
|
123 'HMDB0001565',
|
|
124 '184.073869485',
|
|
125 '185.081145885',
|
|
126 '183.066593085',
|
|
127 'Phosphorylcholine',
|
|
128 'C5H15NO4P',
|
|
129 'YHHSONZFOIEMCP-UHFFFAOYSA-O'
|
|
130 ],
|
|
131 [
|
|
132 'HMDB0006088',
|
|
133 '180.063388116',
|
|
134 '181.070664516',
|
|
135 '179.056111716',
|
|
136 'scyllo-Inositol',
|
|
137 'C6H12O6',
|
|
138 'CDAISMWEOUEBRE-CDRYSYESSA-N'
|
|
139 ]
|
|
140 ],
|
|
141 'Method \'buildMetabolitesArray\' works with a valid metabolites list and return the attended output (Array)');
|
|
142
|
|
143 ## - - - - - - - - - - - - - - - - - - - NEXT - - - - - - - - - - - - - - - - - - -
|
|
144 # ARGVTS : $argt1, ...
|
|
145 sleep 1 ; print "\n** Test $current_test setMetaboliteAcurrateMzToModesMz with a hash of metabolites **\n" ; $current_test++ ;
|
|
146 is_deeply( setMetaboliteAcurrateMzToModesMzTest ( ## input parameters : here only one argt
|
|
147 'CARD',
|
|
148 [
|
|
149 {
|
|
150 'COMMON_NAME' => 'SM(d18:0/24:1(15Z)(OH))',
|
|
151 'LOCATION' => 'Rumen',
|
|
152 'MZ_AVERAGE' => '829.224',
|
|
153 'INCHI' => 'InChI=1/C47H93N2O7P/c1-6-8-10-12-14-16-18-20-21-22-23-24-25-27-28-30-32-34-36-38-44(50)42-47(52)48-45(43-56-57(53,54)55-41-40-49(3,4)5)46(51)39-37-35-33-31-29-26-19-17-15-13-11-9-7-2/h20-21,37,39,44-46,50-51H,6-19,22-36,38,40-43H2,1-5H3,(H-,48,52,53,54)/b21-20-,39-37+/t44?,45-,46+/m0/s1',
|
|
154 'FORMULA' => 'C47H93N2O7P',
|
|
155 'TAXONOMY' => 'Lipids',
|
|
156 'HMDB_ID' => 'HMDB13469',
|
|
157 'KEGG_ID' => 'C00550',
|
|
158 'BIOCYC_ID' => 'Not Available',
|
|
159 'IUPAC' => 'Not Available',
|
|
160 'CAS' => 'Not Available',
|
|
161 'MZ_MONO' => '828.672058'
|
|
162 }
|
|
163 ]
|
|
164 ),
|
|
165 [
|
|
166 {
|
|
167 'MZ_[M-H]-' => '827.6647816',
|
|
168 'COMMON_NAME' => 'SM(d18:0/24:1(15Z)(OH))',
|
|
169 'LOCATION' => 'Rumen',
|
|
170 'MZ_[M+H]+' => '829.6793344',
|
|
171 'MZ_AVERAGE' => '829.224',
|
|
172 'INCHI' => 'InChI=1/C47H93N2O7P/c1-6-8-10-12-14-16-18-20-21-22-23-24-25-27-28-30-32-34-36-38-44(50)42-47(52)48-45(43-56-57(53,54)55-41-40-49(3,4)5)46(51)39-37-35-33-31-29-26-19-17-15-13-11-9-7-2/h20-21,37,39,44-46,50-51H,6-19,22-36,38,40-43H2,1-5H3,(H-,48,52,53,54)/b21-20-,39-37+/t44?,45-,46+/m0/s1',
|
|
173 'FORMULA' => 'C47H93N2O7P',
|
|
174 'TAXONOMY' => 'Lipids',
|
|
175 'HMDB_ID' => 'HMDB13469',
|
|
176 'KEGG_ID' => 'C00550',
|
|
177 'BIOCYC_ID' => 'Not Available',
|
|
178 'IUPAC' => 'Not Available',
|
|
179 'CAS' => 'Not Available',
|
|
180 'MZ_MONO' => '828.672058'
|
|
181 }
|
|
182 ],
|
|
183 'Method \'setMetaboliteAcurrateMzToModesMz\' works with XML FORMAT AND a valid metabolites list and return the attended output (Array)');
|
|
184
|
|
185 ## - - - - - - - - - - - - - - - - - - - NEXT - - - - - - - - - - - - - - - - - - -
|
|
186 # ARGVTS : $argt1, ...
|
|
187 sleep 1 ; print "\n** Test $current_test setMetaboliteAcurrateMzToModesMz with a hash of metabolites **\n" ; $current_test++ ;
|
|
188 is_deeply( setMetaboliteAcurrateMzToModesMzTest ( ## input parameters : here only one argt
|
|
189 'XML',
|
|
190 { 'HMDB0001565' => { 'metabolite_name' => 'Phosphorylcholine',
|
|
191 'monisotopic_molecular_weight' => '184.073869485',
|
|
192 'chemical_formula' => 'C5H15NO4P',
|
|
193 'inchikey' => 'YHHSONZFOIEMCP-UHFFFAOYSA-O' },
|
|
194 'HMDB0006088' => { 'monisotopic_molecular_weight' => '180.063388116',
|
|
195 'inchikey' => 'CDAISMWEOUEBRE-CDRYSYESSA-N',
|
|
196 'chemical_formula' => 'C6H12O6',
|
|
197 'metabolite_name' => 'scyllo-Inositol' }
|
|
198 }
|
|
199 ),
|
|
200 { 'HMDB0001565' => { 'metabolite_name' => 'Phosphorylcholine',
|
|
201 'monisotopic_molecular_weight' => '184.073869485',
|
|
202 '[M+H]+' => '185.081145885',
|
|
203 '[M-H]-' => '183.066593085',
|
|
204 'chemical_formula' => 'C5H15NO4P',
|
|
205 'inchikey' => 'YHHSONZFOIEMCP-UHFFFAOYSA-O' },
|
|
206 'HMDB0006088' => { 'monisotopic_molecular_weight' => '180.063388116',
|
|
207 '[M+H]+' => '181.070664516',
|
|
208 '[M-H]-' => '179.056111716',
|
|
209 'inchikey' => 'CDAISMWEOUEBRE-CDRYSYESSA-N',
|
|
210 'chemical_formula' => 'C6H12O6',
|
|
211 'metabolite_name' => 'scyllo-Inositol' }
|
|
212 },
|
|
213 'Method \'setMetaboliteAcurrateMzToModesMz\' works with XML FORMAT AND a valid metabolites list and return the attended output (Array)');
|
|
214
|
|
215 } ## END ELSIF SEQ02
|
|
216
|
|
217 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
218
|
|
219 ## END of SEQ02 SEQUENCE ##
|
|
220
|
|
221 #### #### ##### ###### ################################################ ###### ##### ##### ###### ######
|
|
222
|
|
223
|
|
224 else {
|
|
225 croak "Can\'t launch any test : no sequence clearly defined !!!!\n" ;
|
|
226 }
|
|
227
|