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