Mercurial > repos > fgiacomoni > golm_ws_lib_search
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 |
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 |