view hicPlotTADs.xml @ 5:144bf28956a7 draft

planemo upload for repository https://github.com/maxplanck-ie/HiCExplorer/tree/master/galaxy/wrapper/ commit 80462804e4fd7deafbcf8e8c5283cc7a98fa7dd5
author bgruening
date Sat, 30 Dec 2017 09:34:14 -0500
parents 50502e2beaaa
children 94fff1a6a899
line wrap: on
line source

<tool id="hicexplorer_hicplottads" name="@BINARY@" version="@WRAPPER_VERSION@.0">
    <description>Plots the diagonal, and some values close to the diagonal of a HiC matrix</description>
    <macros>
        <token name="@BINARY@">hicPlotTADs</token>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements" />
    <command detect_errors="exit_code">
<![CDATA[

        sed '/^$/d' '$tracks_config' &&
        @BINARY@
            --tracks '$tracks_config'
            #if $region and $region is not None:
                --region '$region'
            #end if
            --outFileName plot.$image_file_format
        && mv plot.$image_file_format plot
]]>
    </command>
    <configfiles>
        <configfile name="tracks_config">
#if $x_axis.x_axis_select == "yes":
[x-axis]
#if $x_axis.fontsize:
fontsize = $x_axis.fontsize
#end if
#if $x_axis.where:
where = $x_axis.where
#end if
#end if
#for $counter, $track in enumerate($tracks):
#if $track.track_file_style_conditional.track_file_style_selector == "hic_matrix_option":  
[hic_section_$counter]
file = $track.track_file_style_conditional.matrix_h5_cooler
file_type = hic_matrix
title = $track.track_file_style_conditional.title
#if $track.track_file_style_conditional.depth:
depth = $track.track_file_style_conditional.depth
#end if
#if $track.track_file_style_conditional.colormap:
colormap = $track.track_file_style_conditional.colormap
#end if
#if $track.track_file_style_conditional.min_value:
min_value = $track.track_file_style_conditional.min_value
#end if
#if $track.track_file_style_conditional.max_value: 
max_value = $track.track_file_style_conditional.max_value
#end if
transform = $track.track_file_style_conditional.transform
#if $track.track_file_style_conditional.boundaries_file:
boundaries_file = $track.track_file_style_conditional.boundaries_file
#end if
#if $track.track_file_style_conditional.x_labels:
x labels = $track.track_file_style_conditional.x_labels
#end if
#if $track.track_file_style_conditional.type:
type = $track.track_file_style_conditional.type
#end if
#if $track.track_file_style_conditional.show_masked_bins:
show_masked_bins = $track.track_file_style_conditional.show_masked_bins
#end if
#if $track.track_file_style_conditional.scale_factor:
scale factor = $track.track_file_style_conditional.scale_factor
#end if

#end if 
#if $track.track_file_style_conditional.track_file_style_selector == "tad_score_track_option":

[tad_score_$counter]
file = $track.track_file_style_conditional.track_input_bedgraph
title = $track.track_file_style_conditional.title
#if $track.track_file_style_conditional.color:
color = $track.track_file_style_conditional.color
#end if
#if $track.track_file_style_conditional.width_tad:
width = $track.track_file_style_conditional.width_tad
#end if
#if $track.track_file_style_conditional.show_data:
show data range = $track.track_file_style_conditional.show_data
#end if

#set $columns = len(open(str($track.track_file_style_conditional.track_input_bedgraph)).readline().split('\t'))
#if $columns > 5:
file_type = bedgraph_matrix
#else:
file_type = bedgraph
#end if
type = lines
#end if 
#if $track.track_file_style_conditional.track_file_style_selector == "chrom_states_option":

[chrom states_$counter]
file = $track.track_file_style_conditional.track_input_bed
title = $track.track_file_style_conditional.title
#if $track.track_file_style_conditional.color:
color = $track.track_file_style_conditional.color
#end if
display = collapsed
#if $track.track_file_style_conditional.width_chrom:
width = $track.track_file_style_conditional.width_chrom
#end if
#if $track.track_file_style_conditional.border_color:
border_color = $track.track_file_style_conditional.border_color
#end if
file_type = bed
#end if
#if $track.track_file_style_conditional.track_file_style_selector == "gene_track_option":

[genes_$counter]
file = $track.track_file_style_conditional.track_input_bed
title = $track.track_file_style_conditional.title
#if $track.track_file_style_conditional.color:
color = $track.track_file_style_conditional.color
#end if 

#if $track.track_file_style_conditional.width_bed:
width = $track.track_file_style_conditional.width_bed
#end if 

#if $track.track_file_style_conditional.labels:
labels = $track.track_file_style_conditional.labels
#end if 

#if $track.track_file_style_conditional.type:
type = $track.track_file_style_conditional.type
#end if 

file_type = bed
#if $track.track_file_style_conditional.fontsize:
fontsize = $track.track_file_style_conditional.fontsize
#end if 

#if $track.track_file_style_conditional.gene_rows:
gene rows = $track.track_file_style_conditional.gene_rows
#end if 

#if $track.track_file_style_conditional.global_max_row:
global max row = $track.track_file_style_conditional.global_max_row
#end if 

#end if 


#if $track.track_file_style_conditional.track_file_style_selector == "bedgraph_track_option":

[bedgraph_$counter]
file = $track.track_file_style_conditional.track_input_bedgraph
title = $track.track_file_style_conditional.title
#if $track.track_file_style_conditional.color:
color = $track.track_file_style_conditional.color
#end if
#if $track.track_file_style_conditional.width_bedgraph:
width = $track.track_file_style_conditional.width_bedgraph
#end if
#if $track.track_file_style_conditional.show_data:
show data range = $track.track_file_style_conditional.show_data
#end if

#set $columns = len(open(str($track.track_file_style_conditional.track_input_bedgraph)).readline().split('\t'))
#if $columns > 5:
file_type = bedgraph_matrix
#else:
file_type = bedgraph
#end if
type = lines
#end if 

#if $track.track_file_style_conditional.track_file_style_selector == "bigwig_track_option":

[bigwig_$counter]
file = $track.track_file_style_conditional.track_input_bigwig
title = $track.track_file_style_conditional.title
color = $track.track_file_style_conditional.color
#if $track.track_file_style_conditional.min_value:
min_value = $track.track_file_style_conditional.min_value
#else:
min_value = 0
#end if
#if $track.track_file_style_conditional.max_value:
max_value = $track.track_file_style_conditional.max_value
#else:
max_value = auto
#end if
width = $track.track_file_style_conditional.width_bigwig
#if $track.track_file_style_conditional.number_of_bins:
number of bins = $track.track_file_style_conditional.number_of_bins
#end if
nans to zeros = $track.track_file_style_conditional.nans_to_zeros
#if $track.track_file_style_conditional.type_conditional == 'fill_option':
type = fill
#elif $track.track_file_style_conditional.type_conditional == 'line_option':
type = line:$track.track_file_style_conditional.type_conditional.width_line
#elif $track.track_file_style_conditional.type_conditional == 'point_option': 
type = points:$track.track_file_style_conditional.type_conditional.width_point
#end if
#if $track.track_file_style_conditional.data_range:
show data range = $track.track_file_style_conditional.data_range
#end if
file_type = bigwig
#end if 
#if $track.track_file_style_conditional.track_file_style_selector == "bedgraph_matrix_track_option":

[bedgraph_matrix_$counter]
file = $track.track_file_style_conditional.track_input_bedgraph_matrix
title = $track.track_file_style_conditional.title
#if $track.track_file_style_conditional.width_bedgraph:
width = $track.track_file_style_conditional.width_bedgraph
#end if
orientation = inverted
#if $track.track_file_style_conditional.min_value:
min_value = $track.track_file_style_conditional.min_value
#end if
#if $track.track_file_style_conditional.max_value:
max_value = $track.track_file_style_conditional.max_value
#end if
#if $track.track_file_style_conditional.type_lines:
type = $track.track_file_style_conditional.type_lines
#end if
file_type = bedgraph_matrix
plot horizontal lines=False
#end if 
#if $track.track_file_style_conditional.track_file_style_selector == "vlines_track_option":

[vlines_$counter]
file = $track.track_file_style_conditional.track_input_bed
type = vlines
file_type = bed
#end if 
#if $track.track_file_style_conditional.track_file_style_selector == "spacer_option":

[spacer]
#if $track.track_file_style_conditional.spacer_width:
width = $track.track_file_style_conditional.spacer_width
#end if
#end if 
#end for</configfile>
    </configfiles>
    <inputs>
        <expand macro="region" />

        <repeat name="tracks" min="1" title="Include tracks in your plot"
            help="Tracks can be of different filetypes. E.g BED, HiC-Matrix, BigWig or BedGraph">
            <conditional name="track_file_style_conditional">
                <param name="track_file_style_selector" type="select" label="Choose style of the track">
                    <option value="hic_matrix_option">TAD visualization</option>
                    <option value="chrom_states_option">Chromatine states</option>
                    <option value="tad_score_track_option">TAD score</option>                    
                    <option value="gene_track_option">Gene track</option>
                    <option value="bigwig_track_option">Bigwig track</option>
                    <option value="bedgraph_track_option">Bedgraph track </option>
                    <option value="bedgraph_matrix_track_option">Bedgraph matrix track</option>
                    <option value="vlines_track_option">Vlines track</option>
                    <option value="spacer_option">Spacer</option>
                </param>
                <when value="hic_matrix_option">
                    <expand macro="plot_title" />
                    <expand macro="matrix_h5_cooler_macro" />
                    
                    <expand macro="colormap" />
                    <param name="depth" type="integer" value="8000000" optional="True" label="Depth" />
                    <param name="min_value" type="float" value="" optional="True" label="Minimum value"/>
                    <param name="max_value" type="float" value="" optional="True" label="Maximum value"/>
                    <param name="transform" type="select" label="Plot the transformed value">
                        <option value="log1p" selected="True" >log1p</option>
                        <option value="log">log</option>
                        <option value="-log">-log</option>
                        
                    </param>
                    <param name="type" type="select" optional="True" label="Plotting type">
                        <option value="arcplot">arcplot</option>
                        <option value="interaction">interaction</option>
                    </param>
                    <param name="show_masked_bins" type="boolean" truevalue="yes" falsevalue="no" checked="false"
                            label="Show masked bins" />
                    <param name="boundaries_file" type="data" optional="True" format="bed" label="Boundaries file"/>
                    <param name="scale_factor" type="float" value="1.0" optional="True" label="Scale factor" help="if the values in the matrix need to be scaled the following parameter can be used" />
                    <param name="x_labels" type="boolean" truevalue="yes" falsevalue="no" optional="True" label="Show x labels" />

                </when>
                <when value="tad_score_track_option">
                    <expand macro="plot_title" />
                    <expand macro="track_input_bedgraph_macro" />
                    <param name="color" type="color" value="#000000" label="Color of track" optional="True" />
                    
                    <param name="width_tad" type="float" value="0.2" optional="True" label="Width"/>
                    <param name='show_data' type="boolean" truevalue="yes" falsevalue="no" checked="false" optional="True" label="Show visualization of data range" />                   
                </when>
                <when value="chrom_states_option">
                    <expand macro="plot_title" />
                
                    <expand macro="track_input_bed_macro" />
                    <param name="color" type="color" value="#000000" label="Color of track" optional="True" />
                    
                    <param name="border_color" type="color" value="#000000" label="Border color" optional="True" />
                    <param name="width_chrom" type="float" value="1.5" optional="True" label="Width"/>
                     <param name="labels" type="boolean" truevalue="on" falsevalue="off" checked="true"
                            label="Plot labels" />
                </when>
                <when value="gene_track_option">
                    <expand macro="plot_title" />
                
                    <expand macro="track_input_bed_macro" />
                    <param name="color" type="color" value="#000000" label="Color of track" optional="True" />
                    <param name="width_bed" type="float" value="1.5" optional="True" label="Width"/>
                    <param name="labels" type="boolean" truevalue="on" falsevalue="off" checked="true"
                            label="Plot labels" />
                    <param name="type" type="select" optional="True" label="Type">
                        <option value="genes">genes</option>
                        <option value="domains">domains</option>
                    </param>
                    <param name="global_max_row" type="boolean" truevalue="yes" falsevalue="no" checked="false"
                            label="Global max rows" />
                    <param name="gene_rows" type="integer" value="" optional="True" label="Gene rows" />
                    <param name="fontsize" type="integer" value="" optional="True" label="Fontsize" />
                    
                </when>
                <when value="bedgraph_track_option">
                    <expand macro="plot_title" />
                    <expand macro="track_input_bedgraph_macro" />
                    <param name="color" type="color" value="#000000" label="Color of track" optional="True" />
                    
                    <param name="width_bedgraph" type="float" value="0.2" optional="True" label="Width"/>
                    <param name='show_data' type="boolean" truevalue="yes" falsevalue="no" checked="false" optional="True" label="Show visualization of data range" />                   
                </when>
                <when value="bigwig_track_option">
                    <expand macro="plot_title" />
                
                    <expand macro="track_input_bigwig_macro" />
                    <param name="color" type="color" value="#000000" label="Color of track" optional="True" />
                    
                    <param name="min_value" type="float" value="" optional="True" label="Minimum value"/>
                    <param name="max_value" type="float" value="" optional="True" label="Maximum value"/>
                    
                    <param name="width_bigwig" type="float" value="1.5" optional="True" label="Width"/>
                    <param name="number_of_bins" type="integer" value="" optional="True" label="Number of bins" />
                    <param name="nans_to_zeros" type="boolean" truevalue="True" falsevalue="False" checked="false"
                            label="NAN's to zeros" />
                    <conditional name="type_conditional">
                         <param name="type_selector" type="select" label="Choose style of the plot.">
                            <option value="fill_option">fill</option>
                            <option value="line_option">line</option>
                            <option value="point_option">point</option>
                        </param>
                    <when value="line_option">
                        <param name="width_line" type="float" value="0.5" optional="True" label="Width"/>
                    </when>
                    <when value="point_option">
                        <param name="width_point" type="float" value="0.5" optional="True" label="Width"/>
                    </when>
                    <when value="fill_option" />
                    </conditional>
                    <param name="data_range" type="boolean" truevalue="yes" falsevalue="no" optional="True" checked="false" />
                </when>
                
               
                <when value="bedgraph_matrix_track_option">
                    <expand macro="plot_title" />
                
                    <expand macro="track_input_bedgraph_matrix_macro" />
                    <param name="min_value" type="float" value="" optional="True" label="Minimum value"/>
                    <param name="max_value" type="float" value="" optional="True" label="Maximum value"/>

                    <param name="width_bedgraph" type="float" value="1.5" optional="True" label="Width"/>

                     <param name="type_lines" type="boolean" truevalue="lines" falsevalue="" checked="false"
                            label="Set 'type' to 'lines'" help="if type is set as lines, then the TAD score lines are drawn instead
                            of the matrix set to lines if a heatmap representing the matrix is not wanted"/>
                </when>
                <when value="vlines_track_option">
                    <expand macro="track_input_bed_macro" />
                </when>
                <when value="spacer_option">
                    <expand macro="spacer_macro" />
                </when>
            </conditional>
           
        </repeat>

        
        <conditional name="x_axis">
            <param name="x_axis_select" type="select" label="Configure x-axis">
                <option value="no" selected="True">No</option>
                <option value="yes">Yes</option>
            </param>
            <when value="yes">
                <param name="fontsize" type="integer" value="" optional="True" label="Fontsize" />
                <param name="where" type="select" optional="True" label="Where to place the x-axis">
                    <option value="top">Top</option>
                    <option value="bottom">Bottom</option>
                </param>
            </when>
            <when value="no" />
        </conditional>
        <param name="image_file_format" type="select" label="Image output format">
                <option value="png">png</option>
                <option value="svg">svg</option>
        </param>
    </inputs>
    <outputs>
        <data format="png" name="outFileName" from_work_dir="plot">
            <change_format>
                <when input="image_file_format" value="png" format="png" />
                <when input="image_file_format" value="svg" format="svg" />
            </change_format>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="region" value="chrX:3000000-3500000"/>
            <conditional name="x_axis">
                <param name="x_axis_select" value="yes" />
            </conditional>   
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="hic_matrix_option" />
                    <param name="matrix_h5_cooler" value="Li_et_al_2015.h5"/>

                    <param name="title" value="Kc DpnII (Li et al. 2015)" />
                    <param name="colormap" value="RdYlBu_r" />
                    <param name="depth" value="200000" />
                    <param name="transform" value="log1p" />
                    <param name="boundaries_file" value="domains.bed" />
                    <param name="x_labels" value="True" />
                </conditional>   
            </repeat>
            <repeat name="tracks">             
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="spacer_option" />
                    <param name="spacer_width" value="0.05" />
                </conditional>
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="chrom_states_option" />
                    <param name="track_input_bed" value="tad_classification.bed" ftype="bed" />
                    <param name="title" value="TAD state" />
                    <param name="width_chrom" value="0.5" />
                    <param name="labels" value="off" />
                </conditional>   
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="tad_score_track_option" />
                    <param name="track_input_bedgraph" value="tad_score.gz" ftype="bedgraph" />
                    <param name="title" value="TAD separation score (Ramirez et al.)" />
                    <param name="width_tad" value="10" />
                </conditional>
            </repeat>
            <repeat name="tracks">             
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="spacer_option" />
                    <param name="spacer_width" value="1" />
                </conditional>
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="bedgraph_track_option" />
                    <param name="track_input_bedgraph" value="bedgraph_chrx_2e6_5e6.bg" ftype="bedgraph" />
                    <param name="title" value="bedgraph" />
                    <param name="width_bedgraph" value="4" />
                    <param name="color" value="blue" />
                </conditional>   
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="bigwig_track_option" />
                    <param name="track_input_bigwig" value="bigwig_chrx_2e6_5e6.bw" ftype="bigwig" />
                    <param name="title" value="rep 1 test fill" />
                    <param name="width_bigwig" value="4" />
                    <param name="color" value="blue" />
                    <conditional name="type_conditional">
                        <param name="type_selector" value="fill_option" />
                    </conditional>
                </conditional>   
            </repeat>
            
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="bigwig_track_option" />
                    <param name="track_input_bigwig" value="bigwig_chrx_2e6_5e6.bw" ftype="bigwig" />
                    <param name="title" value="rep 1 test line" />
                    <param name="width_bigwig" value="4" />
                    <param name="color" value="red" />
                    <conditional name="type_conditional">
                        <param name="type_selector" value="line_option" />
                        <param name="width_line" value="1" />
                    </conditional>
                </conditional>   
            </repeat>

            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="bigwig_track_option" />
                    <param name="track_input_bigwig" value="bigwig_chrx_2e6_5e6.bw" ftype="bigwig" />
                    <param name="title" value="rep 1 test lw=0.2" />
                    <param name="width_bigwig" value="4" />
                    <param name="color" value="red" />
                    <conditional name="type_conditional">
                        <param name="type_selector" value="line_option" />
                        <param name="width_line" value="0.1" />
                        
                    </conditional>
                </conditional>   
            </repeat>
            
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="bigwig_track_option" />
                    <param name="track_input_bigwig" value="bigwig_chrx_2e6_5e6.bw" ftype="bigwig" />
                    <param name="title" value="rep 1 test point:0.5" />
                    <param name="width_bigwig" value="4" />
                    <param name="color" value="black" />
                    <conditional name="type_conditional">
                        <param name="type_selector" value="point_option" />
                        <param name="width_point" value="0.5" />
                        
                    </conditional>
                </conditional>   
            </repeat>

            <repeat name="tracks">             
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="spacer_option" />
                    <param name="spacer_width" value="0.5" />
                </conditional>
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="gene_track_option" />
                    <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
                    <param name="title" value="genes" />
                    <param name="width_bed" value="5" />
                    <param name="fontsize" value="10" />
                </conditional>   
            </repeat>
            <repeat name="tracks">             
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="spacer_option" />
                    <param name="spacer_width" value="1" />
                </conditional>
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="gene_track_option" />
                    <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
                    <param name="title" value="max num rows 3" />
                    <param name="width_bed" value="3" />
                    <param name="fontsize" value="8" />
                    <param name="gene_rows" value="3" />
                </conditional>   
            </repeat>
            <repeat name="tracks">             
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="spacer_option" />
                    <param name="spacer_width" value="1" />
                </conditional>
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="gene_track_option" />
                    <param name="track_input_bed" value="dm3_genes.bed6.gz" ftype="bed" />
                    <param name="title" value="bed6 global max row" />
                    <param name="width_bed" value="20" />
                    <param name="fontsize" value="10" />
                    <param name="global_max_row" value="True" />
                </conditional>   
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="vlines_track_option" />
                    <param name="track_input_bed" value="domains.bed" ftype="bed" />
                    <param name="type" value="vlines" />
                </conditional>   
            </repeat>
            <param name="image_file_format" value="png" />
            <output name="outFileName" file="master_TADs_plot.png" ftype="png" compare="sim_size" delta="35000" />
        </test>
    </tests>
    <help><![CDATA[

Plot TADs
=========

``hicPlotTADs`` is a visualization tool to plot the topologically associating domains (TADs) in a given region. Additional tracks can be added to enable the comparisons with other data like gene tracks.

Input
-----
- the region to plot: chr1:1000-2000
- the tracks:
    - the contact matrix
    - Boundaries file: The result of ``hicFindTADs``.
- different tracks for comparison:
    - Chromatine states: 
    - TAD score
    - gene tracks
    - Generic bigwig, bedgraph or bedgraph matrix files
    - Vlines: vertical lines as a visual support where regions start / end over all tracks
    - Spacer: Add some space between the different tracks

For each track parameters for the color, the width or the font size can be defined.

Output
------
An output looks like this:


.. image:: $PATH_TO_IMAGES/master_TADs_plot.png
   :width: 80 %

| For more information about HiCExplorer please consider our documentation on readthedocs.io_

.. _readthedocs.io: http://hicexplorer.readthedocs.io/en/latest/index.html
]]></help>
    <expand macro="citations" />
</tool>