hello galaxy-community,
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>
<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>
<input type="submit" value="Send to Galaxy"/>
</form>
what actually works is, if i try to receive biomart data with this request.
<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__
<<
try:
__traceback_supplement__ =
Supplement, self,
environ
app_iter
= self.application(environ, start_response)
return self.make_catching_iter(app_iter, environ)
except:
>>
app_iter = self.application(environ, start_response)
Module
paste.debug.prints:
98
in
__call__
<<
try:
status, headers, body
= wsgilib.intercept_output(
environ, self.app)
if
status is
None:
# Some error occurred
>>
environ, self.app)
Module
paste.wsgilib:
539
in
intercept_output
<<
data.append(headers)
return output.write
app_iter = application(environ,
replacement_start_response)
if data[0] is None:
return (None, None, app_iter)
>>
app_iter = application(environ,
replacement_start_response)
Module
paste.recursive:
80
in
__call__
<<
environ['paste.recursive.script_name'] = my_script_name
try:
return
self.application(environ, start_response)
except ForwardRequestException, e:
middleware = CheckForRecursionMiddleware(
>>
return self.application(environ,
start_response)
Module
galaxy.web.framework.middleware.remoteuser:
109
in
__call__
<<
"""
return self.error( start_response, title, message )
return self.app( environ,
start_response )
elif path_info.startswith( '/api/' ):
# The API handles its own authentication via keys
>>
return self.app( environ,
start_response )
Module
paste.httpexceptions:
632
in
__call__
<<
[]).append(HTTPException)
try:
return
self.application(environ, start_response)
except HTTPException, exc:
return exc(environ,
start_response)
>>
return self.application(environ,
start_response)
Module
galaxy.web.framework.base:
145
in
__call__
<<
kwargs.pop( '_',
None )
try:
body
= method( trans, **kwargs
)
except Exception, e:
body = self.handle_controller_exception(
e, trans,
**kwargs )
>>
body = method(
trans, **kwargs )
Module
galaxy.web.controllers.tool_runner:
27
in
regionDb
<<
def regionDb(self,
trans, tool_id='regionDb',
**kwd):
"""Catches the tool id and redirects
as needed"""
return self.index(trans, tool_id=tool_id, **kwd)
#Hack to get biomart to work, ideally, we
could pass tool_id to biomart and receive it back
>>
return self.index(trans,
tool_id=tool_id,
**kwd)
Module
galaxy.web.controllers.tool_runner:
75
in
index
<<
# so make sure to create a new
history if we've never had one before.
history = trans.get_history(
create=True
)
template,
vars = tool.handle_input( trans,
params.__dict__
)
if len(params) > 0:
trans.log_event( "Tool
params: %s" % (str(params)), tool_id=tool_id
)
>>
template, vars
= tool.handle_input(
trans, params.__dict__ )
Module
galaxy.tools:
933
in
handle_input
<<
# If we've completed the last
page we can execute the tool
elif state.page ==
self.last_page:
_,
out_data = self.execute( trans,
incoming=params
)
try:
assert isinstance( out_data,
odict )
>>
_, out_data
= self.execute(
trans, incoming=params )
Module
galaxy.tools:
1225
in
execute
<<
when run
will build the tool's outputs, e.g. `DefaultToolAction`.
"""
return
self.tool_action.execute( self, trans, incoming=incoming,
set_output_hid=set_output_hid, history=history )
def params_to_strings( self, params, app ):
>>
return self.tool_action.execute(
self, trans,
incoming=incoming,
set_output_hid=set_output_hid, history=history )
Module
galaxy.tools.actions:
291
in
execute
<<
# <data format="input" name="output"
label="Blat on ${<input_param>.name}" />
# </outputs>
wrap_values(
tool.inputs, params )
#tool (only needing to be set once) and
on_string (set differently for each label) are overwritten for each
output dataset label being determined
params['tool'] = tool
>>
wrap_values( tool.inputs,
params )
Module
galaxy.tools.actions:
154
in
wrap_values
<<
input_values[ input.name ] =
galaxy.tools.SelectToolParameterWrapper( input, input_values[ input.name
], tool.app, other_values = incoming )
else:
input_values[
input.name ] = galaxy.tools.InputValueWrapper( input, input_values[
input.name ], incoming )
# Set history.
>>
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_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'
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'