annotate supported-organisms_soap.py @ 52:a1d369ead6d7 draft default tip

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