changeset 16:86d0ebe09628 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/pygenometracks commit 9fdf4ad9c2a9c026720e2b01460b7ac85056b068
author iuc
date Wed, 01 Oct 2025 19:35:07 +0000
parents 36b848d5f3ec
children
files macros.xml pyGenomeTracks.xml test-data/empty.bed test-data/test10.ini test-data/test11.ini test-data/test12.ini test-data/test14.ini test-data/test15.ini test-data/test17.ini test-data/test19.ini test-data/test2.ini test-data/test20.ini test-data/test25.ini test-data/test26.ini test-data/test3.ini test-data/test4.ini test-data/test5.ini test-data/test6.ini test-data/test7.ini test-data/test8.ini test-data/test_alpha.png test-data/test_alpha_dec.png test-data/test_arcs_use_middle.png test-data/test_bed_invdelsquares.png test-data/test_gtf_bed4.png test-data/test_middle_triangle.png test-data/test_tssarrow.png test-data/test_ucsc_param.png test-data/test_vhighlight.png test-data/testpyGT.sh
diffstat 29 files changed, 912 insertions(+), 376 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Tue Mar 12 10:28:03 2024 +0000
+++ b/macros.xml	Wed Oct 01 19:35:07 2025 +0000
@@ -1,6 +1,6 @@
 <macros>
-    <token name="@TOOL_VERSION@">3.8</token>
-    <token name="@VERSION_SUFFIX@">2</token>
+    <token name="@TOOL_VERSION@">3.9</token>
+    <token name="@VERSION_SUFFIX@">0</token>
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@TOOL_VERSION@">pygenometracks</requirement>
@@ -13,7 +13,6 @@
             <xref type="bio.tools">pygenometracks</xref>
         </xrefs>
     </xml>
-
     <xml name="citations">
         <citations>
             <citation type="doi">10.1038/s41467-017-02525-w</citation>
@@ -45,9 +44,6 @@
     <xml name="track_input_bed_macro">
         <param name="track_input_bed" type="data" format="bed" label="Track file(s) bed format" multiple="True"/>
     </xml>
-    <xml name="track_input_bed_gtf_macro">
-        <param name="track_input_bed" type="data" format="bed,gtf" label="Track file(s) bed or gtf format" multiple="True"/>
-    </xml>
     <xml name="track_input_narrow_peak_macro">
         <param name="track_input_narrow_peak" type="data" format="encodepeak,bed" label="Track file(s) encodepeak or bed format" multiple="True"/>
     </xml>
@@ -212,24 +208,11 @@
         <param name="gene_rows" type="integer" value="" optional="True" label="Maximum number of gene rows" />
         <param name="max_labels" type="integer" value="60" label="Maximum number of gene labels to display" />
         <param name="line_width" type="float" value="0.5" label="width of lines" />
-        <section name ="gtf" title="When using gtf as input" expanded="False">
-            <param name="prefered_name" type="text" value="transcript_name" label="attribute to use as label"
-                help="Usually transcript_name or gene_name"/>
-            <conditional name="merge_transcripts">
-                <param name="merge_transcripts_select" type="select" label="Merge all transcripts of each gene in a single entry">
-                    <option value="false" selected="True">No</option>
-                    <option value="true">Yes</option>
-                </param>
-                <when value="true">
-                    <param name="merge_overlapping_exons" type="boolean" truevalue="true" falsevalue="false" checked="true"
-                        label="Merge overlapping exons" help="Usually it makes prettier plots" />
-                </when>
-                <when value="false" />
-            </conditional>
-        </section>
     </xml>
-    <xml name="utr_macro">
+    <xml name="height_utr_macro">
         <param name="height_utr" type="float" value="1" min="0" max="1" label="relative height of UTR regions compared to coding regions"/>
+    </xml>
+    <xml name="color_utr_macro">
         <conditional name="color_utr">
             <param name="color_utr_select" type="select" label="Define UTR color:">
                 <option value="manually" selected="True">manually</option>
@@ -243,6 +226,116 @@
             <when value="like" />
         </conditional>
     </xml>
+    <xml name="bed_arrow_macro">
+        <param name="arrow_interval" type="integer" value="2" min="0" label="interval between 2 arrows on exons"/>
+        <conditional name="color_arrow">
+            <param name="color_arrow_select" type="select" label="Define arrow color:">
+                <option value="manually" selected="True">manually</option>
+                <option value="bed_rgb">From the 9th field</option>
+            </param>
+            <when value="manually">
+                <param name="color" type="color" value="black" label="Color of arrows"/>
+            </when>
+            <when value="bed_rgb" />
+        </conditional>
+    </xml>
+    <xml name="bed_style_macro">
+        <conditional name="labels">
+            <param name="plot_labels" type="select" label="Plot labels">
+                <option value="true" selected="True">yes</option>
+                <option value="false">no</option>
+            </param>
+            <when value="true">
+                <param name="all_labels_inside" type="boolean" truevalue="true" falsevalue="false" checked="false"
+                    label="Put all labels inside the plotted region"
+                    help="Put labels on the left of the region if the region ends after the plotted region."/>
+                <param name="labels_in_margin" type="boolean" truevalue="true" falsevalue="false" checked="false"
+                    label="Allow to put labels in the right margin"
+                    help="Put labels in the margin if the region ends after the plotted region."/>
+                <param name="fontsize" type="integer" value="" optional="True" label="Fontsize" />
+                <param name="fontstyle" type="select" label="Fontstyle">
+                    <option value="normal" selected="True">normal</option>
+                    <option value="italic">italic</option>
+                    <option value="oblique">oblique</option>
+                </param>
+            </when>
+            <when value="false"/>
+        </conditional>
+        <conditional name="bed_style">
+            <param name="bed_style_select" type="select" label="Bed style">
+                <option value="flybase" selected="True">flybase (blocks with arrow at extremities)</option>
+                <option value="UCSC">UCSC (blocks with arrows in introns)</option>
+                <option value="tssarrow">tssarrow (blocks with arrow above at beginning)</option>
+                <option value="exonarrows">exonarrows (large blocks with arrows in exons and smaller blocks for introns)</option>
+            </param>
+            <when value="flybase">
+                <expand macro="border_color_bed_macro" />
+                <param name="arrowhead_included" type="boolean" truevalue="true" falsevalue="false" checked="false"
+                    label="Include the arrowhead in the bed interval:"
+                    help="When set to False, the arrow indicating the orientation of the interval is plotted outside of the interval."/>
+                <param name="arrowhead_fraction" type="float" value="0.004" min="0" max="1"
+                    label="Size of arrowhead relative to the plotted region"
+                    help="This size is also used to put space between the bed regions and their labels."/>
+                <section name="bed_advanced" title="Configure other bed parameters" expanded="False">
+                    <expand macro="height_utr_macro" />
+                    <expand macro="color_utr_macro" />
+                    <expand macro="bed_advanced_macro" />
+                    <expand macro="backbone_color_bed_macro" />
+                </section>
+            </when>
+            <when value="UCSC">
+                <expand macro="border_color_bed_macro" />
+                <section name="bed_advanced" title="Configure other bed parameters" expanded="False">
+                    <param name="arrowhead_fraction" type="float" value="0.004" min="0" max="1"
+                        label="Size of arrowhead relative to the plotted region"
+                        help="This size is also used to put space between the bed regions and their labels."/>
+                    <expand macro="bed_arrow_macro" />
+                    <expand macro="bed_advanced_macro" />
+                    <expand macro="backbone_color_bed_macro" />
+                </section>
+            </when>
+            <when value="tssarrow">
+                <section name="bed_advanced" title="Configure other bed parameters" expanded="False">
+                    <param name="arrow_length" type="integer" optional="true" label="arrow length" help="the length of the arrow in bp (default is 4% of the plotted region)"/>
+                    <expand macro="height_utr_macro" />
+                    <expand macro="color_utr_macro" />
+                    <expand macro="bed_advanced_macro" />
+                    <param name="arrowhead_fraction" type="float" value="0.004" min="0" max="1"
+                        label="Size of arrowhead relative to the plotted region"
+                        help="This size is also used to put space between the bed regions and their labels."/>
+                </section>
+            </when>
+            <when value="exonarrows">
+                <expand macro="border_color_bed_macro" />
+                <section name="bed_advanced" title="Configure other bed parameters" expanded="False">
+                    <expand macro="bed_arrow_macro" />
+                    <param name="height_intron" type="float" value="0.5" min="0" max="1" label="relative height of introns compared to exons"/>
+                    <expand macro="color_utr_macro" />
+                    <expand macro="bed_advanced_macro" />
+                    <param name="arrowhead_fraction" type="float" value="0.004" min="0" max="1"
+                        label="Size of arrowhead relative to the plotted region"
+                        help="This size is also used to put space between the bed regions and their labels."/>
+                </section>
+            </when>
+        </conditional>
+    </xml>
+    <xml name="delinv_labels">
+        <conditional name="labels">
+            <param name="plot_labels" type="select" label="Plot labels below">
+                <option value="true" selected="True">yes</option>
+                <option value="false">no</option>
+            </param>
+            <when value="true">
+                <param name="fontsize" type="integer" value="" optional="True" label="Fontsize" />
+                <param name="fontstyle" type="select" label="Fontstyle">
+                    <option value="normal" selected="True">normal</option>
+                    <option value="italic">italic</option>
+                    <option value="oblique">oblique</option>
+                </param>
+            </when>
+            <when value="false"/>
+        </conditional>
+    </xml>
     <xml name="lines_macro">
         <param name="alpha" type="float" value="1" min="0" max="1" label="level of transparency (alpha)" help="1 is opaque and 0 is totally transparent"/>
         <param name="line_width" type="float" value="0.5" label="width of line(s)" optional="True"/>
--- a/pyGenomeTracks.xml	Tue Mar 12 10:28:03 2024 +0000
+++ b/pyGenomeTracks.xml	Wed Oct 01 19:35:07 2025 +0000
@@ -219,15 +219,17 @@
 
   ## Gene/gtf track
   #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):
+    #for $counter_bed, $data_bed in enumerate($track.track_file_style_conditional.bed_gtf.track_input_bed):
 [genes_${counter}_${counter_bed}]
-      #set ext = $data_bed.extension
 file = $data_bed
-      #if $ext == 'gtf':
-prefered_name = $track.track_file_style_conditional.bed_style.bed_advanced.gtf.prefered_name
-        #if $track.track_file_style_conditional.bed_style.bed_advanced.gtf.merge_transcripts.merge_transcripts_select == 'true':
+      #if $track.track_file_style_conditional.bed_gtf.input_bed_or_gtf == "bed":
+file_type = bed
+      #else:
+file_type = gtf
+prefered_name = $track.track_file_style_conditional.bed_gtf.prefered_name
+        #if $track.track_file_style_conditional.bed_gtf.merge_transcripts.merge_transcripts_select == 'true':
 merge_transcripts = true
-merge_overlapping_exons = $track.track_file_style_conditional.bed_style.bed_advanced.gtf.merge_transcripts.merge_overlapping_exons
+merge_overlapping_exons = $track.track_file_style_conditional.bed_gtf.merge_transcripts.merge_overlapping_exons
         #end if
       #end if
       #if $track.track_file_style_conditional.title:
@@ -248,66 +250,109 @@
           #end if
         #end if
       #end if
-      #if $track.track_file_style_conditional.border_color_bed.border_color_bed_select == 'manually':
-border_color = $track.track_file_style_conditional.border_color_bed.color
-      #else
-border_color = $track.track_file_style_conditional.border_color_bed.border_color_bed_select
-      #end if
-style = $track.track_file_style_conditional.bed_style.bed_style_select
-      #if $track.track_file_style_conditional.bed_style.bed_style_select == 'UCSC':
-arrow_interval = $track.track_file_style_conditional.bed_style.bed_advanced.arrow_interval
-        #if $track.track_file_style_conditional.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select == 'manually':
-color_backbone = $track.track_file_style_conditional.bed_style.bed_advanced.backbone_color_bed.color
-        #else
-color_backbone = $track.track_file_style_conditional.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select
+display = $track.track_file_style_conditional.display_cond.display
+      #if $track.track_file_style_conditional.display_cond.display in ['stacked', 'interleaved', 'collapsed']:
+style = $track.track_file_style_conditional.display_cond.bed_style.bed_style_select
+        #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select in ['UCSC', 'exonarrows', 'flybase']:
+          #if $track.track_file_style_conditional.display_cond.bed_style.border_color_bed.border_color_bed_select == 'manually':
+border_color = $track.track_file_style_conditional.display_cond.bed_style.border_color_bed.color
+          #else
+border_color = $track.track_file_style_conditional.display_cond.bed_style.border_color_bed.border_color_bed_select
+          #end if
         #end if
-      #else:
-height_utr = $track.track_file_style_conditional.bed_style.bed_advanced.height_utr
-        #if $track.track_file_style_conditional.bed_style.bed_advanced.color_utr.color_utr_select == 'manually':
-color_utr = $track.track_file_style_conditional.bed_style.bed_advanced.color_utr.color
-        #elif $track.track_file_style_conditional.bed_style.bed_advanced.color_utr.color_utr_select == 'bed_rgb':
-color_utr = bed_rgb
+        #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select in ['UCSC', 'exonarrows']:
+arrow_interval = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.arrow_interval
+          #if $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.color_arrow.color_arrow_select == "manually":
+color_arrow = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.color_arrow.color
+          #else
+color_arrow = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.color_arrow.color_arrow_select
+          #end if
+        #end if
+        #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select == 'UCSC':
+          #if $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select == 'manually':
+color_backbone = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.backbone_color_bed.color
+          #else
+color_backbone = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select
+          #end if
         #else:
-        ## This is 'like'
-          #if $track.track_file_style_conditional.color_bed.color_bed_select == "bed_rgb":
+          #if $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.color_utr.color_utr_select == 'manually':
+color_utr = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.color_utr.color
+          #elif $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.color_utr.color_utr_select == 'bed_rgb':
 color_utr = bed_rgb
           #else:
+          ## This is 'like'
+            #if $track.track_file_style_conditional.color_bed.color_bed_select == "bed_rgb":
+color_utr = bed_rgb
+            #else:
 color_utr = $track.track_file_style_conditional.color_bed.color
+            #end if
+          #end if
+          #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select in ['flybase', 'tssarrow']:        
+height_utr = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.height_utr
+          #end if
+          #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select == 'exonarrows':        
+height_intron = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.height_intron
+          #end if
+          #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select == 'tssarrow' and $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.arrow_length != '':
+arrow_length = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.arrow_length
+          #end if
+          #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select == 'flybase':
+arrowhead_included = $track.track_file_style_conditional.display_cond.bed_style.arrowhead_included
+arrowhead_fraction = $track.track_file_style_conditional.display_cond.bed_style.arrowhead_fraction
+            #if $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select == 'manually':
+color_backbone = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.backbone_color_bed.color
+            #else
+color_backbone = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select
+            #end if
           #end if
         #end if
-        #if $track.track_file_style_conditional.bed_style.bed_style_select == 'tssarrow' and $track.track_file_style_conditional.bed_style.bed_advanced.arrow_length != '':
-arrow_length = $track.track_file_style_conditional.bed_style.bed_advanced.arrow_length
+        #if $track.track_file_style_conditional.display_cond.bed_style.bed_style_select in ['UCSC', 'exonarrows', 'tssarrow']:
+arrowhead_fraction = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.arrowhead_fraction
+        #end if
+        #if $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.gene_rows:
+gene_rows = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.gene_rows
         #end if
-        #if $track.track_file_style_conditional.bed_style.bed_style_select == 'flybase':
-arrowhead_included = $track.track_file_style_conditional.bed_style.arrowhead_included
-arrowhead_fraction = $track.track_file_style_conditional.bed_style.arrowhead_fraction
-          #if $track.track_file_style_conditional.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select == 'manually':
-color_backbone = $track.track_file_style_conditional.bed_style.bed_advanced.backbone_color_bed.color
-          #else
-color_backbone = $track.track_file_style_conditional.bed_style.bed_advanced.backbone_color_bed.backbone_color_bed_select
+global_max_row = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.global_max_row
+max_labels = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.max_labels
+line_width = $track.track_file_style_conditional.display_cond.bed_style.bed_advanced.line_width
+labels = $track.track_file_style_conditional.display_cond.labels.plot_labels
+        #if $track.track_file_style_conditional.display_cond.labels.plot_labels == 'true':
+all_labels_inside = $track.track_file_style_conditional.display_cond.labels.all_labels_inside
+labels_in_margin = $track.track_file_style_conditional.display_cond.labels.labels_in_margin
+fontstyle = $track.track_file_style_conditional.display_cond.labels.fontstyle
+          #if $track.track_file_style_conditional.display_cond.labels.fontsize:
+fontsize = $track.track_file_style_conditional.display_cond.labels.fontsize
           #end if
         #end if
       #end if
-display = $track.track_file_style_conditional.display
+      #if $track.track_file_style_conditional.display_cond.display in ['triangle', 'squares']:
+        #if $track.track_file_style_conditional.display_cond.border_color_bed.border_color_bed_select == 'manually':
+border_color = $track.track_file_style_conditional.display_cond.border_color_bed.color
+        #else
+border_color = $track.track_file_style_conditional.display_cond.border_color_bed.border_color_bed_select
+        #end if
+      #end if
+      #if $track.track_file_style_conditional.display_cond.display in ['inversions', 'deletions', 'triangles', 'squares']:
+line_width = $track.track_file_style_conditional.display_cond.line_width
+      #end if
+      #if $track.track_file_style_conditional.display_cond.display in ['inversions', 'deletions']:
+labels = $track.track_file_style_conditional.display_cond.labels.plot_labels
+        #if $track.track_file_style_conditional.display_cond.labels.plot_labels == 'true':
+fontstyle = $track.track_file_style_conditional.display_cond.labels.fontstyle
+          #if $track.track_file_style_conditional.display_cond.labels.fontsize:
+fontsize = $track.track_file_style_conditional.display_cond.labels.fontsize
+          #end if
+        #end if
+      #end if
+      #if $track.track_file_style_conditional.display_cond.display == 'deletions':
+backbone_color = $track.track_file_style_conditional.display_cond.backbone_color
+      #end if
+      #if $track.track_file_style_conditional.display_cond.display == 'inversions':
+arrowhead_fraction = $track.track_file_style_conditional.display_cond.arrowhead_fraction
+      #end if
       #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.plot_labels
-      #if $track.track_file_style_conditional.labels.plot_labels == 'true':
-all_labels_inside = $track.track_file_style_conditional.labels.all_labels_inside
-labels_in_margin = $track.track_file_style_conditional.labels.labels_in_margin
-fontstyle = $track.track_file_style_conditional.labels.fontstyle
-        #if $track.track_file_style_conditional.labels.fontsize:
-fontsize = $track.track_file_style_conditional.labels.fontsize
-        #end if
-      #end if
-file_type = $ext
-      #if $track.track_file_style_conditional.bed_style.bed_advanced.gene_rows:
-gene_rows = $track.track_file_style_conditional.bed_style.bed_advanced.gene_rows
-      #end if
-global_max_row = $track.track_file_style_conditional.bed_style.bed_advanced.global_max_row
-max_labels = $track.track_file_style_conditional.bed_style.bed_advanced.max_labels
-line_width = $track.track_file_style_conditional.bed_style.bed_advanced.line_width
       #if $track.track_file_style_conditional.invert_orientation:
 orientation = inverted
       #end if
@@ -770,6 +815,7 @@
 species_order_only = $track.track_file_style_conditional.species_order_only
     #end if
 display_ref_seq = $track.track_file_style_conditional.display_ref_seq
+rasterize = $track.track_file_style_conditional.rasterize
 file_type = maf
     ## If spacer is asked a new section is created:
     #if $track.track_file_style_conditional.spacer_height != "":
@@ -921,8 +967,32 @@
                 </when>
                 <when value="gene_track_option">
                     <expand macro="plot_title" />
-
-                    <expand macro="track_input_bed_gtf_macro" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" type="select" label="Use bed or gtf input:">
+                            <option value="bed" selected="True">bed</option>
+                            <option value="gtf">gtf</option>
+                        </param>
+                        <when value="bed">
+                            <expand macro="track_input_bed_macro" />
+                        </when>
+                        <when value="gtf">
+                            <!-- I call it track_input_bed to make it the same name as the bed input -->
+                            <param name="track_input_bed" type="data" format="gtf" label="Track file(s) gtf format" multiple="True"/>
+                            <param name="prefered_name" type="text" value="transcript_name" label="attribute to use as label"
+                                help="Usually transcript_name or gene_name"/>
+                            <conditional name="merge_transcripts">
+                                <param name="merge_transcripts_select" type="select" label="Merge all transcripts of each gene in a single entry">
+                                    <option value="false" selected="True">No</option>
+                                    <option value="true">Yes</option>
+                                </param>
+                                <when value="true">
+                                    <param name="merge_overlapping_exons" type="boolean" truevalue="true" falsevalue="false" checked="true"
+                                        label="Merge overlapping exons" help="Usually it makes prettier plots" />
+                                </when>
+                                <when value="false" />
+                            </conditional>
+                        </when>
+                    </conditional>
                     <conditional name="color_bed">
                         <param name="color_bed_select" type="select" label="Define color:">
                             <option value="manually" selected="True">manually</option>
@@ -942,74 +1012,49 @@
                             <expand macro="minmax_macro" />
                         </when>
                     </conditional>
-                    <expand macro="border_color_bed_macro" />
                     <param name="height_bed" type="float" value="1.5" optional="True" label="height"/>
-                    <conditional name="labels">
-                        <param name="plot_labels" type="select" label="Plot labels">
-                            <option value="true" selected="True">yes</option>
-                            <option value="false">no</option>
+                    <conditional name="display_cond">
+                        <param name="display" type="select" label="display to use">
+                            <option value="stacked" selected="True">stacked (no overlap even with the label)</option>
+                            <option value="interleaved">interleaved (everything on 2 lines)</option>
+                            <option value="collapsed">collapsed (everything on 1 line)</option>
+                            <option value="triangles">triangles (plot triangles between start and end)</option>
+                            <option value="squares">squares (plot squares on the diagonal)</option>
+                            <option value="deletions">deletions (plot a horizontal line with V for each region of your bed)</option>
+                            <option value="inversions">inversions (plot arrows around each region of your bed)</option>
                         </param>
-                        <when value="true">
-                            <param name="all_labels_inside" type="boolean" truevalue="true" falsevalue="false" checked="false"
-                                label="Put all labels inside the plotted region"
-                                help="Put labels on the left of the region if the region ends after the plotted region."/>
-                            <param name="labels_in_margin" type="boolean" truevalue="true" falsevalue="false" checked="false"
-                                label="Allow to put labels in the right margin"
-                                help="Put labels in the margin if the region ends after the plotted region."/>
-                            <param name="fontsize" type="integer" value="" optional="True" label="Fontsize" />
-                            <param name="fontstyle" type="select" label="Fontstyle">
-                                <option value="normal" selected="True">normal</option>
-                                <option value="italic">italic</option>
-                                <option value="oblique">oblique</option>
-                            </param>
+                        <when value="stacked">
+                            <expand macro="bed_style_macro" />
+                        </when>
+                        <when value="interleaved">
+                            <expand macro="bed_style_macro" />
                         </when>
-                        <when value="false"/>
-                    </conditional>
-                    <param name="display" type="select" label="display to use">
-                        <option value="stacked" selected="True">stacked (no overlap even with the label)</option>
-                        <option value="interleaved">interleaved (everything on 2 lines)</option>
-                        <option value="collapsed">collapsed (everything on 1 line)</option>
-                        <option value="triangles">triangles (plot triangles between start and end)</option>
-                        <option value="squares">squares (plot squares on the diagonal)</option>
-                    </param>
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" type="select" label="Bed style">
-                            <option value="flybase" selected="True">flybase (blocks with arrow at extremities)</option>
-                            <option value="UCSC">UCSC (blocks with arrows in introns)</option>
-                            <option value="tssarrow">tssarrow (blocks with arrow above at beginning)</option>
-                        </param>
-                        <when value="flybase">
-                            <param name="arrowhead_included" type="boolean" truevalue="true" falsevalue="false" checked="false"
-                                label="Include the arrowhead in the bed interval:"
-                                help="When set to False, the arrow indicating the orientation of the interval is plotted outside of the interval."/>
+                        <when value="collapsed">
+                            <expand macro="bed_style_macro" />
+                        </when>
+                        <when value="triangles">
+                            <expand macro="border_color_bed_macro" />
+                            <param name="line_width" type="float" value="0.5" label="width of lines" />
+                        </when>
+                        <when value="squares">
+                            <expand macro="border_color_bed_macro" />
+                            <param name="line_width" type="float" value="0.5" label="width of lines" />
+                        </when>
+                        <when value="deletions">
+                            <param name="line_width" type="float" value="0.5" label="width of lines" />
+                            <param name="backbone_color" type="color" value="#000000" label="Color of the horizontal line"/>
+                            <expand macro="delinv_labels"/>
+                        </when>
+                        <when value="inversions">
                             <param name="arrowhead_fraction" type="float" value="0.004" min="0" max="1"
-                                label="Size of arrowhead relative to the plotted region"
-                                help="This size is also used to put space between the bed regions and their labels."/>
-                            <section name="bed_advanced" title="Configure other bed parameters" expanded="False">
-                                <expand macro="utr_macro" />
-                                <expand macro="bed_advanced_macro" />
-                                <expand macro="backbone_color_bed_macro" />
-                            </section>
-                        </when>
-                        <when value="UCSC">
-                            <section name="bed_advanced" title="Configure other bed parameters" expanded="False">
-                                <param name="arrow_interval" type="integer" value="2" min="0" label="interval between 2 arrows on introns in UCSC style"/>
-                                <expand macro="bed_advanced_macro" />
-                                <expand macro="backbone_color_bed_macro" />
-                            </section>
-                        </when>
-                        <when value="tssarrow">
-                            <section name="bed_advanced" title="Configure other bed parameters" expanded="False">
-                                <param name="arrow_length" type="integer" optional="true" label="arrow length" help="the length of the arrow in bp (default is 4% of the plotted region)"/>
-                                <expand macro="utr_macro" />
-                                <expand macro="bed_advanced_macro" />
-                            </section>
+                                label="Parameter to control the size of the arrows"/>
+                            <param name="line_width" type="float" value="0.5" label="width of lines" />
+                            <expand macro="delinv_labels"/>
                         </when>
                     </conditional>
                     <expand macro="overlay_macro" />
                     <expand macro="inverted_macro" />
                     <expand macro="spacer_macro" />
-
                 </when>
                 <when value="link_track_option">
                     <expand macro="plot_title" />
@@ -1314,6 +1359,8 @@
                         label="Display only the species specified above"/>
                     <param name="display_ref_seq" type="boolean" truevalue="true" falsevalue="false" checked="false"
                         label="Display the sequence of the reference"/>
+                    <param name="rasterize" type="boolean" truevalue="true" falsevalue="false" checked="false"
+                        label="Rasterize the line and blocks of the maf track"/>
                     <expand macro="inverted_macro" />
                     <expand macro="overlay_macro" />
                     <expand macro="spacer_macro" />
@@ -1461,11 +1508,16 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="genes" />
                     <param name="height_bed" value="5" />
-                    <conditional name="labels">
-                        <param name="fontsize" value="10" />
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="fontsize" value="10" />
+                        </conditional>
                     </conditional>
                 </conditional>
             </repeat>
@@ -1478,16 +1530,21 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="max num rows 3" />
                     <param name="height_bed" value="3" />
-                    <conditional name="labels">
-                        <param name="fontsize" value="8" />
-                    </conditional>
-                    <conditional name="bed_style">
-                        <section name="bed_advanced">
-                            <param name="gene_rows" value="3" />
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="fontsize" value="8" />
+                        </conditional>
+                        <conditional name="bed_style">
+                            <section name="bed_advanced">
+                                <param name="gene_rows" value="3" />
+                            </section>
+                        </conditional>
                     </conditional>
                 </conditional>
             </repeat>
@@ -1500,16 +1557,21 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed6.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="bed6 global max row" />
                     <param name="height_bed" value="20" />
-                    <conditional name="labels">
-                        <param name="fontsize" value="10" />
-                    </conditional>
-                    <conditional name="bed_style">
-                        <section name="bed_advanced">
-                            <param name="global_max_row" value="true" />
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="fontsize" value="10" />
+                        </conditional>
+                        <conditional name="bed_style">
+                            <section name="bed_advanced">
+                                <param name="global_max_row" value="true" />
+                            </section>
+                        </conditional>
                     </conditional>
                 </conditional>
             </repeat>
@@ -1520,7 +1582,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="master_TADs_plot.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="master_TADs_plot.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 2-->
         <test>
@@ -1596,7 +1658,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="bigwig_multiple.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="bigwig_multiple.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 3-->
         <test>
@@ -1741,30 +1803,40 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="genes in ucsc" />
                     <param name="height_bed" value="5" />
-                    <conditional name="labels">
-                        <param name="fontsize" value="10" />
-                    </conditional>
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="UCSC"/>
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="fontsize" value="10" />
+                        </conditional>
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                        </conditional>
                     </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="dm3_genes.bed6.gz" ftype="bed" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed6.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="bed6 global max row color from score" />
                     <param name="height_bed" value="20" />
-                    <conditional name="labels">
-                        <param name="fontsize" value="10" />
-                    </conditional>
-                    <conditional name="bed_style">
-                        <section name="bed_advanced">
-                            <param name="global_max_row" value="true" />
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="fontsize" value="10" />
+                        </conditional>
+                        <conditional name="bed_style">
+                            <section name="bed_advanced">
+                                <param name="global_max_row" value="true" />
+                            </section>
+                        </conditional>
                     </conditional>
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="colormap" />
@@ -1777,60 +1849,81 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="domains.bed" ftype="bed" />
+                    </conditional>
                     <param name="title" value="domains.bed using the 9th field for colors interleaved border=red" />
                     <param name="height_bed" value="2" />
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="bed_rgb" />
                     </conditional>
-                    <conditional name="border_color_bed">
-                        <param name="border_color_bed_select" value="manually" />
-                        <param name="color" value="red" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <conditional name="border_color_bed">
+                                <param name="border_color_bed_select" value="manually" />
+                                <param name="color" value="red" />
+                            </conditional>
+                        </conditional>
+                        <conditional name="labels">
+                            <param name="plot_labels" value="false" />
+                        </conditional>
+                        <param name="display" value="interleaved" />
                     </conditional>
-                    <conditional name="labels">
-                        <param name="plot_labels" value="false" />
-                    </conditional>
-                    <param name="display" value="interleaved" />
                 </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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="domains.bed" ftype="bed" />
+                    </conditional>
                     <param name="title" value="domains.bed using the 9th field for colors interleaved border=bed_rgb" />
                     <param name="height_bed" value="2" />
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="bed_rgb" />
                     </conditional>
-                    <conditional name="border_color_bed">
-                        <param name="border_color_bed_select" value="bed_rgb" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <conditional name="border_color_bed">
+                                <param name="border_color_bed_select" value="bed_rgb" />
+                            </conditional>
+                        </conditional>
+                        <conditional name="labels">
+                            <param name="plot_labels" value="false" />
+                        </conditional>
+                        <param name="display" value="interleaved" />
                     </conditional>
-                    <conditional name="labels">
-                        <param name="plot_labels" value="false" />
-                    </conditional>
-                    <param name="display" value="interleaved" />
                 </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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="domains.bed" ftype="bed" />
+                    </conditional>
                     <param name="title" value="domains.bed using the 9th field for colors interleaved border=none" />
                     <param name="height_bed" value="2" />
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="bed_rgb" />
                     </conditional>
-                    <conditional name="border_color_bed">
-                        <param name="border_color_bed_select" value="none" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <conditional name="border_color_bed">
+                                <param name="border_color_bed_select" value="none" />
+                            </conditional>
+                        </conditional>
+                        <conditional name="labels">
+                            <param name="plot_labels" value="false" />
+                        </conditional>
+                        <param name="display" value="interleaved" />
                     </conditional>
-                    <conditional name="labels">
-                        <param name="plot_labels" value="false" />
-                    </conditional>
-                    <param name="display" value="interleaved" />
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="master_TADs_BW_plot.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="master_TADs_BW_plot.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 4-->
         <test>
@@ -1839,7 +1932,7 @@
                 <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="title" value="(bigwig color=blue 2000 bins) overlayed with (bigwig color=red alpha = 0.5 max over 300 bins)" />
                     <param name="height_bigwig" value="7" />
                     <param name="color" value="#00b0f0" />
                     <section name="reading_bw_conditional">
@@ -1854,8 +1947,8 @@
                     <param name="title" value="" />
                     <param name="color" value="#ff0000" />
                     <param name="alpha" value="0.5" />
-                    <param name="summary_method" value="max" />
                     <section name="reading_bw_conditional">
+                        <param name="summary_method" value="max" />
                         <param name="number_of_bins" value="300"/>
                     </section>
                     <param name="overlay_select" value="share-y"/>
@@ -1868,7 +1961,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_alpha.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_alpha.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 5-->
         <test>
@@ -1882,12 +1975,19 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="gtf"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                    </conditional>
                     <param name="title" value="test" />
                     <param name="height_bed" value="10" />
-                    <param name="color" value="#000000" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="UCSC"/>
+                    <conditional name="color_bed">
+                        <param name="color" value="#000000" />
+                    </conditional>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                        </conditional>
                     </conditional>
                     <param name="spacer_height" value="1"/>
                 </conditional>
@@ -1895,18 +1995,25 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78_asbed4.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="test" />
                     <param name="height_bed" value="10" />
-                    <param name="color" value="#000000" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="UCSC"/>
+                    <conditional name="color_bed">
+                        <param name="color" value="#000000" />
+                    </conditional>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                        </conditional>
                     </conditional>
                     <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="100" />
+            <output name="outFileName" file="test_gtf_bed4.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 6-->
         <test>
@@ -1979,7 +2086,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_narrowPeak.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_narrowPeak.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 7-->
         <test>
@@ -1993,7 +2100,10 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="gtf"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                    </conditional>
                     <param name="title" value="gtf default" />
                     <param name="height_bed" value="10" />
                 </conditional>
@@ -2001,55 +2111,64 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="gtf"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                        <param name="prefered_name" value="gene_name"/>
+                        <conditional name="merge_transcripts">
+                            <param name="merge_transcripts_select" value="true"/>
+                            <param name="merge_overlapping_exons" value="false"/>
+                        </conditional>
+                    </conditional>
                     <param name="title" value="gtf merge transcripts, use gene_name, red 0.75 UTR" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <section name="bed_advanced">
-                            <param name="height_utr" value="0.75"/>
-                            <conditional name="color_utr">
-                                <param name="color_utr_select" value="manually"/>
-                                <param name="color" value="#ff0000"/>
-                            </conditional>
-                            <section name ="gtf">
-                                <param name="prefered_name" value="gene_name"/>
-                                <conditional name="merge_transcripts">
-                                    <param name="merge_transcripts_select" value="true"/>
-                                    <param name="merge_overlapping_exons" value="false"/>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <section name="bed_advanced">
+                                <param name="height_utr" value="0.75"/>
+                                <conditional name="color_utr">
+                                    <param name="color_utr_select" value="manually"/>
+                                    <param name="color" value="#ff0000"/>
                                 </conditional>
                             </section>
-                        </section>
+                        </conditional>
                     </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="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="gtf"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                        <param name="prefered_name" value="gene_name"/>
+                        <conditional name="merge_transcripts">
+                            <param name="merge_transcripts_select" value="true"/>
+                            <param name="merge_overlapping_exons" value="true"/>
+                        </conditional>
+                    </conditional>
                     <param name="title" value="same but merge overlapping exons" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <section name="bed_advanced">
-                            <param name="height_utr" value="0.75"/>
-                            <conditional name="color_utr">
-                                <param name="color_utr_select" value="manually"/>
-                                <param name="color" value="#ff0000"/>
-                            </conditional>
-                            <section name ="gtf">
-                                <param name="prefered_name" value="gene_name"/>
-                                <conditional name="merge_transcripts">
-                                    <param name="merge_transcripts_select" value="true"/>
-                                    <param name="merge_overlapping_exons" value="true"/>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <section name="bed_advanced">
+                                <param name="height_utr" value="0.75"/>
+                                <conditional name="color_utr">
+                                    <param name="color_utr_select" value="manually"/>
+                                    <param name="color" value="#ff0000"/>
                                 </conditional>
                             </section>
-                        </section>
-                    </conditional>
+                        </conditional>
+                     </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="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="genes with scores" />
                     <param name="height_bed" value="10" />
                     <conditional name="color_bed">
@@ -2061,57 +2180,72 @@
             <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_withrgbandscore.bed.gz" ftype="bed" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="genes with utr as bed_rgb" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <section name="bed_advanced">
-                            <conditional name="color_utr">
-                                <param name="color_utr_select" value="bed_rgb"/>
-                            </conditional>
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <section name="bed_advanced">
+                                <conditional name="color_utr">
+                                    <param name="color_utr_select" value="bed_rgb"/>
+                                </conditional>
+                            </section>
+                        </conditional>
                     </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="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="genes with coding as bed_rgb - labels_in_margin" />
                     <param name="height_bed" value="10" />
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="bed_rgb" />
                     </conditional>
-                    <conditional name="labels">
-                        <param name="plot_labels" value="true" />
-                        <param name="labels_in_margin" value="true" />
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="plot_labels" value="true" />
+                            <param name="labels_in_margin" value="true" />
+                        </conditional>
                     </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="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="genes bed_rgb like - all_labels_inside" />
                     <param name="height_bed" value="10" />
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="bed_rgb" />
                     </conditional>
-                    <conditional name="bed_style">
-                        <section name="bed_advanced">
-                            <conditional name="color_utr">
-                                <param name="color_utr_select" value="like"/>
-                            </conditional>
-                        </section>
-                    </conditional>
-                    <conditional name="labels">
-                        <param name="plot_labels" value="true" />
-                        <param name="all_labels_inside" value="true" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <section name="bed_advanced">
+                                <conditional name="color_utr">
+                                    <param name="color_utr_select" value="like"/>
+                                </conditional>
+                            </section>
+                        </conditional>
+                        <conditional name="labels">
+                            <param name="plot_labels" value="true" />
+                            <param name="all_labels_inside" value="true" />
+                        </conditional>
                     </conditional>
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_gtf_flybase_param.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_gtf_flybase_param.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 8-->
         <test>
@@ -2125,35 +2259,72 @@
             <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="dm3_genes.bed" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="global max row max 15 labels" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="UCSC"/>
-                        <section name="bed_advanced">
-                            <param name="global_max_row" value="true" />
-                            <param name="max_labels" value="15" />
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                            <section name="bed_advanced">
+                                <param name="global_max_row" value="true" />
+                                <param name="max_labels" value="15" />
+                            </section>
+                        </conditional>
                     </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="dm3_genes.bed.gz" ftype="bed" />
-                    <param name="title" value="genes.bed.gz" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="arrow_interval 10 line_width 2 change color_arrow" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="UCSC"/>
-                        <section name="bed_advanced">
-                            <param name="arrow_interval" value="10"/>
-                            <param name="line_width" value="2"/>
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                            <section name="bed_advanced">
+                                <param name="arrow_interval" value="10"/>
+                                <param name="line_width" value="2"/>
+                                <conditional name="color_arrow">
+                                    <param name="color" value="#00ffff"/>
+                                </conditional>
+                            </section>
+                        </conditional>
+                    </conditional>
+                </conditional>
+            </repeat>
+            <repeat name="tracks">
+                <conditional name="track_file_style_conditional">
+                    <param name="track_file_style_selector" value="gene_track_option" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="same as above but arrowhead_fraction = 0.02" />
+                    <param name="height_bed" value="10" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                            <section name="bed_advanced">
+                                <param name="arrow_interval" value="10"/>
+                                <param name="line_width" value="2"/>
+                                <conditional name="color_arrow">
+                                    <param name="color" value="#00ffff"/>
+                                </conditional>
+                                <param name="arrowhead_fraction" value="0.02"/>
+                            </section>
+                        </conditional>
                     </conditional>
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_ucsc_param.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_ucsc_param.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 9-->
         <test>
@@ -2167,42 +2338,57 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="gtf"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                    </conditional>
                     <param name="title" value="defaut arrowhead fontstyle italic" />
                     <param name="height_bed" value="10" />
                     <param name="spacer_height" value="1"/>
-                    <conditional name="labels">
-                        <param name="fontstyle" value="italic"/>
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="fontstyle" value="italic"/>
+                        </conditional>
                     </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="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="gtf"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                    </conditional>
                     <param name="title" value="arrowhead_fraction 0.1 fontstyle oblique" />
                     <param name="height_bed" value="10" />
                     <param name="spacer_height" value="1"/>
-                    <conditional name="labels">
-                        <param name="fontstyle" value="oblique"/>
-                    </conditional>
-                    <conditional name="bed_style">
-                        <param name="arrowhead_fraction" value="0.1"/>
+                    <conditional name="display_cond">
+                        <conditional name="labels">
+                            <param name="fontstyle" value="oblique"/>
+                        </conditional>
+                        <conditional name="bed_style">
+                            <param name="arrowhead_fraction" value="0.1"/>
+                        </conditional>
                     </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="dm3_subset_BDGP5.78_asbed4.bed.gz" ftype="bed" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78_asbed4.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="genes without orientation" />
                     <param name="height_bed" value="10" />
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="manually" />
                         <param name="color" value="red" />
                     </conditional>
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="UCSC"/>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                        </conditional>
                     </conditional>
                     <param name="spacer_height" value="1"/>
                 </conditional>
@@ -2210,7 +2396,10 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="gtf"/>
+                        <param name="track_input_bed" value="dm3_subset_BDGP5.78.gtf.gz" ftype="gtf" />
+                    </conditional>
                     <param name="title" value="arrowhead included" />
                     <param name="height_bed" value="10" />
                     <conditional name="color_bed">
@@ -2218,8 +2407,10 @@
                         <param name="color" value="red" />
                     </conditional>
                     <param name="spacer_height" value="1"/>
-                    <conditional name="bed_style">
-                        <param name="arrowhead_included" value="true"/>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="arrowhead_included" value="true"/>
+                        </conditional>
                     </conditional>
                 </conditional>
             </repeat>
@@ -2243,7 +2434,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_arrowhead_zoom.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_arrowhead_zoom.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 10-->
         <test>
@@ -2257,13 +2448,19 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="domains.bed" ftype="bed" />
+                    </conditional>
                     <param name="height_bed" value="6" />
                     <conditional name="color_bed">
                         <param name="color_bed_select" value="manually" />
                         <param name="color" value="yellow" />
                     </conditional>
-                    <param name="display" value="triangles" />
+                    <conditional name="display_cond">
+                        <param name="display" value="triangles" />
+                        <param name="line_width" value="3"/>
+                    </conditional>
                     <param name="spacer_height" value="1"/>
                 </conditional>
             </repeat>
@@ -2293,7 +2490,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_middle_triangle.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_middle_triangle.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 11-->
         <test>
@@ -2352,7 +2549,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_TADs_bdgm.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_TADs_bdgm.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 12-->
         <test>
@@ -2404,7 +2601,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_link.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_link.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 13-->
         <test>
@@ -2463,7 +2660,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_link2.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_link2.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 14-->
         <test>
@@ -2503,7 +2700,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_scale_bar.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_scale_bar.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 15-->
         <test>
@@ -2517,69 +2714,124 @@
             <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
                     <param name="title" value="flybase backbone blue" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="flybase"/>
-                        <section name="bed_advanced">
-                            <conditional name="backbone_color_bed">
-                                <param name="backbone_color_bed_select" value="manually" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="flybase"/>
+                            <section name="bed_advanced">
+                                <conditional name="backbone_color_bed">
+                                    <param name="backbone_color_bed_select" value="manually" />
+                                    <param name="color" value="blue" />
+                                </conditional>
+                            </section>
+                        </conditional>
+                    </conditional>
+                </conditional>
+            </repeat>
+            <repeat name="tracks">
+                <conditional name="track_file_style_conditional">
+                    <param name="track_file_style_selector" value="gene_track_option" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="UCSC backbone blue" />
+                    <param name="height_bed" value="10" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="UCSC"/>
+                            <section name="bed_advanced">
+                                <param name="arrow_interval" value="10"/>
+                                <conditional name="backbone_color_bed">
+                                    <param name="backbone_color_bed_select" value="manually" />
                                 <param name="color" value="blue" />
-                            </conditional>
-                        </section>
+                                </conditional>
+                            </section>
+                        </conditional>
                     </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="dm3_genes.bed.gz" ftype="bed" />
-                    <param name="title" value="UCSC backbone blue" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="tssarrow" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="UCSC"/>
-                        <section name="bed_advanced">
-                            <param name="arrow_interval" value="10"/>
-                            <conditional name="backbone_color_bed">
-                                <param name="backbone_color_bed_select" value="manually" />
-                                <param name="color" value="blue" />
-                            </conditional>
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="tssarrow"/>
+                        </conditional>
+                    </conditional>
+                </conditional>
+            </repeat>
+            <repeat name="tracks">
+                <conditional name="track_file_style_conditional">
+                    <param name="track_file_style_selector" value="gene_track_option" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="tssarrow 20kb increase arrowhead" />
+                    <param name="height_bed" value="10" />
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="tssarrow"/>
+                            <section name="bed_advanced">
+                                <param name="arrow_length" value="20000"/>
+                                <param name="arrowhead_fraction" value="0.01"/>
+                            </section>
+                        </conditional>
                     </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="dm3_genes.bed.gz" ftype="bed" />
-                    <param name="title" value="tssarrow" />
-                    <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="tssarrow"/>
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="exonarrows" />
+                    <conditional name="color_bed">
+                        <param name="color_bed_select" value="manually" />
+                        <param name="color" value="red"/>
                     </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="dm3_genes.bed.gz" ftype="bed" />
-                    <param name="title" value="tssarrow 5kb" />
                     <param name="height_bed" value="10" />
-                    <conditional name="bed_style">
-                        <param name="bed_style_select" value="tssarrow"/>
-                        <section name="bed_advanced">
-                            <param name="arrow_length" value="5000"/>
-                        </section>
+                    <conditional name="display_cond">
+                        <conditional name="bed_style">
+                            <param name="bed_style_select" value="exonarrows"/>
+                            <conditional name="border_color_bed">
+                                <param name="border_color_bed_select" value="manually"/>
+                                <param name="color" value="red"/>
+                            </conditional>
+                            <section name="bed_advanced">
+                                <param name="line_width" value="2" />
+                                <conditional name="color_utr">
+                                    <param name="color_utr_select" value="manually"/>
+                                    <param name="color" value="blue"/>
+                                </conditional>
+                                <conditional name="color_arrow">
+                                    <param name="color" value="white"/>
+                                </conditional>
+                            </section>
+                        </conditional>
                     </conditional>
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_tssarrow.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_tssarrow.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 16-->
         <test>
-            <param name="region" value="X:2700000-3100000"/>
+            <param name="region" value="chrX:2700000-3100000"/>
             <section name="global_args">
                 <param name="decreasingXAxis" value="true"/>
             </section>
@@ -2587,7 +2839,7 @@
                 <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="title" value="(bigwig color=blue 2000 bins) overlayed with (bigwig color=red alpha = 0.5 max over 300 bins)" />
                     <param name="height_bigwig" value="7" />
                     <param name="color" value="#00b0f0" />
                     <section name="reading_bw_conditional">
@@ -2602,8 +2854,8 @@
                     <param name="title" value="" />
                     <param name="color" value="#ff0000" />
                     <param name="alpha" value="0.5" />
-                    <param name="summary_method" value="max" />
                     <section name="reading_bw_conditional">
+                        <param name="summary_method" value="max" />
                         <param name="number_of_bins" value="300"/>
                     </section>
                     <param name="overlay_select" value="share-y"/>
@@ -2616,7 +2868,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_alpha_dec.png" ftype="png" compare="sim_size" delta="1000" />
+            <output name="outFileName" file="test_alpha_dec.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 17-->
         <test>
@@ -2739,7 +2991,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_log.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_log.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 18-->
         <test>
@@ -2817,7 +3069,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_operation.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_operation.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 19-->
         <test>
@@ -2948,7 +3200,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_log_grid.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="test_log_grid.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 20-->
         <test>
@@ -2969,7 +3221,7 @@
                 <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="depth = 300000; transform = log1p; min_value = 5 (next track: overlay_previous = share-y links_type = loops)" />
+                    <param name="title" value="depth = 300000 transform = log1p min_value = 5 (next track: overlay_previous = share-y links_type = loops)" />
                     <param name="depth" value="300000" />
                     <param name="transform" value="log1p" />
                     <param name="min_value" value="5" />
@@ -3013,7 +3265,7 @@
                 <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="depth = 300000; transform = log1p; min_value = 5 (next track: overlay_previous = share-y links_type = loops)" />
+                    <param name="title" value="depth = 300000 transform = log1p min_value = 5 (next track: overlay_previous = share-y links_type = loops)" />
                     <param name="depth" value="300000" />
                     <param name="transform" value="log1p" />
                     <param name="min_value" value="5" />
@@ -3058,7 +3310,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_arcs_use_middle.png" ftype="png" compare="sim_size" delta="1200" />
+            <output name="outFileName" file="test_arcs_use_middle.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 21-->
         <test>
@@ -3136,7 +3388,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="master_scale_bar_startend.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="master_scale_bar_startend.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 22-->
         <test>
@@ -3173,7 +3425,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="master_fasta.png" ftype="png" compare="sim_size" delta="100" />
+            <output name="outFileName" file="master_fasta.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 23-->
         <test>
@@ -3267,7 +3519,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_matrix_square.png" ftype="png" compare="sim_size" delta="1200" />
+            <output name="outFileName" file="test_matrix_square.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 24-->
         <test>
@@ -3314,7 +3566,6 @@
                     <param name="species_order" value="hg19"/>
                     <param name="species_labels" value="Human"/>
                     <param name="species_order_only" value="true"/>
-                    <param name="spacer_height" value="1"/>
                 </conditional>
             </repeat>
             <repeat name="tracks">
@@ -3324,7 +3575,7 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_maf.png" ftype="png" compare="sim_size" delta="1200" />
+            <output name="outFileName" file="test_maf.png" ftype="png" compare="image_diff" />
         </test>
         <!--test 25-->
         <test>
@@ -3353,7 +3604,117 @@
                 </conditional>
             </repeat>
             <param name="image_file_format" value="png" />
-            <output name="outFileName" file="test_vhighlight.png" ftype="png" compare="sim_size" delta="1200" />
+            <output name="outFileName" file="test_vhighlight.png" ftype="png" compare="image_diff" />
+        </test>
+        <!--test 26-->
+        <test>
+            <param name="region" value="chrX:3060000-3080000"/>
+            <repeat name="tracks">
+                <conditional name="track_file_style_conditional">
+                    <param name="track_file_style_selector" value="gene_track_option" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="default inversions overlayed with empty deletion" />
+                    <param name="height_bed" value="2" />
+                    <conditional name="display_cond">
+                        <param name="display" value = "inversions"/>
+                    </conditional>
+                </conditional>
+            </repeat>
+            <repeat name="tracks">
+                <conditional name="track_file_style_conditional">
+                    <param name="track_file_style_selector" value="gene_track_option" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="empty.bed" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="" />
+                    <conditional name="display_cond">
+                        <param name="display" value = "deletions"/>
+                    </conditional>
+                    <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="inversions rgb no labels" />
+                    <param name="height_bed" value="2" />
+                    <conditional name="color_bed">
+                        <param name="color_bed_select" value="bed_rgb" />
+                    </conditional>
+                    <conditional name="display_cond">
+                        <param name="display" value = "inversions"/>
+                        <conditional name="labels">
+                            <param name="plot_labels" value = "false"/>
+                        </conditional>
+                    </conditional>
+                </conditional>
+            </repeat>
+            <repeat name="tracks">
+                <conditional name="track_file_style_conditional">
+                    <param name="track_file_style_selector" value="gene_track_option" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="deletions colormap no labels" />
+                    <param name="height_bed" value="2" />
+                    <conditional name="color_bed">
+                        <param name="color_bed_select" value="colormap" />
+                        <param name="color" value="viridis"/>
+                    </conditional>
+                    <conditional name="display_cond">
+                        <param name="display" value = "deletions"/>
+                        <conditional name="labels">
+                            <param name="plot_labels" value = "false"/>
+                        </conditional>
+                    </conditional>
+                    <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" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="default deletions" />
+                    <param name="height_bed" value="2" />
+                    <conditional name="display_cond">
+                        <param name="display" value = "deletions"/>
+                    </conditional>
+                </conditional>
+            </repeat>
+            <repeat name="tracks">
+                <conditional name="track_file_style_conditional">
+                    <param name="track_file_style_selector" value="gene_track_option" />
+                    <conditional name="bed_gtf">
+                        <param name="input_bed_or_gtf" value="bed"/>
+                        <param name="track_input_bed" value="dm3_genes_withrgbandscore.bed.gz" ftype="bed" />
+                    </conditional>
+                    <param name="title" value="squares border_color orange line_width 3" />
+                    <param name="height_bed" value="10" />
+                    <conditional name="display_cond">
+                        <param name="display" value="squares"/>
+                        <param name="line_width" value="3"/>
+                        <conditional name="border_color_bed">
+                            <param name="border_color_bed_select" value="manually"/>
+                            <param name="color" value="orange"/>
+                        </conditional>
+                    </conditional>
+                </conditional>
+            </repeat>
+            <param name="image_file_format" value="png" />
+            <output name="outFileName" file="test_bed_invdelsquares.png" ftype="png" compare="image_diff" />
         </test>
     </tests>
     <help><![CDATA[
--- a/test-data/test10.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test10.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -14,7 +14,7 @@
 file_type = bed
 global_max_row = false
 max_labels = 60
-line_width = 0.5
+line_width = 3
 arrowhead_included = false
 overlay_previous = no
 [spacer]
@@ -42,4 +42,4 @@
 use_middle = true
 file_type = bedgraph
 type = line:0.5
-overlay_previous = no
\ No newline at end of file
+overlay_previous = no
--- a/test-data/test11.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test11.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -33,4 +33,4 @@
 plot_horizontal_lines = false
 pos_score_in_bin = center
 individual_color = blue
-summary_color = red
\ No newline at end of file
+summary_color = red
--- a/test-data/test12.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test12.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -33,4 +33,4 @@
 use_middle = false
 orientation = inverted
 overlay_previous = no
-file_type = links
\ No newline at end of file
+file_type = links
--- a/test-data/test14.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test14.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -20,4 +20,4 @@
 fontsize = 8.0
 file_type = scalebar
 [spacer]
-height = 4.0
\ No newline at end of file
+height = 4.0
--- a/test-data/test15.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test15.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -62,13 +62,14 @@
 overlay_previous = no
 [genes_4_0]
 file = dm3_genes.bed.gz
-title = tssarrow 5kb
+title = tssarrow 20kb increase arrowhead
 color = #000000
 border_color = #000000
 style = tssarrow
 height_utr = 1.0
 color_utr = grey
-arrow_length = 5000
+arrow_length = 20000
+arrowhead_fraction = 0.01
 display = stacked
 height = 10.0
 labels = true
@@ -79,4 +80,14 @@
 global_max_row = false
 max_labels = 60
 line_width = 0.5
-overlay_previous = no
\ No newline at end of file
+overlay_previous = no
+[exonarrows]
+file = dm3_genes.bed.gz
+title = exonarrows
+style = exonarrows
+color = red
+color_utr = blue
+color_arrow = white
+line_width = 2
+border_color = red
+height = 10
--- a/test-data/test17.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test17.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -126,4 +126,4 @@
 log_pseudocount = 1.0
 overlay_previous = no
 [x-axis]
-where = bottom
\ No newline at end of file
+where = bottom
--- a/test-data/test19.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test19.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -126,4 +126,4 @@
 log_pseudocount = 1.0
 overlay_previous = no
 [x-axis]
-where = bottom
\ No newline at end of file
+where = bottom
--- a/test-data/test2.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test2.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -80,4 +80,4 @@
 line_style = solid
 orientation = inverted
 overlay_previous = no
-file_type = hlines
\ No newline at end of file
+file_type = hlines
--- a/test-data/test20.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test20.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -5,7 +5,7 @@
 height = 0.05
 [hic matrix]
 file = Li_et_al_2015.h5
-title = depth = 300000; transform = log1p; min_value = 5 (next track: overlay_previous = share-y links_type = loops)
+title = depth = 300000 transform = log1p min_value = 5 (next track: overlay_previous = share-y links_type = loops)
 depth = 300000
 min_value = 5
 transform = log1p
@@ -32,7 +32,7 @@
 
 [hic matrix]
 file = Li_et_al_2015.h5
-title = depth = 300000; transform = log1p; min_value = 5 (next track: overlay_previous = share-y links_type = loops)
+title = depth = 300000 transform = log1p min_value = 5 (next track: overlay_previous = share-y links_type = loops)
 depth = 300000
 min_value = 5
 transform = log1p
--- a/test-data/test25.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test25.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -15,6 +15,7 @@
 
 [islands as highlight]
 file = islands.bed
+border_color = yellow
 type = vhighlight
 
 [x-axis]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test26.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -0,0 +1,49 @@
+[inversions]
+file = test-data/dm3_genes_withrgbandscore.bed.gz
+display = inversions
+color = black
+title = default inversions overlayed with empty deletion
+height = 2
+
+[empty-del]
+file = test-data/empty.bed
+display = deletions
+overlay_previous = share-y
+
+[spacer]
+height = 1
+
+[inversions rgb]
+file = test-data/dm3_genes_withrgbandscore.bed.gz
+display = inversions
+title = inversions rgb no labels
+color = bed_rgb
+labels = false
+height = 2
+
+[del viridis]
+file = test-data/dm3_genes_withrgbandscore.bed.gz
+display = deletions
+title = deletions colormap no labels
+color = viridis
+labels = false
+height = 2
+
+[spacer]
+height = 1
+
+[del]
+file = test-data/dm3_genes_withrgbandscore.bed.gz
+title = default deletions
+display = deletions
+color = black
+height = 2
+
+[squares]
+file = test-data/dm3_genes_withrgbandscore.bed.gz
+title = squares border_color orange line_width 3
+display = squares
+color = black
+border_color = orange
+line_width = 3
+height = 10
--- a/test-data/test3.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test3.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -202,4 +202,4 @@
 max_labels = 60
 line_width = 0.5
 arrowhead_included = false
-overlay_previous = no
\ No newline at end of file
+overlay_previous = no
--- a/test-data/test4.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test4.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -1,6 +1,6 @@
 [bigwig_0]
 file = test-data/bigwig_chrx_2e6_5e6.bw
-title = (bigwig color=blue 2000 bins) overlayed with (bigwig mean color=red alpha = 0.5 max over 300 bins)
+title = (bigwig color=blue 2000 bins) overlayed with (bigwig color=red alpha = 0.5 max over 300 bins)
 color = #00b0f0
 alpha = 1.0
 height = 7.0
@@ -17,7 +17,7 @@
 color = #ff0000
 alpha = 0.5
 height = 1.5
-summary_method = mean
+summary_method = max
 nans_to_zeros = false
 number_of_bins = 300
 type = fill
@@ -26,4 +26,4 @@
 file_type = bigwig
 overlay_previous = share-y
 [x-axis]
-where = bottom
\ No newline at end of file
+where = bottom
--- a/test-data/test5.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test5.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -39,4 +39,4 @@
 line_width = 0.5
 overlay_previous = no
 [spacer]
-height = 1.0
\ No newline at end of file
+height = 1.0
--- a/test-data/test6.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test6.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -50,4 +50,4 @@
 file_type = narrow_peak
 overlay_previous = no
 [x-axis]
-where = bottom
\ No newline at end of file
+where = bottom
--- a/test-data/test7.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test7.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -160,4 +160,4 @@
 global_max_row = false
 max_labels = 60
 line_width = 0.5
-overlay_previous = no
\ No newline at end of file
+overlay_previous = no
--- a/test-data/test8.ini	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/test8.ini	Wed Oct 01 19:35:07 2025 +0000
@@ -2,7 +2,7 @@
 where = top
 [genes_1_0]
 file = test-data/dm3_genes.bed.gz
-title = dm3_genes.bed
+title = global max row max 15 labels
 color = #000000
 border_color = #000000
 style = UCSC
@@ -19,11 +19,12 @@
 overlay_previous = no
 [genes_2_0]
 file = test-data/dm3_genes.bed.gz
-title = genes.bed.gz
+title = arrow_interval 10 line_width 2 change color_arrow
 color = #000000
 border_color = #000000
 style = UCSC
 arrow_interval = 10
+color_arrow = #00ffff
 display = stacked
 height = 10.0
 labels = true
@@ -33,4 +34,23 @@
 global_max_row = false
 max_labels = 60
 line_width = 2.0
-overlay_previous = no
\ No newline at end of file
+overlay_previous = no
+[genes_2_0]
+file = test-data/dm3_genes.bed.gz
+title = same as above but arrowhead_fraction = 0.02
+color = #000000
+border_color = #000000
+style = UCSC
+arrow_interval = 10
+color_arrow = #00ffff
+arrowhead_fraction = 0.02
+display = stacked
+height = 10.0
+labels = true
+all_labels_inside = false
+labels_in_margin = false
+file_type = bed
+global_max_row = false
+max_labels = 60
+line_width = 2.0
+overlay_previous = no
Binary file test-data/test_alpha.png has changed
Binary file test-data/test_alpha_dec.png has changed
Binary file test-data/test_arcs_use_middle.png has changed
Binary file test-data/test_bed_invdelsquares.png has changed
Binary file test-data/test_gtf_bed4.png has changed
Binary file test-data/test_middle_triangle.png has changed
Binary file test-data/test_tssarrow.png has changed
Binary file test-data/test_ucsc_param.png has changed
Binary file test-data/test_vhighlight.png has changed
--- a/test-data/testpyGT.sh	Tue Mar 12 10:28:03 2024 +0000
+++ b/test-data/testpyGT.sh	Wed Oct 01 19:35:07 2025 +0000
@@ -24,5 +24,6 @@
 pgt --tracks test-data/test23.ini --region chrX:3000000-3300000 --fontSize 12 -o test-data/test_matrix_square.png
 pgt --tracks test-data/test24.ini --region 2:34704975-34705208 --fontSize 12 -o test-data/test_maf.png
 pgt --tracks test-data/test25.ini --region chr2:73,800,000-75,744,000 --fontSize 12 -o test-data/test_vhighlight.png
+pgt --tracks test-data/test26.ini --region chrX:3060000-3080000 --fontSize 12 -o test-data/test_bed_invdelsquares.png
 
 conda_env_deactivate