Hey,
I'm writing a XML for a tool that produces a number of output files. As the number is
not known before the tool is run, I used the strategy outlined here:
http://wiki.galaxyproject.org/Admin/Tools/Multiple%20Output%20Files#Numbe...
First, I tried my tool definition in a galaxy instance in a virtual machine to not
interrupt our production instance (we have a local instance set up). Here, everything
worked fine. When trying the same code in our production galaxy instance, it didn't:
Regardless of how many output files were produced, only one appears in the history. (the
first one, corresponding to "output1" in the references wiki entry). When
looking at the temp directory provided to the tool by galaxy
("$__new_file_dir__" in the wiki, it always points to
"galaxy-dist/database/tmp/"), the additional output files have been created by
my tool and are named correctly (e.g. primary_123_output2_visible_fastq,
primary_123_output3_visible_fastq, …)
Both instances are new, based on release_2013.06.03.
Is there any setting in galaxy somewhere that could prevent this from working?
Thanks for your help
Chris
PS: I wrote a little python script that just creates multiple output files, and the
discrepancy between the two instances is reproducible. Here is the code for the python
script and the corresponding XML:
#######
import subprocess
import argparse
import os
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-i', type=int)
parser.add_argument('output1')
parser.add_argument('output1_id')
parser.add_argument('out_dir')
args = parser.parse_args()
print 'Wrapper arguments:', args
with open(args.output1, 'w') as f:
f.write('output1')
for i in range(2, args.i+1):
name = 'output%i'%i
file_type = 'text'
fname = '%s_%s_%s_%s_%s' % ('primary', args.output1_id, name,
'visible', file_type)
with open(os.path.join(args.out_dir, fname), 'w') as f:
f.write('output%i'%i)
if __name__ == "__main__":
main()
############################
###########################
<tool name="MultiOutTest" id="multiouttest">
<description>Multiple Outputs test</description>
<command interpreter="python">
multiout.py
-i $how_many
$output1
$output1.id
$__new_file_path__
</command>
<inputs>
<param name="how_many" type="integer" value="2"
label="How many output files?"/>
</inputs>
<outputs>
<data name="output1" format="txt"/>
</outputs>
<help>
This is some help text.
</help>
</tool>
#################################
--
Dr. Christoph Malisi
Computomics GmbH & Co. KG
Sand 14 · 72076 Tübingen · Germany
http://computomics.com