Problem with format="input" when using multiple inputs
by Assaf Gordon
Hi,
I came across a small problem in the tool definition parameters. It's rare, but it happens.
The problem is that if the tool has more than one input file, AND uses variable output format based on the input file, AND the multiple input files are of different formats, then there's no way to properly set the output format based on the input format of a specific input.
Example:
Assume an imaginary tool that accepts 2 inputs: one input can be BED/GFF/BAM, the other input is tabular.
The output should be the same as the interval file (BED/GFF/BAM).
The XML definition would be:
==========
<inputs>
<param format="bed,gff,bam" name="input1" type="data" label="Intervals" />
<param format="tabular" name="input2" type="data" label="filter" />
</inputs>
<outputs>
<data format="input" name="output" metadata_source="input1" />
</outputs>
===========
The problem is with 'format="input"' . Any other fixed format (e.g. "fasta" or "bam") would work fine.
The special value "input" is hard-coded (lib/galaxy/tools/actions/__init__.py:226) to take the extension of "one" of the input files, but there's no way to specify which input (due to the loop in lib/galaxy/tools/actions/__init__.py:159)
I guess it's not very a common scenario, because most tools that accept multiple inputs (e.g. concatenate queries) implicitly assume all inputs are the same format.
I propose this ugly patch (attached), which is not the cleanest solution, but it allows specifying an input source, while not breaking any other tool definition.
With it, I can specify the output definition as:
===
<outputs>
<data format="input:input1" name="output" metadata_source="input1" />
</outputs>
===
And then the output dataset format will be copied from 'input1'.
Comments are welcomed,
-gordon
12 years, 6 months
Error when attempting to run galaxy
by Roger Kapul
Hello,
I'm running a fresh install of Ubuntu 10.04 LTS, python version 2.6 and
numpy version 1.3.0 and I get this error when I try to run galaxy on my
machine. I downloaded and installed galaxy by following the steps on the
wiki and used the mercurial repository to download it.
galaxy.web.framework.base DEBUG 2010-07-20 12:36:28,494 Enabling 'async'
controller, class: ASync
Traceback (most recent call last):
File "./scripts/paster.py", line 34, in <module>
command.run()
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteScript-1.7.3-py2.6.egg/paste/script/command.py",
line 84, in run
invoke(command, command_name, options, args[1:])
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteScript-1.7.3-py2.6.egg/paste/script/command.py",
line 123, in invoke
exit_code = runner.run(args)
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteScript-1.7.3-py2.6.egg/paste/script/command.py",
line 218, in run
result = self.command()
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteScript-1.7.3-py2.6.egg/paste/script/serve.py",
line 276, in command
relative_to=base, global_conf=vars)
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteScript-1.7.3-py2.6.egg/paste/script/serve.py",
line 313, in loadapp
**kw)
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteDeploy-1.3.3-py2.6.egg/paste/deploy/loadwsgi.py",
line 204, in loadapp
return loadobj(APP, uri, name=name, **kw)
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteDeploy-1.3.3-py2.6.egg/paste/deploy/loadwsgi.py",
line 225, in loadobj
return context.create()
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteDeploy-1.3.3-py2.6.egg/paste/deploy/loadwsgi.py",
line 625, in create
return self.object_type.invoke(self)
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteDeploy-1.3.3-py2.6.egg/paste/deploy/loadwsgi.py",
line 110, in invoke
return fix_call(context.object, context.global_conf,
**context.local_conf)
File
"/home/roger/galaxy-python/galaxy_dist/eggs/PasteDeploy-1.3.3-py2.6.egg/paste/deploy/util/fixtypeerror.py",
line 57, in fix_call
val = callable(*args, **kw)
File "/home/roger/galaxy-python/galaxy_dist/lib/galaxy/web/buildapp.py",
line 90, in app_factory
add_controllers( webapp, app )
File "/home/roger/galaxy-python/galaxy_dist/lib/galaxy/web/buildapp.py",
line 39, in add_controllers
module = __import__( module_name )
File
"/home/roger/galaxy-python/galaxy_dist/lib/galaxy/web/controllers/tracks.py",
line 27, in <module>
from galaxy.visualization.tracks.data.array_tree import
ArrayTreeDataProvider
File
"/home/roger/galaxy-python/galaxy_dist/lib/galaxy/visualization/tracks/data/array_tree.py",
line 8, in <module>
from bx.arrays.array_tree import FileArrayTreeDict
File "numpy.pxd", line 119, in init bx.arrays.array_tree
(lib/bx/arrays/array_tree.c:11323)
ValueError: numpy.dtype does not appear to be the correct type object
Any advice?
Thank you
Roger
12 years, 6 months
command interpreter not using interpreter in my $PATH
by Leandro Hermida
Dear all,
Sorry if I missed it, I looked in the list archives and couldn't find any
mention of the topic.
I am developing tools for Galaxy and thus running a Galaxy server from my
within my home directory under my username. I have my own Perl installed in
my home directory and this is in my $PATH, I don't use the system Perl, but
when I run a Galaxy tool with <command interpreter="perl"> it is using the
system Perl, as if my $PATH is not used at all. Since the Galaxy server and
tool runner is running under my username and it looks like it just forks off
a call to "perl ...." when it forks why doesn't it use my Perl?
best,
Leandro
12 years, 6 months
Galaxy Developer Conference 2011
by Anton Nekrutenko
Dear members of Galaxy Community:
We are starting to prepare for the Second Galaxy Developer Conference in 2011. This time we would like to hold it in Europe and we were asked to consider Uppsala and Heidelberg. However, Galaxy is a community project and we would like to ask you for input. If any of you knows good and reliable conference facility, please let us know. We will then research this and finalize the conference planning.
So let us know...
Thanks,
anton + galaxy team
Anton Nekrutenko
http://nekrut.bx.psu.edu
http://usegalaxy.org
12 years, 6 months
<repeat> tag
by Pei, Bing
Hi,
I was wondering if I could get some more information on how the <repeat>
tag works. If I am repeating an argument, say "$samplename," would the
xml file just pass extra arguments to my command line, or do I have to
do some extra configuration? If it is passing extra arguments, are they
lumped together? For example if I want to repeat both $samplename and
$lane using the same tag, is it sending to the command line $samplename1
$samplename2 $samplename3 $lane1 $lane2 $lane3 or $samplename1 $lane1
$samplename2 $lane2 $samplename3 $lane3? What types are supported by the
<repeat> tag? Currently I am using type="text" but this does not seem to
be working.
Thanks!
12 years, 6 months
nginx configuration and upload size
by Brad Chapman
Hey all;
Nate, many thanks for the updated wiki documentation on configuring
nginx. Awesome stuff, with the help of this I've been able to get
nginx handling uploads on our local galaxy server. I added some
notes to the documentation about getting this running with a prefix,
and also submitted a patch which sorts out some redirect issues with
both nginx and a prefix:
http://bitbucket.org/galaxy/galaxy-central/issue/366/uploads-from-tool-me...
There's one issue related to uploading through nginx that I could
use some advice on. Uploading larger (>1M) files was giving a
413 error, which appeared to be related to the client_max_body_size
parameter:
http://forum.slicehost.com/comments.php?DiscussionID=1714
Resetting client_max_body_size to a value larger than the upload
file resolved the problem. Is this how you handle large file uploads
on Galaxy main or is there a better way? If that's the right
solution I can add a note to the wiki docs for future nginx users,
but am not confident enough in my nginx skillz to start passing out
advice without a bit of confirmation.
Thanks much,
Brad
12 years, 6 months
upload files from filesystems path
by SHAUN WEBB
Hi,
after updating to the latest galaxy changeset I am getting an error
when trying to upload files from system path, the traceback is below.
The new files then appear in the library as queued jobs.
Thanks in advance for your help
Shaun Webb
URL: http://bifx3.bio.ed.ac.uk:8080/library_common/upload_library_dataset
File
'/opt/galaxy_dist/eggs/Paste-1.6-py2.5.egg/paste/exceptions/errormiddleware.py', line 143 in
__call__
app_iter = self.application(environ, start_response)
File
'/opt/galaxy_dist/eggs/Paste-1.6-py2.5.egg/paste/debug/prints.py',
line 98 in __call__
environ, self.app)
File '/opt/galaxy_dist/eggs/Paste-1.6-py2.5.egg/paste/wsgilib.py',
line 539 in intercept_output
app_iter = application(environ, replacement_start_response)
File '/opt/galaxy_dist/eggs/Paste-1.6-py2.5.egg/paste/recursive.py',
line 80 in __call__
return self.application(environ, start_response)
File
'/opt/galaxy_dist/eggs/Paste-1.6-py2.5.egg/paste/httpexceptions.py',
line 632 in __call__
return self.application(environ, start_response)
File '/opt/galaxy_dist/lib/galaxy/web/framework/base.py', line 145 in __call__
body = method( trans, **kwargs )
File '/opt/galaxy_dist/lib/galaxy/web/controllers/library_common.py',
line 978 in upload_library_dataset
**kwd )
File '/opt/galaxy_dist/lib/galaxy/web/controllers/library_common.py',
line 1158 in upload_dataset
message=util.sanitize_text( message ),
File '/opt/galaxy_dist/lib/galaxy/util/__init__.py', line 138 in sanitize_text
for c in text:
TypeError: 'NoneType' object is not iterable
--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
12 years, 6 months
Possible Bug?
by Michael Siebauer
Hi,
I maybe found a bug or misunderstand something in the debugging/logging
section of universal_wsgi.ini
I wanted to disable any logging and so commented everything within the
logging section:
|# ---- Logging and Debugging
------------------------------------------------
# Verbosity of log messages
#log_level = DEBUG
# Log memory usage
#log_memory_usage = False
# Log events
#log_events = True
# Log user actions
#log_actions = False
# Configuration for debugging middleware
#debug = True
#use_lint = False
# Interactive debugging - NEVER enable this on a public site
#use_interactive = False
# Write thread status periodically to 'heartbeat.log' (careful, uses
disk space rapidly!)
#use_heartbeat = False
# Enable the memory debugging interface (careful, negatively impacts
server performance)
#use_memdump = False
# Profiling middleware (cProfile based)
#use_profile = False
|
When I then start Galaxy the complete History shows only "Internal
Server Error" and the Galaxy Log:
|Starting server in PID 5470.
serving on http://127.0.0.1:8080
192.168.3.90 - - [15/Jul/2010:17:29:23 +0200] "GET / HTTP/1.1" 200 - "-"
"Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.0.19) Gecko/2010040121
Ubuntu/9.04 (jaunty) Firefox/3.0.19"
192.168.3.90 - - [15/Jul/2010:17:29:23 +0200] "GET /history HTTP/1.1"
200 - "http://bioapp07/" "Mozilla/5.0 (X11; U; Linux x86_64; de;
rv:1.9.0.19) Gecko/2010040121 Ubuntu/9.04 (jaunty) Firefox/3.0.19"
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 38584)
Traceback (most recent call last):
File
"/r1/people/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/httpserver.py",
line 1053, in process_request_in_thread
self.finish_request(request, client_address)
File "/usr/lib/python2.6/SocketServer.py", line 320, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.6/SocketServer.py", line 615, in __init__
self.handle()
File
"/r1/people/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/httpserver.py",
line 432, in handle
BaseHTTPRequestHandler.handle(self)
File "/usr/lib/python2.6/BaseHTTPServer.py", line 329, in handle
self.handle_one_request()
File
"/r1/people/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/httpserver.py",
line 427, in handle_one_request
self.wsgi_execute()
File
"/r1/people/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/httpserver.py",
line 290, in wsgi_execute
self.wsgi_write_chunk(chunk)
File
"/r1/people/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/httpserver.py",
line 125, in wsgi_write_chunk
"Content returned before start_response called")
RuntimeError: Content returned before start_response called
----------------------------------------
192.168.3.90 - - [15/Jul/2010:17:29:23 +0200] "GET /root/tool_menu
HTTP/1.1" 200 - "http://bioapp07/" "Mozilla/5.0 (X11; U; Linux x86_64;
de; rv:1.9.0.19) Gecko/2010040121 Ubuntu/9.04 (jaunty) Firefox/3.0.19"
|
After uncommenting everything in the logging section, galaxy works fine
again. Whats the matter and how can I disable the debug messages, and
especially:
|192.168.3.90 - - [15/Jul/2010:17:29:23 +0200] "GET /root/tool_menu
HTTP/1.1" 200 - "http://bioapp07/" "Mozilla/5.0 (X11; U; Linux x86_64;
de; rv:1.9.0.19) Gecko/2010040121 Ubuntu/9.04 (jaunty) Firefox/3.0.19"|
I use Galaxy behind a Apache with NIS userauthentification.
Regards, Michael ;-)
12 years, 6 months
Error Uploading file
by Sébastien HARISPE
Hi,
I encountered some difficulties to upload a file using tool interface.
This returns the following error, see [1] .Upload a file using "Get
data > Upload file" is not a problem.
Xml tag used for tool definition : <param format="fasta" name="seq"
type="file" label="Fasta file"/>
Python version 2.6.5 (r265:79063)
Do you know how this error can be solved?
Sincerely,
Seb
[1]
URL: http://127.0.0.1:8080/tool_runner/index
File '/var/www/galaxy/galaxy_dist/eggs/WebError-0.8a-py2.6.egg/weberror/evalexception/middleware.py',
line 364 in respond
app_iter = self.application(environ, detect_start_response)
File '/var/www/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/debug/prints.py',
line 98 in __call__
environ, self.app)
File '/var/www/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/wsgilib.py',
line 539 in intercept_output
app_iter = application(environ, replacement_start_response)
File '/var/www/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/recursive.py',
line 80 in __call__
return self.application(environ, start_response)
File '/var/www/galaxy/galaxy_dist/eggs/Paste-1.6-py2.6.egg/paste/httpexceptions.py',
line 632 in __call__
return self.application(environ, start_response)
File '/var/www/galaxy/galaxy_dist/lib/galaxy/web/framework/base.py',
line 126 in __call__
body = method( trans, **kwargs )
File '/var/www/galaxy/galaxy_dist/lib/galaxy/web/controllers/tool_runner.py',
line 68 in index
template, vars = tool.handle_input( trans, params.__dict__ )
File '/var/www/galaxy/galaxy_dist/lib/galaxy/tools/__init__.py', line
837 in handle_input
_, out_data = self.execute( trans, incoming=params )
File '/var/www/galaxy/galaxy_dist/lib/galaxy/tools/__init__.py', line
1109 in execute
return self.tool_action.execute( self, trans, incoming=incoming,
set_output_hid=set_output_hid )
File '/var/www/galaxy/galaxy_dist/lib/galaxy/tools/actions/__init__.py',
line 327 in execute
for name, value in tool.params_to_strings( incoming, trans.app ).iteritems():
File '/var/www/galaxy/galaxy_dist/lib/galaxy/tools/__init__.py', line
1112 in params_to_strings
return params_to_strings( self.inputs, params, app )
File '/var/www/galaxy/galaxy_dist/lib/galaxy/tools/parameters/__init__.py',
line 79 in params_to_strings
value = params[ key ].value_to_basic( value, app )
File '/var/www/galaxy/galaxy_dist/lib/galaxy/tools/parameters/basic.py',
line 103 in value_to_basic
return self.to_string( value, app )
File '/var/www/galaxy/galaxy_dist/lib/galaxy/tools/parameters/basic.py',
line 348 in to_string
raise Exception( "FileToolParameter cannot be persisted" )
Exception: FileToolParameter cannot be persisted
12 years, 6 months