view control_freec.xml @ 0:5330cf818142 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/freec commit bec4fb59dc4776d33c2ce8c0bd614c90e5d4ecb2"
author iuc
date Thu, 13 Aug 2020 13:49:44 +0000
parents
children 1204e79d3a99
line wrap: on
line source

<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>