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 |
