errata : there are no --args option in the <command> tag examples.

<command interpreter="bash"> r_script_wrapper.sh rcode.R $in_data $out_data </command>     ### FAILURE

<command interpreter="bash"> r_script_wrapper.sh /full/path/to/rcode.R $in_data $out_data </command>   ### SUCCESS


On 12 November 2010 14:09, Anthony Ferrari <ferraria@gmail.com> wrote:
OK. I have made some tests this morning to figure this all out.

Indeed, the problem with ">" is that it catches every single message R sends to STDOUT and not only object of your interest, so this is definitely not a reliable solution. Solution suggests by Alex worked perfectly well. 

I would suggest also to use the 'trailingOnly=TRUE' option within the commandArgs() call in the R script. That allows you to only care about the args given after the '--args' option. You can then forget how many previous options you have in your command line (--vanilla, --slave, -f or others...). First parameter useful to your R script would then be commandArgs(trailingOnly=T)[1] and so on.


There is just another little point that I would like to clarify. At the beginning my tests didn't work at all and I realize that I have to give the full path to the R script (in the command tag) to make it work.

<command interpreter="bash"> r_script_wrapper.sh rcode.R --args $in_data $out_data </command>     ### FAILURE

<command interpreter="bash"> r_script_wrapper.sh /full/path/to/rcode.R --args $in_data $out_data </command>   ### SUCCESS

However, r_script_wrapper.sh and rcode.R are in the same directory. 

To shed a light on this, I made an `echo $PWD` in r_script_wrapper.sh and it returned :

/path/to/galaxy_dist/database/job_working_directory/Num

where Num is the number of the job submitted to the PBS queue.

Is that a known feature ?


here follows the content of r_script_wrapper.sh
-----------------------
#!/bin/sh

# Function that writes a message to stderr and exits
fail()
{
    echo "$@" >&2
    exit 1
}

# Ensure R executable is found
which R > /dev/null || fail "'R' is required by this tool but was not found on path" 

# Extract first argument
rcode=$1; shift

# Ensure the file exists
test -f $rcode || fail "R input file '$rcode' does not exist"

# Invoke R 
R --vanilla --slave --file=$rcode --args $*



Cheers 

Anthony





On 11 November 2010 09:07, Freddy <freddy.debree@wur.nl> wrote:
The out.data is simply picked up by galaxy:
As long as you define your variable capturing the output and also in your tool.xml file.

Make sure the output is defined as "data" in the tool.xml file.

Initially I thought the same thing, but the piping is not needed with '>', worse, it doesn't work like that.

Freddy