I’m writing a wrapper for RUM (RNA-Seq Unified Mapper). For those of you who aren’t familiar with RUM, it produces several output files. I’m trying to capture 12 of those files in Galaxy.

 

Here is one of the 12 nodes:

<data format="tabular" name="feature_quantifications_galaxy" label="${tool.name} on ${on_string}: Feature Quantifications" />

 

All 12 nodes have similar syntax. When I try to run RUM from Galaxy, it’s obvious that the program is executing properly. The outputs show up as pending until the execution of RUM has completed. However, the output is not being properly captured. All 12 outputs show up as being in the error state, and when I click on the bug icon I see the following in the error report:

 

yes: standard output: Broken pipe

yes: write error

 

Those two lines are repeated literally over a hundred times. In the additional output pane beneath the error pane, It shows the output from RUM, which indicates that the tool indeed ran properly. The text is exactly what I would expect to see if I ran the tool from the command line without any problems. So basically, I’m doing something wrong in capturing the output. I have watched the screencast and perused other wrappers, but I’m not sure at this point where I’m going wrong. The full text of the wrapper is pasted below:

 

<tool id="rum_all" name="RUM" version="0.1">

    <!-- Run all steps of RUM (RNA-seq Unified Mapper). Mapper written by Dan Dorset at Vanderbilt GSR. Email with questions: daniel.dorset@vanderbilt.edu Wrapper status is alpha -->

    <description>: RNA-Seq Unified Mapping</description>

    <requirements>

        <requirement type="package">rum</requirement>

    </requirements>

    <command>

        ##IMPORTANT!!! You will need to change this to correspond to the specific installation path of RUM on your server

               perl /data/dorsetdc/rum/bin/RUM_runner.pl

       

        ##Reference Genome

               ##IMPORTANT!!! You will need to change this to correspond to the specific installation path of RUM on your server

               /data/dorsetdc/rum/conf/rum.config_$refgenome

       

        ## Inputs.

        #if $inputs.paired_or_single == "paired":

            $inputs.left_input,,,$inputs.right_input

        #else:

            $inputs.input           

        #end if

              

               ##output directory

               ./

       

        ## Number of CPU cores

               ##IMPORTANT!!! Make sure you set the max value to something appropriate for your system. See the RUM tool manpage for more details

               #if $additional_params.use_additional == "yes":

                       $additional_params.num_cores

               #else:

                       16

               #end if

              

               ##data name (static for now)

               galaxy

              

               ## Additional parameters.

        #if $additional_params.use_additional == "yes":

            -min_contig_length $additional_params.min_contig_length

                       #if $additional_params.strandspecific == "yes"

                               -strand_specific

                       #end if

                       #if $additional_params.dnamode == "yes"

                               -dnamode

                       #end if

                       #if $additional_params.count_mismatches == "yes"

                               -countmatches

                       #end if

        #end if

                              

    </command>

    <inputs>

        <conditional name="inputs">

            <param name="paired_or_single" type="select" label="Paired or Single-end data?">

                <option value="paired">Paired</option>

                <option value="single">Single</option>

            </param>

            <when value="paired">

                <param format="fasta,fastq" name="left_input" type="data" label="Left/Forward strand reads" help=""/>

                <param format="fasta,fastq" name="right_input" type="data" label="Right/Reverse strand reads" help=""/>

            </when>

            <when value="single">

                <param format="fasta,fastq" name="input" type="data" label="Single-end reads" help=""/>

            </when>

        </conditional>

               <param name="refgenome" type="select" label="Select Reference Genome">

                       <option value="hg19">Human (hg19)</option>

                       <option value="mm9">Mouse (mm9)</option>

               </param>

               <conditional name="additional_params">

            <param name="use_additional" type="select" label="Use Additional Params?">

                <option value="no">No</option>

                <option value="yes">Yes</option>

            </param>

            <when value="no">

            </when>

            <when value="yes">           

                <param name="min_contig_length" type="integer" value="200" min="1" label="Minimum Contig Length" help=""/>

                               <param name="num_cores" type="integer" value="16" min="1" max="32" label="Number of Cores to Use" help="Min of 1, max of 32" />

                               <param name="strandspecific" type="select" label="Are the Data Strand Specific?">

                                      <option value="no">No</option>

                                      <option value="yes">Yes</option>

                               </param>

                               <param name="dnamode" type="select" label="Run in DNA Mode? (Don't map across splice junctions)">

                                      <option value="no">No</option>

                                      <option value="yes">Yes</option>

                               </param>

                               <param name="count_mismatches" type="select" label="Report the number of Mismatches?">

                                      <option value="no">No</option>

                                      <option value="yes">Yes</option>

                               </param>

                              

            </when>

        </conditional>

    </inputs>

    <outputs>

               <data format="tabular" name="feature_quantifications_galaxy" label="${tool.name} on ${on_string}: Feature Quantifications" />

       <data format="txt" name="trinity_log" label="${tool.name} on ${on_string}: log" />

        <data format="fasta" name="assembled_transcripts" label="${tool.name} on ${on_string}: Assembled Transcripts" />

               <data format="sam" name="RUM.sam" label="${tool.name} on ${on_string}: All Alignments in SAM" />

               <data format="bedGraph" name="RUM.cov" label="${tool.name} on ${on_string}: Depth of Coverage for Unique Mappers" />

               <data format="bedGraph" name="RUM_NU.cov" label="${tool.name} on ${on_string}: Depth of Coverage for Non-Unique Mappers" />

               <data format="bed" name="RUM_Unique" label="${tool.name} on ${on_string}: Unique Mappers" />

               <data format="bed" name="RUM_NU" label="${tool.name} on ${on_string}: Non-Unique Mappers" />

               <data format="bed" name="junctions_all.bed" label="${tool.name} on ${on_string}: All Junctions" />

               <data format="rum" name="junctions_all.rum" label="${tool.name} on ${on_string}: All Junctions in RUM format" />

               <data format="bed" name="junctions_high-quality.bed" label="${tool.name} on ${on_string}: All High-Quality Junctions" />

               <data format="bed" name="inferred_internal_exons.bed" label="${tool.name} on ${on_string}: Inferred Internal Exons" />           

    </outputs>

    <tests>

    </tests>

    <help>

        RUM is an alignment, junction calling, and feature quantification pipeline specifically designed for Illumina RNA-Seq data.

        This tool gives a whole lot of output.

       

        This tool integration is currently in testing mode. It was written by Dan Dorset in the Vanderbilt GSR. If you have any questions or observe an error, please contact Dan: daniel.dorset@vanderbilt.edu

        More information about the RUM tool is available at the following URL:

        http://cbil.upenn.edu/RUM/userguide.php

    </help>

</tool>