annotate lib/golm_ws_api.pm @ 3:28d579fa1718 draft default tip

Master branch Updating - - Fxx
author fgiacomoni
date Wed, 03 Oct 2018 05:35:16 -0400
parents 11779b6402bc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
1 package lib::golm_ws_api ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
2
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
3 use strict;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
4 use warnings ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
5 use Exporter ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
6 use Carp ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
7
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
8 use Data::Dumper ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
9 #use SOAP::Lite +trace => [qw (debug)];
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
10 use SOAP::Lite ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
11 use JSON ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
12
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
13 use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
14
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
15 our $VERSION = "1.0";
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
16 our @ISA = qw(Exporter);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
17 our @EXPORT = qw( connectWSlibrarySearchGolm LibrarySearch test_query_golm filter_scores_golm_results filter_replica_results);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
18 our %EXPORT_TAGS = ( ALL => [qw( connectWSlibrarySearchGolm LibrarySearch test_query_golm filter_scores_golm_results filter_replica_results)] );
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
19
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
20 =head1 NAME
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
21
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
22 My::Module - An example module
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
23
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
24 =head1 SYNOPSIS
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
25
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
26 use My::Module;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
27 my $object = My::Module->new();
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
28 print $object->as_string;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
29
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
30 =head1 DESCRIPTION
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
31
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
32 This module does not really exist, it
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
33 was made for the sole purpose of
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
34 demonstrating how POD works.
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
35
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
36 =head1 METHODS
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
37
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
38 Methods are :
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
39
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
40 =head2 METHOD new
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
41
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
42 ## Description : new
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
43 ## Input : $self
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
44 ## Ouput : bless $self ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
45 ## Usage : new() ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
46
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
47 =cut
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
48
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
49 sub new {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
50 ## Variables
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
51 my $self={};
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
52 bless($self) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
53 return $self ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
54 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
55 ### END of SUB
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
56
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
57 =head2 METHOD connectWSlibrarySearchGolm
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
58
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
59 ## Description : create a soap object throught the webservice LibrarySearch of Golm.
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
60 ## Input : $ws_url, $ws_proxy
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
61 ## Ouput : $soap ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
62 ## Usage : my $soap = connectWSlibrarySearchGolm($ws_url, $ws_proxy) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
63
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
64 =cut
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
65
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
66 sub connectWSlibrarySearchGolm() {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
67 ## Retrieve Values
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
68 my $self = shift ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
69 my ($ws_url, $ws_proxy) = @_ ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
70
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
71 my $osoap = SOAP::Lite
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
72 -> soapversion('1.2')
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
73 -> envprefix('soap12')
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
74 -> readable(1)
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
75 -> uri( $ws_url )
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
76 -> proxy( $ws_proxy."/" )
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
77 -> on_fault(sub { my($soap, $res) = @_;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
78 eval { die ref $res ? $res->faultstring : $soap->transport->status, "\n"};
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
79 return ref $res ? $res : new SOAP::SOM ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
80 });
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
81
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
82 return ($osoap);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
83 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
84 ### END of SUB
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
85
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
86
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
87
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
88
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
89
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
90 =head2 METHOD test_query_golm
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
91
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
92 ## Description : send a test request (default given on ws website) to golm database.
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
93 ## Input : $ws_url, $ws_proxy
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
94 ## Ouput : $soap ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
95 ## Usage : my $soap = test_query_golm($ws_url, $ws_proxy) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
96
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
97 =cut
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
98
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
99 sub test_query_golm() {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
100 ## Retrieve Values
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
101 my $self = shift ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
102 my ($ws_url, $ws_proxy) = @_ ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
103
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
104 my $soap = SOAP::Lite
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
105 -> uri($ws_url)
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
106 -> on_action( sub { join '/', $ws_proxy, $_[1] } )
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
107 -> proxy($ws_proxy, timeout => 500);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
108
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
109 # Setting Content-Type myself
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
110 my $http_request = $soap
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
111 ->{'_transport'}
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
112 ->{'_proxy'}
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
113 ->{'_http_request'};
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
114 $http_request->content_type("text/xml; charset=utf-8");
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
115
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
116 my $method = SOAP::Data->name('LibrarySearch')
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
117 ->attr({xmlns => $ws_proxy."/"});
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
118
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
119 my @params = (
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
120 SOAP::Data->name('ri' => 1898),
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
121 SOAP::Data->name('riWindow' => 5),
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
122 SOAP::Data->name('AlkaneRetentionIndexGcColumnComposition' => 'VAR5'),
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
123 SOAP::Data->name('spectrum' => "70 3 71 3 72 16 73 999 74 87 75 78 76 4 77 5 81 1 82 6 83 13 84 4 85 3 86 4 87 5 88 4 89 52 90 4 91 2 97 2 98 1 99 4 100 12 101 16 102 9 103 116 104 11 105 26 106 2 107 1 111 1 112 1 113 4 114 11 115 7 116 5 117 93 118 9 119 8 126 1 127 3 128 3 129 101 130 19 131 25 132 4 133 60 134 8 135 4 140 1 141 1 142 4 143 13 144 2 145 6 146 1 147 276 148 44 149 27 150 3 151 1 156 1 157 70 158 12 159 5 160 148 161 26 162 7 163 8 164 1 168 1 169 2 170 1 172 3 173 4 174 1 175 4 177 4 186 2 187 1 189 28 190 7 191 13 192 2 193 1 201 5 202 1 203 3 204 23 205 162 206 31 207 16 208 2 210 2 214 1 215 2 216 8 217 88 218 18 219 8 220 1 221 6 222 1 229 23 230 6 231 11 232 3 233 4 234 3 235 1 243 1 244 2 245 1 246 2 247 1 256 1 262 3 263 1 269 2 270 1 274 4 275 1 277 4 278 1 291 7 292 2 293 1 300 1 305 4 306 1 307 4 308 1 318 1 319 122 320 37 321 17 322 3 323 1 343 1 364 2 365 1" ) );
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
124
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
125 my $som = $soap->call($method => @params);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
126 die $som->faultstring if ($som->fault);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
127
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
128 ## Get the hits + status of the query
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
129 my $results = $som->result->{Results} ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
130 my $status = $som->result->{Status} ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
131
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
132 if ($status eq 'success' && $results ne '') {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
133 print "\n\n\nThe test request succeeded - Golm Service available.\n\n\n" ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
134 return 1 ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
135 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
136 else { croak "\n\n\nSomething went wrong with the test request. Status delivered by Golm = ".$status."\n\n" ; }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
137 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
138 ### END of SUB
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
139
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
140
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
141
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
142 =head2 METHOD LibrarySearch
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
143
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
144 ## Description : Matches a single user submitted GC-EI mass spectrum against the Golm Metabolome Database (GMD).
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
145 ##  A limited amount of hits can be kept according to the maxHits value and after them being filtered by $filter value
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
146 ## Input : $osoap, $ri, $riWindow, $gcColumn, $spectrum, $maxHits
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
147 ## Ouput : \@limited_hits, \@json_res
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
148 ## Usage : ($limited_hits,$json_res) = LibrarySearch($osoap, $ri, $riWindow, $gcColumn, $spectrum, $maxHits) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
149
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
150 =cut
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
151
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
152 sub LibrarySearch() {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
153 ## Retrieve Values
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
154 my $self = shift ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
155 my ($ri, $riWindow, $gcColumn, $spectrum, $maxHits,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,$DotproductDistanceThreshold,
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
156 $HammingDistanceThreshold,$EuclideanDistanceThreshold, $ws_url, $ws_proxy, $default_ri, $default_ri_window, $default_gc_column) = @_ ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
157
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
158 #init in case :
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
159 $ri = $default_ri if ( !defined $ri ) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
160 $riWindow = $default_ri_window if ( !defined $riWindow ) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
161 $gcColumn = $default_gc_column if ( !defined $gcColumn ) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
162
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
163
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
164 my $result ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
165 my @filtered_limited_res = () ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
166 my @json_res ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
167
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
168 if ( defined $spectrum ){
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
169
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
170 if ( $spectrum ne '' ) {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
171
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
172 my $soap = SOAP::Lite
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
173 -> uri($ws_url)
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
174 -> on_action( sub { join '/', $ws_proxy, $_[1] } )
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
175 -> proxy($ws_proxy);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
176
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
177 # Setting Content-Type myself
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
178 my $http_request = $soap
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
179 ->{'_transport'}
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
180 ->{'_proxy'}
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
181 ->{'_http_request'};
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
182 $http_request->content_type("text/xml; charset=utf-8");
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
183
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
184 my $method = SOAP::Data->name('LibrarySearch')
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
185 ->attr({xmlns => $ws_proxy."/"});
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
186
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
187 my @params = (
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
188 SOAP::Data->name('ri' => $ri),
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
189 SOAP::Data->name('riWindow' => $riWindow),
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
190 SOAP::Data->name('AlkaneRetentionIndexGcColumnComposition' => $gcColumn),
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
191 SOAP::Data->name('spectrum' => $spectrum) ) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
192
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
193 my $som = $soap->call($method => @params);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
194 die $som->faultstring if ($som->fault);
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
195
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
196 ## Get the hits + status of the query
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
197 my $results = $som->result->{Results} ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
198 my $status = $som->result->{Status} ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
199
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
200 ## Limitate number of hits returned according to user's $maxHit
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
201 ## and filter hits on specific values with thresholds
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
202 my @results = @$results ;
2
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
203
0
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
204 ### Return all hits
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
205 my $oapi = lib::golm_ws_api->new() ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
206 if ($maxHits == 100 && $status eq 'success') {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
207
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
208 my $filtered_res = $oapi->filter_scores_golm_results(\@results,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
209 $DotproductDistanceThreshold,$HammingDistanceThreshold,$EuclideanDistanceThreshold) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
210
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
211 if(!@$filtered_res){ push (@$filtered_res , "no results") ; }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
212
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
213 return ($filtered_res) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
214 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
215 elsif ($maxHits < 100 && $maxHits > 0 && $status eq 'success'){
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
216
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
217 my $filtered_res_before_hits_limited = $oapi->filter_scores_golm_results(\@results,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
218 $DotproductDistanceThreshold,$HammingDistanceThreshold,$EuclideanDistanceThreshold) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
219 if (@$filtered_res_before_hits_limited) {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
220
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
221 for (my $i=0 ; $i<$maxHits ; $i++) {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
222
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
223 push (@filtered_limited_res , @$filtered_res_before_hits_limited[$i]) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
224 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
225 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
226 else {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
227
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
228 if(!@$filtered_res_before_hits_limited){ push (@filtered_limited_res , "no results") ; }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
229 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
230 return (\@filtered_limited_res) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
231 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
232 else { carp "No match returned from Golm for the query.\n" }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
233 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
234 else { carp "The spectrum for query is empty, Golm soap will stop.\n" ; }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
235 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
236 else { carp "The spectrum for query is undef, Golm soap will stop.\n" ; }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
237
2
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
238 # return \@filtered_limited_res ;
0
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
239 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
240 ### END of SUB
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
241
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
242
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
243
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
244
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
245 =head2 METHOD filter_scores_golm_results
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
246 ## Description : filter golm's hits by distance scores
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
247 ## Input : $results,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
248 ## $DotproductDistanceThreshold,$HammingDistanceThreshold,$EuclideanDistanceThreshold
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
249 ## Ouput : \@filtered_res ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
250 ## Usage : my ($filtered_res) = filter_scores_golm_results($results,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
251 ## $DotproductDistanceThreshold,$HammingDistanceThreshold,$EuclideanDistanceThreshold) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
252
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
253 =cut
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
254
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
255 sub filter_scores_golm_results() {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
256 ## Retrieve Values
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
257 my $self = shift ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
258 my ($results,$JaccardDistanceThreshold,$s12GowerLegendreDistanceThreshold,
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
259 $DotproductDistanceThreshold,$HammingDistanceThreshold,$EuclideanDistanceThreshold) = @_ ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
260
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
261 my @results = @$results ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
262 my @filtered_res = () ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
263
2
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
264 ## Adjust threshold
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
265 $JaccardDistanceThreshold = sprintf("%.6f", $JaccardDistanceThreshold) ;
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
266 $s12GowerLegendreDistanceThreshold = sprintf("%.6f", $s12GowerLegendreDistanceThreshold) ;
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
267 $DotproductDistanceThreshold = sprintf("%.6f", $DotproductDistanceThreshold) ;
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
268 # $HammingDistanceThreshold = sprintf("%.6f", $HammingDistanceThreshold);
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
269 $EuclideanDistanceThreshold = sprintf("%.6f", $EuclideanDistanceThreshold);
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
270
0
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
271 foreach my $res (@results){
2
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
272
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
273 $res->{'JaccardDistance'} = sprintf("%.6f", $res->{'JaccardDistance'}) ;
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
274 $res->{'s12GowerLegendreDistance'} = sprintf("%.6f", $res->{'s12GowerLegendreDistance'}) ;
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
275 $res->{'DotproductDistance'} = sprintf("%.6f", $res->{'DotproductDistance'}) ;
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
276 # $res->{'HammingDistance'} = sprintf("%.6f", $res->{'HammingDistance'}) ;
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
277 $res->{'EuclideanDistance'} = sprintf("%.6f", $res->{'EuclideanDistance'}) ;
0
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
278
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
279 if ($res->{'JaccardDistance'} <= $JaccardDistanceThreshold && $res->{'s12GowerLegendreDistance'} <= $s12GowerLegendreDistanceThreshold
2
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
280 && $res->{'DotproductDistance'} <= $DotproductDistanceThreshold && $res->{'HammingDistance'} <= $HammingDistanceThreshold &&
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
281 $res->{'EuclideanDistance'} <= $EuclideanDistanceThreshold) {
11779b6402bc planemo upload for repository https://github.com/workflow4metabolomics/tool-bank-golm-lib_search.git commit a2892b221abe5a68ef271266a36b66894fcf9bde
fgiacomoni
parents: 0
diff changeset
282
0
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
283 push (@filtered_res , $res) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
284 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
285 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
286
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
287 my $oapi = lib::golm_ws_api->new() ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
288 my $sorted_analytes = $oapi->filter_replica_results(\@filtered_res) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
289
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
290 return $sorted_analytes ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
291 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
292
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
293
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
294
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
295 =head2 METHOD _filter_replica_results
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
296 ## Description : remove replicated hits, keep the ones with the lowest dot product distance
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
297 ## Input : $results
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
298 ## Ouput : \@clean_res ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
299 ## Usage : my ($clean_res) = filter_replica_results($results) ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
300
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
301 =cut
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
302
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
303 sub filter_replica_results() {
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
304 ## Retrieve Values
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
305 my $self = shift ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
306 my ($results) = @_ ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
307 my %seen ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
308 my @sortAnalytes = grep { !$seen{$_->{'analyteName'}}++ } sort { $a->{'DotproductDistance'} <=> $b->{'DotproductDistance'} } @$results ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
309
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
310 return \@sortAnalytes ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
311 }
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
312
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
313
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
314
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
315
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
316
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
317 1 ;
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
318
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
319
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
320 __END__
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
321
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
322 =head1 SUPPORT
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
323
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
324 You can find documentation for this module with the perldoc command.
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
325
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
326 perldoc golm_ws_api.pm
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
327
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
328 =head1 Exports
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
329
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
330 =over 4
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
331
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
332 =item :ALL is connectWSlibrarySearchGolm LibrarySearch test_query_golm filter_scores_golm_results filter_replica_results
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
333
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
334 =back
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
335
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
336 =head1 AUTHOR
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
337
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
338 Franck Giacomoni E<lt>franck.giacomoni@clermont.inra.frE<gt>
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
339 Gabriel Cretin E<lt>gabriel.cretin@clermont.inra.frE<gt>
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
340
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
341 =head1 LICENSE
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
342
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
343 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
344
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
345 =head1 VERSION
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
346
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
347 version 1 : 03 / 06 / 2016
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
348
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
349 version 2 : 24 / 06 / 2016
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
350
e3d43b8c987b Init repository with last tool-bank-golm-lib_search master version
fgiacomoni
parents:
diff changeset
351 =cut