Mercurial > repos > fgiacomoni > golm_ws_lib_search
annotate lib/golm_ws_api.pm @ 0:e3d43b8c987b draft
Init repository with last tool-bank-golm-lib_search master version
| author | fgiacomoni | 
|---|---|
| date | Mon, 05 Dec 2016 08:32:04 -0500 | 
| parents | |
| children | 11779b6402bc | 
| 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 ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
203 | 
| 
 
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 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
238 return \@filtered_limited_res ; | 
| 
 
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 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
264 foreach my $res (@results){ | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
265 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
266 if ($res->{'JaccardDistance'} <= $JaccardDistanceThreshold && $res->{'s12GowerLegendreDistance'} <= $s12GowerLegendreDistanceThreshold | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
267 && $res->{'DotproductDistance' } <= $DotproductDistanceThreshold && $res->{'HammingDistance'} <= $HammingDistanceThreshold && | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
268 $res->{'EuclideanDistance' } <= $EuclideanDistanceThreshold) { | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
269 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
270 push (@filtered_res , $res) ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
271 } | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
272 } | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
273 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
274 my $oapi = lib::golm_ws_api->new() ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
275 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
 | 
276 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
277 return $sorted_analytes ; | 
| 
 
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 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
280 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
281 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
282 =head2 METHOD _filter_replica_results | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
283 ## 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
 | 
284 ## Input : $results | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
285 ## Ouput : \@clean_res ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
286 ## Usage : my ($clean_res) = filter_replica_results($results) ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
287 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
288 =cut | 
| 
 
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 sub filter_replica_results() { | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
291 ## Retrieve Values | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
292 my $self = shift ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
293 my ($results) = @_ ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
294 my %seen ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
295 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
 | 
296 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
297 return \@sortAnalytes ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
298 } | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
299 | 
| 
 
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 | 
| 
 
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 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
304 1 ; | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
305 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
306 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
307 __END__ | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
308 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
309 =head1 SUPPORT | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
310 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
311 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
 | 
312 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
313 perldoc golm_ws_api.pm | 
| 
 
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 =head1 Exports | 
| 
 
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 =over 4 | 
| 
 
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 =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
 | 
320 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
321 =back | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
322 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
323 =head1 AUTHOR | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
324 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
325 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
 | 
326 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
 | 
327 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
328 =head1 LICENSE | 
| 
 
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 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
 | 
331 | 
| 
 
e3d43b8c987b
Init repository with last tool-bank-golm-lib_search master version
 
fgiacomoni 
parents:  
diff
changeset
 | 
332 =head1 VERSION | 
| 
 
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 version 1 : 03 / 06 / 2016 | 
| 
 
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 version 2 : 24 / 06 / 2016 | 
| 
 
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 =cut | 
