Repository 'trinity_rnaseq_protocol'
hg clone https://toolshed.g2.bx.psu.edu/repos/gkumar09/trinity_rnaseq_protocol

Changeset 0:1c37a8003755 (2015-09-28)
Next changeset 1:4eaf6b15b1b2 (2015-09-29)
Commit message:
Uploaded
added:
trinityrnaseq_protocol/._RSEM_estimates_to_matrix.xml
trinityrnaseq_protocol/._alignreads.xml
trinityrnaseq_protocol/EdgeR_differentialExpression.xml
trinityrnaseq_protocol/EdgeR_differentialExpression_wrapper.py
trinityrnaseq_protocol/RSEM_estimates_to_matrix.xml
trinityrnaseq_protocol/abundance_estimation_to_matrix.xml
trinityrnaseq_protocol/abundance_estimation_to_matrix_wrapper.py
trinityrnaseq_protocol/align_and_estimate_abundance.xml
trinityrnaseq_protocol/alignreads.xml
trinityrnaseq_protocol/analyze_diff_exp.xml
trinityrnaseq_protocol/analyze_diff_exp_wrapper.py
trinityrnaseq_protocol/cat.xml
trinityrnaseq_protocol/diffExpress_edgeR.xml
trinityrnaseq_protocol/trinityToolWrapper.py
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/._RSEM_estimates_to_matrix.xml
b
Binary file trinityrnaseq_protocol/._RSEM_estimates_to_matrix.xml has changed
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/._alignreads.xml
b
Binary file trinityrnaseq_protocol/._alignreads.xml has changed
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/EdgeR_differentialExpression.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/EdgeR_differentialExpression.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,38 @@
+<tool id="EdgeR_differentialExpression" name="EdgeR_differentialExpression" version="0.0.1">
+
+    <description>Identify Differentially Expressed Transcripts Using EdgeR</description>
+    <requirements>
+        <requirement type="package">trinity</requirement>
+    </requirements>
+    <command interpreter="python">
+
+  EdgeR_differentialExpression_wrapper.py 
+ $counts_matrix 
+ $dispersion
+
+    </command>
+    <inputs>
+
+ <param type="data" format="txt" name="counts_matrix" label="Matrix of RNA-Seq fragment counts for transcripts per condition" />
+ <param type="data" format="fasta" name="transcripts_fasta_file" label="Transcripts fasta file corresponding to matrix" />
+ <param type="float" name="dispersion" value="0.1" min="0" label="dispersion value" help="Dispersion value to be used in the negative binomial" />
+
+    </inputs>
+    <outputs>
+        
+        <data format="tar.gz" name="EdgeR_Archive" label="${tool.name} on ${on_string}: EdgeR_Results.tar.gz" from_work_dir="edgeR_results.tar.gz" />
+
+ </outputs>
+    <tests>
+
+ <test>
+ <param name="myname" value="This is just a simple test" />
+
+        </test>
+
+
+    </tests>
+    <help>
+         help info here.
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/EdgeR_differentialExpression_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/EdgeR_differentialExpression_wrapper.py Mon Sep 28 22:44:29 2015 -0400
[
@@ -0,0 +1,40 @@
+import sys, os, subprocess
+
+TRINITY_BASE_DIR = ""
+if os.environ.has_key('TRINITY_HOME'):
+    TRINITY_BASE_DIR = os.environ['TRINITY_HOME'];
+else:
+    sys.stderr.write("You must set the environmental variable TRINITY_BASE_DIR to the base installation directory of Trinity before running this");
+    sys.exit(1)
+
+usage= "usage: " + " $counts_matrix" + " $dispersion"
+
+if len(sys.argv)<2:
+    print "Require atleast two parameters"
+else:
+    print "All good- command going ahead"
+print " "
+
+def run_command(cmd):
+    print "The command used: " + cmd
+    pipe=subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE)
+    pipe.wait()
+    ret= pipe.returncode
+    if ret:
+        print "command died: " + str(ret)
+        print pipe.stderr.readlines()
+        sys.exit(1)
+    else:
+        return
+print " "
+
+countmatrix= "counts_matrix"
+
+cmd= "cp " + sys.argv[1] + " " + countmatrix 
+run_command(cmd)
+
+cmd= TRINITY_BASE_DIR + "/Analysis/DifferentialExpression/run_DE_analysis.pl "+ " --matrix "+ countmatrix + " --method edgeR " + " --output edgeR_results "+ " --dispersion " + sys.argv[2] + " --tar_gz_outdir"
+
+run_command(cmd)
+
+sys.exit(0)
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/RSEM_estimates_to_matrix.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/RSEM_estimates_to_matrix.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,51 @@
+<tool id="RSEM_estimates_to_matrix" name="RSEM_estimates_to_matrix" version="0.0.1">
+
+    <description>Join RSEM estimates from multiple samples into a single matrix</description>
+    <requirements>
+        <requirement type="package">trinity</requirement>
+    </requirements>
+    <command interpreter="python">
+
+        trinityToolWrapper.py util/RSEM_util/merge_RSEM_counts_and_labels_single_table.pl
+
+ --labels
+        #for $entry in $RSEM_samples:
+         ${entry.column_label}
+        #end for
+
+ --RSEM_counts
+        #for $entry in $RSEM_samples:
+         ${entry.file}
+        #end for
+
+        > RSEM.counts.matrix
+
+    </command>
+    <inputs>
+
+       <repeat name="RSEM_samples" title="RSEM abundance estimates for samples">
+              <param name="file" label="Add file" type="data" format="text"/>
+              <param name="column_label" label="column label" type="text" />
+       </repeat>
+
+    </inputs>
+    <outputs>
+        <data format="text" name="counts_matrix" label="${tool.name} on ${on_string}: Counts Matrix" from_work_dir="RSEM.counts.matrix"/>
+ </outputs>
+    <tests>
+
+
+ <test>
+ <param name="target" value="trinity/Trinity.fasta" />
+ <param name="aligner" value="bowtie" />
+ <param name="paired_or_single" value="single" />
+ <param name="library_type" value="None" />
+ <param name="input" value="trinity/reads.left.fq" />
+        </test>
+
+
+    </tests>
+    <help>
+        .. _Trinity: http://trinityrnaseq.sourceforge.net
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/abundance_estimation_to_matrix.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/abundance_estimation_to_matrix.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,42 @@
+<tool id="abundance_estimation_to_matrix" name="abundance_estimation_to_matrix" version="0.0.1">
+
+    <description>Join RSEM estimates from multiple samples into a single matrix</description>
+    <requirements>
+        <requirement type="package">trinity</requirement>
+    </requirements>
+    <command interpreter="python">
+
+        abundance_estimation_to_matrix_wrapper.py 
+ #for $q in $RSEM_samples
+ ${q.file} "${q.column_label}"
+ #end for
+
+    </command>
+    <inputs>
+
+       <repeat name="RSEM_samples" title="RSEM abundance estimates for samples">
+              <param name="file" label="Add file" type="data" format="text"/>
+              <param name="column_label" label="column label" type="text" />
+       </repeat>
+
+    </inputs>
+    <outputs>
+        <data format="text" name="counts_matrix" label="${tool.name} on ${on_string}: Counts Matrix" from_work_dir="matrix.counts.matrix"/>
+ </outputs>
+    <tests>
+
+
+ <test>
+ <param name="target" value="trinity/Trinity.fasta" />
+ <param name="aligner" value="bowtie" />
+ <param name="paired_or_single" value="single" />
+ <param name="library_type" value="None" />
+ <param name="input" value="trinity/reads.left.fq" />
+        </test>
+
+
+    </tests>
+    <help>
+        .. _Trinity: http://trinityrnaseq.sourceforge.net
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/abundance_estimation_to_matrix_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/abundance_estimation_to_matrix_wrapper.py Mon Sep 28 22:44:29 2015 -0400
[
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+import sys, os, string, subprocess
+
+#aliasing the filenames using the labels
+
+
+def run_command(command):
+    print "Running command: " + command
+    
+    err_capture_file = open("my.stderr", 'w') # writing stderr to a file
+    cmd_run = subprocess.Popen(args=command, shell=True, stderr=err_capture_file, stdout=sys.stdout)
+    err = cmd_run.wait() # get exit code from command execution
+    err_capture_file.close()
+
+    if err:
+        # report the error messages we captured, and exit non-zero
+        sys.stderr.write("Error, cmd: " + command + " died with ret: " + `err`)
+        for line in open(err_capture_file):
+            sys.stderr.write(line)
+        sys.exit(err)
+    return
+
+label_list = []  # symlink files to the labels
+for i in range(1, len(sys.argv), 2):
+    filename=sys.argv[i]
+    label= sys.argv[i+1]
+    cmd= "ln -sf " + filename + " " + label
+    label_list.append(label)
+    run_command(cmd)
+
+
+# run the abundance estimation script
+
+cmd = os.path.dirname(sys.argv[0]) + "/trinityToolWrapper.py " + " util/abundance_estimates_to_matrix.pl --est_method RSEM --cross_sample_fpkm_norm TMM " + " ".join(label_list) 
+
+run_command(cmd)
+
+sys.exit(0)
+
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/align_and_estimate_abundance.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/align_and_estimate_abundance.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,90 @@
+<tool id="RSEM_abundance_estimation" name="RSEM_abundance_estimation" version="0.0.1">
+
+    <description>run RSEM to estimate transcript abundances</description>
+    <requirements>
+        <requirement type="package">trinity</requirement>
+    </requirements>
+    <command interpreter="python">
+
+        trinityToolWrapper.py util/align_and_estimate_abundance.pl --transcripts $transcripts --est_method RSEM --aln_method bowtie --trinity_mode --prep_reference
+
+        ## Inputs.
+        #if str($inputs.paired_or_single) == "paired":
+            --left $inputs.left_input --right $inputs.right_input
+            #if  $inputs.left_input.ext == 'fa':
+                --seqType fa
+            #else:
+                --seqType fq
+            #end if
+            #if str($inputs.library_type) != "None":
+                --SS_lib_type $inputs.library_type
+            #end if
+            
+        #else:
+            --single $inputs.input
+            #if  str($inputs.input.ext) == 'fa':
+                --seqType fa
+            #else:
+                --seqType fq
+            #end if
+            #if str($inputs.library_type) != "None":
+                --SS_lib_type $inputs.library_type
+            #end if
+        #end if
+
+
+    </command>
+    <inputs>
+ <param format="fasta" name="transcripts" type="data" label="transcripts_fasta" help="Fasta sequences for which reads are aligned."  />
+
+ <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=""/>
+                <param name="library_type" type="select" label="Strand-specific Library Type">
+                    <option value="None">None</option>
+                    <option value="FR">FR</option>
+                    <option value="RF">RF</option>
+                </param>
+
+            </when>
+            <when value="single">
+                <param format="fasta,fastq" name="input" type="data" label="Single-end reads" help=""/>
+                <param name="library_type" type="select" label="Strand-specific Library Type">
+                    <option value="None">None</option>
+                    <option value="F">F</option>
+                    <option value="R">R</option>
+                </param>
+
+            </when>
+        </conditional>
+
+
+    </inputs>
+    <outputs>
+        <data format="text" name="transcript_counts" label="${tool.name} on ${on_string}: Isoform Counts" from_work_dir="RSEM.isoforms.results"/>
+ <data format="text" name="gene_counts" label="${tool.name} on ${on_string}: Gene counts" from_work_dir="RSEM.genes.results"/>
+
+
+ </outputs>
+    <tests>
+
+
+ <test>
+ <param name="target" value="trinity/Trinity.fasta" />
+ <param name="aligner" value="bowtie" />
+ <param name="paired_or_single" value="single" />
+ <param name="library_type" value="None" />
+ <param name="input" value="trinity/reads.left.fq" />
+        </test>
+
+
+    </tests>
+    <help>
+        .. _Trinity: http://trinityrnaseq.sourceforge.net
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/alignreads.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/alignreads.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,138 @@
+<tool id="alignreads" name="alignReads" version="0.0.1">
+
+    <description>alignReads: short read alignment tool wrapper</description>
+    <requirements>
+        <requirement type="package">trinity</requirement>
+    </requirements>
+    <command interpreter="python">
+
+        trinityToolWrapper.py util/alignReads.pl --target $target -o alignment --aligner $aligner_selection.aligner
+
+
+        ## Inputs.
+        #if str($inputs.paired_or_single) == "paired":
+            --left $inputs.left_input --right $inputs.right_input
+            #if  $inputs.left_input.ext == 'fa':
+                --seqType fa
+            #else:
+                --seqType fq
+            #end if
+            #if str($inputs.library_type) != "None":
+                --SS_lib_type $inputs.library_type
+            #end if
+ --max_dist_between_pairs $inputs.max_dist_between_pairs
+        #else:
+            --single $inputs.input
+            #if  str($inputs.input.ext) == 'fa':
+                --seqType fa
+            #else:
+                --seqType fq
+            #end if
+            #if str($inputs.library_type) != "None":
+                --SS_lib_type $inputs.library_type
+            #end if
+        #end if
+
+        ## Additional parameters.
+     ##if str($inputs.use_additional) == "yes":
+ ## -- $inputs.additional_params
+        ##end if
+
+                
+        ## direct to output
+     > outCapture.txt  
+
+
+    </command>
+    <inputs>
+ <param format="fasta" name="target" type="data" label="target" help="Fasta sequences targeted for short-read alignment"  />
+
+        <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=""/>
+                <param name="library_type" type="select" label="Strand-specific Library Type">
+                    <option value="None">None</option>
+                    <option value="FR">FR</option>
+                    <option value="RF">RF</option>
+                </param>
+                <param name="max_dist_between_pairs" type="integer" value="2000" min="1" label="max_dist_between_pairs" help="Maximum length expected between fragment pairs as aligned to the target, including introns where relevant."/>
+
+
+            </when>
+            <when value="single">
+                <param format="fasta,fastq" name="input" type="data" label="Single-end reads" help=""/>
+                <param name="library_type" type="select" label="Strand-specific Library Type">
+                    <option value="None">None</option>
+                    <option value="F">F</option>
+                    <option value="R">R</option>
+                </param>
+            </when>
+        </conditional>
+
+ <conditional name="aligner_selection">
+ <param name="aligner" type="select" label="Select alignment tool to run">
+ <option value="bowtie">bowtie</option>
+ <option value="bwa">bwa</option>
+ <option value="blat">blat</option>
+ </param>
+ <when value="blat">
+ <param name="max_intron_length" type="integer" value="10000" min = "1" label="maximum intron length" help="" />
+ <param name="min_percent_identity" type="integer" value="95" min="1" label="minimum percent identity" help="" />
+ </when>
+ <when value="bwa">
+ </when>
+ <when value="bowtie">
+ </when>
+ </conditional>
+
+
+ <!--     
+ <conditional name="use_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="additional_params" type="text" value="" label="Additional command-line parameters to aligner" help="" />
+            </when>
+        </conditional>
+    
+ -->
+
+    </inputs>
+    <outputs>
+        <data format="bam" name="coordSortedBam" label="${tool.name} on ${on_string}: COORD-sorted read alignments" from_work_dir="alignment/alignment.coordSorted.bam"/>
+ <data format="bam" name="nameSortedBam" label="${tool.name} on ${on_string}: NAME-sorted read alignments" from_work_dir="alignment/alignment.nameSorted.bam"/>
+
+ <!-- notes: need to retain:
+  -the sample name for the alignment
+  -coordinate-sorted vs. name-sorted bam file
+  -paired vs. unpaired vs. strictly proper pairs (for RSEM)
+  -strand-specific or not
+ -->
+
+ </outputs>
+    <tests>
+
+
+ <test>
+ <param name="target" value="trinity/Trinity.fasta" />
+ <param name="aligner" value="bowtie" />
+ <param name="paired_or_single" value="single" />
+ <param name="library_type" value="None" />
+ <param name="input" value="trinity/reads.left.fq" />
+        </test>
+
+
+    </tests>
+    <help>
+        .. _Trinity: http://trinityrnaseq.sourceforge.net
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/analyze_diff_exp.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/analyze_diff_exp.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,41 @@
+<tool id="Analyze_Diff_Exp" name="Analyze_Differential_Expression" version="0.0.1">
+
+    <description>Analyze differential expression</description>
+    <requirements>
+        <requirement type="package">trinity</requirement>
+    </requirements>
+    <command interpreter="python">
+
+        analyze_diff_exp_wrapper.py $EdgeRTarGz $TMM_Matrix_FPKM $Pvalue $Cvalue 
+
+    </command>
+    <inputs>
+              <param name="EdgeRTarGz" label="EdgeR tar gz file" type="data" format="file"/>
+              <param name="TMM_Matrix_FPKM" label="TMM Normalized FPKM matrix" type="data" format="file" />
+       <param name="Pvalue" label="P-value" value="0.05" type="float" />
+       <param name="Cvalue" label="C-value" value="0" type="float" />
+      
+    </inputs>
+    <outputs>
+        <data format="data" name="diffExpr_matrix" label="${tool.name} on ${on_string}: Matrix" from_work_dir="diffExpr.matrix"/>
+ <data format="data" name="diffExpr_correlation_matrix" label="${tool.name} on ${on_string}: Sample_Correlation_Matrix" from_work_dir="diffExpr.matrix.log2.sample_cor.dat"/>
+ <data format="data" name="diffExpr_correlation_matrix_pdf" label="${tool.name} on ${on_string}: Sample_Correlation_Matrix_PDF" from_work_dir="diffExpr.matrix.log2.sample_cor_matrix.pdf"/>
+ <data format="data" name="Heatmap" label="${tool.name} on ${on_string}: Heatmap" from_work_dir="diffExpr.matrix.log2.centered.genes_vs_samples_heatmap.pdf"/>
+    </outputs>
+    <tests>
+
+
+ <test>
+ <param name="target" value="trinity/Trinity.fasta" />
+ <param name="aligner" value="bowtie" />
+ <param name="paired_or_single" value="single" />
+ <param name="library_type" value="None" />
+ <param name="input" value="trinity/reads.left.fq" />
+        </test>
+
+
+    </tests>
+    <help>
+        .. _Trinity: http://trinityrnaseq.sourceforge.net
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/analyze_diff_exp_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/analyze_diff_exp_wrapper.py Mon Sep 28 22:44:29 2015 -0400
[
@@ -0,0 +1,63 @@
+import sys, os, subprocess
+
+TRINITY_BASE_DIR = ""
+if os.environ.has_key('TRINITY_HOME'):
+    TRINITY_BASE_DIR = os.environ['TRINITY_HOME'];
+else:
+    sys.stderr.write("You must set the environmental variable TRINITY_BASE_DIR to the base installation directory of Trinity before running this");
+    sys.exit()
+
+usage= "usage: " + sys.argv[0] + " " + "edgeR.tar.gz " + "TMM_normalized_FPKM_matrix " + "P-value " + "C-value"
+print sys.argv 
+print usage 
+print " "
+
+if len(sys.argv)<5:
+ print "Require atleast two parameters"
+else:
+ print "All good- command going ahead"
+print " "
+
+Normalized_Matrix=sys.argv[2]
+Pvalue=sys.argv[3]
+Cvalue=sys.argv[4]
+
+def run_command(cmd):
+ print "The command used: " + cmd
+ pipe= subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE)
+        pipe.wait()
+ ret= pipe.returncode
+ if ret:
+ print "command died: " + str(ret)
+                print pipe.stderr.readlines()
+                sys.exit(1)
+ else:
+ return
+print " "
+
+Final_tar_gz= "edgeR.tar.gz"
+run_command("cp "+ sys.argv[1] + " " + "Final_tar_gz")
+run_command("tar -xvf " + "Final_tar_gz")
+run_command("mv " + "edgeR_results" + "/* ." )
+
+# run the analyze command
+cmd= TRINITY_BASE_DIR + "/Analysis/DifferentialExpression/analyze_diff_expr.pl "+ "--matrix " +  Normalized_Matrix + " -P " +  Pvalue + " -C " + Cvalue
+run_command(cmd)
+
+origMatrixName= "diffExpr.P" + Pvalue + "_" + "C" + Cvalue + ".matrix"
+# diffExpr.P0.001_C2.0.matrix
+run_command("mv " + origMatrixName + " diffExpr.matrix")
+
+SampleCorName= "diffExpr.P" + Pvalue + "_" + "C" + Cvalue + ".matrix.log2.sample_cor.dat"
+# diffExpr.P0.001_C2.0.matrix.log2.sample_cor.dat
+run_command("mv " + SampleCorName + " diffExpr.matrix.log2.sample_cor.dat")
+
+CorMatrix= "diffExpr.P" + Pvalue + "_" + "C" + Cvalue + ".matrix.log2.sample_cor_matrix.pdf"
+# diffExpr.P0.001_C2.0.matrix.log2.sample_cor_matrix.pdf
+run_command("mv " + CorMatrix + " diffExpr.matrix.log2.sample_cor_matrix.pdf")
+
+Heatmap= "diffExpr.P" + Pvalue + "_" + "C" + Cvalue + ".matrix.log2.centered.genes_vs_samples_heatmap.pdf"
+#diffExpr.P0.001_C2.0.matrix.log2.centered.genes_vs_samples_heatmap.pdf
+run_command("mv " + Heatmap + " diffExpr.matrix.log2.centered.genes_vs_samples_heatmap.pdf")
+
+sys.exit(0)
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/cat.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/cat.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,41 @@
+<tool id="catbash" name="Concatenate datasets">
+    <description>tail-to-head</description>
+    <command interpreter="python">
+        bash_command_executer.py cat
+        $input1
+        #for $q in $queries
+            ${q.input2}
+        #end for
+        > $out_file1 
+    </command>
+    <inputs>
+        <param name="input1" type="data" label="Concatenate Dataset"/>
+        <repeat name="queries" title="Dataset">
+            <param name="input2" type="data" label="Select" />
+        </repeat>
+    </inputs>
+    <outputs>
+        <data name="out_file1" format="input" metadata_source="input1"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="input1" value="1.bed"/>
+            <param name="input2" value="2.bed"/>
+            <output name="out_file1" file="cat_wrapper_out1.bed"/>
+        </test>
+        <!--TODO: if possible, enhance the underlying test code to handle this test
+            the problem is multiple params with the same name "input2"
+        <test>
+            <param name="input1" value="1.bed"/>
+            <param name="input2" value="2.bed"/>
+            <param name="input2" value="3.bed"/>
+            <output name="out_file1" file="cat_wrapper_out2.bed"/>
+        </test>
+        -->
+    </tests>
+    <help>
+
+    no help
+
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/diffExpress_edgeR.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/diffExpress_edgeR.xml Mon Sep 28 22:44:29 2015 -0400
b
@@ -0,0 +1,47 @@
+<tool id="diffExpress_edgeR" name="diffExpress_edgeR" version="0.0.1">
+
+    <description>Identify Differentially Expressed Transcripts Using EdgeR</description>
+    <requirements>
+        <requirement type="package">edgeR</requirement>
+    </requirements>
+    <command interpreter="python">
+
+  trinityToolWrapper.py Analysis/DifferentialExpression/run_EdgeR.pl 
+ --matrix $counts_matrix 
+ --transcripts $transcripts_fasta_file
+ --output edgeR_results
+ --dispersion $dispersion
+
+ > stdout.txt
+
+
+    </command>
+    <inputs>
+
+ <param type="data" format="txt" name="counts_matrix" label="Matrix of RNA-Seq fragment counts for transcripts per condition" />
+ <param type="data" format="fasta" name="transcripts_fasta_file" label="Transcripts fasta file corresponding to matrix" />
+ <param type="float" name="dispersion" value="0.1" min="0" label="dispersion value" help="Dispersion value to be used in the negative binomial" />
+
+    </inputs>
+    <outputs>
+        
+        <data format="txt" name="diff_expressed_edgeR_results"  label="${tool.name} on ${on_string}: differentially expressed transcripts per pair of conditions"  from_work_dir="edgeR_results/all_diff_expression_results.txt" />
+
+        <data format="txt" name="matrix_FPKM" label="${tool.name} on ${on_string}: matrix.TMM_normalized.FPKM" from_work_dir="edgeR_results/matrix.TMM_normalized.FPKM" />
+
+ <data format="txt" name="TMM_info" label="${tool.name} on ${on_string}: TMM library size estimates" from_work_dir="edgeR_results/TMM_info.txt" />
+
+ </outputs>
+    <tests>
+
+ <test>
+ <param name="myname" value="This is just a simple test" />
+
+        </test>
+
+
+    </tests>
+    <help>
+         help info here.
+    </help>
+</tool>
b
diff -r 000000000000 -r 1c37a8003755 trinityrnaseq_protocol/trinityToolWrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/trinityrnaseq_protocol/trinityToolWrapper.py Mon Sep 28 22:44:29 2015 -0400
[
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+
+
+# borrowed from: http://wiki.g2.bx.psu.edu/Future/Job%20Failure%20When%20stderr and modified for use with Trinity tools.
+
+"""
+Wrapper that execute a program and its arguments but reports standard error
+messages only if the program exit status was not 0
+Example: ./stderr_wrapper.py myprog arg1 -f arg2
+"""
+
+import sys, subprocess, os
+
+assert sys.version_info[:2] >= ( 2, 4 )
+
+TRINITY_BASE_DIR = ""
+if os.environ.has_key('TRINITY_HOME'):
+    TRINITY_BASE_DIR = os.environ['TRINITY_HOME'];
+else:
+    sys.stderr.write("You must set the environmental variable TRINITY_BASE_DIR to the base installation directory of Trinity before running this");
+    sys.exit()
+
+
+
+# get bindir
+bindir = sys.argv[0]
+bindir = bindir.split("/")
+if len(bindir) > 1:
+    bindir.pop()
+    bindir = "/".join(bindir)
+else:
+    bindir = "."
+
+
+## add locations of tools to path setting.
+TOOL_PATHS_FILE = bindir + "/__add_to_PATH_setting.txt";
+for line in open(TOOL_PATHS_FILE):
+    line = line.rstrip()
+    os.environ['PATH'] += ":" + line
+
+
+def stop_err( msg ):
+    sys.stderr.write( "%s\n" % msg )
+    sys.exit()
+
+def __main__():
+    # Get command-line arguments
+    args = sys.argv
+    # Remove name of calling program, i.e. ./stderr_wrapper.py
+    args.pop(0)
+    # If there are no arguments left, we're done
+    if len(args) == 0:
+        return
+
+    # If one needs to silence stdout 
+    #args.append( ">" )
+    #args.append( "/dev/null" )
+
+    args[0] = "".join([TRINITY_BASE_DIR, '/', args[0]]);
+
+    cmdline = " ".join(args)
+
+    
+
+    try:
+        # Run program
+        err_capture = open("stderr.txt", 'w')
+        proc = subprocess.Popen( args=cmdline, shell=True, stderr=err_capture, stdout=sys.stdout )
+        returncode = proc.wait()
+        err_capture.close()
+
+        
+        if returncode != 0:
+            raise Exception
+
+    except Exception:
+        # Running Grinder failed: write error message to stderr
+        err_text = open("stderr.txt").readlines()
+        stop_err( "ERROR:\n" + "\n".join(err_text))
+
+
+if __name__ == "__main__": __main__()