diff jbrowse.xml @ 8:ad4b9d7eae6a draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse commit 9a243c616a4a3156347e38fdb5f35863ae5133f9
author iuc
date Tue, 29 Nov 2016 10:55:30 -0500
parents ecbdfc775b9a
children 1a6d882d340d
line wrap: on
line diff
--- a/jbrowse.xml	Sun Jun 26 10:50:15 2016 -0400
+++ b/jbrowse.xml	Tue Nov 29 10:55:30 2016 -0500
@@ -1,17 +1,16 @@
-<tool id="jbrowse" name="JBrowse" version="0.5.2">
+<tool id="jbrowse" name="JBrowse" version="@WRAPPER_VERSION@">
   <description>genome browser</description>
   <macros>
     <import>macros.xml</import>
   </macros>
   <expand macro="requirements"/>
   <expand macro="stdio"/>
-  <version_command>python jbrowse.py --version</version_command>
   <command><![CDATA[
 
 #if $action.action_select == "create":
-    mkdir -p $output.files_path;
+    mkdir -p $output.files_path &&
 #else:
-    cp -R $action.update_jbrowse.extra_files_path $output.files_path;
+    cp -R $action.update_jbrowse.extra_files_path $output.files_path &&
 #end if
 
 ## Copy the XML file into the directory, mostly for debugging
@@ -27,7 +26,7 @@
 #end if
 
 --outdir $output.files_path
-$trackxml;
+$trackxml &&
 
 #if str($standalone) == "Complete":
     mv $output.files_path/index.html $output;
@@ -72,13 +71,13 @@
     <metadata>
         <gencode>$gencode</gencode>
         <genomes>
-              #if str($action.reference_genome.genome_type_select) == "indexed":
-                <genome>${action.reference_genome.genomes.fields.path}</genome>
-              #else
-                #for $genome in $action.reference_genome.genomes:
-                    <genome>$genome</genome>
-                #end for
-              #end if
+            #if str($reference_genome.genome_type_select) == "indexed":
+              <genome>${reference_genome.genomes.fields.path}</genome>
+            #else
+              #for $genome in $reference_genome.genomes:
+                  <genome>$genome</genome>
+              #end for
+            #end if
         </genomes>
         <general>
             <defaultLocation>${jbgen.defaultLocation}</defaultLocation>
@@ -145,6 +144,25 @@
                         </scheme>
                   #end if
                 </scaling>
+                <menus>
+                  #for $menu_item in $track.data_format.jbmenu.track_menu:
+                  <menu>
+                    <action>${menu_item.menu_action}</action>
+                    #if str($menu_item.menu_label) != "":
+                      <label>${menu_item.menu_label}</label>
+                    #end if
+                    #if str($menu_item.menu_title) != "":
+                      <title>${menu_item.menu_title}</title>
+                    #end if
+                    #if str($menu_item.menu_url) != "":
+                      <url>${menu_item.menu_url.replace("&", "&amp;").replace("\"", "&quot;")}</url>
+                    #end if
+                    #if str($menu_item.menu_icon) != "":
+                      <iconClass>${menu_item.menu_icon}</iconClass>
+                    #end if
+                  </menu>
+                  #end for
+                </menus>
             #end if
 
             #if str($track.data_format.data_format_select) == "wiggle":
@@ -194,6 +212,7 @@
                   #end if
                     <protein>${track.data_format.is_protein}</protein>
                     <min_gap>${track.data_format.min_gap}</min_gap>
+                    <index>${track.data_format.index}</index>
                 </blast>
             #else if str($track.data_format.data_format_select) == "gene_calls":
                 <gff>
@@ -201,6 +220,7 @@
                   #if $track.data_format.match_part.match_part_select:
                     <match>${track.data_format.match_part.name}</match>
                   #end if
+                    <index>${track.data_format.index}</index>
                 </gff>
 ##            #else if str($track.data_format.data_format_select) == "sparql":
 ##                <sparql>
@@ -216,32 +236,40 @@
         #end for
     </tracks>
 </root>
-]]>
-      </configfile>
+]]></configfile>
   </configfiles>
   <inputs>
-    <conditional name="action" label="Action">
-        <param type="select" label="JBrowse-in-Galaxy Action" name="action_select">
-            <option value="create">New JBrowse Instance</option>
-            <option value="update">Update exising JBrowse Instance</option>
+    <conditional name="reference_genome">
+        <param help="Built-in references" label="Reference genome to display" name="genome_type_select" type="select">
+            <option selected="True" value="indexed">Use a built-in genome</option>
+            <option value="history">Use a genome from history</option>
         </param>
-        <when value="create">
-            <expand macro="genome_selector" />
-       </when>
-        <when value="update">
-            <expand macro="genome_selector"
-              label="Additional Fasta Sequence(s)"
-              help="If sequences are selected, they will be added to the existing JBrowse instance. You should not select any sequences if you are simply updating an existing JBrowse instance which already has the required reference sequences."
-              optional="True"/>
-            <param label="Previous JBrowse Instance"
-                   name="update_jbrowse"
-                   type="data"
-                   format="html" />
+        <when value="indexed">
+            <param
+              help="If your genome of interest is not listed, contact the Galaxy team"
+              label="Select a reference genome"
+              name="genomes"
+              type="select"
+              >
+                <options from_data_table="all_fasta">
+                    <filter column="2" type="sort_by" />
+                    <validator message="No genomes are available for the selected input dataset" type="no_options" />
+                </options>
+            </param>
+        </when>
+        <when value="history">
+            <param
+              format="fasta"
+              label="Select the reference genome"
+              name="genomes"
+              type="data"
+              multiple="True" />
         </when>
     </conditional>
 
     <param name="standalone" label="Produce Standalone Instance" type="boolean" truevalue="Complete" falsevalue="Data Directory" help="Produce a full, working JBrowse instance or just the data directory. Data dir mode is experimental and intended to be used with Apollo" checked="True"/>
 
+
     <param label="Genetic Code" name="gencode" type="select">
       <option value="1">1. The Standard Code</option>
       <option value="2">2. The Vertebrate Mitochondrial Code</option>
@@ -263,6 +291,20 @@
       <option value="25">25. Candidate Division SR1 and Gracilibacteria Code</option>
    </param>
 
+    <conditional name="action">
+        <param type="select" label="JBrowse-in-Galaxy Action" name="action_select">
+            <option value="create">New JBrowse Instance</option>
+            <option value="update">Update exising JBrowse Instance</option>
+        </param>
+        <when value="create" />
+        <when value="update">
+            <param label="Previous JBrowse Instance"
+                   name="update_jbrowse"
+                   type="data"
+                   format="html" />
+        </when>
+    </conditional>
+
     <repeat name="track_groups" title="Track Group">
         <param label="Track Category"
                name="category"
@@ -270,7 +312,7 @@
                value="Default"
                help="Organise your tracks into Categories for a nicer end-user experience" optional="False"/>
     <repeat name="data_tracks" title="Annotation Track">
-        <conditional name="data_format" label="Track Options">
+        <conditional name="data_format">
             <param type="select" label="Track Type" name="data_format_select">
                 <option value="gene_calls">GFF/GFF3/BED/GBK Features</option>
                 <option value="pileup">BAM Pileups</option>
@@ -301,6 +343,8 @@
                        truevalue="true"
                        falsevalue="false" />
 
+                <param label="Index this track" name="index" type="boolean" checked="false" truevalue="true" falsevalue="false" />
+
                 <expand macro="track_styling"
                         classname="feature"
                         label="description"
@@ -309,6 +353,7 @@
                 <expand macro="color_selection"
                         token_scaling_lin_select="false"
                         token_scaling_log_select="true" />
+                <expand macro="track_menu" />
                 <expand macro="track_display" />
             </when>
             <when value="vcf">
@@ -317,7 +362,7 @@
             </when>
             <when value="gene_calls">
                 <expand macro="input_conditional" label="GFF/GFF3/BED Track Data" format="gff,gff3,bed" />
-                <conditional name="match_part" label="match/match_part data">
+                <conditional name="match_part">
                     <param label="This is match/match_part data"
                            type="boolean"
                            name="match_part_select"
@@ -333,12 +378,16 @@
                     </when>
                     <when value="false" />
                 </conditional>
+
+                <param label="Index this track" name="index" type="boolean" checked="false" truevalue="true" falsevalue="false" />
+
                 <param type="select" label="JBrowse Track Type [Advanced]" name="track_class">
                   <option value="JBrowse/View/Track/HTMLFeatures">HTML Features</option>
                   <option value="JBrowse/View/Track/CanvasFeatures" selected="true">Canvas Features</option>
                 </param>
                 <expand macro="track_styling" />
                 <expand macro="color_selection" />
+                <expand macro="track_menu" />
                 <expand macro="track_display" />
             </when>
             <when value="pileup">
@@ -367,7 +416,7 @@
                        truevalue="true"
                        falsevalue="false" />
 
-                <conditional name="scaling" label="Scaling">
+                <conditional name="scaling">
                     <param type="select" label="Track Scaling" name="scale_select">
                         <option value="auto_local">Autoscale (local)</option>
                         <option value="auto_global" selected="true">Autoscale (global)</option>
@@ -406,97 +455,280 @@
   <tests>
     <test>
       <!-- gencode -->
-      <param name="genomes" value="merlin.fa"/>
+      <param name="reference_genome|genome_type_select" value="history"/>
+      <param name="reference_genome|genomes" value="merlin.fa"/>
       <param name="gencode" value="1" />
       <param name="standalone" value="Data Directory" />
       <param name="uglyTestingHack" value="enabled" />
       <output name="output" file="gencode/test-1.xml" lines_diff="4" />
     </test>
     <test>
-      <param name="genomes" value="merlin.fa"/>
+      <param name="reference_genome|genome_type_select" value="history"/>
+      <param name="reference_genome|genomes" value="merlin.fa"/>
       <param name="gencode" value="11" />
       <param name="standalone" value="Data Directory" />
       <param name="uglyTestingHack" value="enabled" />
       <output name="output" file="gencode/test.xml" lines_diff="4"/>
     </test>
-    <!--
     <test>
-      <param name="genomes" value="merlin.fa"/>
+      <param name="reference_genome|genome_type_select" value="history"/>
+      <param name="reference_genome|genomes" value="merlin.fa"/>
       <param name="gencode" value="11" />
       <param name="standalone" value="Data Directory" />
-      <param name="track_groups_0|category" value="Auto Coloured" />
-      <param name="track_groups_0|data_tracks_0|data_format" value="gene_calls"/>
-      <param name="track_groups_0|data_tracks_0|annotation" value="gff3/A.gff,gff3/B.gff,gff3/C.gff,gff3/D.gff"/>
-      <param name="track_groups_0|data_tracks_0|match_part|match_part_select" value="false"/>
-      <param name="track_groups_0|data_tracks_0|jbcolor_scale|color_score|color_score_select" value="none"/>
-      <param name="track_groups_0|data_tracks_0|jbcolor_scale|color|color_select" value="automatic"/>
-
+      <repeat name="track_groups">
+        <param name="category" value="Auto Coloured" />
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/A.gff,gff3/B.gff,gff3/C.gff,gff3/D.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="false"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="none"/>
+                    </conditional>
+                    <conditional name="color">
+                        <param name="color_select" value="automatic"/>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+      </repeat>
 
-      <param name="track_groups_1|category" value="Ignore Scale" />
-      <param name="track_groups_1|data_tracks_0|data_format" value="gene_calls"/>
-      <param name="track_groups_1|data_tracks_0|annotation" value="gff3/1.gff"/>
-      <param name="track_groups_1|data_tracks_0|match_part|match_part_select" value="false"/>
-      <param name="track_groups_1|data_tracks_0|jbcolor_scale|color_score|color_score_select" value="none"/>
-      <param name="track_groups_1|data_tracks_0|jbcolor_scale|color_score|color|color_select" value="manual"/>
-      <param name="track_groups_1|data_tracks_0|jbcolor_scale|color_score|color|style_color" value="#ff00ff"/>
+      <repeat name="track_groups">
+        <param name="category" value="Ignore Scale" />
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/1.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="false"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="none"/>
+                        <conditional name="color">
+                            <param name="color_select" value="manual"/>
+                            <param name="style_color" value="#ff00ff"/>
+                        </conditional>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+      </repeat>
 
-      <param name="track_groups_2|category" value="Scaled Colour" />
-      <param name="track_groups_2|data_tracks_0|data_format" value="gene_calls"/>
-      <param name="track_groups_2|data_tracks_0|annotation" value="gff3/1.gff"/>
-      <param name="track_groups_2|data_tracks_0|match_part|match_part_select" value="false"/>
-      <param name="track_groups_2|data_tracks_0|jbcolor_scale|color_score|color_score_select" value="score"/>
-      <param name="track_groups_2|data_tracks_0|jbcolor_scale|color_score|score_scaling" value="linear"/>
-      <param name="track_groups_2|data_tracks_0|jbcolor_scale|color_score|score_scales|scale_select" value="automatic"/>
-      <param name="track_groups_2|data_tracks_0|jbcolor_scale|color_score|color_scheme|score_scheme" value="opacity"/>
-      <param name="track_groups_2|data_tracks_0|jbcolor_scale|color_score|color_scheme|color_select" value="automatic"/>
-      <param name="track_groups_2|data_tracks_1|data_format" value="gene_calls"/>
-      <param name="track_groups_2|data_tracks_1|annotation" value="gff3/1.gff"/>
-      <param name="track_groups_2|data_tracks_1|match_part|match_part_select" value="false"/>
-      <param name="track_groups_2|data_tracks_1|jbcolor_scale|color_score|color_score_select" value="score"/>
-      <param name="track_groups_2|data_tracks_1|jbcolor_scale|color_score|score_scaling" value="linear"/>
-      <param name="track_groups_2|data_tracks_1|jbcolor_scale|color_score|score_scales|scale_select" value="automatic"/>
-      <param name="track_groups_2|data_tracks_1|jbcolor_scale|color_score|color_scheme|score_scheme" value="opacity"/>
-      <param name="track_groups_2|data_tracks_1|jbcolor_scale|color_score|color_scheme|color_select" value="manual"/>
-      <param name="track_groups_2|data_tracks_1|jbcolor_scale|color_score|color_scheme|style_color" value="#0000ff"/>
-      <param name="track_groups_2|data_tracks_2|data_format" value="gene_calls"/>
-      <param name="track_groups_2|data_tracks_2|annotation" value="gff3/1.gff"/>
-      <param name="track_groups_2|data_tracks_2|match_part|match_part_select" value="false"/>
-      <param name="track_groups_2|data_tracks_2|jbcolor_scale|color_score|color_score_select" value="score"/>
-      <param name="track_groups_2|data_tracks_2|jbcolor_scale|color_score|score_scaling" value="linear"/>
-      <param name="track_groups_2|data_tracks_2|jbcolor_scale|color_score|score_scales|scale_select" value="automatic"/>
-      <param name="track_groups_2|data_tracks_2|jbcolor_scale|color_score|score_scales|minimum" value="0"/>
-      <param name="track_groups_2|data_tracks_2|jbcolor_scale|color_score|score_scales|maximum" value="1000"/>
-      <param name="track_groups_2|data_tracks_2|jbcolor_scale|color_score|color_scheme|score_scheme" value="opacity"/>
-      <param name="track_groups_2|data_tracks_2|jbcolor_scale|color_score|color_scheme|color_select" value="automatic"/>
-      <param name="track_groups_2|data_tracks_3|data_format" value="gene_calls"/>
-      <param name="track_groups_2|data_tracks_3|annotation" value="gff3/1.gff"/>
-      <param name="track_groups_2|data_tracks_3|match_part|match_part_select" value="false"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|color_score_select" value="score"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|score_scaling" value="linear"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|score_scales|scale_select" value="automatic"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|score_scales|minimum" value="0"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|score_scales|maximum" value="1000"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|color_scheme|score_scheme" value="opacity"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|color_scheme|color_select" value="manual"/>
-      <param name="track_groups_2|data_tracks_3|jbcolor_scale|color_score|color_scheme|style_color" value="#ff0000"/>
+      <repeat name="track_groups">
+        <param name="category" value="Scaled Colour" />
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/1.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="false"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="score"/>
+                        <param name="score_scaling" value="linear"/>
+                        <conditional name="score_scales">
+                            <param name="scale_select" value="automatic"/>
+                        </conditional>
+                        <conditional name="color_scheme">
+                            <param name="score_scheme" value="opacity"/>
+                            <conditional name="color">
+                                <param name="color_select" value="automatic"/>
+                            </conditional>
+                        </conditional>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/1.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="false"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="score"/>
+                        <param name="score_scaling" value="linear"/>
+                        <conditional name="score_scales">
+                            <param name="scale_select" value="automatic"/>
+                        </conditional>
+                        <conditional name="color_scheme">
+                            <param name="score_scheme" value="opacity"/>
+                            <conditional name="color">
+                                <param name="color_select" value="manual"/>
+                                <param name="style_color" value="#0000ff"/>
+                            </conditional>
+                        </conditional>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/1.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="false"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="score"/>
+                        <param name="score_scaling" value="linear"/>
+                        <conditional name="score_scales">
+                            <param name="scale_select" value="manual"/>
+                            <param name="minimum" value="0"/>
+                            <param name="maximum" value="1000"/>
+                        </conditional>
+                        <conditional name="color_scheme">
+                            <param name="score_scheme" value="opacity"/>
+                            <conditional name="color">
+                                <param name="color_select" value="automatic"/>
+                            </conditional>
+                        </conditional>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/1.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="false"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="score"/>
+                        <param name="score_scaling" value="linear"/>
+                        <conditional name="score_scales">
+                            <param name="scale_select" value="manual"/>
+                            <param name="minimum" value="0"/>
+                            <param name="maximum" value="1000"/>
+                        </conditional>
+                        <conditional name="color_scheme">
+                            <param name="score_scheme" value="opacity"/>
+                            <conditional name="color">
+                                <param name="color_select" value="manual"/>
+                                <param name="style_color" value="#ff0000"/>
+                            </conditional>
+                        </conditional>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+      </repeat>
 
-      <param name="track_groups_3|category" value="Realistic" />
-      <param name="track_groups_3|data_tracks_0|data_format" value="gene_calls"/>
-      <param name="track_groups_3|data_tracks_0|annotation" value="gff3/interpro.gff"/>
-      <param name="track_groups_3|data_tracks_0|match_part|match_part_select" value="false"/>
-      <param name="track_groups_3|data_tracks_0|jbcolor_scale|color_score|color_score_select" value="none"/>
-      <param name="track_groups_3|data_tracks_0|jbcolor_scale|color|color_select" value="automatic"/>
-      <param name="track_groups_3|data_tracks_1|data_format" value="gene_calls"/>
-      <param name="track_groups_3|data_tracks_1|annotation" value="gff3/2.gff"/>
-      <param name="track_groups_3|data_tracks_1|match_part|match_part_select" value="true"/>
-      <param name="track_groups_3|data_tracks_1|match_part|name" value="cDNA_match"/>
-      <param name="track_groups_3|data_tracks_1|jbcolor_scale|color_score|color_score_select" value="none"/>
-      <param name="track_groups_3|data_tracks_1|jbcolor_scale|color|color_select" value="automatic"/>
+      <repeat name="track_groups">
+        <param name="category" value="Realistic" />
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/interpro.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="false"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="none"/>
+                    </conditional>
+                    <conditional name="color">
+                        <param name="color_select" value="automatic"/>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+        <repeat name="data_tracks">
+            <conditional name="data_format">
+                <param name="data_format_select" value="gene_calls"/>
+                <param name="annotation" value="gff3/2.gff"/>
+                <conditional name="match_part">
+                    <param name="match_part_select" value="true"/>
+                    <param name="name" value="cDNA_match"/>
+                </conditional>
+                <section name="jbcolor_scale">
+                    <conditional name="color_score">
+                        <param name="color_score_select" value="none"/>
+                    </conditional>
+                    <conditional name="color">
+                        <param name="color_select" value="automatic"/>
+                    </conditional>
+                </section>
+            </conditional>
+        </repeat>
+      </repeat>
 
       <param name="uglyTestingHack" value="enabled" />
-      <output name="output" file="gff3/test.xml" />
+      <output name="output" file="gff3/test.xml" lines_diff="24" />
     </test>
-    -->
+    <test>
+        <param name="reference_genome|genome_type_select" value="history"/>
+        <param name="reference_genome|genomes" value="merlin.fa"/>
+        <param name="gencode" value="11" />
+        <param name="standalone" value="Data Directory" />
+
+        <repeat name="track_groups">
+            <param name="category" value="With menu or index" />
+            <repeat name="data_tracks">
+                <conditional name="data_format">
+                    <param name="data_format_select" value="gene_calls"/>
+                    <param name="annotation" value="gff3/1.gff"/>
+                    <conditional name="match_part">
+                        <param name="match_part_select" value="false"/>
+                    </conditional>
+                    <section name="jbcolor_scale">
+                        <conditional name="color_score">
+                            <param name="color_score_select" value="none"/>
+                        </conditional>
+                        <conditional name="color">
+                            <param name="color_select" value="automatic"/>
+                        </conditional>
+                    </section>
+                    <section name="jbmenu">
+                        <repeat name="track_menu">
+                            <param name="menu_action" value="iframeDialog"/>
+                            <param name="menu_label" value="Some menu item"/>
+                            <param name="menu_title" value="Frame title"/>
+                            <param name="menu_url" value="https://example.com/#!/?id={name}&amp;q={type}&amp;z=&quot;{end}&quot;"/>
+                            <param name="menu_icon" value="dijitIconNewTask"/>
+                        </repeat>
+                        <repeat name="track_menu">
+                            <param name="menu_action" value="newWindow"/>
+                            <param name="menu_label" value="Another menu item"/>
+                            <param name="menu_title" value="Frame title 2"/>
+                            <param name="menu_url" value="https://example.com/#!/?id={name}&amp;q={type}&amp;z=&quot;{end}&quot;"/>
+                        </repeat>
+                    </section>
+                </conditional>
+            </repeat>
+            <repeat name="data_tracks">
+                <conditional name="data_format">
+                    <param name="data_format_select" value="gene_calls"/>
+                    <param name="annotation" value="gff3/1.gff"/>
+                    <param name="index" value="true"/>
+                    <conditional name="match_part">
+                        <param name="match_part_select" value="false"/>
+                    </conditional>
+                    <section name="jbcolor_scale">
+                        <conditional name="color_score">
+                            <param name="color_score_select" value="none"/>
+                        </conditional>
+                        <conditional name="color">
+                            <param name="color_select" value="automatic"/>
+                        </conditional>
+                    </section>
+                </conditional>
+            </repeat>
+        </repeat>
+
+        <param name="uglyTestingHack" value="enabled" />
+        <output name="output" file="menus/test.xml" lines_diff="6"/>
+    </test>
   </tests>
   <help><![CDATA[
 JBrowse-in-Galaxy
@@ -505,12 +737,6 @@
 JBrowse-in-Galaxy offers a highly configurable, workflow-compatible
 alternative to Trackster.
 
-Overview
---------
-
-JBrowse is a fast, embeddable genome browser built completely with
-JavaScript and HTML5.
-
 The JBrowse-in-Galaxy (JiG) tool was written to help build complex
 JBrowse installations straight from Galaxy, taking advantage of the
 latest Galaxy features such as dataset collections, sections, and colour
@@ -587,7 +813,7 @@
 consists of top level ``match`` features, with a child ``match_part``
 feature, and is often used in displaying alignments. (See "Alignments"
 section on the `GFF3
-specification <http://www.sequenceontology.org/gff3.shtml>`__ for more
+specification <https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md>`__ for more
 information). If the data is match/match part, you will need to specify
 the top level match feature name, as it can be one of a few different SO
 terms, and JiG does not yet have the ability to understand SO terms.
@@ -755,8 +981,5 @@
 
 @ATTRIBUTION@
 ]]></help>
-  <citations>
-    <citation type="doi">10.1101/gr.094607.109</citation>
-  </citations>
+  <expand macro="citations"/>
 </tool>
-