diff macros.xml @ 6:ed3dea19c464 draft default tip

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/hicexplorer commit 2a0943e78bdc8ebb13f181399206a9eea37ed78f"
author iuc
date Tue, 16 Mar 2021 14:56:24 +0000
parents 3afa7d456f61
children
line wrap: on
line diff
--- a/macros.xml	Fri Dec 11 21:40:15 2020 +0000
+++ b/macros.xml	Tue Mar 16 14:56:24 2021 +0000
@@ -1,6 +1,7 @@
 <macros>
     <token name="@THREADS@">\${GALAXY_SLOTS:-4}</token>
-    <token name="@WRAPPER_VERSION@">3.4.3</token>
+    <token name="@TOOL_VERSION@">3.6</token>
+    <token name="@VERSION_SUFFIX@">0</token>
     <token name="@USE_RANGE@">
         #if $use_range.select_use_range == "yes_use_range":
             --range $use_range.range_min:$use_range.range_max
@@ -9,7 +10,7 @@
 
     <xml name="requirements">
         <requirements>
-            <requirement type="package" version="@WRAPPER_VERSION@">hicexplorer</requirement>
+            <requirement type="package" version="@TOOL_VERSION@">hicexplorer</requirement>
             <yield />
         </requirements>
         <version_command>@BINARY@ --version</version_command>
@@ -28,7 +29,7 @@
 
     <xml name="chromosome_list">
         <repeat name="chromosome_list" min="0" title="Chromosomes to include" help="Chromosomes to include in the analysis. If not set, all chromosomes are included.">
-            <param argument="--chromosomes" type="text" value="" >
+            <param argument="--chromosomes" type="text" value="">
                 <validator type="empty_field" />
             </param>
         </repeat>
@@ -40,17 +41,45 @@
             <yield />
         </citations>
     </xml>
+    <xml name="dpi">
+        <param argument='--dpi' type='integer' optional='true' min="10" max="1000" label='DPI for image' help='Change the default resolution of the plot.' />
+    </xml>
+
+    <xml name="restrictionCutFile">
+        <param argument="--restrictionCutFile" type="data" format="bed" optional="false" label="BED file with all restriction cut places" help="Should contaion only  mappable restriction sites. If given, the bins are set to match the restriction fragments
+                (i.e. the region between one restriction site and the next)." />
+    </xml>
+
+    <xml name="restrictionSequence">
+        <param argument="--restrictionSequence" type="text" optional="false" label="Sequence of the restriction site" help="This is used to discard reads that end/start with such sequence and that are considered un-ligated fragments or
+            &quot;dangling-ends&quot;. If not given, such statistics will not be available.">
+            <validator type="expression" message="Only alphabetic characters (a-z) are allowed.">value.isalpha()</validator>
+        </param>
+    </xml>
+    <xml name="danglingSequence">
+        <param argument="--danglingSequence" type="text" optional="false" label="Dangling sequence" help="Sequence left by the restriction enzyme after cutting.
+                    Each restriction enzyme recognizes a different DNA sequence and,
+                    after cutting, they leave behind a specific ‘sticky’ end or dangling end sequence.
+                    For example, for HindIII the restriction site is AAGCTT and the dangling end is AGCT.
+                    For DpnII, the restriction site and dangling end sequence are the same: GATC.
+                    This information is easily found on the description of the restriction enzyme.
+                    The dangling sequence is used to classify and report reads whose 5’ end starts with such sequence as dangling-end reads.
+                    A significant portion of dangling-end reads in a sample are indicative of a problem with the re-ligation step of the protocol. ">
+            <validator type="expression" message="Only alphabetic characters (a-z) are allowed.">value.isalpha()</validator>
+        </param>
+    </xml>
 
     <xml name="zMax">
-        <param argument="--zMax" name="zMax" type="float" optional="true" label="zMax for 3D plot"/> <!-- this should only be enabled when both or 3d is selected for param whatToShow -->
+        <param argument="--zMax" name="zMax" type="float" optional="true" label="zMax for 3D plot" />
+        <!-- this should only be enabled when both or 3d is selected for param whatToShow -->
     </xml>
     <xml name="use_range">
-        <conditional name="use_range"> <!-- argparse specifies one argument of type min_range:max_range -->
-            <param name="select_use_range" type="select" label="Range restriction (in bp)" argument="--range" help="If given, only counts within the specified range are considered.">
+        <conditional name="use_range">            <!-- argparse specifies one argument of type min_range:max_range -->
+            <param name="select_use_range" argument="--range" type="select" label="Range restriction (in bp)" help="If given, only counts within the specified range are considered.">
                 <option value="no_use_range">No restriction</option>
                 <option value="yes_use_range">Only consider counts within a range</option>
             </param>
-            <when value="no_use_range"/>
+            <when value="no_use_range" />
             <when value="yes_use_range">
                 <expand macro='range' />
             </when>
@@ -58,8 +87,8 @@
     </xml>
 
     <xml name="range">
-        <param name='range_min' label="Minimum range to consider interactions" type="integer" value="" min="0" help="The minimum range should be farer from the diagonal than median TAD size in order to reduce background interactions."/>
-        <param name='range_max' label="Maximum range to consider interactions" type="integer" value="" min="0"/>
+        <param name='range_min' type="integer" value="" min="0" label="Minimum range to consider interactions" help="The minimum range should be farer from the diagonal than median TAD size in order to reduce background interactions." />
+        <param name='range_max' type="integer" value="" min="0" label="Maximum range to consider interactions" />
     </xml>
 
     <xml name="colormap">
@@ -209,12 +238,8 @@
 
     <xml name="multiple_input_matrices">
         <repeat name="input_files" title="Hi-C Matrix files" min="2">
-            <param name="matrix" type="data" format="h5,cool"
-                label="Hi-C Matrix file"
-                help=""/>
-            <param name="mlabel" type="text" size="30" optional="true" value=""
-                label="Label"
-                help="Label to use in the output. If not given the dataset name will be used instead."/>
+            <param name="matrix" type="data" format="h5,cool" label="Hi-C Matrix file" help="" />
+            <param name="mlabel" type="text" optional="true" value="" label="Label" help="Label to use in the output. If not given the dataset name will be used instead." />
         </repeat>
     </xml>
 
@@ -240,17 +265,14 @@
     <token name="@ESCAPE_IDENTIFIER_M@"><![CDATA[re.sub('[^\s\w\-\.]', '_', str($m.element_identifier))]]></token>
 
     <xml name="region">
-        <param name="region" type="text" label="Region of the genome to limit the operation"
-            help="The format is chr:start-end. Also valid is just to specify a chromosome, for example chr10:10-500" argument="--region"/>
+        <param argument="--region" type="text" label="Region of the genome to limit the operation" help="The format is chr:start-end. Also valid is just to specify a chromosome, for example chr10:10-500">
+            <validator type="expression" message="Only alphanumeric characters, the colon or a dash are allowed.">not value or value.replace(':', '').replace('-', '').isalnum()</validator>
+        </param>
     </xml>
 
-
-
     <xml name="kmeans_clustering">
         <conditional name="used_multiple_regions">
-            <param name="used_multiple_regions_options" type="select"
-                label="Did you compute the matrix with more than one groups of regions?"
-                help="Would you like to cluster the regions according to the similarity of the signal distribution? This is only possible if you used computeMatrix on only one group of regions.">
+            <param name="used_multiple_regions_options" type="select" label="Did you compute the matrix with more than one groups of regions?" help="Would you like to cluster the regions according to the similarity of the signal distribution? This is only possible if you used computeMatrix on only one group of regions.">
                 <option value="yes">Yes, I used multiple groups of regions</option>
                 <option value="no">No, I used only one group</option>
             </param>
@@ -261,8 +283,7 @@
                         <option value="kmeans">Kmeans clustering</option>
                     </param>
                     <when value="kmeans">
-                        <param name="k_kmeans" type="integer" value="0" label="Number of clusters to compute"
-                            help="When this option is set, then the matrix is split into clusters using the kmeans algorithm. Only works for data that is not grouped, otherwise only the first group will be clustered. If more specific clustering methods are required it is advisable to save the underlying matrix and run the clustering using other software. The plotting of the clustering may fail (Error: Segmentation fault) if a cluster has very few members compared to the total number or regions. (default: None)."/>
+                        <param name="k_kmeans" type="integer" value="0" label="Number of clusters to compute" help="When this option is set, then the matrix is split into clusters using the kmeans algorithm. Only works for data that is not grouped, otherwise only the first group will be clustered. If more specific clustering methods are required it is advisable to save the underlying matrix and run the clustering using other software. The plotting of the clustering may fail (Error: Segmentation fault) if a cluster has very few members compared to the total number or regions. (default: None)." />
                     </when>
                     <when value="none" />
                 </conditional>
@@ -282,80 +303,51 @@
     </token>
 
     <xml name="samFlag">
-        <param name="samFlag" type="integer" optional="true" value=""
-            label="Filter reads based on the SAM flag"
-            help= "For example to get only reads that are the first mate use a flag of 64. This is useful to count properly paired reads only once, otherwise the second mate will be also considered for the coverage. (--samFlag)"/>
+        <param name="samFlag" type="integer" optional="true" value="" label="Filter reads based on the SAM flag" help="For example to get only reads that are the first mate use a flag of 64. This is useful to count properly paired reads only once, otherwise the second mate will be also considered for the coverage. (--samFlag)" />
     </xml>
     <xml name="plotNumbers">
-        <param name="plotNumbers" type="boolean" truevalue="--plotNumbers" falsevalue=""
-            label="Plot the correlation value"
-            help="If set, then the correlation number is plotted on top of the heatmap. (--plotNumbers)"/>
+        <param argument="--plotNumbers" type="boolean" truevalue="--plotNumbers" falsevalue="" label="Plot the correlation value" help="If set, then the correlation number is plotted on top of the heatmap. (--plotNumbers)" />
     </xml>
     <xml name="doNotExtendPairedEnds">
-        <param name="doNotExtendPairedEnds" type="boolean" truevalue="--doNotExtendPairedEnds" falsevalue=""
-            label="Do not extend paired ends"
-            help="If set, reads are not extended to match the fragment length reported in the BAM file, instead they will be extended to match the fragment length. Default is to extend the reads if paired end information is available. (--doNotExtendPairedEnds)"/>
+        <param argument="--doNotExtendPairedEnds" type="boolean" truevalue="--doNotExtendPairedEnds" falsevalue="" label="Do not extend paired ends" help="If set, reads are not extended to match the fragment length reported in the BAM file, instead they will be extended to match the fragment length. Default is to extend the reads if paired end information is available. (--doNotExtendPairedEnds)" />
     </xml>
-
     <xml name="ignoreDuplicates">
-        <param name="ignoreDuplicates" type="boolean" truevalue="--ignoreDuplicates" falsevalue=""
-            label="Ignore duplicates"
-            help="If set, reads that have the same orientation and start position will be considered only once. If reads are paired, the mate position also has to coincide to ignore a read. (--ignoreDuplicates)" />
+        <param argument="--ignoreDuplicates" type="boolean" truevalue="--ignoreDuplicates" falsevalue="" label="Ignore duplicates" help="If set, reads that have the same orientation and start position will be considered only once. If reads are paired, the mate position also has to coincide to ignore a read. (--ignoreDuplicates)" />
     </xml>
-
     <xml name="minMappingQuality">
-        <param argument="--minMappingQuality" type="integer" optional="true" value="" min="1"
-            label="Minimum mapping quality"
-            help= "If set, only reads that have a mapping quality score higher than the given value are considered.
+        <param argument="--minMappingQuality" type="integer" optional="true" value="" min="1" label="Minimum mapping quality" help= "If set, only reads that have a mapping quality score higher than the given value are considered.
                 *Note* Bowtie's Mapping quality is related to uniqueness: the higher the score, the more unique is a read.
-                A mapping quality defined by Bowtie of 10 or less indicates that there is at least a 1 in 10 chance that the read truly originated elsewhere."/>
+                A mapping quality defined by Bowtie of 10 or less indicates that there is at least a 1 in 10 chance that the read truly originated elsewhere." />
     </xml>
 
     <xml name="skipZeros">
-        <param name="skipZeros" type="boolean" truevalue="--skipZeros" falsevalue=""
-            label ="Skip zeros"
-            help  ="If set, then zero counts that happen for *all* BAM files given are ignored. This might have the effect that fewer regions are considered than indicated in the option where the number of samples is defined. (--skipZeros)" />
+        <param argument="--skipZeros" type="boolean" truevalue="--skipZeros" falsevalue="" label="Skip zeros" help="If set, then zero counts that happen for *all* BAM files given are ignored. This might have the effect that fewer regions are considered than indicated in the option where the number of samples is defined. (--skipZeros)" />
     </xml>
 
     <xml name="fragmentLength">
-        <param name="fragmentLength" type="integer" value="300" min="1"
-            label="Fragment length used for the sequencing"
-            help ="If paired-end reads are used, the fragment length is computed from the BAM file. (--fragmentLength)"/>
+        <param argument="--fragmentLength" type="integer" value="300" min="1" label="Fragment length used for the sequencing" help="If paired-end reads are used, the fragment length is computed from the BAM file. (--fragmentLength)" />
     </xml>
 
     <xml name="scaleFactor">
-        <param name="scaleFactor1" type="float" value="1" label="Scale factor for treatment" help="(--scaleFactors)"/>
-        <param name="scaleFactor2" type="float" value="1" label="Scale factor for input" help="(--scaleFactors)"/>
+        <param name="scaleFactor1" type="float" value="1" label="Scale factor for treatment" help="(--scaleFactors)" />
+        <param name="scaleFactor2" type="float" value="1" label="Scale factor for input" help="(--scaleFactors)" />
     </xml>
-
     <xml name="xMax">
-        <param argument="--xMax" name="xMax" type="integer" optional="true" value=""
-            label="Max value for the x-axis in counts per bin" />
+        <param argument="--xMax" name="xMax" type="integer" optional="true" value="" label="Max value for the x-axis in counts per bin" />
     </xml>
-
     <xml name="filterThreshold">
-        <param argument="--filterThreshold" name="filterThreshold_low" type="float" value="-1.5"
-            label="Remove bins of low coverage" help="e.g. -1.5; Both Thresholds needs to be set to take effect."/>
-
-        <param argument="--filterThreshold" name="filterThreshold_large" type="float" value="5.0"
-            label="Remove bins of large coverage" help="e.g. 5; Both Thresholds needs to be set to take effect."/>
+        <param argument="--filterThreshold" name="filterThreshold_low" type="float" value="-1.5" label="Remove bins of low coverage" help="e.g. -1.5; Both Thresholds needs to be set to take effect." />
+        <param argument="--filterThreshold" name="filterThreshold_large" type="float" value="5.0" label="Remove bins of large coverage" help="e.g. 5; Both Thresholds needs to be set to take effect." />
     </xml>
-
-
     <xml name="pseudocount">
-        <param name="pseudocount" type="float" value="1" label="Pseudocount" help="Small number to avoid dividing by zero."/>
+        <param name="pseudocount" type="float" value="1" label="Pseudocount" help="Small number to avoid dividing by zero." />
     </xml>
     <xml name='matrix_h5_cooler_macro'>
-        <param name='matrix_h5_cooler' type="data" format="h5,cool"
-            label="Matrix to compute on"/>
+        <param name='matrix_h5_cooler' type="data" format="h5,cool" label="Matrix to compute on" />
     </xml>
     <xml name='matrix_h5_cooler_multiple_macro'>
-        <param name='matrix_h5_cooler_multiple' type="data" format="h5,cool"
-            label="Matricies to compute on" multiple="true"/>
+        <param name='matrix_h5_cooler_multiple' type="data" format="h5,cool" multiple="true" label="Matricies to compute on" />
     </xml>
-
-    
-
     <xml name='convertFormat_single_macro'>
         <conditional name="inputFormat_conditional">
             <param name="inputFormat_selector" type="select" label="Choose input file type">
@@ -367,27 +359,26 @@
             </param>
             <when value="optionCool">
                 <expand macro='matrix_h5_cooler_macro' />
-                <param name='correctionName' type='text' label='Correction factors column name'/>
-                <param name='correctionDivision' type="boolean" truevalue="yes" falsevalue="" label='Apply correction factors with a division instead multiplication'/>
-                <param name='chromosome' type='text' label='Load only one chromosome'/>
-                <param name='loadRawValues' type="boolean" truevalue="yes" falsevalue="" label='Load raw data'/>
-
+                <param name='correctionName' type='text' label='Correction factors column name' />
+                <param name='correctionDivision' type="boolean" truevalue="yes" falsevalue="" label='Apply correction factors with a division instead multiplication' />
+                <param name='chromosome' type='text' label='Load only one chromosome' />
+                <param name='loadRawValues' type="boolean" truevalue="yes" falsevalue="" label='Load raw data' />
             </when>
             <when value="optionH5">
                 <expand macro='matrix_h5_cooler_macro' />
             </when>
             <when value="optionHic">
-                <param name='matrixHic' type='data' format='hic' label='.hic matrix'/>
-                <param name='resolutions' type='text' label='List of resolutions'/>
-            </when> 
-
+                <param name='matrixHic' type='data' format='hic' label='.hic matrix' />
+                <param name='resolutions' type='text' label='List of resolutions' help="Resolutions can be specified seperated with a space, e.g. '10000 20000 50000'">
+                    <validator type="expression" message="Only numeric characters and the a space as seperator are allowed.">value.replace(' ', '').isnumeric()</validator>
+                </param>
+            </when>
             <when value="optionHomer">
-                <param name='matrixHomer' type='data' format='txt' label='Homer interaction matrix'/>
+                <param name='matrixHomer' type='data' format='txt' label='Homer interaction matrix' />
             </when>
-
             <when value="optionHicpro">
-                <param name='matrixHicpro' type='data' format='txt' label='.hic matrix'/>
-                <param name='bedHicpro' type='data' format='bed' label='HicPro bed file'/>
+                <param name='matrixHicpro' type='data' format='txt' label='.hic matrix' />
+                <param name='bedHicpro' type='data' format='bed' label='HicPro bed file' />
             </when>
         </conditional>
     </xml>
@@ -402,45 +393,39 @@
             </param>
             <when value="optionCool">
                 <expand macro='matrix_h5_cooler_multiple_macro' />
-                <param name='correctionName' type='text' label='Correction factors column name'/>
-                <param name='correctionDivision' type="boolean" truevalue="yes" falsevalue="" label='Apply correction factors with a division instead multiplication'/>
-                <param name='chromosome' type='text' label='Load only one chromosome'/>
-                <param name='loadRawValues' type="boolean" truevalue="yes" falsevalue="" label='Load raw data'/>
-
+                <param name='correctionName' type='text' label='Correction factors column name' />
+                <param name='correctionDivision' type="boolean" truevalue="yes" falsevalue="" label='Apply correction factors with a division instead multiplication' />
+                <param name='chromosome' type='text' label='Load only one chromosome' />
+                <param name='loadRawValues' type="boolean" truevalue="yes" falsevalue="" label='Load raw data' />
             </when>
             <when value="optionH5">
                 <expand macro='matrix_h5_cooler_multiple_macro' />
             </when>
-           
             <when value="optionHomer">
-                <param name='matrixHomer' type='data' format='txt' label='Homer interaction matrix' multiple="true"/>
+                <param name='matrixHomer' type='data' format='txt' multiple="true" label='Homer interaction matrix' />
             </when>
-
             <when value="optionHicpro">
-                <param name='matrixHicpro' type='data' format='txt' label='.hic matrix' multiple="true"/>
-                <param name='bedHicpro' type='data' format='bed' label='HicPro bed file' multiple="true"/>
+                <param name='matrixHicpro' type='data' format='txt' multiple="true" label='.hic matrix' />
+                <param name='bedHicpro' type='data' format='bed' multiple="true" label='HicPro bed file' />
             </when>
         </conditional>
     </xml>
     <xml name='convertFormat_single_output_macro'>
         <!-- <filter>outputSingleMultiple_conditional.inputFormat_conditional.inputFormat_selector == 'optionCool'</filter> -->
-
         <conditional name="outputFormat_conditional">
             <param name="outputFormat_selector" type="select" label="Choose output file type">
                 <option value="cool" selected="True">cool</option>
                 <option value="h5">h5</option>
                 <option value="homer">Homer</option>
                 <option value="ginteractions">ginteractions</option>
-
             </param>
             <when value="cool">
-                <param name='storeAppliedCorrection' type="boolean" truevalue="yes" falsevalue=""   label='Store applied correction factors in column count'/>
-                <param name='enforceInteger' type="boolean" truevalue="yes" falsevalue=""  label='Enforce integer for count column'/>
+                <param name='storeAppliedCorrection' type="boolean" truevalue="yes" falsevalue="" label='Store applied correction factors in column count' />
+                <param name='enforceInteger' type="boolean" truevalue="yes" falsevalue="" label='Enforce integer for count column' />
             </when>
-            <when value='h5'/>
-            <when value='homer'/>
-            <when value='ginteractions'/>
-
+            <when value='h5' />
+            <when value='homer' />
+            <when value='ginteractions' />
         </conditional>
     </xml>
     <token name="@REFERENCES@">
@@ -459,33 +444,26 @@
 
     </token>
 
-
     <xml name="multiple_input_bams">
         <repeat name="input_files" title="BAM files" min="2">
-            <param name="bamfile" type="data" format="bam"
-                label="Bam file"
-                help="The BAM file must be sorted."/>
-            <param name="label" type="text" size="30" optional="true" value=""
-                label="Label"
-                help="Label to use in the output. If not given the dataset name will be used instead."/>
+            <param name="bamfile" type="data" format="bam" label="BAM file" />
+            <param name="label" type="text" optional="true" value="" label="Label" help="Label to use in the output. If not given the dataset name will be used instead." />
         </repeat>
     </xml>
 
     <xml name="multiple_input_bigwigs">
         <repeat name="input_files" title="BigWig files" min="2">
-            <param name="bigwigfile" type="data" format="bigwig"
-                label="Bigwig file"
-                help="The Bigwig file must be sorted."/>
-            <param name="label" type="text" size="30" optional="true" value=""
-                label="Label"
-                help="Label to use in the output. If not given the dataset name will be used instead."/>
+            <param name="bigwigfile" type="data" format="bigwig" label="Bigwig file" />
+            <param name="label" type="text" optional="true" value="" label="Label" help="Label to use in the output. If not given the dataset name will be used instead.">
+                <validator type="expression" message="Only alphanumeric characters and a space are allowed.">value.isalnum()</validator>
+            </param>
         </repeat>
     </xml>
 
     <xml name="plotTitle">
-        <param name="plotTitle" type="text" value="" size="30" optional="True"
-            label="Title of the plot"
-            help="Title of the plot, to be printed on top of the generated image. (--plotTitle)" />
+        <param name="plotTitle" type="text" value="" optional="True" label="Title of the plot" help="Title of the plot, to be printed on top of the generated image. (--plotTitle)">
+            <validator type="expression" message="Only alphanumeric characters and a space are allowed.">value.isalnum()</validator>
+        </param>
     </xml>
 
     <token name="@multiple_input_bams@">
@@ -561,8 +539,7 @@
 
     <xml name="effectiveGenomeSize">
         <conditional name="effectiveGenomeSize">
-            <param name="effectiveGenomeSize_opt" type="select" label="Effective genome size"
-                help="The effective genome size is the portion of the genome that is mappable. Large fractions of the genome are stretches of NNNN that should be discarded.
+            <param name="effectiveGenomeSize_opt" type="select" label="Effective genome size" help="The effective genome size is the portion of the genome that is mappable. Large fractions of the genome are stretches of NNNN that should be discarded.
                     Also, if repetitive regions were not included in the mapping of reads, the effective genome size needs to be adjusted accordingly.
                     See Table 2 of http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0030377 or http://www.nature.com/nbt/journal/v27/n1/fig_tab/nbt.1518_T1.html for several effective genome sizes.">
                 <option value="93260000">ce10 (93260000)</option>
@@ -572,7 +549,7 @@
                 <option value="specific">user specified</option>
             </param>
             <when value="specific">
-                <param name="effectiveGenomeSize" type="integer" value="" label="Effective genome size" help="e.g. ce10: 93260000, dm3: 121400000, hg19: 2451960000, mm9: 2150570000"/>
+                <param name="effectiveGenomeSize" type="integer" value="" label="Effective genome size" help="e.g. ce10: 93260000, dm3: 121400000, hg19: 2451960000, mm9: 2150570000" />
             </when>
             <when value="2150570000" />
             <when value="2451960000" />
@@ -592,26 +569,24 @@
     </xml>
 
     <xml name="missingDataAsZero">
-                <param name="missingDataAsZero" type="boolean" truevalue="yes" falsevalue="no" checked="True"
-                    label ="Treat missing data as zero"
-                    help  ="This parameter determines if missing data should be treated as zeros. If unchecked, missing data will be ignored and not included in the output file. Missing data is defined as those regions for which both BAM files have 0 reads." />
+        <param name="missingDataAsZero" type="boolean" truevalue="yes" falsevalue="no" checked="True" label="Treat missing data as zero" help="This parameter determines if missing data should be treated as zeros. If unchecked, missing data will be ignored and not included in the output file. Missing data is defined as those regions for which both BAM files have 0 reads." />
     </xml>
 
     <xml name="input_save_matrix_values">
-        <param name="saveMatrix" type="boolean" label="Save the matrix of values underlying the heatmap"/>
+        <param name="saveMatrix" type="boolean" label="Save the matrix of values underlying the heatmap" />
     </xml>
 
     <xml name="input_graphic_output_settings">
-        <conditional name="output" >
-            <param name="showOutputSettings" type="select" label="Show advanced output settings" >
+        <conditional name="output">
+            <param name="showOutputSettings" type="select" label="Show advanced output settings">
                 <option value="no" selected="true">no</option>
                 <option value="yes">yes</option>
             </param>
             <when value="no" />
             <when value="yes">
                 <yield />
-                <param name="saveData" type="boolean" label="Save the data underlying the average profile"/>
-                <param name="saveSortedRegions" type="boolean" label="Save the regions after skipping zeros or min/max threshold values" help="The order of the regions in the file follows the sorting order selected. This is useful, for example, to generate other heatmaps keeping the sorting of the first heatmap."/>
+                <param name="saveData" type="boolean" label="Save the data underlying the average profile" />
+                <param name="saveSortedRegions" type="boolean" label="Save the regions after skipping zeros or min/max threshold values" help="The order of the regions in the file follows the sorting order selected. This is useful, for example, to generate other heatmaps keeping the sorting of the first heatmap." />
             </when>
         </conditional>
     </xml>
@@ -668,32 +643,33 @@
     </xml>
 
     <xml name="track_input_h5_macro">
-        <param name="track_input_h5" type="data" format="h5, cool" label="Track file h5 or cool format"/>
+        <param name="track_input_h5" type="data" format="h5, cool" label="Track file h5 or cool format" />
     </xml>
     <xml name="track_input_bed_macro">
-        <param name="track_input_bed" type="data" format="bed" label="Track file bed format"/>
+        <param name="track_input_bed" type="data" format="bed" label="Track file BED format" />
     </xml>
     <xml name="track_input_bedgraph_macro">
-        <param name="track_input_bedgraph" type="data" format="bedgraph" label="Track file bedgraph format"/>
+        <param name="track_input_bedgraph" type="data" format="bedgraph" label="Track file bedgraph format" />
     </xml>
     <xml name="track_input_bigwig_macro">
-        <param name="track_input_bigwig" type="data" format="bigwig" label="Track file bigwig format"/>
+        <param name="track_input_bigwig" type="data" format="bigwig" label="Track file bigwig format" />
     </xml>
     <xml name="track_input_bedgraph_matrix_macro">
-        <param name="track_input_bedgraph_matrix" type="data" format="bedgraph" label="Track file bigwig format"/>
+        <param name="track_input_bedgraph_matrix" type="data" format="bedgraph" label="Track file bigwig format" />
     </xml>
     <xml name="track_input_tabular_macro">
-        <param name="track_input_tabular" type="data" format="tabular" label="Track file tabular format"/>
+        <param name="track_input_tabular" type="data" format="tabular" label="Track file tabular format" />
     </xml>
     <xml name="plot_title">
-        <param name="title" type="text" optional="true" label="Plot title"/>
+        <param name="title" type="text" optional="true" label="Plot title">
+            <validator type="expression" message="Only alphanumeric characters and a space are allowed.">value.isalnum()</validator>
+        </param>
     </xml>
 
     <xml name="spacer_macro">
-        <param name="spacer_width" type="float" value="" optional="True"
-              label="Include spacer at the end of the track." help="Width of the spacer." />
+        <param name="spacer_width" type="float" value="" min="0" optional="True" label="Include spacer at the end of the track" help="Width of the spacer." />
     </xml>
     <xml name="fontsize_macro">
-        <param name="fontsize" type="integer" value="" optional="True" label="Fontsize" />
+        <param name="fontsize" type="integer" value="" min="5" optional="True" label="Fontsize" />
     </xml>
 </macros>