view control_freec.xml @ 2:74cb429038c1 draft default tip

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/freec commit 30718e775cd7cd2a7746608a0c99e86521cf8d7b"
author iuc
date Sat, 13 Nov 2021 18:28:07 +0000
parents 1204e79d3a99
children
line wrap: on
line source

<tool id="control_freec" name="Control-FREEC" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@">
    <description>detects copy-number changes and allelic imbalances</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <expand macro="xrefs"/>
    <expand macro="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 &&
            cp '${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 &&

            cat ./capture.bed | cut -f 1 | sort | uniq > ./capture.bed_tmp &&
            cp ./genome.fa.fai ./genome.fa.fai_tmp &&
            awk 'NR==FNR{A[$1];next}($1 in A)' ./capture.bed_tmp ./genome.fa.fai_tmp > ./genome.fa.fai &&
        #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 $WGS_WES.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' '$WGS_WES.advanced_settings.ploidy'
        #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]
#if $WGS_WES.input_control_file
mateFile = control.bam
inputFormat = BAM
mateOrientation = $WGS_WES.mateOrientation_selector
#end if

#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="wgs_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">
            <filter>WGS_WES['input_control_file']</filter>
        </data>
        <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 Log2 Ratio (2D Data Track)" from_work_dir="output/sample.bam_ratio_log2_circos.txt">
            <filter>output_section['circos_data']</filter>
        </data>
        <data name="out_chr_sorted_circos" format="tabular" label="${tool.name} on ${on_string}: Circos Karyotype" from_work_dir="output/karyotype_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>
        <!-- Test without control file-->
        <test expect_num_outputs="4">
            <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="mateOrientation_selector" value="0" />
            <param name="minimalSubclonePresence" value="100" />
            <param name="window" value="50" />
            <param name="step" value="10" />
            <output name="out_sample_raw" file="output/sample.bam_sample_woc.cpn" />
            <output name="out_sample_coord" file="output/sample_woc.bam_CNVs" />
            <output name="out_sample_info" file="output/sample.bam_info_woc.txt" />
            <output name="out_sample_ratio" file="output/sample.bam_ratio_woc.txt" />
        </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>