diff control_freec.xml @ 0:e46944a59b31 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/freec commit bec4fb59dc4776d33c2ce8c0bd614c90e5d4ecb2"
author iuc
date Thu, 13 Aug 2020 09:50:35 -0400
parents
children 2c6349fb175c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/control_freec.xml	Thu Aug 13 09:50:35 2020 -0400
@@ -0,0 +1,278 @@
+<tool id="control_freec" name="Control-FREEC" version="@WRAPPER_VERSION@">
+    <description>detects copy-number changes and allelic imbalances</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <requirements>
+        <requirement type="package" version="5.0.1">gawk</requirement>
+        <requirement type="package" version="@TOOL_VERSION@">control-freec</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        #if str($reference_source.ref_selector) == 'history':
+            ln -s '$reference_source.ref' ./genome.fa &&
+            samtools faidx ./genome.fa 2>&1 || echo 'Error running samtools faidx for indexing fasta reference for control-freec' >&2 &&
+        #else
+            ln -s '$reference_source.ref.fields.path' ./genome.fa &&
+            ln -s '${reference_source.ref.fields.path}.fai' ./genome.fa.fai &&
+        #end if
+
+        #if int($WGS_WES.advanced_settings.window_section.window) == 0
+            ln -s '$WGS_WES.input_capture_file' ./capture.bed &&
+        #end if
+
+        mkdir ./chromosomes &&
+        mkdir ./output &&
+
+        awk -F " " '/^>/ {close(F); F="chromosomes/"substr($1,2)".fa"} {print >> F}' ./genome.fa &&
+
+        ln -s '$WGS_WES.input_sample_file' ./sample.bam &&
+        #if $input_control_file
+            ln -s '$WGS_WES.input_control_file' ./control.bam &&
+        #end if
+
+        freec
+            -conf '$script_file'
+            -sample ./sample.bam
+            #if $WGS_WES.input_control_file
+                -control ./control.bam
+            #end if
+
+        #if $output_section.makeGraph
+            && R -f `which makeGraph.R` '$WGS_WES.advanced_settings.ploidy' 'output/sample.bam_ratio.txt'
+        #end if
+
+        #if $output_section.circos_data
+            && python '$__tool_directory__/ratio2circos.py'
+               -i ./output/sample.bam_ratio.BedGraph
+               -p '$WGS_WES.advanced_settings.ploidy'
+               -o sample.bam_ratio_log2_circos.txt
+        #end if
+    ]]></command>
+    <configfiles>
+        <configfile name="script_file"><![CDATA[
+#import os
+#set galaxy_slots = os.getenv("GALAXY_SLOTS", 4)
+[general]
+chrFiles = chromosomes
+outputDir = output
+chrLenFile = genome.fa.fai
+maxThreads = $galaxy_slots
+
+#if $WGS_WES.advanced_settings.degree == "34"
+    #set $degree_val = "3&4"
+degree = $degree_val
+#else
+degree = $WGS_WES.advanced_settings.degree
+#end if
+forceGCcontentNormalization = $WGS_WES.advanced_settings.forceGCcontentNormalization
+minCNAlength = $WGS_WES.advanced_settings.minCNAlength
+minimalSubclonePresence = $WGS_WES.advanced_settings.minimalSubclonePresence
+readCountThreshold = $WGS_WES.advanced_settings.readCountThreshold
+window = $WGS_WES.advanced_settings.window_section.window
+step = $WGS_WES.advanced_settings.window_section.step
+coefficientOfVariation = $WGS_WES.advanced_settings.coefficientOfVariation
+#if $output_section.circos_data
+BedGraphOutput = TRUE
+#else
+BedGraphOutput = $output_section.BedGraphOutput
+#end if
+breakPointThreshold = $WGS_WES.advanced_settings.breakPointThreshold
+breakPointType = $WGS_WES.advanced_settings.breakPointType
+contaminationAdjustment = $WGS_WES.advanced_settings.contaminationAdjustment
+contamination = $WGS_WES.advanced_settings.contamination
+intercept = $WGS_WES.advanced_settings.intercept
+minMappabilityPerWindow = $WGS_WES.advanced_settings.minMappabilityPerWindow
+minExpectedGC = $WGS_WES.advanced_settings.minExpectedGC
+maxExpectedGC = $WGS_WES.advanced_settings.maxExpectedGC
+noisyData = $WGS_WES.advanced_settings.noisyData
+ploidy = $WGS_WES.advanced_settings.ploidy
+printNA = $WGS_WES.advanced_settings.printNA
+sex = $WGS_WES.advanced_settings.sex
+telocentromeric = $WGS_WES.advanced_settings.telocentromeric
+
+[sample]
+mateFile = sample.bam
+inputFormat = BAM
+mateOrientation = $WGS_WES.mateOrientation_selector
+
+[control]
+mateFile = control.bam
+inputFormat = BAM
+mateOrientation = $WGS_WES.mateOrientation_selector
+
+#if int($WGS_WES.advanced_settings.window_section.window) == 0
+[target]
+captureRegions = capture.bed
+#end if
+        ]]></configfile>
+    </configfiles>
+    <inputs>
+        <conditional name="WGS_WES">
+            <param name="WGS_WES_selector" type="select" label="Select the sequencing method of the input file(s)" help="">
+                <option value="WGS" selected="True">whole-genome sequencing (WGS)</option>
+                <option value="WES">whole-exome sequencing (WES)</option>
+                <option value="other">other method</option>
+            </param>
+            <when value="WGS">
+                <expand macro="def_input_files" />
+                <section name="advanced_settings" title="Advanced WGS settings" expanded="false">
+                    <expand macro="WGS" />
+                    <expand macro="shared" />
+                </section>
+            </when>
+            <when value="WES">
+                <expand macro="wes_input_files" />
+                <section name="advanced_settings" title="Advanced WES settings" expanded="false">
+                    <expand macro="WES" />
+                    <expand macro="shared" />
+                </section>
+            </when>
+            <when value="other">
+                <expand macro="wes_input_files" />
+                <section name="advanced_settings" title="Advanced settings" expanded="true">
+                    <expand macro="other" />
+                    <expand macro="shared" />
+                </section>
+            </when>
+        </conditional>
+        <expand macro="reference_interface" />
+        <expand macro="output_section" />
+    </inputs>
+    <outputs>
+        <data name="out_sample_raw" format="tabular" label="${tool.name} on ${on_string}: Raw copy number profiles (sample)" from_work_dir="output/sample.bam_sample.cpn" />
+        <data name="out_control_raw" format="tabular" label="${tool.name} on ${on_string}: Raw copy number profiles (control)" from_work_dir="output/control.bam_control.cpn" />
+        <data name="out_sample_coord" format="tabular" label="${tool.name} on ${on_string}: Coordinates of predicted CN alterations" from_work_dir="output/sample.bam_CNVs" />
+        <data name="out_sample_info" format="txt" label="${tool.name} on ${on_string}: Information about FREEC run" from_work_dir="output/sample.bam_info.txt" />
+        <data name="out_sample_ratio" format="tabular" label="${tool.name} on ${on_string}: Ratios and predicted CN alterations for each window" from_work_dir="output/sample.bam_ratio.txt" />
+        <data name="out_sample_subclones" format="txt" label="${tool.name} on ${on_string}: Subclones" from_work_dir="output/sample.bam_subclones.txt" >
+            <filter>int(WGS_WES['advanced_settings']['minimalSubclonePresence']) != 100</filter>
+        </data>
+        <data name="out_sample_bedgraph" format="bed" label="${tool.name} on ${on_string}: Ratios in BedGraph format" from_work_dir="output/sample.bam_ratio.BedGraph">
+            <filter>output_section['BedGraphOutput']</filter>
+        </data>
+        <data name="out_mg_png" format="png" label="${tool.name} on ${on_string}: Normalized CN profile" from_work_dir="output/sample.bam_ratio.txt.png">
+            <filter>output_section['makeGraph']</filter>
+        </data>
+        <data name="out_mg_log2_png" format="png" label="${tool.name} on ${on_string}: Normalized CN profile (log2)" from_work_dir="output/sample.bam_ratio.txt.log2.png">
+            <filter>output_section['makeGraph']</filter>
+        </data>
+        <data name="out_gc_profile" format="tabular" label="${tool.name} on ${on_string}: GC-content profile" from_work_dir="output/GC_profile.targetedRegions.cnp">
+            <filter>int(WGS_WES['advanced_settings']['window_section']['window']) == 0</filter>
+        </data>
+        <data name="out_ratio_log2_circos" format="tabular" label="${tool.name} on ${on_string}: Circos 2D-track data" from_work_dir="output/sample.bam_ratio_log2_circos.txt">
+            <filter>output_section['circos_data']</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="5">
+            <conditional name="reference_source">
+                <param name="ref_selector" value="history"/>
+                <param name="ref" ftype="fasta" value="genome.fasta" />
+            </conditional>
+            <param name="WGS_WES_selector" value="other" />
+            <param name="input_sample_file" ftype="bam" value="tumor.bam" />
+            <param name="input_control_file" ftype="bam" value="normal.bam" />
+            <param name="mateOrientation_selector" value="0" />
+            <param name="window" value="5000" />
+            <param name="step" value="1000" />
+            <output name="out_sample_raw" file="output/sample.bam_sample.cpn" />
+            <output name="out_control_raw" file="output/control.bam_control.cpn" />
+            <output name="out_sample_coord" file="output/sample.bam_CNVs" />
+            <output name="out_sample_info" file="output/sample.bam_info.txt" />
+            <output name="out_sample_ratio" file="output/sample.bam_ratio.txt" />
+        </test>
+        <test expect_num_outputs="5">
+            <conditional name="reference_source">
+                <param name="ref_selector" value="cached"/>
+                <param name="ref" value="test_buildid"/>
+            </conditional>
+            <param name="WGS_WES_selector" value="other" />
+            <param name="input_sample_file" ftype="bam" value="tumor.bam" />
+            <param name="input_control_file" ftype="bam" value="normal.bam" />
+            <param name="mateOrientation_selector" value="0" />
+            <param name="window" value="5000" />
+            <param name="step" value="1000" />
+            <output name="out_sample_raw" file="output/sample.bam_sample.cpn" />
+            <output name="out_control_raw" file="output/control.bam_control.cpn" />
+            <output name="out_sample_coord" file="output/sample.bam_CNVs" />
+            <output name="out_sample_info" file="output/sample.bam_info.txt" />
+            <output name="out_sample_ratio" file="output/sample.bam_ratio.txt" />
+        </test>
+        <test expect_num_outputs="5">
+            <conditional name="reference_source">
+                <param name="ref_selector" value="history"/>
+                <param name="ref" ftype="fasta" value="genome.fasta" />
+            </conditional>
+            <param name="WGS_WES_selector" value="WGS" />
+            <param name="input_sample_file" ftype="bam" value="tumor.bam" />
+            <param name="input_control_file" ftype="bam" value="normal.bam" />
+            <param name="mateOrientation_selector" value="0" />
+            <param name="minimalSubclonePresence" value="100" />
+            <param name="window" value="5000" />
+            <param name="step" value="1000" />
+            <output name="out_sample_raw" file="output/sample.bam_sample.cpn" />
+            <output name="out_control_raw" file="output/control.bam_control.cpn" />
+            <output name="out_sample_coord" file="output/sample.bam_CNVs" />
+            <output name="out_sample_info" file="output/sample.bam_info.txt" />
+            <output name="out_sample_ratio" file="output/sample.bam_ratio.txt" />
+        </test>
+        <test expect_num_outputs="6">
+            <conditional name="reference_source">
+                <param name="ref_selector" value="history"/>
+                <param name="ref" ftype="fasta" value="genome.fasta" />
+            </conditional>
+            <param name="WGS_WES_selector" value="WES" />
+            <param name="input_sample_file" ftype="bam" value="tumor.bam" />
+            <param name="input_control_file" ftype="bam" value="normal.bam" />
+            <param name="input_capture_file" ftype="bed" value="capture.bed" />
+            <param name="mateOrientation_selector" value="0" />
+            <param name="minimalSubclonePresence" value="100" />
+            <param name="forceGCcontentNormalization" value="2" />
+            <param name="window" value="0" />
+            <param name="step" value="0" />
+            <output name="out_sample_raw">
+                <assert_contents>
+                    <has_text_matching expression="M\t\d+\t\d+\t\d+\tM:\d+-\d+"/>
+                </assert_contents>
+            </output>
+            <output name="out_control_raw">
+                <assert_contents>
+                    <has_text_matching expression="M\t\d+\t\d+\t\d+\tM:\d+-\d+"/>
+                </assert_contents>
+            </output>
+            <output name="out_sample_coord" file="output/sample.bam_CNVs" />
+            <output name="out_sample_info">
+                <assert_contents>
+                    <has_text text="Program_Version"/>
+                </assert_contents>
+            </output>
+            <output name="out_sample_ratio">
+                <assert_contents>
+                    <has_text text="Chromosome"/>
+                </assert_contents>
+            </output>
+            <output name="out_gc_profile" file="output/GC_profile.targetedRegions.cnp" />
+        </test>
+    </tests>
+    <help><![CDATA[
+Control-FREEC
+=============
+
+Control-FREEC is a tool for detection of copy-number changes and allelic imbalances (including loss of heterozygosity/LOH) using deep-sequencing data originally developed by the Bioinformatics Laboratory of Institut Curie (Paris). Nowdays, Control-FREEC is supported by the team of Valentina Boeva at Institut Cochin, Inserm (Paris).
+
+Control-FREEC automatically computes, normalizes, segments copy number and beta allele frequency (BAF) profiles, then calls copy number alterations and LOH. The control (matched normal) sample is optional for whole genome sequencing data but mandatory for whole exome or targeted sequencing data. For whole genome sequencing data analysis, the program can also use mappability data (files created by GEM).
+
+**Input for CNA detection:** Aligned single-end, paired-end or mate-pair data in BAM format.
+
+**Output:** Regions of gain, loss and LOH and normalized copy number.
+
+For more information (f.e. to run Control-FREEC on non-human data) see the Control-FREEC documentation_.
+
+.. _documentation: http://boevalab.inf.ethz.ch/FREEC/index.html#documentation
+
+    ]]></help>
+     <citations>
+         <citation type="doi">10.1093/bioinformatics/btr670</citation>
+         <citation type="doi">10.1093/bioinformatics/btq635</citation>
+    </citations>
+</tool>