annotate hmdb/lib/hmdb.pm @ 0:9583f9772198 draft

Init and uploaded
author fgiacomoni
date Thu, 28 Jan 2016 10:52:26 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
1 package lib::hmdb ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
2
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
3 use strict;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
4 use warnings ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
5 use Exporter ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
6 use Carp ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
7
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
8 use LWP::Simple;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
9 use LWP::UserAgent;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
10 use URI::URL;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
11 use SOAP::Lite;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
12 use Encode;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
13 use HTML::Template ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
14
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
15 use Data::Dumper ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
16
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
17 use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
18
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
19 our $VERSION = "1.0";
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
20 our @ISA = qw(Exporter);
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
21 our @EXPORT = qw( extract_sub_mz_lists test_matches_from_hmdb_ua prepare_multi_masses_query get_matches_from_hmdb_ua parse_hmdb_csv_results set_html_tbody_object add_mz_to_tbody_object add_entries_to_tbody_object write_html_skel set_lm_matrix_object set_hmdb_matrix_object_with_ids add_lm_matrix_to_input_matrix write_csv_skel write_csv_one_mass );
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
22 our %EXPORT_TAGS = ( ALL => [qw( extract_sub_mz_lists test_matches_from_hmdb_ua prepare_multi_masses_query get_matches_from_hmdb_ua parse_hmdb_csv_results set_html_tbody_object add_mz_to_tbody_object add_entries_to_tbody_object write_html_skel set_lm_matrix_object set_hmdb_matrix_object_with_ids add_lm_matrix_to_input_matrix write_csv_skel write_csv_one_mass )] );
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
23
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
24 =head1 NAME
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
25
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
26 My::Module - An example module
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
27
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
28 =head1 SYNOPSIS
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
29
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
30 use My::Module;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
31 my $object = My::Module->new();
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
32 print $object->as_string;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
33
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
34 =head1 DESCRIPTION
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
35
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
36 This module does not really exist, it
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
37 was made for the sole purpose of
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
38 demonstrating how POD works.
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
39
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
40 =head1 METHODS
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
41
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
42 Methods are :
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
43
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
44 =head2 METHOD new
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
45
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
46 ## Description : new
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
47 ## Input : $self
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
48 ## Ouput : bless $self ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
49 ## Usage : new() ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
50
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
51 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
52
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
53 sub new {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
54 ## Variables
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
55 my $self={};
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
56 bless($self) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
57 return $self ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
58 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
59 ### END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
60
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
61
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
62 =head2 METHOD extract_sub_mz_lists
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
63
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
64 ## Description : extract a couples of sublist from a long mz list (more than $HMDB_LIMITS)
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
65 ## Input : $HMDB_LIMITS, $masses
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
66 ## Output : $sublists
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
67 ## Usage : my ( $sublists ) = extract_sub_mz_lists( $HMDB_LIMITS, $masses ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
68
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
69 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
70 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
71 sub extract_sub_mz_lists {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
72 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
73 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
74 my ( $masses, $HMDB_LIMITS ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
75
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
76 my ( @sublists, @sublist ) = ( (), () ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
77 my $nb_mz = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
78 my $nb_total_mzs = scalar(@{$masses}) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
79
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
80 if ($nb_total_mzs == 0) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
81 die "The provided mzs list is empty" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
82 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
83
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
84 for ( my $current_pos = 0 ; $current_pos < $nb_total_mzs ; $current_pos++ ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
85
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
86 if ( $nb_mz < $HMDB_LIMITS ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
87 if ( $masses->[$current_pos] ) { push (@sublist, $masses->[$current_pos]) ; $nb_mz++ ; } # build sub list
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
88 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
89 elsif ( $nb_mz == $HMDB_LIMITS ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
90 my @tmp = @sublist ; push (@sublists, \@tmp) ; @sublist = () ; $nb_mz = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
91 $current_pos-- ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
92 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
93 if ($current_pos == $nb_total_mzs-1) { my @tmp = @sublist ; push (@sublists, \@tmp) ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
94 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
95 return(\@sublists) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
96 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
97 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
98
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
99 =head2 METHOD prepare_multi_masses_query
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
100
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
101 ## Description : Generate the adapted format of the mz list for HMDB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
102 ## Input : $masses
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
103 ## Output : $hmdb_masses
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
104 ## Usage : my ( $hmdb_masses ) = prepare_multi_masses_query( $masses ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
105
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
106 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
107 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
108 sub prepare_multi_masses_query {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
109 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
110 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
111 my ( $masses ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
112
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
113 my $hmdb_masses = undef ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
114 my $sep = '%0D%0A' ; ## retour chariot encode
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
115 my ($nb_masses, $i) = (0, 0) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
116
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
117 if ( defined $masses ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
118 my @masses = @{$masses} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
119 my $nb_masses = scalar ( @masses ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
120 if ( $nb_masses == 0 ) { croak "The input method parameter mass list is empty" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
121 elsif ( $nb_masses >= 150 ) { croak "Your mass list is too long : HMDB allows maximum 150 query masses per request \n" ; } ## Del it --- temporary patch
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
122
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
123 foreach my $mass (@masses) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
124
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
125 if ($i < $nb_masses) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
126 $hmdb_masses .= $mass.$sep ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
127 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
128 elsif ( $i == $nb_masses ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
129 $hmdb_masses .= $mass ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
130 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
131 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
132 last ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
133 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
134 $i ++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
135 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
136 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
137 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
138 croak "No mass list found \n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
139 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
140 return($hmdb_masses, $nb_masses) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
141 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
142 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
143
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
144 =head2 METHOD test_matches_from_hmdb_ua
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
145
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
146 ## Description : test a single query with tests parameters on hmdb - get the status of the complete server infra.
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
147 ## Input : none
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
148 ## Output : $status_line
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
149 ## Usage : my ( $status_line ) = test_matches_from_hmdb_ua( ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
150
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
151 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
152 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
153 sub test_matches_from_hmdb_ua {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
154 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
155 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
156
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
157 my @page = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
158
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
159 my $ua = new LWP::UserAgent;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
160 $ua->agent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36");
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
161
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
162 my $req = HTTP::Request->new(
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
163 POST => 'http://specdb.wishartlab.com/ms/search.csv');
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
164
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
165 $req->content_type('application/x-www-form-urlencoded');
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
166 $req->content('utf8=TRUE&mode=positive&query_masses=420.159317&tolerance=0.000001&database=HMDB&commit=Download Results As CSV');
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
167
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
168 my $res = $ua->request($req);
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
169 # print $res->as_string;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
170 my $status_line = $res->status_line ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
171 ($status_line) = ($status_line =~ /(\d+)/);
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
172
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
173
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
174 return (\$status_line) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
175 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
176 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
177
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
178 =head2 METHOD check_state_from_hmdb_ua
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
179
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
180 ## Description : check the thhp status of hmdb and kill correctly the script if necessary.
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
181 ## Input : $status
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
182 ## Output : none
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
183 ## Usage : check_state_from_hmdb_ua($status) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
184
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
185 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
186 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
187 sub check_state_from_hmdb_ua {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
188 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
189 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
190 my ($status) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
191
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
192 if (!defined $$status) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
193 croak "No http status is defined for the distant server" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
194 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
195 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
196 unless ( $$status == 200 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
197 if ( $$status == 504 ) { croak "Gateway Timeout: The HMDB server was acting as a gateway or proxy and did not receive a timely response from the upstream server" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
198 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
199 ## None supported http code error ##
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
200 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
201 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
202 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
203
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
204 return (1) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
205 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
206 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
207
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
208 =head2 METHOD get_matches_from_hmdb_ua
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
209
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
210 ## Description : HMDB querying via an user agent with parameters : mz, delta and molecular species (neutral, pos, neg)
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
211 ## Input : $mass, $delta, $mode
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
212 ## Output : $results
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
213 ## Usage : my ( $results ) = get_matches_from_hmdb( $mass, $delta, $mode ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
214
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
215 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
216 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
217 sub get_matches_from_hmdb_ua {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
218 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
219 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
220 my ( $masses, $delta, $mode ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
221
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
222 my @page = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
223
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
224 my $ua = new LWP::UserAgent;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
225 $ua->agent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36");
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
226
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
227 my $req = HTTP::Request->new(
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
228 POST => 'http://specdb.wishartlab.com/ms/search.csv');
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
229
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
230 $req->content_type('application/x-www-form-urlencoded');
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
231 $req->content('utf8=TRUE&mode='.$mode.'&query_masses='.$masses.'&tolerance='.$delta.'&database=HMDB&commit=Download Results As CSV');
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
232
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
233 my $res = $ua->request($req);
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
234 # print $res->as_string;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
235 if ($res->is_success) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
236 @page = split ( /\n/, $res->decoded_content ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
237 } else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
238 my $status_line = $res->status_line ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
239 ($status_line) = ($status_line =~ /(\d+)/);
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
240 croak "HMDB service none available !! Status of the HMDB server is : $status_line\n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
241 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
242
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
243
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
244 return (\@page) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
245 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
246 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
247
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
248 =head2 METHOD parse_hmdb_csv_results
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
249
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
250 ## Description : parse the csv results and get data
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
251 ## Input : $csv
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
252 ## Output : $results
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
253 ## Usage : my ( $results ) = parse_hmdb_csv_results( $csv ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
254
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
255 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
256 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
257 sub parse_hmdb_csv_results {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
258 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
259 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
260 my ( $csv, $masses ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
261
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
262 my $test = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
263 my ($query_mass,$compound_id,$formula,$compound_mass,$adduct,$adduct_type,$adduct_mass,$delta) = (0, undef, undef, undef, undef, undef, undef, undef) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
264
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
265 my %result_by_entry = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
266 my %features = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
267
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
268 # print Dumper $csv ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
269
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
270 foreach my $line (@{$csv}) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
271
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
272 if ($line !~ /query_mass,compound_id,formula,compound_mass,adduct,adduct_type,adduct_mass,delta/) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
273 my @entry = split(/,/, $line) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
274
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
275 if ( !exists $result_by_entry{$entry[0]} ) { $result_by_entry{$entry[0]} = [] ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
276
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
277 $features{ENTRY_ENTRY_ID} = $entry[1] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
278 $features{ENTRY_FORMULA} = $entry[2] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
279 $features{ENTRY_CPD_MZ} = $entry[3] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
280 $features{ENTRY_ADDUCT} = $entry[4] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
281 $features{ENTRY_ADDUCT_TYPE} = $entry[5] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
282 $features{ENTRY_ADDUCT_MZ} = $entry[6] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
283 $features{ENTRY_DELTA} = $entry[7] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
284
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
285 my %temp = %features ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
286
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
287 push (@{$result_by_entry{$entry[0]} }, \%temp) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
288 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
289 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
290 next ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
291 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
292 } ## end foreach
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
293
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
294 ## manage per query_mzs (keep query masses order by array)
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
295 my @results = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
296 foreach (@{$masses}) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
297 if ($result_by_entry{$_}) { push (@results, $result_by_entry{$_}) ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
298 else {push (@results, [] ) ;} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
299 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
300 return(\@results) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
301 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
302 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
303
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
304 =head2 METHOD parse_hmdb_page_results
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
305
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
306 ## Description : [DEPRECATED] old HMDB html page parser
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
307 ## Input : $page
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
308 ## Output : $results
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
309 ## Usage : my ( $results ) = parse_hmdb_page_result( $pages ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
310
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
311 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
312 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
313 sub parse_hmdb_page_results {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
314 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
315 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
316 my ( $page ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
317
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
318 my @results = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
319 my ($catch_table, $catch_name) = (0, 0) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
320 my ($name, $adduct, $adduct_mw, $cpd_mw, $delta) = (undef, undef, undef, undef, undef) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
321
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
322 if ( defined $page ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
323
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
324 my @page = @{$page} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
325 my $ID = undef ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
326 my @result_by_mz = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
327 my %result_by_entry = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
328
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
329 foreach my $line (@page) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
330
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
331 #Section de la page contenant les resultat
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
332 if( $line =~/<table>/ ) { $catch_table = 1 ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
333
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
334 ## Si il existe un resultat :
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
335 if($catch_table == 1) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
336
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
337 #Id de la molecule, et creation du lien
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
338 if( $line =~ /<a href=\"\/metabolites\/(\w+)\" (.*)>/ ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
339 $ID = $1 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
340 $catch_name = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
341 next ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
342 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
343 #Nom de la molecule ONLY!!
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
344 if ( $catch_name == 0 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
345
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
346 if( $line =~ /<td>(.+)<\/td>/ ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
347
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
348 if ( !defined $name ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
349 $name = $1 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
350 $result_by_entry{'ENTRY_ENTRY_ID'} = $ID ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
351 $result_by_entry{'ENTRY_NAME'} = $name ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
352 next ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
353 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
354 if ( !defined $adduct ) { $adduct = $1 ; $result_by_entry{'ENTRY_ADDUCT'} = $adduct ; next ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
355 if ( !defined $adduct_mw ) { $adduct_mw = $1 ; $result_by_entry{'ENTRY_ADDUCT_MZ'} = $adduct_mw ; next ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
356 if ( !defined $cpd_mw ) { $cpd_mw = $1 ; $result_by_entry{'ENTRY_CPD_MZ'} = $cpd_mw ; next ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
357 if ( !defined $delta ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
358 $delta = $1 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
359 $result_by_entry{'ENTRY_DELTA'} = $delta ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
360 $catch_name = 1 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
361 my %tmp = %result_by_entry ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
362 push (@result_by_mz, \%tmp) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
363 %result_by_entry = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
364 ( $name, $cpd_mw, $delta, $adduct, $adduct_mw ) = ( undef, undef, undef, undef, undef ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
365 next ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
366 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
367 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
368 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
369 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
370 #Fin de la section contenant les resultats
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
371 if( $line =~ /<\/table>/ ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
372 $catch_table = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
373 my @Tmp = @result_by_mz ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
374 push(@results, \@Tmp) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
375 @result_by_mz = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
376 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
377 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
378 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
379 return(\@results) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
380 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
381 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
382
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
383 =head2 METHOD set_html_tbody_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
384
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
385 ## Description : initializes and build the tbody object (perl array) needed to html template
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
386 ## Input : $nb_pages, $nb_items_per_page
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
387 ## Output : $tbody_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
388 ## Usage : my ( $tbody_object ) = set_html_tbody_object($nb_pages, $nb_items_per_page) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
389
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
390 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
391 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
392 sub set_html_tbody_object {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
393 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
394 my ( $nb_pages, $nb_items_per_page ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
395
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
396 my ( @tbody_object ) = ( ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
397
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
398 for ( my $i = 1 ; $i <= $nb_pages ; $i++ ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
399
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
400 my %pages = (
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
401 # tbody feature
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
402 PAGE_NB => $i,
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
403 MASSES => [], ## end MASSES
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
404 ) ; ## end TBODY N
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
405 push (@tbody_object, \%pages) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
406 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
407 return(\@tbody_object) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
408 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
409 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
410
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
411 =head2 METHOD add_mz_to_tbody_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
412
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
413 ## Description : initializes and build the mz object (perl array) needed to html template
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
414 ## Input : $tbody_object, $nb_items_per_page, $mz_list
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
415 ## Output : $tbody_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
416 ## Usage : my ( $tbody_object ) = add_mz_to_tbody_object( $tbody_object, $nb_items_per_page, $mz_list ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
417
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
418 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
419 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
420 sub add_mz_to_tbody_object {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
421 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
422 my ( $tbody_object, $nb_items_per_page, $mz_list, $ids_list ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
423
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
424 my ( $current_page, $mz_index ) = ( 0, 0 ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
425
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
426 foreach my $page ( @{$tbody_object} ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
427
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
428 my @colors = ('white', 'green') ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
429 my ( $current_index, , $icolor ) = ( 0, 0 ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
430
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
431 for ( my $i = 1 ; $i <= $nb_items_per_page ; $i++ ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
432 #
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
433 if ( $current_index > $nb_items_per_page ) { ## manage exact mz per html page
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
434 $current_index = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
435 last ; ##
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
436 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
437 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
438 $current_index++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
439 if ( $icolor > 1 ) { $icolor = 0 ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
440
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
441 if ( exists $mz_list->[$mz_index] ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
442
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
443 my %mz = (
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
444 # mass feature
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
445 MASSES_ID_QUERY => $ids_list->[$mz_index],
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
446 MASSES_MZ_QUERY => $mz_list->[$mz_index],
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
447 MZ_COLOR => $colors[$icolor],
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
448 MASSES_NB => $mz_index+1,
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
449 ENTRIES => [] ,
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
450 ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
451 push ( @{ $tbody_object->[$current_page]{MASSES} }, \%mz ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
452 # Html attr for mass
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
453 $icolor++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
454 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
455 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
456 $mz_index++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
457 } ## foreach mz
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
458
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
459 $current_page++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
460 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
461 return($tbody_object) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
462 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
463 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
464
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
465 =head2 METHOD add_entries_to_tbody_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
466
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
467 ## Description : initializes and build the entries object (perl array) needed to html template
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
468 ## Input : $tbody_object, $nb_items_per_page, $mz_list, $entries
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
469 ## Output : $tbody_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
470 ## Usage : my ( $tbody_object ) = add_entries_to_tbody_object( $tbody_object, $nb_items_per_page, $mz_list, $entries ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
471
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
472 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
473 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
474 sub add_entries_to_tbody_object {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
475 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
476 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
477 my ( $tbody_object, $nb_items_per_page, $mz_list, $entries ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
478
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
479 my $index_page = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
480 my $index_mz_continous = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
481
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
482 foreach my $page (@{$tbody_object}) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
483
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
484 my $index_mz = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
485
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
486 foreach my $mz (@{ $tbody_object->[$index_page]{MASSES} }) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
487
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
488 my $index_entry = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
489
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
490 my @anti_redondant = ('N/A') ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
491 my $check_rebond = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
492 my $check_noentry = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
493
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
494 foreach my $entry (@{ $entries->[$index_mz_continous] }) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
495 $check_noentry ++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
496 ## dispo anti doublons des entries
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
497 foreach my $rebond (@anti_redondant) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
498 if ( $rebond eq $entries->[$index_mz_continous][$index_entry]{ENTRY_ENTRY_ID} ) { $check_rebond = 1 ; last ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
499 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
500
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
501 if ( $check_rebond == 0 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
502
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
503 push ( @anti_redondant, $entries->[$index_mz_continous][$index_entry]{ENTRY_ENTRY_ID} ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
504
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
505 my %entry = (
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
506 ENTRY_COLOR => $tbody_object->[$index_page]{MASSES}[$index_mz]{MZ_COLOR},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
507 ENTRY_ENTRY_ID => $entries->[$index_mz_continous][$index_entry]{ENTRY_ENTRY_ID},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
508 ENTRY_ENTRY_ID2 => $entries->[$index_mz_continous][$index_entry]{ENTRY_ENTRY_ID},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
509 ENTRY_FORMULA => $entries->[$index_mz_continous][$index_entry]{ENTRY_FORMULA},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
510 ENTRY_CPD_MZ => $entries->[$index_mz_continous][$index_entry]{ENTRY_CPD_MZ},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
511 ENTRY_ADDUCT => $entries->[$index_mz_continous][$index_entry]{ENTRY_ADDUCT},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
512 ENTRY_ADDUCT_TYPE => $entries->[$index_mz_continous][$index_entry]{ENTRY_ADDUCT_TYPE},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
513 ENTRY_ADDUCT_MZ => $entries->[$index_mz_continous][$index_entry]{ENTRY_ADDUCT_MZ},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
514 ENTRY_DELTA => $entries->[$index_mz_continous][$index_entry]{ENTRY_DELTA},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
515 ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
516
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
517 push ( @{ $tbody_object->[$index_page]{MASSES}[$index_mz]{ENTRIES} }, \%entry) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
518 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
519 $check_rebond = 0 ; ## reinit double control
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
520 $index_entry++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
521 } ## end foreach
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
522 if ($check_noentry == 0 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
523 my %entry = (
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
524 ENTRY_COLOR => $tbody_object->[$index_page]{MASSES}[$index_mz]{MZ_COLOR},
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
525 ENTRY_ENTRY_ID => 'No_result_found_on_HMDB',
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
526 ENTRY_ENTRY_ID2 => '',
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
527 ENTRY_FORMULA => 'n/a',
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
528 ENTRY_CPD_MZ => 'n/a',
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
529 ENTRY_ADDUCT => 'n/a',
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
530 ENTRY_ADDUCT_TYPE => 'n/a',
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
531 ENTRY_ADDUCT_MZ => 'n/a',
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
532 ENTRY_DELTA => 0,
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
533 ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
534 push ( @{ $tbody_object->[$index_page]{MASSES}[$index_mz]{ENTRIES} }, \%entry) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
535 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
536 $index_mz ++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
537 $index_mz_continous ++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
538 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
539 $index_page++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
540 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
541 return($tbody_object) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
542 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
543 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
544
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
545 =head2 METHOD write_html_skel
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
546
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
547 ## Description : prepare and write the html output file
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
548 ## Input : $html_file_name, $html_object, $html_template
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
549 ## Output : $html_file_name
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
550 ## Usage : my ( $html_file_name ) = write_html_skel( $html_file_name, $html_object ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
551
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
552 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
553 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
554 sub write_html_skel {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
555 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
556 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
557 my ( $html_file_name, $html_object, $pages , $search_condition, $html_template, $js_path, $css_path ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
558
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
559 my $html_file = $$html_file_name ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
560
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
561 if ( defined $html_file ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
562 open ( HTML, ">$html_file" ) or die "Can't create the output file $html_file " ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
563
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
564 if (-e $html_template) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
565 my $ohtml = HTML::Template->new(filename => $html_template);
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
566 $ohtml->param( JS_GALAXY_PATH => $js_path, CSS_GALAXY_PATH => $css_path ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
567 $ohtml->param( CONDITIONS => $search_condition ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
568 $ohtml->param( PAGES_NB => $pages ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
569 $ohtml->param( PAGES => $html_object ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
570 print HTML $ohtml->output ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
571 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
572 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
573 croak "Can't fill any html output : No template available ($html_template)\n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
574 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
575
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
576 close (HTML) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
577 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
578 else {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
579 croak "No output file name available to write HTML file\n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
580 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
581 return(\$html_file) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
582 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
583 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
584
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
585 =head2 METHOD set_lm_matrix_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
586
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
587 ## Description : build the hmdb_row under its ref form
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
588 ## Input : $header, $init_mzs, $entries
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
589 ## Output : $hmdb_matrix
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
590 ## Usage : my ( $hmdb_matrix ) = set_lm_matrix_object( $header, $init_mzs, $entries ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
591
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
592 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
593 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
594 sub set_lm_matrix_object {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
595 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
596 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
597 my ( $header, $init_mzs, $entries ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
598
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
599 my @hmdb_matrix = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
600
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
601 if ( defined $header ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
602 my @headers = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
603 push @headers, $header ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
604 push @hmdb_matrix, \@headers ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
605 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
606
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
607 my $index_mz = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
608
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
609 foreach my $mz ( @{$init_mzs} ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
610
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
611 my $index_entries = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
612 my @clusters = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
613 my $cluster_col = undef ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
614
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
615 my @anti_redondant = ('N/A') ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
616 my $check_rebond = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
617
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
618 my $nb_entries = scalar (@{ $entries->[$index_mz] }) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
619
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
620 foreach my $entry (@{ $entries->[$index_mz] }) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
621
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
622 ## dispo anti doublons des entries
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
623 foreach my $rebond (@anti_redondant) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
624 if ( $rebond eq $entries->[$index_mz][$index_entries]{ENTRY_ENTRY_ID} ) { $check_rebond = 1 ; last ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
625 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
626
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
627 if ( $check_rebond == 0 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
628
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
629 push ( @anti_redondant, $entries->[$index_mz][$index_entries]{ENTRY_ENTRY_ID} ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
630
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
631 my $delta = $entries->[$index_mz][$index_entries]{ENTRY_DELTA} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
632 my $formula = $entries->[$index_mz][$index_entries]{ENTRY_FORMULA} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
633 my $hmdb_id = $entries->[$index_mz][$index_entries]{ENTRY_ENTRY_ID} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
634
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
635 ## METLIN data display model
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
636 ## entry1=VAR1::VAR2::VAR3::VAR4|entry2=VAR1::VAR2::VAR3::VAR4|...
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
637 # manage final pipe
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
638 if ($index_entries < $nb_entries-1 ) { $cluster_col .= $delta.'::('.$formula.')::'.$hmdb_id.'|' ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
639 else { $cluster_col .= $delta.'::('.$formula.')::'.$hmdb_id ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
640
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
641 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
642 $check_rebond = 0 ; ## reinit double control
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
643 $index_entries++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
644 } ## end foreach
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
645 if ( !defined $cluster_col ) { $cluster_col = 'No_result_found_on_HMDB' ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
646 push (@clusters, $cluster_col) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
647 push (@hmdb_matrix, \@clusters) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
648 $index_mz++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
649 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
650 return(\@hmdb_matrix) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
651 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
652 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
653
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
654 =head2 METHOD set_hmdb_matrix_object_with_ids
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
655
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
656 ## Description : build the hmdb_row under its ref form (IDS only)
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
657 ## Input : $header, $init_mzs, $entries
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
658 ## Output : $hmdb_matrix
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
659 ## Usage : my ( $hmdb_matrix ) = set_hmdb_matrix_object_with_ids( $header, $init_mzs, $entries ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
660
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
661 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
662 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
663 sub set_hmdb_matrix_object_with_ids {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
664 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
665 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
666 my ( $header, $init_mzs, $entries ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
667
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
668 my @hmdb_matrix = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
669
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
670 if ( defined $header ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
671 my @headers = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
672 push @headers, $header ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
673 push @hmdb_matrix, \@headers ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
674 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
675
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
676 my $index_mz = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
677
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
678 foreach my $mz ( @{$init_mzs} ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
679
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
680 my $index_entries = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
681 my @clusters = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
682 my $cluster_col = undef ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
683
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
684 my @anti_redondant = ('N/A') ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
685 my $check_rebond = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
686
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
687 my $nb_entries = scalar (@{ $entries->[$index_mz] }) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
688
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
689 foreach my $entry (@{ $entries->[$index_mz] }) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
690
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
691 ## dispo anti doublons des entries
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
692 foreach my $rebond (@anti_redondant) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
693 if ( $rebond eq $entries->[$index_mz][$index_entries]{ENTRY_ENTRY_ID} ) { $check_rebond = 1 ; last ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
694 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
695
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
696 if ( $check_rebond == 0 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
697
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
698 push ( @anti_redondant, $entries->[$index_mz][$index_entries]{ENTRY_ENTRY_ID} ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
699 my $hmdb_id = $entries->[$index_mz][$index_entries]{ENTRY_ENTRY_ID} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
700
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
701 ## METLIN data display model -- IDs ONLY !!
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
702 ## entry1=VAR1::VAR2::VAR3::VAR4|entry2=VAR1::VAR2::VAR3::VAR4|...
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
703 # manage final pipe
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
704 if ($index_entries < $nb_entries-1 ) { $cluster_col .= $hmdb_id.'|' ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
705 else { $cluster_col .= $hmdb_id ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
706
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
707 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
708 $check_rebond = 0 ; ## reinit double control
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
709 $index_entries++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
710 } ## end foreach
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
711 if ( !defined $cluster_col ) { $cluster_col = 'No_result_found_on_HMDB' ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
712 push (@clusters, $cluster_col) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
713 push (@hmdb_matrix, \@clusters) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
714 $index_mz++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
715 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
716 return(\@hmdb_matrix) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
717 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
718 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
719
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
720 =head2 METHOD add_lm_matrix_to_input_matrix
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
721
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
722 ## Description : build a full matrix (input + lm column)
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
723 ## Input : $input_matrix_object, $lm_matrix_object, $nb_header
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
724 ## Output : $output_matrix_object
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
725 ## Usage : my ( $output_matrix_object ) = add_lm_matrix_to_input_matrix( $input_matrix_object, $lm_matrix_object, $nb_header ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
726
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
727 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
728 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
729 sub add_lm_matrix_to_input_matrix {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
730 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
731 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
732 my ( $input_matrix_object, $lm_matrix_object, $nb_header ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
733
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
734 my @output_matrix_object = () ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
735 my $index_row = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
736 my $line = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
737
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
738 foreach my $row ( @{$input_matrix_object} ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
739 my @init_row = @{$row} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
740 $line++;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
741
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
742 if ( ( defined $nb_header ) and ( $line <= $nb_header) ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
743 push (@output_matrix_object, \@init_row) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
744 next ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
745 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
746
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
747 if ( $lm_matrix_object->[$index_row] ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
748 my $dim = scalar(@{$lm_matrix_object->[$index_row]}) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
749
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
750 if ($dim > 1) { warn "the add method can't manage more than one column\n" ;}
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
751 my $lm_col = $lm_matrix_object->[$index_row][$dim-1] ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
752
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
753 push (@init_row, $lm_col) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
754 $index_row++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
755 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
756 push (@output_matrix_object, \@init_row) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
757 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
758 return(\@output_matrix_object) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
759 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
760 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
761
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
762 =head2 METHOD write_csv_skel
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
763
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
764 ## Description : prepare and write csv output file
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
765 ## Input : $csv_file, $rows
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
766 ## Output : $csv_file
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
767 ## Usage : my ( $csv_file ) = write_csv_skel( $csv_file, $rows ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
768
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
769 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
770 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
771 sub write_csv_skel {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
772 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
773 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
774 my ( $csv_file, $rows ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
775
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
776 my $ocsv = lib::csv::new() ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
777 my $csv = $ocsv->get_csv_object("\t") ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
778 $ocsv->write_csv_from_arrays($csv, $$csv_file, $rows) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
779
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
780 return($csv_file) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
781 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
782 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
783
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
784 =head2 METHOD write_csv_one_mass
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
785
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
786 ## Description : print a cvs file
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
787 ## Input : $masses, $ids, $results, $file
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
788 ## Output : N/A
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
789 ## Usage : write_csv_one_mass( $ids, $results, $file ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
790
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
791 =cut
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
792 ## START of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
793 sub write_csv_one_mass {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
794 ## Retrieve Values
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
795 my $self = shift ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
796 my ( $masses, $ids, $results, $file, ) = @_ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
797
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
798 open(CSV, '>:utf8', "$file") or die "Cant' create the file $file\n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
799 print CSV "ID\tMASS_SUBMIT\tHMDB_ID\tCPD_FORMULA\tCPD_MW\tDELTA\n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
800
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
801 my $i = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
802
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
803 foreach my $id (@{$ids}) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
804 my $mass = undef ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
805 if ( $masses->[$i] ) { $mass = $masses->[$i] ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
806 else { last ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
807
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
808 if ( $results->[$i] ) { ## an requested id has a result in the list of hashes $results.
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
809
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
810 my @anti_redondant = ('N/A') ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
811 my $check_rebond = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
812 my $check_noentry = 0 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
813
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
814 foreach my $entry (@{$results->[$i]}) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
815 $check_noentry ++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
816 ## dispo anti doublons des entries
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
817 foreach my $rebond (@anti_redondant) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
818 if ( $rebond eq $entry->{ENTRY_ENTRY_ID} ) { $check_rebond = 1 ; last ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
819 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
820 # print "\n-----------------------" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
821 # print Dumper $entry->{ENTRY_ENTRY_ID} ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
822 # print "-------------------------$check_rebond\n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
823 # print Dumper @anti_redondant ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
824 if ( $check_rebond == 0 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
825
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
826 push ( @anti_redondant, $entry->{ENTRY_ENTRY_ID} ) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
827
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
828 print CSV "$id\t$mass\t$entry->{ENTRY_ENTRY_ID}\t" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
829 ## print cpd name
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
830 if ( $entry->{ENTRY_FORMULA} ) { print CSV "$entry->{ENTRY_FORMULA}\t" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
831 else { print CSV "N/A\t" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
832 ## print cpd mw
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
833 if ( $entry->{ENTRY_CPD_MZ} ) { print CSV "$entry->{ENTRY_CPD_MZ}\t" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
834 else { print CSV "N/A\t" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
835 ## print delta
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
836 if ( $entry->{ENTRY_DELTA} ) { print CSV "$entry->{ENTRY_DELTA}\n" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
837 else { print CSV "N/A\n" ; }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
838 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
839 $check_rebond = 0 ; ## reinit double control
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
840 } ## end foreach
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
841 if ($check_noentry == 0 ) {
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
842 print CSV "$id\t$mass\t".'No_result_found_on_HMDB'."\tn/a\tn/a\t0\n" ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
843 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
844 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
845 $i++ ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
846 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
847 close(CSV) ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
848 return() ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
849 }
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
850 ## END of SUB
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
851
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
852 1 ;
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
853
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
854
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
855 __END__
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
856
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
857 =head1 SUPPORT
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
858
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
859 You can find documentation for this module with the perldoc command.
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
860
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
861 perldoc hmdb.pm
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
862
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
863 =head1 Exports
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
864
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
865 =over 4
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
866
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
867 =item :ALL is ...
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
868
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
869 =back
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
870
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
871 =head1 AUTHOR
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
872
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
873 Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
874
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
875 =head1 LICENSE
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
876
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
877 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
878
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
879 =head1 VERSION
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
880
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
881 version 1 : 06 / 06 / 2013
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
882
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
883 version 2 : 27 / 01 / 2014
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
884
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
885 version 3 : 19 / 11 / 2014
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
886
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
887 version 4 : 28 / 01 / 2016
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
888
9583f9772198 Init and uploaded
fgiacomoni
parents:
diff changeset
889 =cut