diff hubArchiveCreator.xml @ 0:f493979f1408 draft default tip

planemo upload for repository https://github.com/Yating-L/hubarchivecreator-test commit 48b59e91e2dcc2e97735ee35d587960cbfbce932-dirty
author yating-l
date Wed, 21 Dec 2016 12:13:04 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hubArchiveCreator.xml	Wed Dec 21 12:13:04 2016 -0500
@@ -0,0 +1,1014 @@
+<tool id="hubArchiveCreator" name="Hub Archive Creator" version="2.3.0">
+    <description>
+        This Galaxy tool permits to prepare your files to be ready for
+        Assembly Hub visualization.
+    </description>
+
+    <requirements>
+        <!-- Conda dependencies -->
+        <requirement type="package" version="332">ucsc-bedtobigbed</requirement>
+        <requirement type="package" version="332">ucsc-fatotwobit</requirement>
+        <requirement type="package" version="332">ucsc-genepredtobed</requirement>
+        <requirement type="package" version="332">ucsc-genepredtobiggenepred</requirement>
+        <requirement type="package" version="332">ucsc-gff3togenepred</requirement>
+        <requirement type="package" version="332">ucsc-gtftogenepred</requirement>
+        <!-- TODO: Change the conda ucsc-psltobigpsl and take one > v337 because of bugs before -->
+        <!-- <requirement type="package" version="332">ucsc-psltobigpsl</requirement> -->
+        <requirement type="package" version="332">ucsc-twobitinfo</requirement>
+        <requirement type="package" version="1.3">samtools</requirement>
+        <!-- ToolShed dependencies -->
+        <requirement type="package" version="312">ucsc_tools</requirement>
+        <requirement type="package" version="0.0.1">gff3ToGenePred</requirement>
+        <requirement type="package" version="0.0.1">gtfToGenePred</requirement>
+        <requirement type="package" version="0.0.1">genePredToBed</requirement>
+        <requirement type="package" version="0.0.1">genePredToBigGenePred</requirement>
+        <requirement type="package" version="0.0.1">pslToBigPsl</requirement>
+        <requirement type="package" version="1.2">samtools</requirement>
+    </requirements>
+
+    <stdio>
+        <regex match="^pass1"
+               source="stderr"
+               level="log"
+               description="bedToBigBed"/>
+        <!-- TODO: Add the case pass1 and 0 chroms -->
+        <!-- TODO: Add the case pass2 and 0 records or 0 fields -->
+    </stdio>
+
+    <!-- Idea: python \ -augustus [parameters] \ -trfBig [parameters] -->
+    <command detect_errors="exit_code"><![CDATA[
+        mkdir -p $output.extra_files_path;
+
+        python $__tool_directory__/hubArchiveCreator.py
+
+        ## Ask the user to enter the genome name
+        --genome_name '$genome_name'
+
+        #import json
+
+        #set global data_parameter_dict = {}
+
+        ## Function to retrieve the data of the inputs
+        #def prepare_json($input_to_prepare, $order_index, $extra_data_dict={})
+            #set false_path = str($input_to_prepare)
+            #set name = $input_to_prepare.name
+
+            #set data_dict = {"name": $name}
+            #silent data_dict.update($extra_data_dict)
+
+            ## Add the ordering by taking the tool form indexes
+            #silent $data_dict.update({"order_index": $order_index})
+
+            #silent $data_parameter_dict.update({$false_path: $data_dict})
+
+        #end def
+
+
+        ## Get the number of digits from tracks, to have a unique integer from group index and track index
+
+        #set temp_max_digit = 0
+
+        #for $g in $group
+            #if len($g.format) > $temp_max_digit
+                #silent temp_max_digit = len($g.format)
+            #end if
+        #end for
+
+        #set nb_digits_max_track = len(str($temp_max_digit))
+
+        ## END Get the number of digits
+
+        #for $i_g, $g in enumerate( $group )
+            #for $i, $f in enumerate( $g.format )
+                ## Create the order index using index_group+1 concatenated with index_track
+                #set index_group_final = str($i_g + 1)
+                #set index_track_final = str($index_group_final) + str($i).zfill($nb_digits_max_track)
+
+                ## For each format, we have a few mandatory fields we store in a dict
+                #set track_color = str($f.formatChoice.track_color)
+                #set group_name = str($g.group_name)
+
+                #set extra_data_dict = {"track_color": $track_color,
+                                        "group_name": $group_name}
+
+                #if $f.formatChoice.format_select == "bam"
+                    --bam $f.formatChoice.BAM
+                    #set bam_index = $f.formatChoice.BAM.metadata.bam_index
+
+                    ## Add Bam format specific fields
+                    #silent extra_data_dict.update({"index": $bam_index})
+
+                    #silent $prepare_json($f.formatChoice.BAM, $index_track_final, extra_data_dict)
+                #end if
+                #if $f.formatChoice.format_select == "bed"
+                    #if $f.formatChoice.bedChoice.bed_select == "bed_generic"
+                        --bed $f.formatChoice.bedChoice.BED
+                        #silent $prepare_json($f.formatChoice.bedChoice.BED, $index_track_final,
+                                                extra_data_dict)
+                    #end if
+                    #if $f.formatChoice.bedChoice.bed_select == "bed_simple_repeats_option"
+                        --bedSimpleRepeats $f.formatChoice.bedChoice.BED_simple_repeats
+                        #silent $prepare_json($f.formatChoice.bedChoice.BED_simple_repeats, $index_track_final,
+                                                extra_data_dict)
+                    #end if
+                    #if $f.formatChoice.bedChoice.bed_select == "bed_splice_junctions_option"
+                        --bedSpliceJunctions $f.formatChoice.bedChoice.Bed_splice_junctions
+                        #silent $prepare_json($f.formatChoice.bedChoice.BED_splice_junctions, $index_track_final,
+                                                extra_data_dict)
+                    #end if
+                #end if
+                #if $f.formatChoice.format_select == "psl"
+                    --psl $f.formatChoice.PSL
+                    #silent $prepare_json($f.formatChoice.PSL, $index_track_final,
+                                           extra_data_dict)
+                #end if
+                #if $f.formatChoice.format_select == "bigwig"
+                    --bigwig $f.formatChoice.BIGWIG
+                    #silent $prepare_json($f.formatChoice.BIGWIG, $index_track_final,
+                                            extra_data_dict)
+                #end if
+                #if $f.formatChoice.format_select == "gff3"
+                    --gff3 $f.formatChoice.GFF3
+                    #silent $prepare_json($f.formatChoice.GFF3, $index_track_final,
+                                            extra_data_dict)
+                #end if
+                #if $f.formatChoice.format_select == "gtf"
+                    ## Add also GTF from Agustus? See https://github.com/ENCODE-DCC/kentUtils/issues/8
+                    --gtf $f.formatChoice.GTF
+                    #silent $prepare_json($f.formatChoice.GTF, $index_track_final,
+                                             extra_data_dict)
+                #end if
+            #end for
+        #end for
+
+        ## We combine the fasta file dataset name with his false path in a JSON object
+        #set fasta_json = json.dumps({"false_path": str($fasta_file), "name": $fasta_file.name})
+        -f '$fasta_json'
+
+        ## Dump the final json
+        #set all_data_json = json.dumps($data_parameter_dict)
+
+        --data_json '$all_data_json'
+
+        ## Retrieve the user email
+        --user_email $__user_email__
+
+        -d $__tool_directory__
+
+        -e $output.extra_files_path
+
+        $advanced_options.debug_mode
+
+        -o $output;
+
+    ]]></command>
+
+    <inputs>
+        <param
+                name="genome_name"
+                type="text"
+                size="30"
+                value="unknown"
+                label="UCSC Genome Browser assembly ID"
+        />
+        <param
+                format="fasta"
+                name="fasta_file"
+                type="data"
+                label="Reference genome"
+        />
+        <repeat name="group" title="New group">
+            <param type="text" name="group_name" label="Group name" value="Default group"/>
+            <repeat name="format" title="New track">
+                <conditional name="formatChoice">
+                    <param name="format_select" type="select" label="Format">
+                        <option value="bam" selected="true">BAM</option>
+                        <option value="bed">BED</option>
+                        <option value="psl">PSL</option>
+                        <option value="bigwig">BIGWIG</option>
+                        <option value="gff3">GFF3</option>
+                        <option value="gtf">GTF</option>
+                    </param>
+
+                    <when value="bam">
+                        <param
+                                format="bam"
+                                name="BAM"
+                                type="data"
+                                label="BAM File"
+                        />
+                        <!-- TODO: Find a solution to avoid repetition and to generate a new color depending on the others -->
+                        <param name="track_color" type="color" label="Track color" value="#000000">
+                            <sanitizer>
+                                <valid initial="string.letters,string.digits">
+                                    <add value="#"/>
+                                </valid>
+                            </sanitizer>
+                        </param>
+                    </when>
+                    <when value="bed">
+                        <conditional name="bedChoice">
+                            <param name="bed_select" type="select" label="Bed Choice">
+                                <option value="bed_generic" selected="true">BED Generic (bed3+)</option>
+                                <option value="bed_simple_repeats_option">BED Simple repeat (bed4+12 / simpleRepeat.as)</option>
+                                <option value="bed_splice_junctions_option">BED Splice junctions (bed12+1 / spliceJunctions.as)</option>
+                            </param>
+                            <when value="bed_generic">
+                                <param
+                                        format="bed"
+                                        name="BED"
+                                        type="data"
+                                        label="Generic Bed File Choice"
+                                />
+
+                            </when>
+                            <when value="bed_simple_repeats_option">
+                                <param
+                                        format="bed"
+                                        name="BED_simple_repeats"
+                                        type="data"
+                                        label="Bed Simple Repeats (Bed4+12) File"
+                                />
+                            </when>
+                            <when value="bed_splice_junctions_option">
+                                <param
+                                        format="bed"
+                                        name="BED_splice_junctions"
+                                        type="data"
+                                        label="Bed Splice Junctions (Bed12+1) File"
+                                />
+                            </when>
+                        </conditional>
+                        <param name="track_color" type="color" label="Track color" value="#000000">
+                            <sanitizer>
+                                <valid initial="string.letters,string.digits">
+                                    <add value="#"/>
+                                </valid>
+                            </sanitizer>
+                        </param>
+                    </when>
+                    <when value="psl">
+                        <param
+                                format="psl"
+                                name="PSL"
+                                type="data"
+                                label="PSL File"
+                        />
+                        <param name="track_color" type="color" label="Track color" value="#000000">
+                            <sanitizer>
+                                <valid initial="string.letters,string.digits">
+                                    <add value="#"/>
+                                </valid>
+                            </sanitizer>
+                        </param>
+                    </when>
+                    <when value="bigwig">
+                        <param
+                                format="bigwig"
+                                name="BIGWIG"
+                                type="data"
+                                label="BIGWIG File"
+                        />
+                        <param name="track_color" type="color" label="Track color" value="#000000">
+                            <sanitizer>
+                                <valid initial="string.letters,string.digits">
+                                    <add value="#"/>
+                                </valid>
+                            </sanitizer>
+                        </param>
+                    </when>
+                    <when value="gff3">
+                        <param
+                                format="gff3"
+                                name="GFF3"
+                                type="data"
+                                label="GFF3 File"
+                        />
+                        <param name="track_color" type="color" label="Track color" value="#000000">
+                            <sanitizer>
+                                <valid initial="string.letters,string.digits">
+                                    <add value="#"/>
+                                </valid>
+                            </sanitizer>
+                        </param>
+                    </when>
+                    <when value="gtf">
+                        <param
+                                format="gtf"
+                                name="GTF"
+                                type="data"
+                                label="GTF File"
+                        />
+                        <param name="track_color" type="color" label="Track color" value="#000000">
+                            <sanitizer>
+                                <valid initial="string.letters,string.digits">
+                                    <add value="#"/>
+                                </valid>
+                            </sanitizer>
+                        </param>
+                    </when>
+                </conditional>
+            </repeat>
+        </repeat>
+        <conditional name="advanced_options">
+            <param name="advanced_options_selector" type="select" label="Advanced options">
+                <option value="off" selected="true">Hide advanced options</option>
+                <option value="on">Display advanced options</option>
+            </param>
+            <!-- TODO: Avoid redundancy here -->
+            <when value="on">
+                <param name="debug_mode" type="boolean"
+                       label="Activate debug mode" checked="false"
+                       truevalue="--debug_mode" falsevalue="">
+                    <help>
+                        Use this option if you are a G-OnRamp developer
+                    </help>
+                </param>
+            </when>
+            <when value="off">
+                <param name="debug_mode" type="hidden"
+                       value="">
+                </param>
+            </when>
+    </conditional>
+</inputs>
+
+    <outputs>
+        <data format="trackhub" name="output"/>
+    </outputs>
+
+    <tests>
+        <!-- Test with only the fasta file -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <output name="output" file="only_genome/only_genome.html">
+                <extra_files type="file" name="__main__.log" value="only_genome/__main__.log" />
+                <extra_files type="file" name="myHub/genomes.txt" value="only_genome/myHub/genomes.txt" />
+                <extra_files type="file" name="myHub/Dbia3.html" value="only_genome/myHub/Dbia3.html"/>
+                <!-- Email could be different, but we need to ensure we still have the email line -->
+                <extra_files type="file" name="myHub/hub.txt" value="only_genome/myHub/hub.txt" lines_diff="2">
+                    <assert_contents>
+                        <has_text text="email"/>
+                    </assert_contents>
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/Dbia3.2bit" value="common/Dbia3.2bit">
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/description.html" value="only_genome/myHub/Dbia3/description.html"/>
+            </output>
+        </test>
+
+        <!-- Test with Bam -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bam"/>
+                        <param name="BAM" value="bam/inputs/HISAT2_Accepted_Hits.bam" />
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="bam/bam.html">
+                <!-- Verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam"
+                             value="bam/myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam.bai"
+                             value="bam/myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam.bai"
+                             compare="sim_size"
+                />
+                <!-- Verify trackDb.txt contains the basic fields for a bam -->
+                <extra_files type="file" name="myHub/Dbia3/trackDb.txt" value="bam/myHub/Dbia3/trackDb.txt">
+                    <assert_contents>
+                        <has_text text="track"/>
+                        <has_text text="longLabel"/>
+                        <has_text text="shortLabel"/>
+                        <has_text text="bigDataUrl"/>
+                        <has_text text="type"/>
+                        <has_text text="visibility"/>
+                        <has_text text="thickDrawItem"/>
+                        <has_text text="priority"/>
+                        <has_text text="color"/>
+                        <has_text text="group"/>
+                    </assert_contents>
+                </extra_files>
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test with Bed Generic -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bed" />
+                        <conditional name="bedChoice">
+                            <param name="bed_select" value="bed_generic"/>
+                            <param name="BED" ftype="bed" value="bed_generic/inputs/TBLASTN_Alignment_to_proteins"/>
+                            <param name="track_color" value="#000000"/>
+                        </conditional>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="bed_generic/bed_generic.html">
+                <!-- Verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/TBLASTN_Alignment_to_proteins.bb"
+                             value="bed_generic/myHub/Dbia3/tracks/TBLASTN_Alignment_to_proteins.bb"
+                             compare="sim_size"
+                />
+            </output>
+        </test>
+
+        <!-- Test with Bed Simple repeat -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bed" />
+                        <conditional name="bedChoice">
+                            <param name="bed_select" value="bed_simple_repeats_option"/>
+                            <param name="BED_simple_repeats" ftype="bed" value="bed_simple_repeats/inputs/Repeating_Elements_by_TrfBig"/>
+                            <param name="track_color" value="#000000"/>
+                        </conditional>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="bed_simple_repeats/bed_simple_repeats_trackhub.html">
+                <!-- Verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/Repeating_Elements_by_TrfBig.bb"
+                             value="bed_simple_repeats/myHub/Dbia3/tracks/Repeating_Elements_by_TrfBig.bb"
+                             compare="sim_size"
+                />
+            </output>
+        </test>
+        
+
+        <!-- Test with Psl -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="psl"/>
+                        <param name="PSL" value="psl/inputs/blastXmlToPsl"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="psl/psl_trackhub.html">
+                <!-- Verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/blastXmlToPsl.bb"
+                             value="psl/myHub/Dbia3/tracks/blastXmlToPsl.bb"
+                             compare="sim_size"
+                />
+                <!-- Verify trackDb.txt contains the basic fields for a bam -->
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test with BigWig -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bigwig"/>
+                        <param name="BIGWIG" value="bigwig/inputs/RNA-Seq_Alignment_Summary"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="bigwig/bigwig.html">
+                <!-- Verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             compare="sim_size"
+                />
+                <!-- Verify trackDb.txt contains the basic fields for a bam -->
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test with GFF3 -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gff3"/>
+                        <param name="GFF3" value="gff3/inputs/Augustus_Gene_Predictions"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="gff3/gff3_trackhub.html">
+                <!-- Verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
+                             value="gff3/myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
+                             compare="sim_size"
+                />
+                <!-- Verify trackDb.txt contains the basic fields for a bam -->
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test with GTF -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gtf"/>
+                        <param name="GTF" value="gtf/inputs/StringTie_Assembled_Transcripts"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="gtf/gtf_trackhub.html">
+                <!-- Verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             value="gtf/myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             compare="sim_size"
+                />
+                <!-- Verify trackDb.txt contains the basic fields for a bam -->
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test with one group and multiple tracks -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gtf"/>
+                        <param name="GTF" value="gtf/inputs/StringTie_Assembled_Transcripts"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gff3"/>
+                        <param name="GFF3" value="gff3/inputs/Augustus_Gene_Predictions"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="gtf_gff/gtf_gff_trackhub.html">
+                <!-- verify tracks folder contains bam and bai -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             value="gtf/myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
+                             value="gff3/myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
+                             compare="sim_size"
+                />
+                <!-- verify trackdb.txt contains the basic fields for a bam -->
+                <!-- todo: find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test with one group and all the supported datatypes on 10/04/2016 -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bam"/>
+                        <param name="BAM" value="bam/inputs/HISAT2_Accepted_Hits.bam"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bed"/>
+                        <conditional name="bedChoice">
+                            <param name="bed_select" value="bed_generic"/>
+                            <param name="BED" ftype="bed" value="bed_generic/inputs/TBLASTN_Alignment_to_proteins"/>
+                            <param name="track_color" value="#000000"/>
+                        </conditional>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bed"/>
+                        <conditional name="bedChoice">
+                            <param name="bed_select" value="bed_simple_repeats_option"/>
+                            <param name="BED_simple_repeats" ftype="bed"
+                                   value="bed_simple_repeats/inputs/Repeating_Elements_by_TrfBig"/>
+                            <param name="track_color" value="#000000"/>
+                        </conditional>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="psl"/>
+                        <param name="PSL" value="psl/inputs/blastXmlToPsl"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bigwig"/>
+                        <param name="BIGWIG" value="bigwig/inputs/RNA-Seq_Alignment_Summary"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gff3"/>
+                        <param name="GFF3" value="gff3/inputs/Augustus_Gene_Predictions"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gtf"/>
+                        <param name="GTF" value="gtf/inputs/StringTie_Assembled_Transcripts"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="all_datatypes/all_datatypes_trackhub.html">
+                <!-- verify tracks folder contains all the files -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam"
+                             value="all_datatypes/myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam.bai"
+                             value="all_datatypes/myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam.bai"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/TBLASTN_Alignment_to_proteins.bb"
+                             value="all_datatypes/myHub/Dbia3/tracks/TBLASTN_Alignment_to_proteins.bb"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/Repeating_Elements_by_TrfBig.bb"
+                             value="all_datatypes/myHub/Dbia3/tracks/Repeating_Elements_by_TrfBig.bb"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/blastXmlToPsl.bb"
+                             value="all_datatypes/myHub/Dbia3/tracks/blastXmlToPsl.bb"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             value="all_datatypes/myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
+                             value="all_datatypes/myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             value="all_datatypes/myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             compare="sim_size"
+                />
+                <!-- verify trackdb.txt contains the basic fields for a bam -->
+                <!-- todo: find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test with two groups and no tracks -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+            </repeat>
+            <repeat name="group">
+                <param name="group_name" value="Other group"/>
+            </repeat>
+            <output name="output" file="two_groups_no_track/two_groups_no_track_trackhub.html">
+                <extra_files type="file" name="myHub/genomes.txt" value="two_groups_no_track/myHub/genomes.txt"/>
+                <extra_files type="file" name="myHub/Dbia3.html" value="two_groups_no_track/myHub/Dbia3.html"/>
+                <!-- Email could be different, but we need to ensure we still have the email line -->
+                <extra_files type="file" name="myHub/hub.txt" value="two_groups_no_track/myHub/hub.txt" lines_diff="2">
+                    <assert_contents>
+                        <has_text text="email"/>
+                    </assert_contents>
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/Dbia3.2bit" value="common/Dbia3.2bit">
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/description.html"
+                             value="two_groups_no_track/myHub/Dbia3/description.html"/>
+            </output>
+        </test>
+
+        <!-- Test with two groups and one track in first -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bigwig"/>
+                        <param name="BIGWIG" value="bigwig/inputs/RNA-Seq_Alignment_Summary"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <repeat name="group">
+                <param name="group_name" value="Other group"/>
+            </repeat>
+            <output name="output" file="two_groups_one_track_first/two_groups_one_track_first_trackhub.html">
+                <!-- Check myHub structure -->
+                <extra_files type="file" name="myHub/genomes.txt" value="two_groups_one_track_first/myHub/genomes.txt"/>
+                <extra_files type="file" name="myHub/Dbia3.html" value="two_groups_one_track_first/myHub/Dbia3.html"/>
+                <!-- Email could be different, but we need to ensure we still have the email line -->
+                <extra_files type="file" name="myHub/hub.txt" value="two_groups_one_track_first/myHub/hub.txt" lines_diff="2">
+                    <assert_contents>
+                        <has_text text="email"/>
+                    </assert_contents>
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/Dbia3.2bit" value="common/Dbia3.2bit">
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/description.html"
+                             value="two_groups_one_track_first/myHub/Dbia3/description.html"/>
+
+                <!-- Check tracks exist -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             compare="sim_size"
+                />
+
+                <!-- Check the groups.txt exists and is properly populated -->
+            </output>
+        </test>
+
+        <!-- Test with two groups and one track in both -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bigwig"/>
+                        <param name="BIGWIG" value="bigwig/inputs/RNA-Seq_Alignment_Summary"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <repeat name="group">
+                <param name="group_name" value="Other group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gtf"/>
+                        <param name="GTF" value="gtf/inputs/StringTie_Assembled_Transcripts"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="two_groups_one_track_both/two_groups_one_track_both_trackhub.html">
+                <!-- Check myHub structure -->
+                <extra_files type="file" name="myHub/genomes.txt" value="two_groups_one_track_both/myHub/genomes.txt"/>
+                <extra_files type="file" name="myHub/Dbia3.html" value="two_groups_one_track_both/myHub/Dbia3.html"/>
+                <!-- Email could be different, but we need to ensure we still have the email line -->
+                <extra_files type="file" name="myHub/hub.txt" value="two_groups_one_track_both/myHub/hub.txt"
+                             lines_diff="2">
+                    <assert_contents>
+                        <has_text text="email"/>
+                    </assert_contents>
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/Dbia3.2bit" value="common/Dbia3.2bit">
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/description.html"
+                             value="two_groups_one_track_both/myHub/Dbia3/description.html"/>
+
+                <!-- Check tracks exist -->
+                <!-- First group -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             compare="sim_size"
+                />
+
+                <!-- Second group -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             value="gtf/myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             compare="sim_size"
+                />
+                <!-- Check the groups.txt exists and is properly populated -->
+            </output>
+        </test>
+
+        <!-- Test with two groups and multiple tracks in both -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bigwig"/>
+                        <param name="BIGWIG" value="bigwig/inputs/RNA-Seq_Alignment_Summary"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bam"/>
+                        <param name="BAM" value="bam/inputs/HISAT2_Accepted_Hits.bam"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <repeat name="group">
+                <param name="group_name" value="Other group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gtf"/>
+                        <param name="GTF" value="gtf/inputs/StringTie_Assembled_Transcripts"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gff3"/>
+                        <param name="GFF3" value="gff3_multi_fasta/inputs/Multi-Fasta_GlimmerHMM_Gene_Predictions"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="two_groups_multiple_tracks/two_groups_multiple_tracks_trackhub.html">
+                <!-- Check myHub structure -->
+                <extra_files type="file" name="myHub/genomes.txt" value="two_groups_multiple_tracks/myHub/genomes.txt"/>
+                <extra_files type="file" name="myHub/Dbia3.html" value="two_groups_multiple_tracks/myHub/Dbia3.html"/>
+                <!-- Email could be different, but we need to ensure we still have the email line -->
+                <extra_files type="file" name="myHub/hub.txt" value="two_groups_multiple_tracks/myHub/hub.txt"
+                             lines_diff="2">
+                    <assert_contents>
+                        <has_text text="email"/>
+                    </assert_contents>
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/Dbia3.2bit" value="common/Dbia3.2bit">
+                </extra_files>
+                <extra_files type="file" name="myHub/Dbia3/description.html"
+                             value="two_groups_multiple_tracks/myHub/Dbia3/description.html"/>
+
+                <!-- Check tracks exist -->
+                <!-- First group -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Summary.bigwig"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam"
+                             value="bam/myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam.bai"
+                             value="bam/myHub/Dbia3/tracks/HISAT2_Accepted_Hits.bam.bai"
+                             compare="sim_size"
+                />
+
+                <!-- Second group -->
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             value="gtf/myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             compare="sim_size"
+                />
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/Multi-Fasta_GlimmerHMM_Gene_Predictions.bb"
+                             value="gff3_multi_fasta/myHub/Dbia3/tracks/Multi-Fasta_GlimmerHMM_Gene_Predictions.bb"
+                             compare="sim_size"
+                />
+                <!-- Check the groups.txt exists and is properly populated -->
+            </output>
+        </test>
+
+        <!-- Test default color in a track -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bam"/>
+                        <param name="BAM" value="bam/inputs/HISAT2_Accepted_Hits.bam"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="default_color/default_color_trackhub.html">
+                <!-- Verify trackDb.txt contains the color 0,0,0 -->
+                <extra_files type="file" name="myHub/Dbia3/trackDb.txt" value="default_color/myHub/Dbia3/trackDb.txt">
+                    <assert_contents>
+                        <has_text text="color 0,0,0"/>
+                    </assert_contents>
+                </extra_files>
+
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test changed color in a track -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="bam"/>
+                        <param name="BAM" value="bam/inputs/HISAT2_Accepted_Hits.bam"/>
+                        <param name="track_color" value="#8064a2"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="changed_color/changed_color_trackhub.html">
+                <!-- Verify trackDb.txt contains the color 128,100,162 -->
+                <extra_files type="file" name="myHub/Dbia3/trackDb.txt" value="changed_color/myHub/Dbia3/trackDb.txt">
+                    <assert_contents>
+                        <has_text text="color 128,100,162"/>
+                    </assert_contents>
+                </extra_files>
+
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test for StringTie Chromosome end coordinates -->
+        <test>
+            <param name="genome_name" value="Dbia3"/>
+            <param name="fasta_file" value="common/dbia3.fa"/>
+            <repeat name="group">
+                <param name="group_name" value="Default group"/>
+                <repeat name="format">
+                    <conditional name="formatChoice">
+                        <param name="format_select" value="gtf"/>
+                        <param name="GTF" ftype="gtf" value="stringtie_chromosome_end_coordinates/inputs/StringTie_Assembled_Transcripts"/>
+                        <param name="track_color" value="#000000"/>
+                    </conditional>
+                </repeat>
+            </repeat>
+            <output name="output" file="stringtie_chromosome_end_coordinates/stringtie_chromosome_end_coordinates_trackhub.html">
+                <extra_files type="file"
+                             name="myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             value="stringtie_chromosome_end_coordinates/myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
+                             compare="sim_size"
+                />
+
+                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
+            </output>
+        </test>
+
+        <!-- Test for big files? -->
+
+        <!-- Find tests that should fail -->
+
+    </tests>
+
+    <help>
+        This Galaxy tool permits to prepare your files to be ready for
+        Assembly Hub visualization.
+    </help>
+</tool>