view pyGenomeTracks.xml @ 3:feab9265552d draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/pygenometracks commit 86b573c794af56fb02ba6ca87c5ad636d323c01b"
author iuc
date Mon, 26 Aug 2019 06:20:55 -0400
parents c171f2b7d76e
children c237ba772225
line wrap: on
line source

<tool id="pygenomeTracks" name="@BINARY@" version="@WRAPPER_VERSION@.2">
    <description>plot genomic data tracks</description>
    <macros>
        <token name="@BINARY@">pyGenomeTracks</token>
        <import>macros.xml</import>
    </macros>
    <expand macro="requirements" />
    <command detect_errors="exit_code">
<![CDATA[
        #for $counter, $track in enumerate($tracks):
            #if $track.track_file_style_conditional.track_file_style_selector == "hic_matrix_option":
                #for $counter_matrix, $data_matrix in enumerate($track.track_file_style_conditional.matrix_h5_cooler_multiple):
                    #set ext = $data_matrix.extension
                    ln -s $data_matrix ${counter}_${counter_matrix}.$ext &&
                #end for
            #end if
            #if $track.track_file_style_conditional.track_file_style_selector == "gene_track_option":
                #for $counter_bed, $data_bed in enumerate($track.track_file_style_conditional.track_input_bed):
                    #set ext = $data_bed.extension
                    ln -s $data_bed ${counter}_${counter_bed}.$ext &&
                #end for
            #end if
        #end for


        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":
#if $x_axis.where == 'top':
[x-axis]
#if $x_axis.fontsize:
fontsize = $x_axis.fontsize
#end if
#if $x_axis.where:
where = $x_axis.where
#end if
#end if
#end if
#for $counter, $track in enumerate($tracks):
#if $track.track_file_style_conditional.track_file_style_selector == "hic_matrix_option":

#for $counter_matrix, $data_matrix in enumerate($track.track_file_style_conditional.matrix_h5_cooler_multiple):
[hic_section_${counter}_${counter_matrix}]
#set ext = $data_matrix.extension
file = ${counter}_${counter_matrix}.$ext
file_type = hic_matrix
#if $track.track_file_style_conditional.title:
title = $track.track_file_style_conditional.title
#else:
title = $data_matrix.name
#end if
#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
#if $track.track_file_style_conditional.transform != "":
transform = $track.track_file_style_conditional.transform
#end if
#if $track.track_file_style_conditional.height_matrix != "":
height = $track.track_file_style_conditional.height_matrix
#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.invert_orientation:
orientation = inverted
#end if
#if $track.track_file_style_conditional.scale_factor:
scale factor = $track.track_file_style_conditional.scale_factor
#end if

#if str($track.track_file_style_conditional.boundaries_file) != "None":
#if len($track.track_file_style_conditional.boundaries_file)>$counter_matrix:
#set boundary_file = $track.track_file_style_conditional.boundaries_file[$counter_matrix]
#else:
#set boundary_file = $track.track_file_style_conditional.boundaries_file[0]
#end if
[tads_${counter}_${counter_matrix}]
file = $boundary_file
file_type = domains
border color = black
color = none
overlay previous = share-y
#end if


#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end for

#end if



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

#for $data_bedgraph in $track.track_file_style_conditional.track_input_bedgraph:
[tad_score_$counter]
file = $data_bedgraph
#if $track.track_file_style_conditional.title:
title = $track.track_file_style_conditional.title
#else:
title = $data_bedgraph.name
#end if
#if $track.track_file_style_conditional.color:
color = $track.track_file_style_conditional.color
#end if
#if $track.track_file_style_conditional.height_tad:
height = $track.track_file_style_conditional.height_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 > 4:
file_type = bedgraph_matrix
#if $track.track_file_style_conditional.type_lines:
type = $track.track_file_style_conditional.type_lines
#end if
#else:
file_type = bedgraph
#end if
#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end for
#end if




#if $track.track_file_style_conditional.track_file_style_selector == "chrom_states_option":
#for $data_bed in $track.track_file_style_conditional.track_input_bed:

[chrom states_$counter]
file = $data_bed
#if $track.track_file_style_conditional.title:
title = $track.track_file_style_conditional.title
#else:
title = $data_bed.name
#end if
#if $track.track_file_style_conditional.color_bed.color_bed_select == "bed_rgb":
color = bed_rgb
#elif $track.track_file_style_conditional.color_bed.color:
color = $track.track_file_style_conditional.color_bed.color
#end if
#if $track.track_file_style_conditional.border_color:
border color = $track.track_file_style_conditional.border_color
#end if
display = collapsed
#if $track.track_file_style_conditional.height_chrom:
height = $track.track_file_style_conditional.height_chrom
#end if
file_type = bed
#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end for

#end if




#if $track.track_file_style_conditional.track_file_style_selector == "gene_track_option":
#for $counter_bed, $data_bed in enumerate($track.track_file_style_conditional.track_input_bed):

[genes_${counter}_${counter_bed}]
#set ext = $data_bed.extension
file = ${counter}_${counter_bed}.$ext
#if $track.track_file_style_conditional.title:
title = $track.track_file_style_conditional.title
#else:
title = $data_bed.name
#end if
#if $track.track_file_style_conditional.color_bed.color_bed_select == "bed_rgb":
color = bed_rgb
#elif $track.track_file_style_conditional.color_bed.color:
color = $track.track_file_style_conditional.color_bed.color
#end if
#if $track.track_file_style_conditional.border_color:
border color = $track.track_file_style_conditional.border_color
#end if

#if $track.track_file_style_conditional.flybase:
style = flybase
#else
style = UCSC
#end if

display = $track.track_file_style_conditional.display

#if $track.track_file_style_conditional.height_bed:
height = $track.track_file_style_conditional.height_bed
#end if

labels = $track.track_file_style_conditional.labels

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
#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end for
#end if


#if $track.track_file_style_conditional.track_file_style_selector == "bedgraph_track_option":
#for $data_bedgraph in $track.track_file_style_conditional.track_input_bedgraph:

[bedgraph_$counter]
file = $data_bedgraph
#if $track.track_file_style_conditional.title:
title = $track.track_file_style_conditional.title
#elif $track.track_file_style_conditional.overlay_select == "no":
title = $data_bedgraph.name
#end if
#if $track.track_file_style_conditional.color:
color = $track.track_file_style_conditional.color
#end if
alpha = $track.track_file_style_conditional.alpha
#if $track.track_file_style_conditional.color_negative.color_negative_select == "yes":
negative color = $track.track_file_style_conditional.color_negative.color
#end if
#if $track.track_file_style_conditional.height_bedgraph:
height = $track.track_file_style_conditional.height_bedgraph
#end if
#if $track.track_file_style_conditional.min_value:
min_value = $track.track_file_style_conditional.min_value
#else:
min_value = auto
#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

#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 > 4:
file_type = bedgraph_matrix
type = lines
#else:
file_type = bedgraph
#if $track.track_file_style_conditional.type_conditional.type_selector == 'fill_option':
type = fill
#elif $track.track_file_style_conditional.type_conditional.type_selector == 'line_option':
type = line:$track.track_file_style_conditional.type_conditional.width_line
#elif $track.track_file_style_conditional.type_conditional.type_selector == 'point_option':
type = points:$track.track_file_style_conditional.type_conditional.width_point
#end if
#end if
#if $track.track_file_style_conditional.invert_orientation:
orientation = inverted
#end if
overlay previous = $track.track_file_style_conditional.overlay_select
#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end for
#end if

#if $track.track_file_style_conditional.track_file_style_selector == "bigwig_track_option":
#for $data_bigwig in $track.track_file_style_conditional.track_input_bigwig:
[bigwig_$counter]
file = $data_bigwig
#if $track.track_file_style_conditional.title:
title = $track.track_file_style_conditional.title
#elif $track.track_file_style_conditional.overlay_select == "no":
title = $data_bigwig.name
#end if
#if $track.track_file_style_conditional.color:
color = $track.track_file_style_conditional.color
#end if
alpha = $track.track_file_style_conditional.alpha
#if $track.track_file_style_conditional.color_negative.color_negative_select == "yes":
negative color = $track.track_file_style_conditional.color_negative.color
#end if
#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
height = $track.track_file_style_conditional.height_bigwig
summary method = $track.track_file_style_conditional.reading_bw_conditional.summary
nans to zeros = $track.track_file_style_conditional.reading_bw_conditional.nans_to_zeros
#if $track.track_file_style_conditional.reading_bw_conditional.number_of_bins:
number of bins = $track.track_file_style_conditional.reading_bw_conditional.number_of_bins
#end if
#if $track.track_file_style_conditional.type_conditional.type_selector == 'fill_option':
type = fill
#elif $track.track_file_style_conditional.type_conditional.type_selector == 'line_option':
type = line:$track.track_file_style_conditional.type_conditional.width_line
#elif $track.track_file_style_conditional.type_conditional.type_selector == '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
#if $track.track_file_style_conditional.invert_orientation:
orientation = inverted
#end if
overlay previous = $track.track_file_style_conditional.overlay_select
#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end for
#end if


#if $track.track_file_style_conditional.track_file_style_selector == "bedgraph_matrix_track_option":
#for $data_bedgraph_matrix in $track.track_file_style_conditional.track_input_bedgraph_matrix:

[bedgraph_matrix_$counter]
file = $data_bedgraph_matrix
#if $track.track_file_style_conditional.title:
title = $track.track_file_style_conditional.title
#else:
title = $data_bedgraph_matrix.name
#end if
#if $track.track_file_style_conditional.height_bedgraph:
height = $track.track_file_style_conditional.height_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
#if $track.track_file_style_conditional.invert_orientation:
orientation = inverted
#end if
#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end for
#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_single
type = vlines
file_type = bed
#end if
#if $track.track_file_style_conditional.track_file_style_selector == "spacer_option":

#if $track.track_file_style_conditional.spacer_height != "":
[spacer]
height = $track.track_file_style_conditional.spacer_height
#end if
#end if
#end for

#if $x_axis.x_axis_select == "yes":
#if $x_axis.where == 'bottom':
[x-axis]
#if $x_axis.fontsize:
fontsize = $x_axis.fontsize
#end if
#if $x_axis.where:
where = $x_axis.where
#end if
#end if
#end if
</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 / Bed 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_multiple_macro" />

                    <expand macro="colormap" />
                    <param name="depth" type="integer" value="8000000" optional="True" label="Depth" />
                    <expand macro="minmax_macro" />
                    <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>
                        <option value="">no transformation</option>

                    </param>
                    <param name="height_matrix" type="float" value="" optional="True" label="height"/>
                    <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" multiple='True'/> <!-- multiple='True'-->
                    <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" />
                    <expand macro="inverted_macro" />
                    <expand macro="spacer_macro" />

                </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="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"/>
                    <param name="height_tad" type="float" value="0.2" optional="True" label="height"/>
                    <param name='show_data' type="boolean" truevalue="yes" falsevalue="no" checked="false" optional="True" label="Show visualization of data range" />
                    <expand macro="spacer_macro" />

                </when>
                <when value="chrom_states_option">
                    <expand macro="plot_title" />

                    <expand macro="track_input_bed_macro" />
                    <expand macro="color_bed_macro" />
                    <param name="height_chrom" type="float" value="1.5" optional="True" label="height"/>
                    <param name="labels" type="boolean" truevalue="on" falsevalue="off" checked="true"
                            label="Plot labels" />
                    <expand macro="spacer_macro" />

                </when>
                <when value="gene_track_option">
                    <expand macro="plot_title" />

                    <expand macro="track_input_bed_gtf_macro" />
                    <expand macro="color_bed_macro" />
                    <param name="height_bed" type="float" value="1.5" optional="True" label="height"/>
                    <param name="labels" type="boolean" truevalue="on" falsevalue="off" checked="true"
                            label="Plot labels" />
                    <param name="flybase" type="boolean" checked="true" label="Use flybase style" help="This will be only used for bed with 12 columns"/>
                    <param name="display" type="select" label="display to use">
                        <option value="stacked" selected="True">stacked (no overlap even with the label)</option>
                        <option value="interlaced">interlaced (everything on 2 lines)</option>
                        <option value="collapsed">collapsed (everything on 1 line)</option>
                        <option value="domain">domain (only the first line of stacked)</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" />
                    <expand macro="spacer_macro" />

                </when>
                <when value="bedgraph_track_option">
                    <expand macro="plot_title" />
                    <expand macro="track_input_bedgraph_macro" />
                    <expand macro="color_coverage_macro" />
                    <expand macro="minmax_macro" />
                    <param name="height_bedgraph" type="float" value="1.5" optional="True" label="height"/>
                    <expand macro="type_coverage_macro" />
                    <param name='show_data' type="boolean" truevalue="yes" falsevalue="no" checked="false" optional="True" label="Show visualization of data range" />
                    <expand macro="inverted_macro" />
                    <expand macro="overlay_macro" />
                    <expand macro="spacer_macro" />

                </when>
                <when value="bigwig_track_option">
                    <expand macro="plot_title" />

                    <expand macro="track_input_bigwig_macro" />
                    <expand macro="color_coverage_macro" />

                    <expand macro="minmax_macro" />

                    <param name="height_bigwig" type="float" value="1.5" optional="True" label="height"/>
                    <expand macro="reading_bw_macro" />
                    <expand macro="type_coverage_macro" />
                    <expand macro="type_coverage_macro" />
                    <param name="data_range" type="boolean" truevalue="yes" falsevalue="no" optional="True" checked="false" label="Show visualization of data range"/>
                    <expand macro="inverted_macro" />
                    <expand macro="overlay_macro" />
                    <expand macro="spacer_macro" />

                </when>


                <when value="bedgraph_matrix_track_option">
                    <expand macro="plot_title" />

                    <expand macro="track_input_bedgraph_matrix_macro" />
                    <expand macro="minmax_macro" />

                    <param name="height_bedgraph" type="float" value="1.5" optional="True" label="height"/>

                    <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"/>
                    <expand macro="inverted_macro" />
                    <expand macro="spacer_macro" />

                </when>
                <when value="vlines_track_option">
                    <expand macro="track_input_bed_single_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" label="Where to place the x-axis">
                    <option value="top" selected="True">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" label="${tool.name} on [${on_string}]: 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_multiple" 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_height" 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="height_chrom" value="0.5" />
                    <param name="labels" value="off" />
                    <conditional name="color_bed">
                        <param name="color_bed_select" value="bed_rgb" />
                    </conditional>
                </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="height_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_height" 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="height_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="height_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="height_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="height_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="height_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_height" 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="height_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_height" 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="height_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_height" 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="height_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_single" 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>
        <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="bigwig_track_option" />
                    <param name="track_input_bigwig" value="bigwig_chrx_2e6_5e6.bw,bigwig_chrx_2e6_5e6.bw" ftype="bigwig" />
                    <param name="title" value="rep 1 test line" />
                    <param name="height_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>
            <param name="image_file_format" value="png" />
            <output name="outFileName" file="bigwig_multiple.png" ftype="png" compare="sim_size" delta="35000" />
        </test>
        <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_multiple" value="Li_et_al_2015.h5"/>
                    <param name="title" value="Kc DpnII (Li et al. 2015) log1p" />
                    <param name="colormap" value="RdYlBu_r" />
                    <param name="depth" value="200000" />
                    <param name="transform" value="log1p" />
                    <param name="boundaries_file" value="domains.bed" />
                </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="height_chrom" value="0.5" />
                    <param name="labels" value="off" />
                    <conditional name="color_bed">
                        <param name="color_bed_select" value="bed_rgb" />
                    </conditional>
                </conditional>
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="hic_matrix_option" />
                    <param name="matrix_h5_cooler_multiple" value="Li_et_al_2015.h5"/>
                    <param name="title" value="Kc DpnII (Li et al. 2015) inverted no transform" />
                    <param name="colormap" value="Reds" />
                    <param name="depth" value="200000" />
                    <param name="transform" value="" />
                    <param name="invert_orientation" value="yes" />
                    <param name="min_value" value="5" />
                    <param name="max_value" value="70" />
                </conditional>
            </repeat>
            <repeat name="tracks">
                <conditional name="track_file_style_conditional">
                    <param name="track_file_style_selector" value="spacer_option" />
                    <param name="spacer_height" 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="test_with_neg_values.bg.gz" ftype="bedgraph" />
                    <param name="title" value="bedgraph with negative values" />
                    <param name="height_bedgraph" value="4" />
                    <param name="color" value="black" />
                    <conditional name="color_negative">
                        <param name="color_negative_select" value="yes" />
                        <param name="color" value="red" />
                    </conditional>
                    <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="bedgraph_track_option" />
                    <param name="track_input_bedgraph" value="bedgraph_chrx_2e6_5e6.bg" ftype="bedgraph" />
                    <param name="title" value="bedgraph" />
                    <param name="height_bedgraph" 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 fill" />
                    <param name="height_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="(red points/width=5/max value/100 bins) overlayed with (dark red line/min value/30000 bins) overlayed with (black line/min value)" />
                    <param name="height_bigwig" value="10" />
                    <param name="color" value="red" />
                    <conditional name="type_conditional">
                        <param name="type_selector" value="point_option" />
                        <param name="width_point" value="5" />
                    </conditional>
                    <section name="reading_bw_conditional">
                        <param name="summary" value="max"/>
                        <param name="number_of_bins" value="100"/>
                    </section>
                </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="height_bigwig" value="10" />
                    <param name="color" value="#c00000" />
                    <conditional name="type_conditional">
                        <param name="type_selector" value="line_option" />
                    </conditional>
                    <section name="reading_bw_conditional">
                        <param name="summary" value="min"/>
                    </section>
                    <param name="overlay_select" value="share-y" />
                </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="height_bigwig" value="10" />
                    <param name="color" value="black" />
                    <conditional name="type_conditional">
                        <param name="type_selector" value="line_option" />
                    </conditional>
                    <section name="reading_bw_conditional">
                        <param name="summary" value="min"/>
                        <param name="number_of_bins" value="30000"/>
                    </section>
                    <param name="overlay_select" value="share-y" />
                    <param name="spacer_height" 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="genes in ucsc" />
                    <param name="height_bed" value="5" />
                    <param name="fontsize" value="10" />
                    <param name="flybase" value="false"/>
                </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 color from score" />
                    <param name="height_bed" value="20" />
                    <param name="fontsize" value="10" />
                    <param name="global_max_row" value="True" />
                    <conditional name="color_bed">
                        <param name="color_bed_select" value="colormap" />
                        <param name="color" value="RdYlBu_r" />
                    </conditional>
                </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="domains.bed" ftype="bed" />
                    <param name="title" value="domains.bed using the 9th field for colors interlaced" />
                    <param name="height_bed" value="2" />
                    <param name="fontsize" value="10" />
                    <conditional name="color_bed">
                        <param name="color_bed_select" value="bed_rgb" />
                    </conditional>
                    <param name="display" value="interlaced" />
                </conditional>
            </repeat>
            <param name="image_file_format" value="png" />
            <output name="outFileName" file="master_TADs_BW_plot.png" ftype="png" compare="sim_size" delta="35000" />
        </test>
        <test>
            <param name="region" value="X:2700000-3100000"/>
            <conditional name="x_axis">
                <param name="x_axis_select" value="yes" />
                <param name="where" value="bottom" />
            </conditional>
            <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="(bigwig color=blue 2000 bins) overlayed with (bigwig mean color=red alpha = 0.5 max over 300 bins)" />
                    <param name="height_bigwig" value="7" />
                    <param name="color" value="#00b0f0" />
                    <param name="number_of_bins" value="2000"/>
                </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="" />
                    <param name="color" value="#ff0000" />
                    <param name="alpha" value="0.5" />
                    <param name="summary" value="max" />
                    <param name="number_of_bins" value="300"/>
                    <param name="overlay_select" value="share-y"/>
                </conditional>
            </repeat>
            <param name="image_file_format" value="png" />
            <output name="outFileName" file="test_alpha.png" ftype="png" compare="sim_size" delta="35000" />
        </test>
        <test>
            <param name="region" value="X:3000000-3300000"/>
            <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="gene_track_option" />
                    <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
                    <param name="title" value="test" />
                    <param name="height_bed" value="10" />
                    <param name="color" value="#000000" />
                    <param name="flybase" value="false" />
                    <param name="spacer_height" 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_subset_BDGP5.78_asbed4.bed.gz" ftype="bed" />
                    <param name="title" value="test" />
                    <param name="height_bed" value="10" />
                    <param name="color" value="#000000" />
                    <param name="flybase" value="false" />
                    <param name="spacer_height" value="1"/>
                </conditional>
            </repeat>
            <param name="image_file_format" value="png" />
            <output name="outFileName" file="test_gtf_bed4.png" ftype="png" compare="sim_size" delta="35000" />
        </test>
    </tests>
    <help><![CDATA[

pyGenomeTracks
==============

**pyGenomeTracks** is a visualization tool which aims to produce high-quality genome browser tracks that are highly customizable.
    Currently, it is possible to plot:

    - bigwig
    - bed (many options)
    - bedgraph
    - links (represented as arcs)
    - Hi-C matrices

_________________

Usage
-----

This tool takes various types of tracks as input:

    - **Chromatin states:** display blocks of different colors following a bed file.
    - **Gene track / Bed Track:** display genes or bed files. Labels like gene names can be toggled on or off.
    - **Bigwig track:** generic bigwig track plotting.
    - **Bedgraph track:** generic bedgraph track plotting.
    - **Bedgraph matrix track** is used to specifically plot bm files computed by HiCExplorer's ``hicFindTADs`` (TAD seperation scores).
    - **Vlines:** vertical lines drawn on top of all tracks following a bed file. It is used as a visual support where regions start / end over all tracks, for example to display TAD boundaries computed by HiCExplorer's ``hicFindTADs``.
    - **Spacer:** Add some space between two tracks.
    - **Hi-C tracks:**
        - **TAD vizualisation:** corrected Hi-C contact matrix to plot a contact heatmap. It is recommended to follow HiCExplorer's ``hicPlotMatrix`` instructions. Boundaries file can used, which is the output of HiCExplorer's ``hicFindTADs`` in bed format. If selected, TADs will be drawn directly on the contact heatmap.
        - **TAD score:** display TAD seperation score computed by HiCExplorer's ``hicFindTADs``.


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

_________________

Output
------

**pyGenomeTracks** output is similar to a genome browser screen-shot that besides the usual genes, and score data (like bigwig or bedgraph files)
also contains Hi-C data. The plot is composed of tracks that need to be specified.
Below is represented the 85 Mb to 110 Mb region from human chromosome 2 visualized using **pyGenomeTracks**.
TADs were computed by HiCExplorer's ``hicFindTADs``. The additional tracks added correspond to:
TAD-separation score (as reported by HiCExplorer's ``hicFindTADs``), chromatin states,
principal component 1 (A/B compartment) computed using HiCExplorer's ``hicPCA``, ChIP-seq coverage for the H3K27ac mark, DNA methylation, and a gene track.
Data are from mouse cardiac myocytes, published by `Nothjunge et al. (2017)`_.

.. image:: $PATH_TO_IMAGES/pyGenomeTracks.png
   :width: 70 %

_________________

| For more information about pyGenomeTracks please consider our documentation on github_

.. _github: https://github.com/deeptools/pyGenomeTracks
.. _`Nothjunge et al. (2017)`: https://www.nature.com/articles/s41467-017-01724-9
]]></help>
    <expand macro="citations" />
</tool>