Mercurial > repos > jbrayet > rsat
diff supported-motif-databases_soap.py @ 24:8e5a92e5917e draft
Uploaded
author | jbrayet |
---|---|
date | Tue, 22 Sep 2015 08:01:43 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/supported-motif-databases_soap.py Tue Sep 22 08:01:43 2015 -0400 @@ -0,0 +1,188 @@ +#! /usr/bin/python +# -*- coding: utf8 -*- + +"""#supported motif databases soap - developed by Jocelyn Brayet <jocelyn.brayet@curie.fr> +#Copyright (C) 2015 Institut Curie +# +#This program is free software: you can redistribute it and/or modify +#it under the terms of the GNU General Public License as published by +#the Free Software Foundation, either version 3 of the License, or +#(at your option) any later version. +# +#This program is distributed in the hope that it will be useful, +#but WITHOUT ANY WARRANTY; without even the implied warranty of +#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#GNU General Public License for more details. +# +#You should have received a copy of the GNU General Public License +#along with this program. If not, see <http://www.gnu.org/licenses/>. +# +###########################################################' +# +#Recup motif databases to each RSAT server and create loc files for Galaxy. +# +###########################################################' +# +# List RSAT suppported motif databases. +# +# +#usage: supported-motif-databases_soap.py [-h] -galaxyPath <GALAXY_PATH> +# +#optional arguments: +# -h, --help show this help message and exit +# -galaxyPath <GALAXY_PATH>, --galaxyPath <GALAXY_PATH> +# Galaxy tool_data_path directory (e.i. /myGalaxy +# /galaxy-dist/tool-data) +# +#Version 0.1 - 27/05/2015 +# +###########################################################'""" +__author__ = 'Jocelyn Brayet' +supportedMotifDatabasesVersion = '0.1 - 27/05/2015' + +###########################################################' +## Import + +import argparse +import os +import urllib +from suds.client import Client +import platform + +###########################################################' + +################################ functions ############################################################ +## Define a function to make a service perform the desired request using provided arguments +def call_run_service(rsat_service, args): + """ + Run job in RSAT server. + service -> RSAT web service + args -> web service request + """ + + result = rsat_service.supported_motif_databases(args) + return result + +def testNone(argument): + """ + Test if argument is None or not. + argument -> argument give by user + """ + + if not argument is None: + variable = argument[0] + else: + variable = "" + return variable + +def recupMotifDatabases(srv,request,dicServ): + + """ + Recup RSAT organisms in each RSAT server. + srv -> server key in server dictionary + request -> job request + dicServ -> server dictionary + """ + + # Create the client + client = Client(serverDict[srv]) + # Need service interface to perform requests + rsat_service = client.service + + print client + # Define client header + + userAgent = 'RSAT-Client/v%s (%s; Python %s; %s)' % ( + supportedMotifDatabasesVersion, + os.path.basename( __file__ ), + platform.python_version(), + platform.system() + ) + + httpHeaders = {'User-agent': userAgent} + client.set_options(headers=httpHeaders) + client.set_options(timeout=300) + + result = call_run_service(rsat_service, request) + + ###########################################################' + ## Display request results + + print '###############################################' + print 'Command performed on server' + print '' + print result.command + print '' + print '###############################################' + print 'Result' + print '' + print result.client + + return(result.client) + +###########################################################' + +###########################################################' +# server dictionary +serverDict = { + + #http://protists.rsat.eu/ + "fr_ens":"http://rsat01.biologie.ens.fr/rsa-tools/web_services/RSATWS.wsdl", + "fr_mrs":"http://rsat-tagc.univ-mrs.fr/rsat/web_services/RSATWS.wsdl", + "fr_ro":"http://rsat.sb-roscoff.fr/web_services/RSATWS.wsdl", + "fr_mrs_2":"http://pedagogix-tagc.univ-mrs.fr/rsat/web_services/RSATWS.wsdl", + "es":"http://floresta.eead.csic.es/rsat/web_services/RSATWS.wsdl", + "mx":"http://embnet.ccg.unam.mx/rsa-tools/web_services/RSATWS.wsdl" + + } + + +if __name__ == '__main__': + + # Create the parser + parser = argparse.ArgumentParser(description='List RSAT suppported motif databases.', epilog='Version '+supportedMotifDatabasesVersion) + + # List desired arguments + #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) + 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) + + # Parse command line + args = parser.parse_args() + + # Get values to be used + #output_return = testNone(args.return_param) + galaxyPath = testNone(args.galaxyPath) + + for srv in serverDict: + + functionResult="" + reslutsTab=list() + finalTab=list() + + supportedMotifDatabasesRequest = { + + 'output' : 'client', + 'return' : 'name' + + } + + functionResult=recupMotifDatabases(srv,supportedMotifDatabasesRequest,serverDict) + reslutsTab=str(functionResult).split("\n") + del reslutsTab[-1] + resultsFile = open(galaxyPath+"/"+"RSAT_motif_databases_"+srv+".loc","w") + for value in reslutsTab: + if not value.startswith("#"): + resultsFile.write(value+"\n") + resultsFile.close() + + + + + + + + + + + +