extra hack to get own database connection to work?
hello galaxy-community, we stored a lot of peak-information in a database. to import these files into galaxy, i read the DataConnectionProtocol (https://bitbucket.org/galaxy/galaxy-central/wiki/DataSources) and i also took a look at the biomart.xml example (https://bitbucket.org/galaxy/galaxy-dist/src/8729d2e29b02/tools/data_source/...). biomart does exactly what i want. here is my full tool configuration xml-file: <tool id="regionDb" name="RegionDb-Import"> <description>Import from regionDb</description> <command interpreter="python">../data_source/data_source.py $output $__app__.config.output_size_limit</command> <inputs action="http://localhost:8888/index.html" check_values="false" method="get"> <display>Display-Text</display> <param name="GALAXY_URL" type="baseurl" value="/tool_runner" /> <param name="tool_id" type="hidden" value="regionDb" /> </inputs> <request_param_translation> <request_param galaxy_name="URL" remote_name="URL" missing=""/> <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" /> <request_param galaxy_name="name" remote_name="name" missing="Biomart test query" /> </request_param_translation> <outputs> <data name="regionDb File" format="bed" label="regionDb import" /> </outputs> <help> **What it does** import ... </help> </tool> content of http://localhost:8888/index.html: <form method="POST" type="text" action="http://galaxy/tool_runner/regionDb?type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php" > <input type="submit" value="Send to Galaxy"/> </form> i also tried a different action="http://galaxy/tool_runner?tool_id=regionDb&type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php" with the same error message (shown below). what actually works is, if i try to receive biomart data with this request. <form method="POST" type="text" action="http://gen43/galaxy/tool_runner/biomart?type=text&name=ne%20history%20entry&URL=http://www.biomart.org/biomart/martview/4905f90905e8f4b362a96b887cc7c452?do_export=1&resultsButton=1" > <input type="submit" value="Send to Galaxy"/> </form> my question is: was there some extra hack to get the biomart tool to run? i found some lines in the lib/galaxy/web/controllers/tool_runner.py which confirm that assumption: #Hack to get biomart to work, ideally, we could pass tool_id to biomart and receive it back @web.expose def biomart(self, trans, tool_id='biomart', **kwd): """Catches the tool id and redirects as needed""" return self.index(trans, tool_id=tool_id, **kwd) Server Error URL: http://galaxy/tool_runner/regionDb?type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php Module paste.exceptions.errormiddleware:143 in __call__
app_iter = self.application(environ, start_response) Module paste.debug.prints:98 in __call__ environ, self.app) Module paste.wsgilib:539 in intercept_output app_iter = application(environ, replacement_start_response) Module paste.recursive:80 in __call__ return self.application(environ, start_response) Module galaxy.web.framework.middleware.remoteuser:109 in __call__ return self.app( environ, start_response ) Module paste.httpexceptions:632 in __call__ return self.application(environ, start_response) Module galaxy.web.framework.base:145 in __call__ body = method( trans, **kwargs ) Module galaxy.web.controllers.tool_runner:27 in regionDb return self.index(trans, tool_id=tool_id, **kwd) Module galaxy.web.controllers.tool_runner:75 in index template, vars = tool.handle_input( trans, params.__dict__ ) Module galaxy.tools:933 in handle_input _, out_data = self.execute( trans, incoming=params ) Module galaxy.tools:1225 in execute return self.tool_action.execute( self, trans, incoming=incoming, set_output_hid=set_output_hid, history=history ) Module galaxy.tools.actions:291 in execute wrap_values( tool.inputs, params ) Module galaxy.tools.actions:154 in wrap_values input_values[ input.name ] = galaxy.tools.InputValueWrapper( input, input_values[ input.name ], incoming ) KeyError: 'GALAXY_URL' extra data
CGI Variables CONTENT_LENGTH '-1' CONTENT_TYPE 'application/x-www-form-urlencoded' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_ACCEPT_LANGUAGE 'en-us,en;q=0.5' HTTP_CONNECTION 'Keep-Alive' HTTP_COOKIE 'galaxysession=c6ca0ddb55be603af8ffade046cb8ca7fe7a18f326db29b947c846a3b24831e1362e15c491e90b43' HTTP_HOST 'gen43' HTTP_REFERER 'http://localhost:8888/index2.php?GALAXY_URL=http%3A//gen43/galaxy/tool_runner&tool_id=regionDb' HTTP_REMOTE_USER 'perdacher@genau.at' HTTP_USER_AGENT 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3' HTTP_VIA '1.1 gen43.imp.univie.ac.at' PATH_INFO '/tool_runner/regionDb' QUERY_STRING 'type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php' REMOTE_ADDR '10.42.111.27' REQUEST_METHOD 'POST' SCRIPT_NAME '/galaxy' SERVER_NAME 'gen43.imp.univie.ac.at' SERVER_PORT '9191' SERVER_PROTOCOL 'HTTP/1.1' Configuration __file__ '/projects/solexadst/serverData/galaxy-devel/universe_wsgi.webapp.ini' admin_users 'tamir@genau.at' apache_xsendfile 'False' brand 'GenAu-Epx Development!!!' cookie_path '/galaxy' debug 'TRUE' enable_api 'True' enable_job_running 'False' enable_pages 'True' here '/projects/solexadst/serverData/galaxy-devel' log_level 'DEBUG' new_user_dataset_access_role_default_private 'True' remote_user_logout_href '/logout' remote_user_maildomain 'genau.at' require_login 'True' set_metadata_externally 'True' static_cache_time '360' static_dir '/projects/solexadst/serverData/galaxy-devel/static/' static_enabled 'True' static_favicon_dir '/projects/solexadst/serverData/galaxy-devel/static/favicon.ico' static_images_dir '/projects/solexadst/serverData/galaxy-devel/static/images' static_scripts_dir '/projects/solexadst/serverData/galaxy-devel/static/scripts/' static_style_dir '/projects/solexadst/serverData/galaxy-devel/static/june_2007_style/blue' upstream_gzip 'False' use_interactive 'False' use_remote_user 'True'
Hi Martin, You uncovered a bug with using check_values="false" and tool output labels. A fix was committed in 5289:b453988dce62; thanks for reporting the error. However, there are a couple of issues with your datasource tool configuration -- the most important being the setting of the tool_type and making sure that the output dataset name matches the name that will be used on the command line. I have included some untested alternatives for you below. Please let us know if we can provide additional assistance. Your xml should be similar to these (untested): using latest code: <tool id="regionDb" name="RegionDb-Import" tool_type="data_source"> <description>Import from regionDb</description> <command interpreter="python">../data_source/data_source.py $output $__app__.config.output_size_limit</command> <inputs action="http://localhost:8888/index.html" check_values="false" method="get"> <display>Display-Text</display> </inputs> <request_param_translation> <request_param galaxy_name="data_type" remote_name="data_type" missing="bed"/> </request_param_translation> <outputs> <data name="output" format="bed" label="regionDb import" /> </outputs> <help> **What it does** import ... </help> </tool> before fix: <tool id="regionDb" name="RegionDb-Import" tool_type="data_source"> <description>Import from regionDb</description> <command interpreter="python">../data_source/data_source.py $output $__app__.config.output_size_limit</command> <inputs action="http://localhost:8888/index.html" check_values="false" method="get"> <display>Display-Text</display> </inputs> <request_param_translation> <request_param galaxy_name="data_type" remote_name="data_type" missing="bed"/> <request_param galaxy_name="name" remote_name="name" missing="regionDb import" /> </request_param_translation> <outputs> <data name="output" format="bed" /> </outputs> <help> **What it does** import ... </help> </tool> Thanks for using Galaxy, Dan On Mar 31, 2011, at 4:10 AM, Perdacher,Martin wrote:
hello galaxy-community,
we stored a lot of peak-information in a database. to import these files into galaxy, i read the DataConnectionProtocol (https://bitbucket.org/galaxy/galaxy-central/wiki/DataSources) and i also took a look at the biomart.xml example (https://bitbucket.org/galaxy/galaxy-dist/src/8729d2e29b02/tools/data_source/...).
biomart does exactly what i want.
here is my full tool configuration xml-file: <tool id="regionDb" name="RegionDb-Import"> <description>Import from regionDb</description> <command interpreter="python">../data_source/data_source.py $output $__app__.config.output_size_limit</command> <inputs action="http://localhost:8888/index.html" check_values="false" method="get"> <display>Display-Text</display> <param name="GALAXY_URL" type="baseurl" value="/tool_runner" /> <param name="tool_id" type="hidden" value="regionDb" /> </inputs> <request_param_translation> <request_param galaxy_name="URL" remote_name="URL" missing=""/> <request_param galaxy_name="URL_method" remote_name="URL_method" missing="get" /> <request_param galaxy_name="name" remote_name="name" missing="Biomart test query" /> </request_param_translation> <outputs> <data name="regionDb File" format="bed" label="regionDb import" /> </outputs>
<help> **What it does**
import ... </help> </tool>
content of http://localhost:8888/index.html:
<form method="POST" type="text" action="http://galaxy/tool_runner/regionDb?type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php" > <input type="submit" value="Send to Galaxy"/> </form>
i also tried a different action="http://galaxy/tool_runner?tool_id=regionDb&type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php" with the same error message (shown below).
what actually works is, if i try to receive biomart data with this request. <form method="POST" type="text" action="http://gen43/galaxy/tool_runner/biomart?type=text&name=ne%20history%20entry&URL=http://www.biomart.org/biomart/martview/4905f90905e8f4b362a96b887cc7c452?do_export=1&resultsButton=1" > <input type="submit" value="Send to Galaxy"/> </form>
my question is: was there some extra hack to get the biomart tool to run? i found some lines in the lib/galaxy/web/controllers/tool_runner.py which confirm that assumption:
#Hack to get biomart to work, ideally, we could pass tool_id to biomart and receive it back @web.expose def biomart(self, trans, tool_id='biomart', **kwd): """Catches the tool id and redirects as needed""" return self.index(trans, tool_id=tool_id, **kwd)
Server Error
URL: http://galaxy/tool_runner/regionDb?type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php Module paste.exceptions.errormiddleware:143 in __call__
app_iter = self.application(environ, start_response) Module paste.debug.prints:98 in __call__ environ, self.app) Module paste.wsgilib:539 in intercept_output app_iter = application(environ, replacement_start_response) Module paste.recursive:80 in __call__ return self.application(environ, start_response) Module galaxy.web.framework.middleware.remoteuser:109 in __call__ return self.app( environ, start_response ) Module paste.httpexceptions:632 in __call__ return self.application(environ, start_response) Module galaxy.web.framework.base:145 in __call__ body = method( trans, **kwargs ) Module galaxy.web.controllers.tool_runner:27 in regionDb return self.index(trans, tool_id=tool_id, **kwd) Module galaxy.web.controllers.tool_runner:75 in index template, vars = tool.handle_input( trans, params.__dict__ ) Module galaxy.tools:933 in handle_input _, out_data = self.execute( trans, incoming=params ) Module galaxy.tools:1225 in execute return self.tool_action.execute( self, trans, incoming=incoming, set_output_hid=set_output_hid, history=history ) Module galaxy.tools.actions:291 in execute wrap_values( tool.inputs, params ) Module galaxy.tools.actions:154 in wrap_values input_values[ input.name ] = galaxy.tools.InputValueWrapper( input, input_values[ input.name ], incoming ) KeyError: 'GALAXY_URL' extra data
CGI Variables CONTENT_LENGTH '-1' CONTENT_TYPE 'application/x-www-form-urlencoded' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_ACCEPT_LANGUAGE 'en-us,en;q=0.5' HTTP_CONNECTION 'Keep-Alive' HTTP_COOKIE 'galaxysession=c6ca0ddb55be603af8ffade046cb8ca7fe7a18f326db29b947c846a3b24831e1362e15c491e90b43' HTTP_HOST 'gen43' HTTP_REFERER 'http://localhost:8888/index2.php?GALAXY_URL=http%3A//gen43/galaxy/tool_runner&tool_id=regionDb' HTTP_REMOTE_USER 'perdacher@genau.at' HTTP_USER_AGENT 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3' HTTP_VIA '1.1 gen43.imp.univie.ac.at' PATH_INFO '/tool_runner/regionDb' QUERY_STRING 'type=text&name=new%20history%20entry&URL=http://localhost:8888/getfile.php' REMOTE_ADDR '10.42.111.27' REQUEST_METHOD 'POST' SCRIPT_NAME '/galaxy' SERVER_NAME 'gen43.imp.univie.ac.at' SERVER_PORT '9191' SERVER_PROTOCOL 'HTTP/1.1'
Configuration __file__ '/projects/solexadst/serverData/galaxy-devel/universe_wsgi.webapp.ini' admin_users 'tamir@genau.at' apache_xsendfile 'False' brand 'GenAu-Epx Development!!!' cookie_path '/galaxy' debug 'TRUE' enable_api 'True' enable_job_running 'False' enable_pages 'True' here '/projects/solexadst/serverData/galaxy-devel' log_level 'DEBUG' new_user_dataset_access_role_default_private 'True' remote_user_logout_href '/logout' remote_user_maildomain 'genau.at' require_login 'True' set_metadata_externally 'True' static_cache_time '360' static_dir '/projects/solexadst/serverData/galaxy-devel/static/' static_enabled 'True' static_favicon_dir '/projects/solexadst/serverData/galaxy-devel/static/favicon.ico' static_images_dir '/projects/solexadst/serverData/galaxy-devel/static/images' static_scripts_dir '/projects/solexadst/serverData/galaxy-devel/static/scripts/' static_style_dir '/projects/solexadst/serverData/galaxy-devel/static/june_2007_style/blue' upstream_gzip 'False' use_interactive 'False' use_remote_user 'True' ___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at:
participants (2)
-
Daniel Blankenberg
-
Perdacher,Martin