galaxy passing an incorrect directory to a script...
I'm having a problem with a script in galaxy. In the xml config file for the tool I have an html output file defined by <outputs> <data name="webpageout" format="html" /> </outputs> I then use $webpageout.files_path to pass to the script the location where galaxy is putting the files the script creates. My webpage contains a link for downloading a postscript file that is created by the script and the correct path is needed or the download link doesn't work. Here at Dundee University we have a 'development' galaxy install and a 'live' galaxy install. Both are the same version and run off the same mysql database. When I run the script on the 'develpment' version the script works fine - $webpageout.files_path passes the correct directory to the script and the script can manipulate the file and link to it correctly. Unfortunately, when run on the 'live' version the script throws an error. It appears that galaxy is passing the script an incorrect directory path through $webpageout.files_path. The path it passes the script looks something like /galaxy_live/database/job_working_directory/604/dataset_615_files, but when I look for the files manually they are actually in /galaxy_live/database/files/000/dataset_615_files/ . Does anyone have any idea why galaxy would pass a 'working directory' to the script rather than the directory where the files are actually stored? Is it that galaxy actually creates the files in the working directory and then moves them? I'm also really confused as to why the 'development' installation works fine, but the 'live' installation throws this error. Any insight would be greatly appreciated. -- Cheers, Nick Schurch Data Analysis Group (The Barton Group), School of Life Sciences, University of Dundee, Dow St, Dundee, DD1 5EH, Scotland, UK Tel: +44 1382 388707 Fax: +44 1382 345 893
Nick Schurch wrote:
Does anyone have any idea why galaxy would pass a 'working directory' to the script rather than the directory where the files are actually stored? Is it that galaxy actually creates the files in the working directory and then moves them?
Hi Nick, This was originally written for PBS file staging - since the database/files/ directory was not mounted on cluster nodes, a path common to the Galaxy application server and the node's tool execution environment had to be used (the job working directory, which we put in NFS). The current method to use this functionality is such: If reading from an input's extra files, use $input.extra_files_path. The extra_files_path attribute always points to the location in database/files/. If writing to an output's extra files, use $output.files_path. The files_path attribute points to a directory in the job's working directory. The framework will automatically relocate these extra files to the real location in database/files/ as part of the job finish method. This functionality was never well documented and is rather confusing, in the future we plan to simplify it. A ticket exists for this: http://bitbucket.org/galaxy/galaxy-central/issue/206/eliminate-the-use-of-fi...
I'm also really confused as to why the 'development' installation works fine, but the 'live' installation throws this error. Any insight would be greatly appreciated.
This shouldn't really be the case, it might help to see your tool's xml and the code that generates the html, to understand how you're using the extra files directory. Note that links to files in the extra files directory should all be relative. --nate
participants (2)
-
Nate Coraor
-
Nick Schurch