Mercurial > repos > jbrayet > rsat
comparison supported-motif-databases_soap.py @ 24:8e5a92e5917e draft
Uploaded
author | jbrayet |
---|---|
date | Tue, 22 Sep 2015 08:01:43 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
23:42d9f30eb76a | 24:8e5a92e5917e |
---|---|
1 #! /usr/bin/python | |
2 # -*- coding: utf8 -*- | |
3 | |
4 """#supported motif databases soap - developed by Jocelyn Brayet <jocelyn.brayet@curie.fr> | |
5 #Copyright (C) 2015 Institut Curie | |
6 # | |
7 #This program is free software: you can redistribute it and/or modify | |
8 #it under the terms of the GNU General Public License as published by | |
9 #the Free Software Foundation, either version 3 of the License, or | |
10 #(at your option) any later version. | |
11 # | |
12 #This program is distributed in the hope that it will be useful, | |
13 #but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 #GNU General Public License for more details. | |
16 # | |
17 #You should have received a copy of the GNU General Public License | |
18 #along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 # | |
20 ###########################################################' | |
21 # | |
22 #Recup motif databases to each RSAT server and create loc files for Galaxy. | |
23 # | |
24 ###########################################################' | |
25 # | |
26 # List RSAT suppported motif databases. | |
27 # | |
28 # | |
29 #usage: supported-motif-databases_soap.py [-h] -galaxyPath <GALAXY_PATH> | |
30 # | |
31 #optional arguments: | |
32 # -h, --help show this help message and exit | |
33 # -galaxyPath <GALAXY_PATH>, --galaxyPath <GALAXY_PATH> | |
34 # Galaxy tool_data_path directory (e.i. /myGalaxy | |
35 # /galaxy-dist/tool-data) | |
36 # | |
37 #Version 0.1 - 27/05/2015 | |
38 # | |
39 ###########################################################'""" | |
40 __author__ = 'Jocelyn Brayet' | |
41 supportedMotifDatabasesVersion = '0.1 - 27/05/2015' | |
42 | |
43 ###########################################################' | |
44 ## Import | |
45 | |
46 import argparse | |
47 import os | |
48 import urllib | |
49 from suds.client import Client | |
50 import platform | |
51 | |
52 ###########################################################' | |
53 | |
54 ################################ functions ############################################################ | |
55 ## Define a function to make a service perform the desired request using provided arguments | |
56 def call_run_service(rsat_service, args): | |
57 """ | |
58 Run job in RSAT server. | |
59 service -> RSAT web service | |
60 args -> web service request | |
61 """ | |
62 | |
63 result = rsat_service.supported_motif_databases(args) | |
64 return result | |
65 | |
66 def testNone(argument): | |
67 """ | |
68 Test if argument is None or not. | |
69 argument -> argument give by user | |
70 """ | |
71 | |
72 if not argument is None: | |
73 variable = argument[0] | |
74 else: | |
75 variable = "" | |
76 return variable | |
77 | |
78 def recupMotifDatabases(srv,request,dicServ): | |
79 | |
80 """ | |
81 Recup RSAT organisms in each RSAT server. | |
82 srv -> server key in server dictionary | |
83 request -> job request | |
84 dicServ -> server dictionary | |
85 """ | |
86 | |
87 # Create the client | |
88 client = Client(serverDict[srv]) | |
89 # Need service interface to perform requests | |
90 rsat_service = client.service | |
91 | |
92 print client | |
93 # Define client header | |
94 | |
95 userAgent = 'RSAT-Client/v%s (%s; Python %s; %s)' % ( | |
96 supportedMotifDatabasesVersion, | |
97 os.path.basename( __file__ ), | |
98 platform.python_version(), | |
99 platform.system() | |
100 ) | |
101 | |
102 httpHeaders = {'User-agent': userAgent} | |
103 client.set_options(headers=httpHeaders) | |
104 client.set_options(timeout=300) | |
105 | |
106 result = call_run_service(rsat_service, request) | |
107 | |
108 ###########################################################' | |
109 ## Display request results | |
110 | |
111 print '###############################################' | |
112 print 'Command performed on server' | |
113 print '' | |
114 print result.command | |
115 print '' | |
116 print '###############################################' | |
117 print 'Result' | |
118 print '' | |
119 print result.client | |
120 | |
121 return(result.client) | |
122 | |
123 ###########################################################' | |
124 | |
125 ###########################################################' | |
126 # server dictionary | |
127 serverDict = { | |
128 | |
129 #http://protists.rsat.eu/ | |
130 "fr_ens":"http://rsat01.biologie.ens.fr/rsa-tools/web_services/RSATWS.wsdl", | |
131 "fr_mrs":"http://rsat-tagc.univ-mrs.fr/rsat/web_services/RSATWS.wsdl", | |
132 "fr_ro":"http://rsat.sb-roscoff.fr/web_services/RSATWS.wsdl", | |
133 "fr_mrs_2":"http://pedagogix-tagc.univ-mrs.fr/rsat/web_services/RSATWS.wsdl", | |
134 "es":"http://floresta.eead.csic.es/rsat/web_services/RSATWS.wsdl", | |
135 "mx":"http://embnet.ccg.unam.mx/rsa-tools/web_services/RSATWS.wsdl" | |
136 | |
137 } | |
138 | |
139 | |
140 if __name__ == '__main__': | |
141 | |
142 # Create the parser | |
143 parser = argparse.ArgumentParser(description='List RSAT suppported motif databases.', epilog='Version '+supportedMotifDatabasesVersion) | |
144 | |
145 # List desired arguments | |
146 #parser.add_argument('-r', '--return_param', metavar='<RETURN_PARAM>', type=str, nargs=1, help='Return fields. Supported: name,format,file,descr,version,url.', required=True) | |
147 parser.add_argument('-galaxyPath', '--galaxyPath', metavar='<GALAXY_PATH>', type=str, nargs=1, help='Galaxy tool_data_path directory (e.i. /myGalaxy/galaxy-dist/tool-data)', required=True) | |
148 | |
149 # Parse command line | |
150 args = parser.parse_args() | |
151 | |
152 # Get values to be used | |
153 #output_return = testNone(args.return_param) | |
154 galaxyPath = testNone(args.galaxyPath) | |
155 | |
156 for srv in serverDict: | |
157 | |
158 functionResult="" | |
159 reslutsTab=list() | |
160 finalTab=list() | |
161 | |
162 supportedMotifDatabasesRequest = { | |
163 | |
164 'output' : 'client', | |
165 'return' : 'name' | |
166 | |
167 } | |
168 | |
169 functionResult=recupMotifDatabases(srv,supportedMotifDatabasesRequest,serverDict) | |
170 reslutsTab=str(functionResult).split("\n") | |
171 del reslutsTab[-1] | |
172 resultsFile = open(galaxyPath+"/"+"RSAT_motif_databases_"+srv+".loc","w") | |
173 for value in reslutsTab: | |
174 if not value.startswith("#"): | |
175 resultsFile.write(value+"\n") | |
176 resultsFile.close() | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 |