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()
+
+
+
+
+
+
+
+
+
+
+
+