diff bamCompare.xml @ 0:105b9da2445c draft

planemo upload for repository https://github.com/fidelram/deepTools/tree/master/galaxy/wrapper/ commit 0a9265a12a303b54cdaa974e82e87c2ac60962ee-dirty
author bgruening
date Mon, 25 Jan 2016 20:25:37 -0500
parents
children e237a134059a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bamCompare.xml	Mon Jan 25 20:25:37 2016 -0500
@@ -0,0 +1,234 @@
+<tool id="deeptools_bam_compare" name="bamCompare" version="@WRAPPER_VERSION@.0">
+    <description>normalizes and compares two BAM files to obtain the ratio, log2ratio or difference between them</description>
+    <macros>
+        <token name="@BINARY@">bamCompare</token>
+        <import>deepTools_macros.xml</import>
+    </macros>
+    <expand macro="requirements" />
+    <command>
+<![CDATA[
+        ln -s '$bamFile1' one.bam &&
+        ln -s '${bamFile1.metadata.bam_index}' one.bam.bai &&
+        ln -s '$bamFile2' two.bam &&
+        ln -s '${bamFile2.metadata.bam_index}' two.bam.bai &&
+
+        @BINARY@
+            @THREADS@
+            --bamfile1 one.bam
+            --bamfile2 two.bam
+
+            --outFileName '$outFileName'
+            --outFileFormat '$outFileFormat'
+
+            --binSize $binSize
+
+            #if $scaling.method == 'SES':
+                --scaleFactorsMethod SES
+                --sampleLength $scaling.sampleLength
+                --numberOfSamples $scaling.numberOfSamples
+            #elif $scaling.method == 'readCount':
+                --scaleFactorsMethod readCount
+            #elif $scaling.method == 'own':
+                --scaleFactors '$scaling.scaleFactor1:$scaling.scaleFactor2'
+            #end if
+
+            --ratio $comparison.type
+
+            #if $comparison.type == 'subtract':
+                #if $comparison.normalization.type == 'rpkm':
+                    --normalizeUsingRPKM
+                #elif $comparison.normalization.type == '1x':
+
+                    #if $comparison.normalization.effectiveGenomeSize.effectiveGenomeSize_opt == "specific":
+                        --normalizeTo1x $comparison.normalization.effectiveGenomeSize.effectiveGenomeSize
+                    #else:
+                        --normalizeTo1x $comparison.normalization.effectiveGenomeSize.effectiveGenomeSize_opt
+                    #end if
+
+                #end if
+            #elif $comparison.type in ['ratio','log2']:
+                --pseudocount $comparison.pseudocount
+            #end if
+
+            #if str($region).strip() != '':
+                --region '$region'
+            #end if
+
+            #if $advancedOpt.showAdvancedOpt == "yes":
+                #if $advancedOpt.smoothLength:
+                    --smoothLength '$advancedOpt.smoothLength'
+                #end if
+
+                @ADVANCED_OPTS_READ_PROCESSING@
+                $advancedOpt.skipNAs
+
+                #if str($advancedOpt.ignoreForNormalization).strip() != '':
+                    --ignoreForNormalization '$advancedOpt.ignoreForNormalization'
+                #end if
+            #end if
+]]>
+    </command>
+    <inputs>
+        <param argument="--bamFile1" format="bam" type="data" label="First BAM file (e.g. treated sample)"
+            help="The BAM file must be sorted."/>
+        <param argument="--bamFile2" format="bam" type="data" label="Second BAM file (e.g. control sample)"
+            help="The BAM file must be sorted."/>
+
+        <param argument="--binSize" type="integer" value="50" min="1"
+            label="Bin size in bases"
+            help="The genome will be divided into bins of the specified size. For each bin, the overlaping number of fragments (or reads) will be reported.
+                If only half a fragment overlaps then this fraction will be reported."/>
+
+        <conditional name="scaling">
+            <param name="method" type="select"
+                label="Method to use for scaling the largest sample to the smallest">
+                <option value="readCount" selected="true">read count</option>
+                <option value="SES">signal extraction scaling (SES), check with plotFingerprint before using it!</option>
+                <option value="own">enter own scaling factors</option>
+            </param>
+            <when value="SES">
+                <param argument="--sampleLength" type="integer" value="1000" min="10"
+                    label="Length in bases used to sample the genome and compute the size or scaling factors."
+                    help="The default is fine. Only change it if you know what you are doing." />
+                <param argument="--numberOfSamples" type="integer" value="100000" min="0"
+                    label="Number of samplings taken from the genome to compute the scaling factors"
+                    help="" />
+            </when>
+            <when value="readCount" />
+            <when value="own">
+                <expand macro="scaleFactors" />
+            </when>
+        </conditional>
+
+        <conditional name="comparison">
+            <param name="type" type="select"
+                label="How to compare the two files"
+                help="The default is to output the log2ratio between the two samples.
+                The reciprocal ratio returns the negative of the inverse of the ratio if
+                the ratio is less than 0. The resulting values are interpreted as negative fold changes.">
+                <option value="log2" selected="true">Compute log2 of the number of reads ratio</option>
+                <option value="ratio">Compute the ratio of the number of reads</option>
+                <option value="subtract">Compute difference (subtract input from treatment) of the number of reads</option>
+                <option value="add">Compute the sum of number of reads</option>
+                <option value="reciprocal_ratio">Computes the fold change. If the fold change is less than 1, the negative of the inverse is reported. E.g. A fold change of 10 to 5 would be reported not as 0.5 but as -2</option>
+            </param>
+            <when value="log2">
+                <expand macro="pseudocount" />
+            </when>
+            <when value="ratio">
+                <expand macro="pseudocount" />
+            </when>
+            <when value="add" />
+            <when value="reciprocal_ratio">
+                <expand macro="pseudocount" />
+            </when>
+            <when value="subtract">
+                <conditional name="normalization">
+                    <param name="type" type="select" label="Normalization method" >
+                        <option value="1x">Normalize coverage to 1x</option>
+                        <option value="rpkm">Normalize to fragments (reads) per kilobase per million (RPKM)</option>
+                        <option value="no">Do not normalize or scale</option>
+                    </param>
+                    <when value="rpkm" />
+                    <when value="no" />
+                    <when value="1x">
+                        <expand macro="effectiveGenomeSize" />
+                    </when>
+                </conditional>
+            </when>
+        </conditional>
+
+        <param name="outFileFormat" type="select" label="Coverage file format">
+            <option value="bigwig" selected="true">bigwig</option>
+            <option value="bedgraph">bedgraph</option>
+        </param>
+        <expand macro="region_limit_operation" />
+        <conditional name="advancedOpt">
+            <param name="showAdvancedOpt" type="select" label="Show advanced options" >
+                <option value="no" selected="true">no</option>
+                <option value="yes">yes</option>
+            </param>
+            <when value="no" />
+            <when value="yes">
+                <expand macro="smoothLength" />
+                <expand macro="read_processing_options" />
+
+                <expand macro="skipNAs" />
+                <param argument="--ignoreForNormalization" type="text" value="" size="50"
+                    label="regions that should be excluded for calculating the scaling factor"
+                    help="Sometimes it makes sense to exclude certain regions when calculating the scaling factor.
+                        For example, if you know of copy number variations between samples then you may want to exclude these.
+                        Another typical example is the difference in chromosome X copies between males and females in many species.
+                        Example inputs are chrX,chrY,chr3 or chr10:12220-128932" />
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data format="bigwig" name="outFileName">
+        <change_format>
+            <when input="outFileFormat" value="bigwig" format="bigwig" />
+            <when input="outFileFormat" value="bedgraph" format="bedgraph" />
+        </change_format>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+            <param name="bamFile1" value="bowtie2-test1.bam" ftype="bam" />
+            <param name="bamFile2" value="bowtie2-test1.bam" ftype="bam" />
+            <param name="showAdvancedOpt" value="no" />
+            <param name="outFileFormat" value="bigwig" />
+            <param name="outFileFormat" value="bedgraph" />
+            <param name="binSize" value="5" />
+            <param name="type" value="ratio" />
+            <output name="outFileName" file="bamCompare_result1.bg" ftype="bedgraph" />
+        </test>
+        <test>
+            <param name="bamFile1" value="bowtie2-test1.bam" ftype="bam" />
+            <param name="bamFile2" value="bowtie2-test1.bam" ftype="bam" />
+            <param name="showAdvancedOpt" value="yes" />
+            <param name="outFileFormat" value="bigwig" />
+            <param name="outFileFormat" value="bigwig" />
+            <param name="binSize" value="10" />
+            <param name="type" value="ratio" />
+            <output name="outFileName" file="bamCompare_result2.bw" ftype="bigwig" />
+        </test>
+    </tests>
+    <help>
+<![CDATA[
+
+**What it does**
+
+This tool compares two BAM files based on the number of mapped reads. To
+compare the BAM files, the genome is partitioned into bins of equal size, then
+the number of reads found in each BAM file is counted per bin and
+finally a summary value reported. This value can be the ratio of the
+number of reads per bin, the log2 of the ratio or the difference. This tool
+can normalize the number of reads in each BAM file using the SES method
+proposed in Diaz et al. (2012). "Normalization, bias correction, and peak
+calling for ChIP-seq". Statistical applications in genetics and molecular
+biology, 11(3). Normalization based on read counts is also available. The
+output is either a bedgraph or a bigwig file containing the bin location and
+the resulting comparison values. By default, if reads are mated, the fragment
+length reported in the BAM file is used. In the case of paired-end mapping,
+each read mate is treated independently to avoid a bias when a mixture of
+concordant and discordant pairs are present. This means that *each end* will be
+extended to match the fragment length.
+
+
+.. image:: $PATH_TO_IMAGES/norm_IGVsnapshot_indFiles.png
+
+
+You can find more details on the bamCompare doc page: https://deeptools.readthedocs.org/en/master/content/tools/bamCompare.html
+
+
+**Output files**:
+
+- same as for bamCoverage, except that you now obtain 1 coverage file that is based on 2 BAM files.
+
+-----
+
+@REFERENCES@
+]]>
+    </help>
+    <expand macro="citations" />
+</tool>