changeset 1:54c9c71dabe8 draft

"planemo upload for repository https://github.com/jj-umn/galaxytools/tree/master/optitype commit 4c7dc6705700adf361aadf9ab6ccb425c6691153"
author jjohnson
date Thu, 12 Mar 2020 12:38:06 -0400
parents 3902a76bf089
children bf36e0afdfb4
files optitype.xml
diffstat 1 files changed, 151 insertions(+), 69 deletions(-) [+]
line wrap: on
line diff
--- a/optitype.xml	Thu Mar 12 11:32:13 2020 -0400
+++ b/optitype.xml	Thu Mar 12 12:38:06 2020 -0400
@@ -1,77 +1,159 @@
 <tool id="optitype" name="OptiType" version="1.3.2">
-  <description>HLA genotyping predictions from NGS data</description>
-  <requirements>
-    <requirement type="package" version="1.3.2">optitype</requirement>
-  </requirements>
- <stdio>
-     <exit_code range="1:"  level="fatal" description="Error Running optitype" />
- </stdio>
-  <command>
+    <description>HLA genotyping predictions from NGS data</description>
+    <requirements>
+        <requirement type="package" version="1.3.2">optitype</requirement>
+    </requirements>
+    <command detect_errors="aggressive">
 <![CDATA[
 #set $fastqs = []
 #if str( $fastq_input.fastq_input_selector ) == "paired":
-  ln -s "${fastq_input.fastq_input1}" reads_1.fastq
-  && ln -s "${fastq_input.fastq_input2}" reads_2.fastq
-  #set $fastqs = ['reads_1.fastq','reads_2.fastq']
+    ln -s "${fastq_input.fastq_input1}" reads_1.fastq
+    && ln -s "${fastq_input.fastq_input2}" reads_2.fastq
+    #set $fastqs = ['reads_1.fastq','reads_2.fastq']
 #elif str( $fastq_input.fastq_input_selector ) == "paired_collection":
-  ln -s "${fastq_input.fastq_input1.forward}" reads_1.fastq
-  && ln -s "${fastq_input.fastq_input1.reverse}" reads_2.fastq
-  #set $fastqs = ['reads_1.fastq','reads_2.fastq']
+    ln -s "${fastq_input.fastq_input1.forward}" reads_1.fastq
+    && ln -s "${fastq_input.fastq_input1.reverse}" reads_2.fastq
+    #set $fastqs = ['reads_1.fastq','reads_2.fastq']
 #elif str( $fastq_input.fastq_input_selector ) == "single":
-  ln -s "${fastq_input.fastq_input1}" reads.fastq
-  #set $fastqs = ['reads.fastq']
+    ln -s "${fastq_input.fastq_input1}" reads.fastq
+    #set $fastqs = ['reads.fastq']
 #end if
-&& cp \$OPTITYPE_DIR/config.ini .
-&& ln -s \$OPTITYPE_DIR/data data
+&& RAZERS3=`which razers3`
+&& sed "s#path_to_razers3#\$RAZERS3#" '$optitype_config' | sed "s/threads=16/threads=\$GALAXY_SLOTS/" > config.ini
 #set $input_fq = ' '.join($fastqs)
-&& python  \$OPTITYPE_DIR/OptiTypePipeline.py 
-$read_type --input  ${' '.join($fastqs)}
+&& OptiTypePipeline.py 
+$read_type --input    ${' '.join($fastqs)}
 #if str($beta) != '': 
  --beta $beta
 #end if
 #if str($enumerations) != '': 
  --enumerate $enumerations
 #end if
+--config "`pwd`/config.ini"
 --outdir $outdir
 && cp $outdir/*/*_coverage_plot.pdf $coverage_plot
 && cp $outdir/*/*_result.tsv $result
 ]]>
-  </command>
-  <inputs>
-    <conditional name="fastq_input">
-      <param name="fastq_input_selector" type="select" label="Single or Paired-end reads" help="Select between paired and single end data">
-        <option value="paired">Paired</option>
-        <option value="single">Single</option>
-        <option value="paired_collection">Paired Collection</option>
-      </param>
-      <when value="paired">
-        <param name="fastq_input1" type="data" format="fastqsanger" label="Select first set of reads" help="Specify dataset with forward reads"/>
-        <param name="fastq_input2" type="data" format="fastqsanger" label="Select second set of reads" help="Specify dataset with reverse reads"/>
-      </when>
-      <when value="single">
-        <param name="fastq_input1" type="data" format="fastqsanger" label="Select fastq dataset" help="Specify dataset with single reads"/>
-      </when>
-      <when value="paired_collection">
-        <param name="fastq_input1" format="fastqsanger" type="data_collection" collection_type="paired" label="Select a paired collection" help="See help section for an explanation of dataset collections"/>
-      </when>
-    </conditional>
-    <param name="read_type" type="select" label="Nucleotide Type" help="">
-      <option value="--rna">RNA</option>
-      <option value="--dna">DNA</option>
-    </param>
-    <param name="beta" type="float" value="" min="0.0" max="0.1" optional="true" label="homozygosity beta" help="The beta value for for homozygosity detection (Leave blank for default: 0.009)"/>
-    <param name="enumerations" type="integer" value="" min="1" max="5" optional="true" label="Enumerations" help="The number of enumerations (Leave blank for default: 1)"/>
-    <param name="outdir" type="hidden" value="output_dir"/>
-  </inputs>
-  <outputs>
-    <data format="pdf" name="coverage_plot" label="${tool.name} on ${on_string} coverage_plot.pdf"/>
-    <data format="tabular" name="result" label="${tool.name} on ${on_string} result.tsv"/>
-  </outputs>
-  <tests>
-    <test>
-    </test>
-  </tests>
-  <help>
+    </command>
+    <configfiles>
+        <configfile name="optitype_config"><![CDATA[
+[mapping]
+
+# Absolute path to RazerS3 binary, and number of threads to use for mapping
+
+razers3=path_to_razers3
+threads=16
+
+[ilp]
+
+# A Pyomo-supported ILP solver. The solver must be globally accessible in the
+# environment OptiType is run, so make sure to include it in PATH.
+# Note: this is NOT a path to the solver binary, but a keyword argument for
+# Pyomo. Examples: glpk, cplex, cbc.
+
+solver=$solver
+threads=1
+
+[behavior]
+
+# tempdir=/path/to/tempdir  # we may enable this setting later. Not used now.
+
+# Delete intermediate bam files produced by RazerS3 after OptiType finished
+# loading them. If you plan to re-analyze your samples with different settings
+# disabling this option can be a time-saver, as you'll be able to pass the bam
+# files to OptiType directly as input and spare the expensive read mapping
+# step.
+
+deletebam=true
+
+# In paired-end mode one might want to use reads with just one mapped end (e.g.,
+# the other end falls outside the reference region). This setting allows the
+# user to keep them with an optionally reduced weight. A value of 0 means they
+# are discarded for typing, 0.2 means single reads are "worth" 20% of paired
+# reads, and a value of 1 means they are treated as valuable as properly mapped
+# read pairs. Note: unpaired reads will be reported on the result coverage plots
+# for completeness, regardless of this setting.
+
+unpaired_weight=$unpaired_weight
+
+# We call a read pair discordant if its two ends best-map to two disjoint sets
+# of alleles. Such reads can be either omitted or either of their ends treated
+# as unpaired hits. Note: discordant read pairs are reported on the coverage
+# plots as unpaired reads, regardless of this setting.
+
+use_discordant=$use_discordant
+        ]]></configfile>
+    </configfiles>
+    <inputs>
+        <conditional name="fastq_input">
+            <param name="fastq_input_selector" type="select" label="Single or Paired-end reads" help="Select between paired and single end data">
+                <option value="paired">Paired</option>
+                <option value="single">Single</option>
+                <option value="paired_collection">Paired Collection</option>
+            </param>
+            <when value="paired">
+                <param name="fastq_input1" type="data" format="fastqsanger" label="Select first set of reads" help="Specify dataset with forward reads"/>
+                <param name="fastq_input2" type="data" format="fastqsanger" label="Select second set of reads" help="Specify dataset with reverse reads"/>
+            </when>
+            <when value="single">
+                <param name="fastq_input1" type="data" format="fastqsanger" label="Select fastq dataset" help="Specify dataset with single reads"/>
+            </when>
+            <when value="paired_collection">
+                <param name="fastq_input1" format="fastqsanger" type="data_collection" collection_type="paired" label="Select a paired collection" help="See help section for an explanation of dataset collections"/>
+            </when>
+        </conditional>
+        <param name="read_type" type="select" label="Nucleotide Type" help="">
+            <option value="--rna">RNA</option>
+            <option value="--dna">DNA</option>
+        </param>
+        <param name="beta" type="float" value="" min="0.0" max="0.1" optional="true" label="homozygosity beta" help="The beta value for for homozygosity detection (Leave blank for default: 0.009)"/>
+        <param name="enumerations" type="integer" value="" min="1" max="5" optional="true" label="Enumerations" help="The number of enumerations (Leave blank for default: 1)"/>
+        <param name="solver" type="select" label="ILP solver" help="">
+            <option value="glpk">glpk</option>
+            <!--
+            <option value="cbc">cbc</option>
+            -->
+        </param>
+        <param name="unpaired_weight" type="float" value="0" min="0.0" max="1.0" label="unpaired_weight">
+            <help><![CDATA[
+In paired-end mode one might want to use reads with just one mapped end (e.g.,
+the other end falls outside the reference region). This setting allows the
+user to keep them with an optionally reduced weight. A value of 0 means they
+are discarded for typing, 0.2 means single reads are "worth" 20% of paired
+reads, and a value of 1 means they are treated as valuable as properly mapped
+read pairs. Note: unpaired reads will be reported on the result coverage plots
+for completeness, regardless of this setting. ]]>
+            </help>
+        </param>
+        <param name="use_discordant" type="boolean" truevalue="true" falsevalue="false" checked="false" label="use_discordant">
+            <help><![CDATA[
+We call a read pair discordant if its two ends best-map to two disjoint sets
+of alleles. Such reads can be either omitted or either of their ends treated
+as unpaired hits. Note: discordant read pairs are reported on the coverage
+plots as unpaired reads, regardless of this setting. ]]>
+            </help>
+        </param>
+        <param name="outdir" type="hidden" value="output_dir"/>
+    </inputs>
+    <outputs>
+        <data format="pdf" name="coverage_plot" label="${tool.name} on ${on_string} coverage_plot.pdf"/>
+        <data format="tabular" name="result" label="${tool.name} on ${on_string} result.tsv"/>
+    </outputs>
+    <tests>
+        <test>
+            <conditional name="fastq_input">
+                <param name="fastq_input_selector" value="paired"/>
+                <param name="fastq_input1" ftype="fastqsanger" value="rna/CRC_81_N_1_fished.fastq"/>
+                <param name="fastq_input2" ftype="fastqsanger" value="rna/CRC_81_N_2_fished.fastq"/>
+            </conditional>
+            <output name="result">
+                <assert_contents>
+                    <has_text text="A*31:01" />
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help>
 <![CDATA[
 **OptiType**
 ============
@@ -80,33 +162,33 @@
 
 **INPUTS** 
 
-   RNA or DNA sequences in fastq format.
+     RNA or DNA sequences in fastq format.
 
 **OPTIONS**
 
-  --beta <BETA_VALUE>           The beta value for for homozygosity detection (see cited paper). 
-                                Default: 0.009. Handle with care.
-  --enumerate <ENUMERATIONS>    Number of enumerations. 
-                                OptiType will output the optimal solution and the top N-1 suboptimal solutions in the results. 
-                                Default: 1
+    --beta <BETA_VALUE>                     The beta value for for homozygosity detection (see cited paper). 
+                                                                Default: 0.009. Handle with care.
+    --enumerate <ENUMERATIONS>        Number of enumerations. 
+                                                                OptiType will output the optimal solution and the top N-1 suboptimal solutions in the results. 
+                                                                Default: 1
 
 
 **OUTPUTS**
 
-  result.tsv   A TAB-separated file of HLA genotyping predictions:
+    result.tsv     A TAB-separated file of HLA genotyping predictions:
 
-  ::
+    ::
 
 		A1	A2	B1	B2	C1	C2	Reads	Objective
 	0	A*31:01	A*68:01	B*40:01	B*51:01	C*15:02	C*03:04	132	128.43599999999998
 
 
-  coverage_plot.pdf  Plots of coverage of HLA genotyping predictions
+    coverage_plot.pdf    Plots of coverage of HLA genotyping predictions
 
 .. _OptiType: https://github.com/FRED-2/OptiType
 ]]>
-  </help>
-  <citations>
-    <citation type="doi">10.1093/bioinformatics/btu548</citation>
-  </citations>
+    </help>
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btu548</citation>
+    </citations>
 </tool>