view hubArchiveCreator.xml @ 30:e7c4be523cb7 draft

planemo upload for repository https://github.com/goeckslab/hub-archive-creator commit 2f1b3cc8c9cb463e460f7f79efe99ed472700ecf
author yating-l
date Tue, 19 Jun 2018 13:02:32 -0400
parents 7e8a8b732db3
children 9c5d82d3c87e
line wrap: on
line source

<tool id="hubArchiveCreator" name="Hub Archive Creator" version="2.5.2">
    <description>
        This Galaxy tool permits to prepare your files to be ready for
        Assembly Hub visualization.
    </description>
    <macros>
        <import>macros.xml</import>
    </macros>

    <requirements>
        <requirement type="package" version="340">ucsc_hac</requirement>
        <requirement type="package" version="1.2">samtools</requirement>
        <requirement type="package" version="340">ucsc_bigwig</requirement>
        <requirement type="package" version="340">ucsc_bigbed</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;
        
        ## Dump the tool parameters into a JSON file 
        python $json_file parameters.json;

        python $__tool_directory__/hubArchiveCreator.py --data_json parameters.json -o $output;


    ]]></command>
    <configfiles>
        <configfile name="json_file">
import json
import sys

file_path = sys.argv[1]
#set global $data_parameter_dict = {}

## Ask the user to enter the genome name
#silent $data_parameter_dict.update({"genome_name": str($genome_name)})

## Function to retrieve the data of the inputs
#def prepare_json($datatype, $input_to_prepare, $order_index, $extra_data_dict={})
    #set false_path = str($input_to_prepare)
    #set $data_dict = {"false_path": $false_path}

    #set name = str($input_to_prepare.name)
    #silent $data_dict.update({"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})

    #if $datatype in $data_parameter_dict
        #silent $data_parameter_dict[$datatype].append($data_dict)
    #else
        #set array_inputs = []
        #silent $array_inputs.append($data_dict)
        #silent $data_parameter_dict.update({$datatype: $array_inputs})
    #end if 
#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 longLabel = str($f.formatChoice.longLabel)
        #set extra_data_dict = {"track_color": $track_color,
                                "group_name": $group_name,
                                "long_label": $longLabel}

        #if $f.formatChoice.format_select == "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("Bam", $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"
                #silent $prepare_json("Bed", $f.formatChoice.bedChoice.BED, $index_track_final,
                                                $extra_data_dict)
            #end if
            #if $f.formatChoice.bedChoice.bed_select == "bed_cytoBand"
                #silent $prepare_json("CytoBand", $f.formatChoice.bedChoice.BED_cytoBand, $index_track_final,
                                                $extra_data_dict)
            #end if
            #if $f.formatChoice.bedChoice.bed_select == "bed_simple_repeats_option"
                #silent $prepare_json("BedSimpleRepeats", $f.formatChoice.bedChoice.BED_simple_repeats, $index_track_final,
                                                $extra_data_dict)
            #end if
            #if $f.formatChoice.bedChoice.bed_select == "bed_splice_junctions_option"
                #silent $prepare_json("BedSpliceJunctions", $f.formatChoice.bedChoice.BED_splice_junctions, $index_track_final,
                                                $extra_data_dict)
            #end if
            #if $f.formatChoice.bedChoice.bed_select == "bed_blast_alignment_option"
                #set database = str($f.formatChoice.bedChoice.database)
                #silent $extra_data_dict.update({"database": $database})
                #if $f.formatChoice.bedChoice.add_trix_index.add_trix_index_selector == "yes"
                    #for i in $f.formatChoice.bedChoice.add_trix_index.trix_index
                        #if $i.element_identifier.endswith("ix")
                            #$extra_data_dict.update({"index_ix": str($i)})
                        #elif $i.element_identifier.endswith("ixx")
                            #$extra_data_dict.update({"index_ixx": str($i)})
                        #end if
                    #end for
                    ##set ix_index = str($f.formatChoice.bedChoice.add_trix_index.trix_index.index_ix)
                    ##set ixx_index = str($f.formatChoice.bedChoice.add_trix_index.trix_index.index_ixx)
                    ##silent $extra_data_dict.update({"indexIx": $ix_index, "indexIxx": $ixx_index})
                #end if
                #silent $prepare_json("BedBlastAlignments", $f.formatChoice.bedChoice.BED_blast_alignment, $index_track_final,
                                             $extra_data_dict)
            #end if
            #if $f.formatChoice.bedChoice.bed_select == "bed_blat_alignment_option"
                #set database = str($f.formatChoice.bedChoice.database)
                #silent $extra_data_dict.update({"database": $database})
                #if $f.formatChoice.bedChoice.add_trix_index.add_trix_index_selector == "yes"
                    #for i in $f.formatChoice.bedChoice.add_trix_index.trix_index
                        #if $i.element_identifier.endswith("ix")
                            #$extra_data_dict.update({"index_ix": str($i)})
                        #elif $i.element_identifier.endswith("ixx")
                            #$extra_data_dict.update({"index_ixx": str($i)})
                        #end if
                    #end for
                    ##set ix_index = str($f.formatChoice.bedChoice.add_trix_index.trix_index.index_ix)
                    ##set ixx_index = str($f.formatChoice.bedChoice.add_trix_index.trix_index.index_ixx)
                    ##silent $extra_data_dict.update({"indexIx": $ix_index, "indexIxx": $ixx_index})
                #end if
                #silent $prepare_json("BedBlatAlignments", $f.formatChoice.bedChoice.BED_blat_alignment, $index_track_final,
                                             $extra_data_dict)
            #end if
        #end if
        #if $f.formatChoice.format_select == "psl"
            #silent $prepare_json("Psl", $f.formatChoice.PSL, $index_track_final,
                                           $extra_data_dict)
        #end if
        #if $f.formatChoice.format_select == "bigwig"
            #silent $prepare_json("BigWig", $f.formatChoice.BIGWIG, $index_track_final,
                                            $extra_data_dict)
        #end if
        #if $f.formatChoice.format_select == "bigbed"
            #if $f.formatChoice.add_trix_index.add_trix_index_selector == "yes"
                ##set ix_index = str($f.formatChoice.add_trix_index.trix_index.index_ix)
                ##set ixx_index = str($f.formatChoice.add_trix_index.trix_index.index_ixx)
                #for i in $f.formatChoice.add_trix_index.trix_index
                    #if $i.element_identifier.endswith("ix")
                        #$extra_data_dict.update({"index_ix": str($i)})
                    #elif $i.element_identifier.endswith("ixx")
                        #$extra_data_dict.update({"index_ixx": str($i)})
                    #end if
                #end for
                #$extra_data_dict.update({"trix_id": str($f.formatChoice.add_trix_index.trix_id)})
                ##set trix_id = str($f.formatChoice.add_trix_index.trix_id)
                ##silent $extra_data_dict.update({"indexIx": $ix_index, "indexIxx": $ixx_index, "trix_id": $trix_id})
            #end if
            #silent $prepare_json("BigBed", $f.formatChoice.BIGBED, $index_track_final,
                                            $extra_data_dict)
        #end if
        #if $f.formatChoice.format_select == "gff3"
            #silent $prepare_json("Gff3", $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
            #silent $prepare_json("Gtf", $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 = {"false_path": str($fasta_file), "name": str($fasta_file.name)}
$data_parameter_dict.update({"fasta": $fasta_json})

## Retrieve the user email
#silent $data_parameter_dict.update({"user_email": str($__user_email__)})

#silent $data_parameter_dict.update({"tool_directory": str($__tool_directory__)})

#silent $data_parameter_dict.update({"extra_files_path": str($output.extra_files_path)})

#silent $data_parameter_dict.update({"debug_mode": str($advanced_options.debug_mode)})

with open(file_path, 'w') as f:
    json.dump($data_parameter_dict, f)

        </configfile>
    </configfiles>

    <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="bigbed">BIGBED</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"
                        />
                        <param name="longLabel" type="text" size="76" label="Track label" help="It is limited to 76 printable characters, the first 17 printable characters will be used as a short label of the track" />
                        <!-- 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 (bed4)</option>
                                <option value="bed_cytoBand">cytoBand Track (bed4+1)</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>
                                <option value="bed_blast_alignment_option">Blast alignments (bed12+12 / bigPsl.as)</option>
                                <option value="bed_blat_alignment_option">BLAT alignments (bigPsl / bigPsl.as)</option>
                            </param>
                            <when value="bed_generic">
                                <param
                                        format="bed"
                                        name="BED"
                                        type="data"
                                        label="Generic Bed File Choice"
                                />

                            </when>
                            <when value="bed_cytoBand">
                                <param
                                        format="bed"
                                        name="BED_cytoBand"
                                        type="data"
                                        label="cytoBand Track (Bed4)"
                                />
                            </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>
                            <when value="bed_blast_alignment_option">
                                <param
                                        format="bed"
                                        name="BED_blast_alignment"
                                        type="data"
                                        label="Bed Blast Alignments (Bed12+12) File"
                                />
                                <param name="database" type="select" label="Protein database">
                                    <option value="NCBI" selected="true">NCBI</option>
                                    <option value="UniProt">UniProt</option>
                                    <option value="FlyBase">FlyBase</option>
                                    <option value="Others">Others</option>
                                </param>
                                <expand macro="add_trix_file"/>
                            </when>
                            <when value="bed_blat_alignment_option">
                                <param
                                        format="bed"
                                        name="BED_blat_alignment"
                                        type="data"
                                        label="Bed BLAT Alignments (bigPsl) File"
                                />
                                <param name="database" type="select" label="mRNA database">
                                    <option value="NCBI" selected="true">NCBI</option>
                                    <option value="Others">Others</option>
                                </param>
                                <expand macro="add_trix_file"/>
                            </when>
                        </conditional>
                        <param name="longLabel" type="text" size="76" label="Track label" help="It is limited to 76 printable characters, the first 17 printable characters will be used as a short label of the track" />
                        <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="longLabel" type="text" size="76" label="Track label" help="It is limited to 76 printable characters, the first 17 printable characters will be used as a short label of the track" />
                        <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="longLabel" type="text" size="76" label="Track label" help="It is limited to 76 printable characters, the first 17 printable characters will be used as a short label of the track" />
                        <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="bigbed">
                        <param
                                format="bigbed"
                                name="BIGBED"
                                type="data"
                                label="BIGBED File"
                        />
                        <expand macro="add_trix_file">
                            <param 
                                name="trix_id" 
                                value="name" 
                                type="text"
                                size="30"
                                label="Specify Trix identifier (The default is name)"
                            />
                        </expand>
                        <param name="longLabel" type="text" size="76" label="Track label" help="It is limited to 76 printable characters, the first 17 printable characters will be used as a short label of the track" />
                        <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="longLabel" type="text" size="76" label="Track label" help="It is limited to 76 printable characters, the first 17 printable characters will be used as a short label of the track" />
                        <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="longLabel" type="text" size="76" label="Track label" help="It is limited to 76 printable characters, the first 17 printable characters will be used as a short label of the track" />
                        <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="select" label="Activate debug mode"> 
                    <option value="false" selected="true">No</option>
                    <option value="true">Yes</option>
                    <help>
                        Use this option if you are a G-OnRamp developer
                    </help>
                </param>
            </when>
            <when value="off">
                <param name="debug_mode" type="hidden"
                       value="false">
                </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">
                <!-- Use macro to check the whole common structure without repeated code -->
                <expand macro="verify_hub_structure_no_track" test="only_genome" />
            </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="longLabel" value="HISAT sequence alignment" />
                        <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"
                />
                <!-- Use macro to check the whole common structure without repeated code -->
                <expand macro="verify_hub_structure" test="bam" />
            </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="longLabel" value="TBLASTN alignment" />
                            <param name="track_color" value="#000000"/>
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="bed_generic/bed_generic.html">
                <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"
                />
                <expand macro="verify_hub_structure" test="bed_generic" />
            </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="longLabel" value="Simple repeat" />
                            <param name="track_color" value="#000000"/>
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="bed_simple_repeats/bed_simple_repeats_trackhub.html">
                <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"
                />
                <expand macro="verify_hub_structure" test="bed_simple_repeats" />
            </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="longLabel" value="BLAST Alignment" />
                        <param name="track_color" value="#000000"/>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="psl/psl_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/blastXmlToPsl.bb"
                             value="psl/myHub/Dbia3/tracks/blastXmlToPsl.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="psl" />
            </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_Coverage"/>
                        <param name="longLabel" value="RNA-Seq Coverage" />
                        <param name="track_color" value="#000000"/>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="bigwig/bigwig.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.bigwig"
                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.bigwig"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="bigwig" />
                <!-- check additional trackDb settings for BigWig -->
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="autoScale"/>
                        <has_text text="maxHeightPixels"/>
                        <has_text text="windowingFunction"/>
                    </assert_contents>
                </extra_files>
            </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="longLabel" value="Augustus" />
                        <param name="track_color" value="#000000"/>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="gff3/gff3_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
                             value="gff3/myHub/Dbia3/tracks/Augustus_Gene_Predictions.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="gff3" />
            </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="longLabel" value="StringTie transcripts" />
                        <param name="track_color" value="#000000"/>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="gtf/gtf_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
                             value="gtf/myHub/Dbia3/tracks/StringTie_Assembled_Transcripts.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="gtf" />
            </output>
        </test>

        <!-- Test with BLAT Alignment -->
        <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_blat_alignment_option"/>
                            <param name="BED_blat_alignment" ftype="bed" value="bed_blat_alignment/inputs/BLAT_alignment_bigpsl"/>
                            <param name="longLabel" value="BLAT alignment" />
                            <param name="track_color" value="#000000"/>
                            <param name="database" value="NCBI" />
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="bed_blat_alignment/blat_alignment_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAT_alignment_bigpsl.bb"
                             value="bed_blat_alignment/myHub/Dbia3/tracks/BLAT_alignment_bigpsl.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="bed_blat_alignment" />
                <!-- check additional trackDb settings for BLAT -->
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="searchIndex"/>
                        <has_text text="url"/>
                        <has_text text="urlLabel"/>
                        <has_text text="iframeUrl"/>
                        <has_text text="iframeOptions"/>
                    </assert_contents>
                </extra_files>
            </output>
        </test>

        <!-- Test with BLAST Alignment -->
        <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_blast_alignment_option"/>
                            <param name="BED_blast_alignment" ftype="bed" value="bed_blast_alignment/inputs/BLAST_alignment_bigpsl"/>
                            <param name="longLabel" value="BLAST alignment" />
                            <param name="track_color" value="#000000"/>
                            <param name="database" value="NCBI" />
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="bed_blast_alignment/blast_alignment_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAST_alignment_bigpsl.bb"
                             value="bed_blast_alignment/myHub/Dbia3/tracks/BLAST_alignment_bigpsl.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="bed_blast_alignment" />
                <!-- check additional trackDb settings for BLAST -->
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="searchIndex"/>
                        <has_text text="url"/>
                        <has_text text="urlLabel"/>
                        <has_text text="iframeUrl"/>
                        <has_text text="iframeOptions"/>
                    </assert_contents>
                </extra_files>
            </output>
        </test>

        <!-- Test with Regtools Splice Junctions -->
        <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_splice_junctions_option"/>
                            <param name="BED_splice_junctions" ftype="bed" value="bed_splice_junctions/inputs/regtools_junctions"/>
                            <param name="longLabel" value="Splice junctions" />
                            <param name="track_color" value="#000000"/>
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="bed_splice_junctions/splice_junctions_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/regtools_junctions.bb"
                             value="bed_splice_junctions/myHub/Dbia3/tracks/regtools_junctions.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="bed_splice_junctions" />
            </output>
        </test>

        <!-- Test with Cytoband -->
        <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_cytoBand"/>
                            <param name="BED_cytoBand" ftype="bed" value="bed_cytoband/inputs/Cytoband"/>
                            <param name="longLabel" value="Cytoband" />
                            <param name="track_color" value="#000000"/>
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="bed_cytoband/cytoband_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/Cytoband.bb"
                             value="bed_cytoband/myHub/Dbia3/tracks/Cytoband.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="bed_cytoband" />
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="track cytoBandIdeo"/>
                    </assert_contents>
                </extra_files>
            </output>
        </test>

        <!-- Test with bigBed -->
        <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="bigbed"/>
                        <param name="BIGBED" value="big_bed/inputs/BLAT_alignment_bigbed" />
                        <param name="longLabel" value="bigBed" />
                        <param name="track_color" value="#000000"/>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="big_bed/bigbed_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAT_alignment_bigbed.bigbed"
                             value="big_bed/myHub/Dbia3/tracks/BLAT_alignment_bigbed.bigbed"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="big_bed" />
            </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">
                <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"
                />
                <expand macro="verify_hub_structure" test="gtf_gff" />   
            </output>
        </test>

        <!-- Test with one group and all the supported datatypes -->
        <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_Coverage"/>
                        <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 name="format">
                    <conditional name="formatChoice">
                        <param name="format_select" value="bed" />
                        <conditional name="bedChoice">
                            <param name="bed_select" value="bed_cytoBand"/>
                            <param name="BED_cytoBand" ftype="bed" value="bed_cytoband/inputs/Cytoband"/>
                            <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_splice_junctions_option"/>
                            <param name="BED_splice_junctions" ftype="bed" value="bed_splice_junctions/inputs/regtools_junctions"/>
                            <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_blast_alignment_option"/>
                            <param name="BED_blast_alignment" ftype="bed" value="bed_blast_alignment/inputs/BLAST_alignment_bigpsl"/>
                            <param name="track_color" value="#000000"/>
                            <param name="database" value="NCBI" />
                        </conditional>
                    </conditional>
                </repeat>
                <repeat name="format">
                    <conditional name="formatChoice">
                        <param name="format_select" value="bed" />
                        <conditional name="bedChoice">
                            <param name="bed_select" value="bed_blat_alignment_option"/>
                            <param name="BED_blat_alignment" ftype="bed" value="bed_blat_alignment/inputs/BLAT_alignment_bigpsl"/>
                            <param name="track_color" value="#000000"/>
                            <param name="database" value="NCBI" />
                        </conditional>
                    </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_Coverage.bigwig"
                             value="all_datatypes/myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.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"
                />
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/Cytoband.bb"
                             value="all_datatypes/myHub/Dbia3/tracks/Cytoband.bb"
                             compare="sim_size"
                />
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/regtools_junctions.bb"
                             value="all_datatypes/myHub/Dbia3/tracks/regtools_junctions.bb"
                             compare="sim_size"
                />
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAST_alignment_bigpsl.bb"
                             value="all_datatypes/myHub/Dbia3/tracks/BLAST_alignment_bigpsl.bb"
                             compare="sim_size"
                />
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAT_alignment_bigpsl.bb"
                             value="all_datatypes/myHub/Dbia3/tracks/BLAT_alignment_bigpsl.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="all_datatypes" />
            </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">
                <expand macro="verify_hub_structure_no_track" test="two_groups_no_track" />
            </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_Coverage"/>
                        <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 tracks exist -->
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.bigwig"
                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.bigwig"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="two_groups_one_track_first" />
            </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_Coverage"/>
                        <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 tracks exist -->
                <!-- First group -->
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.bigwig"
                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.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"
                />
                <expand macro="verify_hub_structure" test="two_groups_one_track_both" />
                <!-- 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_Coverage"/>
                        <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 tracks exist -->
                <!-- First group -->
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.bigwig"
                             value="bigwig/myHub/Dbia3/tracks/RNA-Seq_Alignment_Coverage.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"
                />
                <expand macro="verify_hub_structure" test="two_groups_multiple_tracks" />
            </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">
                <expand macro="verify_hub_structure" test="default_color" />
                <!-- Verify trackDb.txt contains the color 0,0,0 -->
                <extra_files type="file" name="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">
                <expand macro="verify_hub_structure" test="changed_color" />
                <!-- Verify trackDb.txt contains the color 128,100,162 -->
                <extra_files type="file" name="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"
                />
                <expand macro="verify_hub_structure" test="stringtie_chromosome_end_coordinates" />

                <!-- TODO: Find a way to check also that the whole common structure is intact too, without too much repetition -->
            </output>
        </test>

        <!-- Test default label 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">
                <expand macro="verify_hub_structure" test="default_color" />
                <!-- Verify trackDb.txt contains default label -->
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="longLabel HISAT2 Accepted Hits.bam"/>
                    </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 customized label 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="longLabel" value="HISAT sequence alignment" />
                        <param name="track_color" value="#000000"/>
                    </conditional>
                </repeat>
            </repeat>
            <output name="output" file="changed_label/changed_label_trackhub.html">
                <expand macro="verify_hub_structure" test="changed_label" />
                <!-- Verify trackDb.txt contains the customized label -->
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="longLabel HISAT sequence alignment"/>
                    </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 TrixIndex for Blat alignment 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="bed" />
                        <conditional name="bedChoice">
                            <param name="bed_select" value="bed_blat_alignment_option"/>
                            <param name="BED_blat_alignment" ftype="bed" value="bed_blat_alignment/inputs/BLAT_alignment_bigpsl"/>
                            <param name="longLabel" value="BLAT alignment" />
                            <param name="track_color" value="#000000"/>
                            <param name="database" value="NCBI" />
                            <conditional name="add_trix_index">
                                <param name="add_trix_index_selector" value="yes" />
                                <param name="trix_index" value="trix_index_files/blat_out.ix,trix_index_files/blat_out.ixx" />
                            </conditional>
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <param name="debug_mode" value="true" />
            <output name="output" file="trix_index_files/blat_alignment_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAT_alignment_bigpsl.bb"
                             value="bed_blat_alignment/myHub/Dbia3/tracks/BLAT_alignment_bigpsl.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="bed_blat_alignment" />
                <!-- check additional trackDb settings for BLAT -->
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="searchIndex"/>
                        <has_text text="searchTrix"/>
                        <has_text text="url"/>
                        <has_text text="urlLabel"/>
                        <has_text text="iframeUrl"/>
                        <has_text text="iframeOptions"/>
                    </assert_contents>
                </extra_files>
                <!-- check Trix index directory -->
                <extra_files type="file" name="myHub/Dbia3/trix/BLAT_alignment_bigpsl.bb.ix"
                             value="trix_index_files/blat_out.ix" />
                <extra_files type="file" name="myHub/Dbia3/trix/BLAT_alignment_bigpsl.bb.ixx"
                             value="trix_index_files/blat_out.ixx" />
            </output>
        </test>

        <!-- Test TrixIndex for BLAST Alignment -->
        <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_blast_alignment_option"/>
                            <param name="BED_blast_alignment" ftype="bed" value="bed_blast_alignment/inputs/BLAST_alignment_bigpsl"/>
                            <param name="longLabel" value="BLAST alignment" />
                            <param name="track_color" value="#000000"/>
                            <param name="database" value="NCBI" />
                            <conditional name="add_trix_index">
                                <param name="add_trix_index_selector" value="yes" />
                                <param name="trix_index" value="trix_index_files/blast_out.ix,trix_index_files/blast_out.ixx" />
                            </conditional>
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <param name="debug_mode" value="true" />
            <output name="output" file="trix_index_files/blast_alignment_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAST_alignment_bigpsl.bb"
                             value="bed_blast_alignment/myHub/Dbia3/tracks/BLAST_alignment_bigpsl.bb"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="bed_blast_alignment" />
                <!-- check additional trackDb settings for BLAST -->
                <extra_files type="file" name="myHub/Dbia3/trackDb.txt">
                    <assert_contents>
                        <has_text text="searchIndex"/>
                        <has_text text="searchTrix"/>
                        <has_text text="url"/>
                        <has_text text="urlLabel"/>
                        <has_text text="iframeUrl"/>
                        <has_text text="iframeOptions"/>
                    </assert_contents>
                </extra_files>
                <!-- check Trix index directory -->
                <extra_files type="file" name="myHub/Dbia3/trix/BLAST_alignment_bigpsl.bb.ix"
                             value="trix_index_files/blast_out.ix" />
                <extra_files type="file" name="myHub/Dbia3/trix/BLAST_alignment_bigpsl.bb.ixx"
                             value="trix_index_files/blast_out.ixx" />
            </output>
        </test>

        <!-- Test TrixIndex for BigBed -->
        <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="bigbed"/>
                        <param name="BIGBED" value="big_bed/inputs/BLAT_alignment_bigbed" />
                        <param name="longLabel" value="bigBed" />
                        <param name="track_color" value="#000000"/>
                        <conditional name="add_trix_index">
                            <param name="add_trix_index_selector" value="yes" />
                            <param name="trix_index" value="trix_index_files/blat_out.ix,trix_index_files/blat_out.ixx" />
                            <param name="trix_id" value="name" />
                        </conditional>
                    </conditional>
                </repeat>
            </repeat>
            <param name="debug_mode" value="true" />
            <output name="output" file="trix_index_files/bigbed_trackhub.html">
                <extra_files type="file"
                             name="myHub/Dbia3/tracks/BLAT_alignment_bigbed.bigbed"
                             value="big_bed/myHub/Dbia3/tracks/BLAT_alignment_bigbed.bigbed"
                             compare="sim_size"
                />
                <expand macro="verify_hub_structure" test="big_bed">
                    <has_text text="searchIndex"/>
                    <has_text text="searchTrix"/>
                </expand>

                <!-- check Trix index directory -->
                <extra_files type="file" name="myHub/Dbia3/trix/BLAT_alignment_bigbed.bigbed.ix"
                             value="trix_index_files/blat_out.ix" />
                <extra_files type="file" name="myHub/Dbia3/trix/BLAT_alignment_bigbed.bigbed.ixx"
                             value="trix_index_files/blat_out.ixx" />
            </output>
        </test>
        
    </tests>

    <help>
        This Galaxy tool permits to prepare your files to be ready for
        Assembly Hub visualization.
    </help>

    <citations>
        <citation type="doi">10.7490/f1000research.1112719.1</citation>
    </citations>
</tool>