Repository 'jbrowse2'
hg clone https://toolshed.g2.bx.psu.edu/repos/fubar/jbrowse2

Changeset 97:74074746ccd8 (2024-06-01)
Previous changeset 96:5ef1ba2031f2 (2024-04-25) Next changeset 98:b1260bca5fdc (2024-06-05)
Commit message:
planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 1c04ea76330d0148a7682b3c26846e5a5df21f99
modified:
autogenJB2.py
jbrowse2.py
jbrowse2.xml
macros.xml
readme.rst
added:
README.md
Screenshot at 2024-04-30 16-11-29.png
dm4_in_jb2.png
jb210demotracks.png
jb2_samplerMay5.png
jbrowse8.png
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 Screenshot at 2024-04-30 16-11-29.png
b
Binary file Screenshot at 2024-04-30 16-11-29.png has changed
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 autogenJB2.py
--- a/autogenJB2.py Thu Apr 25 07:25:52 2024 +0000
+++ b/autogenJB2.py Sat Jun 01 05:37:13 2024 +0000
[
@@ -77,7 +77,7 @@
                     for i, x in enumerate(genome_paths)
                 ],
             )
-            logging.debug("@@@ paths=%s, genomes=%s" % (genome_paths, genomes))
+            logging.debug("@@@autogenJB2 paths=%s, genomes=%s" % (genome_paths, genomes))
             assref_name = jc.process_genomes(genomes[0])
             if not default_session_data.get(assref_name, None):
                 default_session_data[assref_name] = {
@@ -90,7 +90,6 @@
                     },
                 }
             listtracks = trackList
-            # foo.paf must have a foo_paf.fasta or fasta.gz to match
             tnames = [x[2] for x in listtracks]
             texts = [x[1] for x in listtracks]
             for i, track in enumerate(listtracks):
@@ -105,22 +104,20 @@
                 if tpath.startswith("http://") or tpath.startswith("https://"):
                     useuri = "yes"
                 if trext == "paf":
-                    refname = trackname + "_paf.fasta"
-                    refdat = [x[2] for x in listtracks if x[2] == refname]
-                    if not refdat:
+                    refdat = ["%s ~ %s" % (x[0],x[2]) for x in listtracks if x[1] in ["fasta", "fasta.gz"]]
+                    if len(refdat) == 0:
                         jc.logging.warn(
-                            "!! No reference file %s corresponding to paf file %s found. Not building - there must be a corresponding fasta for each paf"
-                            % (refname, trackname)
+                            "!! No reference file for %s found. Using main reference"
+                            % (refname)
                         )
-                        sys.exit(3)
+                        refdat = ["%s ~ %s" % (genomes[0].path, assref_name),]
                     else:
                         track_conf.update(
                             {
                                 "conf": {
                                     "options": {
                                         "paf": {
-                                            "genome": refdat,
-                                            "genome_label": trackname,
+                                            "genome": ",".join(refdat)
                                         }
                                     }
                                 }
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 dm4_in_jb2.png
b
Binary file dm4_in_jb2.png has changed
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 jb210demotracks.png
b
Binary file jb210demotracks.png has changed
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 jb2_samplerMay5.png
b
Binary file jb2_samplerMay5.png has changed
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 jbrowse2.py
--- a/jbrowse2.py Thu Apr 25 07:25:52 2024 +0000
+++ b/jbrowse2.py Sat Jun 01 05:37:13 2024 +0000
[
b'@@ -22,7 +22,7 @@\n JB2VER = "v2.11.0"\n # version pinned if cloning - but not cloning now\n logCommands = True\n-# useful for seeing what\'s being written but not for production setups\n+# useful for seeing what\'s being written but NOT for production setups\n TODAY = datetime.datetime.now().strftime("%Y-%m-%d")\n SELF_LOCATION = os.path.dirname(os.path.realpath(__file__))\n GALAXY_INFRASTRUCTURE_URL = None\n@@ -41,32 +41,6 @@\n }\n \n \n-INDEX_TEMPLATE = """<!doctype html>\n-<html lang="en" style="height:100%">\n-<head>\n-<meta charset="utf-8"/>\n-<link rel="shortcut icon" href="./favicon.ico"/>\n-<meta name="viewport" content="width=device-width,initial-scale=1"/>\n-<meta name="theme-color" content="#000000"/>\n-<meta name="description" content="A fast and flexible genome browser"/>\n-<link rel="manifest" href="./manifest.json"/>\n-<title>JBrowse</title>\n-</script>\n-</head>\n-<body style="overscroll-behavior:none; height:100%; margin: 0;">\n-<iframe\n-  id="jbframe"\n-  title="JBrowse2"\n-  frameborder="0"\n-  width="100%"\n-  height="100%"\n-  src=\'index_noview.html?config=config.json__SESSION_SPEC__\'>\n-</iframe>\n-</body>\n-</html>\n-"""\n-\n-\n class ColorScaling(object):\n \n     COLOR_FUNCTION_TEMPLATE = """\n@@ -491,7 +465,8 @@\n             nrow = len(fl)\n         else:\n             try:\n-                scontext = ssl.SSLContext(ssl.PROTOCOL_TLS)\n+                scontext = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n+                scontext.check_hostname = False\n                 scontext.verify_mode = ssl.VerifyMode.CERT_NONE\n                 with urllib.request.urlopen(url, context=scontext) as f:\n                     fl = f.readlines()\n@@ -544,7 +519,8 @@\n         """\n         if useuri:\n             faname = fapath\n-            scontext = ssl.SSLContext(ssl.PROTOCOL_TLS)\n+            scontext = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n+            scontext.check_hostname = False\n             scontext.verify_mode = ssl.VerifyMode.CERT_NONE\n             with urllib.request.urlopen(url=faname + ".fai", context=scontext) as f:\n                 fl = f.readline()\n@@ -897,7 +873,7 @@\n             genseqad = gsa[0]["genome_sequence_adapter"]\n         else:\n             genseqad = "Not found"\n-            logging.warn("No adapter found for cram %s in gsa=%s" % (tId, gsa))\n+            logging.warning("No adapter found for cram %s in gsa=%s" % (tId, gsa))\n         if useuri:\n             url = data\n         else:\n@@ -965,7 +941,7 @@\n             url = data\n         else:\n             url = tId\n-            dest = "%s/%s" % (self.outdir, url)\n+            dest = os.path.join(self.outdir, url)\n             cmd = "bgzip -c %s  > %s" % (data, dest)\n             self.subprocess_popen(cmd)\n             cmd = ["tabix", "-f", "-p", "vcf", dest]\n@@ -1032,7 +1008,7 @@\n             url = trackData["path"]\n         else:\n             url = tId + ".gz"\n-            dest = "%s/%s" % (self.outdir, url)\n+            dest = os.path.join(self.outdir, url)\n             self._sort_gff(data, dest)\n         categ = trackData["category"]\n         trackDict = {\n@@ -1078,7 +1054,7 @@\n             url = data\n         else:\n             url = tId + ".gz"\n-            dest = "%s/%s" % (self.outdir, url)\n+            dest = os.path.join(self.outdir, url)\n             self._sort_bed(data, dest)\n         trackDict = {\n             "type": "FeatureTrack",\n@@ -1125,7 +1101,7 @@\n         url = tId\n         useuri = data.startswith("http://") or data.startswith("https://")\n         if not useuri:\n-            dest = "%s/%s" % (self.outdir, url)\n+            dest = os.path.join(self.outdir, url)\n             self.symlink_or_copy(os.path.realpath(data), dest)\n             nrow = self.getNrow(dest)\n         else:\n@@ -1327,6 +1303,7 @@\n          https://github.com/abretaud/tools-iuc/blob/jbrowse2/tools/jbrowse2/jbrowse2.py\n         """\n         # TODO using the default session for now, but check out session specs in the future https://github.com/GMOD/jbrowse-components/issues/2708\n+        bpPerPx = 50 '..b'     % ddl\n                         )\n+            view_json = {\n+                "type": "LinearGenomeView",\n+                "offsetPx": 0,\n+                "bpPerPx" : bpPerPx,\n+                "minimized": False,\n+                "tracks": tracks_data\n+            }\n             if drdict.get("refName", None):\n                 # TODO displayedRegions is not just zooming to the region, it hides the rest of the chromosome\n                 view_json["displayedRegions"] = [\n@@ -1415,7 +1392,6 @@\n         for key, value in mapped_chars.items():\n             session_name = session_name.replace(value, key)\n         session_json["name"] = session_name\n-\n         if "views" not in session_json:\n             session_json["views"] = session_views\n         else:\n@@ -1429,14 +1405,7 @@\n \n     def add_defsess_to_index(self, data):\n         """\n-        PROBABLY NOW BROKEN by changes since this was deprecated temporarily as at April 18\n-\n-        Included on request of the new codeowner, from Anthony\'s IUC PR.\n-        Had to be fixed to keep each assembly with the associated tracks for a default view.\n-        Originally used only the first assembly, putting all tracks there and so breaking some\n-        when tested with 2 or more.\n-\n-         ----------------------------------------------------------\n+        ----------------------------------------------------------\n         Add some default session settings: set some assemblies/tracks on/off\n \n         This allows to select a default view:\n@@ -1461,6 +1430,33 @@\n         https://github.com/GMOD/jbrowse-components/discussions/3568\n         https://github.com/GMOD/jbrowse-components/pull/4148\n         """\n+\n+\n+        INDEX_TEMPLATE = """<!doctype html>\n+        <html lang="en" style="height:100%">\n+        <head>\n+        <meta charset="utf-8"/>\n+        <link rel="shortcut icon" href="./favicon.ico"/>\n+        <meta name="viewport" content="width=device-width,initial-scale=1"/>\n+        <meta name="theme-color" content="#000000"/>\n+        <meta name="description" content="A fast and flexible genome browser"/>\n+        <link rel="manifest" href="./manifest.json"/>\n+        <title>JBrowse</title>\n+        </script>\n+        </head>\n+        <body style="overscroll-behavior:none; height:100%; margin: 0;">\n+        <iframe\n+        id="jbframe"\n+        title="JBrowse2"\n+        frameborder="0"\n+        width="100%"\n+        height="100%"\n+        src=\'index_noview.html?config=config.json__SESSION_SPEC__\'>\n+        </iframe>\n+        </body>\n+        </html>\n+        """\n+\n         new_index = "Nothing written"\n         session_spec = {"views": []}\n         logging.debug("def ass_first=%s\\ndata=%s" % (self.ass_first_contigs, data))\n@@ -1544,10 +1540,15 @@\n             "version.txt",\n             "test_data",\n         ]:\n-            cmd = ["rm", "-rf", os.path.join(dest, fn)]\n-            self.subprocess_check_call(cmd)\n-        cmd = ["cp", os.path.join(INSTALLED_TO, "jb2_webserver.py"), dest]\n-        self.subprocess_check_call(cmd)\n+            try:\n+                path = os.path.join(dest, fn)\n+                if os.path.isdir(path):\n+                    shutil.rmtree(path)\n+                else:\n+                    os.remove(path)\n+            except OSError as e:\n+                log.error("Error: %s - %s." % (e.filename, e.strerror))\n+        shutil.copyfile(os.path.join(INSTALLED_TO, "jb2_webserver.py"), os.path.join(dest, "jb2_webserver.py"))\n \n \n def parse_style_conf(item):\n@@ -1561,7 +1562,7 @@\n     parser = argparse.ArgumentParser(description="", epilog="")\n     parser.add_argument("--xml", help="Track Configuration")\n     parser.add_argument(\n-        "--jbrowse2path", help="Path to JBrowse2 directory in biocontainer or Conda"\n+        "--jbrowse2path", help="Path to JBrowse2 directory in BioContainer or Conda"\n     )\n     parser.add_argument("--outdir", help="Output directory", default="out")\n     parser.add_argument("--version", "-V", action="version", version=JB2VER)\n'
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 jbrowse2.xml
--- a/jbrowse2.xml Thu Apr 25 07:25:52 2024 +0000
+++ b/jbrowse2.xml Sat Jun 01 05:37:13 2024 +0000
[
b'@@ -3,12 +3,23 @@\n     <macros>\n         <import>macros.xml</import>\n     </macros>\n-    <expand macro="edamInc" />\n+    <expand macro="edamInc"/>\n     <xrefs>\n         <xref type="bio.tools">jbrowse2</xref>\n     </xrefs>\n     <expand macro="requirements" />\n+    <expand macro="creators"/>\n     <version_command>python \'${__tool_directory__}/jbrowse2.py\' --version</version_command>\n+    <required_files>\n+        <include path="autogenJB2.py" />\n+        <include path="blastxml_to_gapped_gff3.py" />\n+        <include path="convertMAF.sh" />\n+        <include path="gff3_rebase.py" />\n+        <include path="jb2_urlconf.py" />\n+        <include path="jb2_webserver.py" />\n+        <include path="jbrowse2.py" />\n+        <include path="maf2bed.py" />\n+    </required_files>\n     <command detect_errors="aggressive"><![CDATA[\n mkdir -p \'$output.files_path\' &&\n cp \'$trackxml\' \'$output.files_path/galaxy.xml\' &&\n@@ -19,9 +30,9 @@\n         #if $autoCollection[$key].is_collection:\n             #set subCol=$autoCollection[$key]\n             #set pafs=[($subCol[x],$subcol[x].ext,x) for x in $subCol.keys() if $subCol[x].ext == \'paf\']\n+            #set refs=[($subCol[x],$subcol[x].ext,x) for x in $subCol.keys() if $subCol[x].ext in [\'fasta.gz\',\'fasta\']]\n             #if len($pafs) > 0:\n                  --pafmeta \'$pafs[0]\'\n-                #set refs = [($pafs[0][2],$subCol[x],x) for x in $subCol.keys() if $subCol[x].ext == \'fasta\']\n                 #for $ref in $refs:\n                  --pafreferencemeta \'$ref\'\n                 #end for\n@@ -310,67 +321,39 @@\n ]]></configfile>\n     </configfiles>\n     <inputs>\n-        <repeat name="assemblies" min="1"\n-            title="Genome reference to provide display coordinates for this set of tracks"\n-            help="JBrowse2 can show a set of tracks for each of multiple genome reference fasta files">\n+        <repeat name="assemblies" min="1" title="Genome reference to provide display coordinates for this set of tracks" help="JBrowse2 can show a set of tracks for each of multiple genome reference fasta files">\n             <conditional name="reference_genome">\n-                <param help="Select a built in, history or remote tabix URI for the reference track"\n-                    label="Reference genome source" name="genome_type_select" type="select">\n+                <param name="genome_type_select" type="select" label="Reference genome source" help="Select a built in, history or remote tabix URI for the reference track">\n                     <option selected="True" value="indexed">Use a Galaxy server built-in genome</option>\n                     <option value="history">Use a genome fasta file from the current history</option>\n                     <option value="uri">Provide a URI (e.g. "https://..." for a genome reference as\n                         tabix bgzip with predictable index file URI</option>\n                 </param>\n                 <when value="indexed">\n-                    <param\n-                        help="If not listed, add a custom genome, use a history genome or a remote URI tabix genome"\n-                        label="Select a built in reference genome or custom genome"\n-                        name="genome"\n-                        type="select"\n-                        optional="true">\n+                    <param name="genome" type="select" optional="true" label="Select a built in reference genome or custom genome" help="If not listed, add a custom genome, use a history genome or a remote URI tabix genome">\n                         <options from_data_table="all_fasta">\n-                            <filter column="2" type="sort_by" />\n-                            <validator\n-                                message="No genomes are available for the selected input dataset"\n-                                type="no_options">\n+                            <filter column="2" type="sort_by"/>\n+                            <validator message="No genomes are available for the selec'..b'ion name="jbcolor_scale">\n                                 <conditional name="color_score">\n-                                    <param name="color_score_select" value="none" />\n+                                    <param name="color_score_select" value="none"/>\n                                 </conditional>\n                                 <conditional name="color">\n-                                    <param name="color_select" value="automatic" />\n+                                    <param name="color_select" value="automatic"/>\n                                 </conditional>\n                             </section>\n                         </conditional>\n                     </repeat>\n                     <repeat name="data_tracks">\n                         <conditional name="data_format">\n-                            <param name="data_format_select" value="gff" />\n+                            <param name="data_format_select" value="gff"/>\n                             <conditional name="useuri">\n-                                <param name="annotation" value="gff3/2.gff" />\n-                                <param name="insource" value="history" />\n+                                <param name="annotation" value="gff3/2.gff"/>\n+                                <param name="insource" value="history"/>\n                             </conditional>\n                             <conditional name="match_part">\n-                                <param name="match_part_select" value="true" />\n-                                <param name="name" value="cDNA_match" />\n+                                <param name="match_part_select" value="true"/>\n+                                <param name="name" value="cDNA_match"/>\n                             </conditional>\n                             <section name="jbcolor_scale">\n                                 <conditional name="color_score">\n-                                    <param name="color_score_select" value="none" />\n+                                    <param name="color_score_select" value="none"/>\n                                 </conditional>\n                                 <conditional name="color">\n-                                    <param name="color_select" value="automatic" />\n+                                    <param name="color_select" value="automatic"/>\n                                 </conditional>\n                             </section>\n                         </conditional>\n                     </repeat>\n                 </repeat>\n             </repeat>\n-\n-            <param name="uglyTestingHack" value="enabled" />\n+            <param name="uglyTestingHack" value="enabled"/>\n             <output name="output">\n                 <assert_contents>\n-                    <has_text text="Ignore Scale" />\n-                    <has_text text="A.gff" />\n-                    <has_text text="B.gff" />\n-                    <has_text text="C.gff" />\n-                    <has_text text="interpro.gff" />\n-                    <has_text text="Scaled Colour" />\n-                    <has_text text="1.gff" />\n-                    <has_text text="2.gff" />\n+                    <has_text text="Ignore Scale"/>\n+                    <has_text text="A.gff"/>\n+                    <has_text text="B.gff"/>\n+                    <has_text text="C.gff"/>\n+                    <has_text text="interpro.gff"/>\n+                    <has_text text="Scaled Colour"/>\n+                    <has_text text="1.gff"/>\n+                    <has_text text="2.gff"/>\n                 </assert_contents>\n             </output>\n         </test>\n-\n         <!-- TODO add a synteny test -->\n         <!-- TODO add a bam and a cram test -->\n         <!-- TODO add an hic test -->\n@@ -1275,7 +1197,7 @@\n they should adjust feature locations by 3x.\n \n \n-@ATTRIBUTION@\n ]]></help>\n-    <expand macro="citations" />\n-</tool>\n\\ No newline at end of file\n+    <expand macro="citations"/>\n+    <expand macro="creators"/>\n+</tool>\n'
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 jbrowse8.png
b
Binary file jbrowse8.png has changed
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 macros.xml
--- a/macros.xml Thu Apr 25 07:25:52 2024 +0000
+++ b/macros.xml Sat Jun 01 05:37:13 2024 +0000
b
b'@@ -1,7 +1,6 @@\n-<?xml version="1.0"?>\n <macros>\n     <token name="@TOOL_VERSION@">2.11.0</token>\n-    <xml name = "edamInc">\n+    <xml name="edamInc">\n         <edam_topics>\n             <edam_topic>topic_3307</edam_topic>\n             <edam_topic>topic_0092</edam_topic>\n@@ -33,100 +32,65 @@\n maintained by Ross Lazarus and Bjoern Gruening until the IUC complete their own.\n ]]>\n     </token>\n+    <xml name="creators">\n+        <creator>\n+            <person givenName="Helena" familyName="Rasche" url="https://github.com/hexylena" />\n+            <person givenName="Anthony" familyName="Bretaudeau" url="https://github.com/abretaud" />\n+            <person givenName="Ross" familyName="Lazarus" url="https://github.com/fubar2/" />\n+        </creator>\n+    </xml>\n     <xml name="genome_selector"\n         token_help=""\n         token_label="Fasta sequences"\n         token_optional="False" >\n         <conditional name="reference_genome">\n-            <param help="Built-in references" label="Reference genome to display" name="genome_type_select" type="select">\n+            <param name="genome_type_select" type="select" label="Reference genome to display" help="Built-in references">\n                 <option selected="True" value="indexed">Use a built-in genome</option>\n                 <option value="history">Use a genome from history</option>\n             </param>\n             <when value="indexed">\n-                <param\n-                help="@HELP@"\n-                label="@LABEL@"\n-                name="genomes"\n-                type="select"\n-                optional="@OPTIONAL@"\n-                >\n+                <param name="genomes" type="select" optional="@OPTIONAL@" label="@LABEL@" help="@HELP@">\n                     <options from_data_table="all_fasta">\n-                        <filter column="2" type="sort_by" />\n-                        <validator message="No genomes are available for the selected input dataset" type="no_options" />\n+                        <filter column="2" type="sort_by"/>\n+                        <validator message="No genomes are available for the selected input dataset" type="no_options"/>\n                     </options>\n                 </param>\n             </when>\n             <when value="history">\n-                <param\n-                format="fasta"\n-                label="@LABEL@"\n-                help="@HELP@"\n-                name="genomes"\n-                type="data"\n-                optional="@OPTIONAL@"\n-                multiple="True" />\n+                <param name="genomes" type="data" format="fasta" optional="@OPTIONAL@" label="@LABEL@" help="@HELP@" multiple="True"/>\n             </when>\n         </conditional>\n     </xml>\n-\n-    <xml name="auto_manual_tk"\n-        token_cond_label="Color"\n-        token_cond_name="color"\n-        token_select_label="Color Specification"\n-        token_select_name="color_select"\n-        token_automatic_label="Automatically selected"\n-        token_manual_label="Manual Color Selection">\n+    <xml name="auto_manual_tk" token_cond_label="Color" token_cond_name="color" token_select_label="Color Specification" token_select_name="color_select" token_automatic_label="Automatically selected" token_manual_label="Manual Color Selection">\n         <conditional name="@COND_NAME@" label="@COND_LABEL@">\n-            <param type="select" label="@SELECT_LABEL@" name="@SELECT_NAME@">\n+            <param name="@SELECT_NAME@" type="select" label="@SELECT_LABEL@">\n                 <option value="automatic" selected="true">@AUTOMATIC_LABEL@</option>\n                 <option value="manual">@MANUAL_LABEL@</option>\n             </param>\n             <when value="automatic">\n             </when>\n             <when value="manual">\n-                <yield />\n+                <yield/>\n             </when>\n         </conditional>\n     </xml>\n-\n-    <xml name="jb_color"\n-        token_label="JBrowse style.color"\n-        token_name="style_color"\n-        token_value="golden'..b'      </param>\n             <when value="history">\n-                <param label="@LABEL@" format="@FORMAT@" name="annotation" multiple="True" optional="true" type="data" />\n+                <param name="annotation" type="data" format="@FORMAT@" optional="true" label="@LABEL@" multiple="True"/>\n             </when>\n             <when value="uri">\n-                <param label="@LABEL@" name="annouri"  type="text" />\n-                <param label="Short name for track display" name="annoname" type="text" >\n+                <param name="annouri" type="text" label="@LABEL@"/>\n+                <param name="annoname" type="text" label="Short name for track display">\n                     <sanitizer invalid_char="_">\n-                    <valid initial="string.printable" >\n-                        <remove value="\'" />\n-                    </valid>\n+                        <valid initial="string.printable">\n+                            <remove value="\'"/>\n+                        </valid>\n                     </sanitizer>\n                 </param>\n             </when>\n@@ -562,24 +461,22 @@\n     </xml>\n     <xml name="pafref_conditional" token_label="Track Data" token_format="data">\n         <conditional name="pafuseuri">\n-            <param name="insource" type="select" label="PAF reference data from a history file or an internet URI?"\n-                help="Multiple references can be used for mashmap PAF. A URI source requires all the associated tabix index files to be in place.">\n+            <param name="insource" type="select" label="PAF reference data from a history file or an internet URI?" help="Multiple references can be used for mashmap PAF. A URI source requires all the associated tabix index files to be in place.">\n                 <option value="history" selected="true">PAF reference comparison genome from a history file</option>\n                 <option value="uri">PAF reference comparison genome tabix .gz URI with index files at the corresponding URIs</option>\n             </param>\n             <when value="history">\n-                    <param label="@LABEL@" format="@FORMAT@" name="annotation"  type="data"\n-                        help="Add all PAF reference comparison genomes used to make the PAF" multiple="true" />\n+                <param name="annotation" type="data" format="@FORMAT@" label="@LABEL@" help="Add all PAF reference comparison genomes used to make the PAF" multiple="true"/>\n             </when>\n             <when value="uri">\n                 <repeat name="refuri" title="PAF reference comparison genome URI" min="1">\n-                    <param label="@LABEL@" name="annotation"  type="text" />\n-                    <param label="Short name for this reference" name="annoname" type="text" help="Short names take less track space">\n-                            <sanitizer invalid_char="_">\n-                                <valid initial="string.printable" >\n-                                    <remove value="\'" />\n-                                </valid>\n-                            </sanitizer>\n+                    <param name="annotation" type="text" label="@LABEL@"/>\n+                    <param name="annoname" type="text" label="Short name for this reference" help="Short names take less track space">\n+                        <sanitizer invalid_char="_">\n+                            <valid initial="string.printable">\n+                                <remove value="\'"/>\n+                            </valid>\n+                        </sanitizer>\n                     </param>\n                 </repeat>\n             </when>\n@@ -587,8 +484,8 @@\n     </xml>\n     <xml name="citations">\n         <citations>\n-        <citation type="doi">10.1186/s13059-016-0924-1</citation>\n-        <citation type="doi">10.1101/gr.094607.109</citation>\n+            <citation type="doi">10.1186/s13059-016-0924-1</citation>\n+            <citation type="doi">10.1101/gr.094607.109</citation>\n         </citations>\n     </xml>\n </macros>\n'
b
diff -r 5ef1ba2031f2 -r 74074746ccd8 readme.rst
--- a/readme.rst Thu Apr 25 07:25:52 2024 +0000
+++ b/readme.rst Sat Jun 01 05:37:13 2024 +0000
b
@@ -1,5 +1,16 @@
 JBrowse2 in Galaxy
 ==================
+
+
+Added April 2024:
+Multiple independent assembly/track sets in the same browser now working
+Tests are now far more convincing using the zip outputs to check for files
+Automated collection generation is really cool - TODO: need visibility for each track
+maf and blastxml are working for test files at least - not yet properly tested.
+cool/mcool are converted to hic 
+vcf, cram, bam, bed, gff, bigwig, hic, cool, blastxml, maf, paf tracks.
+
+
 Added Mar 26:
 Testing history added with tests of the 8 simple formats
 hic and paf need small tests but work with big ones...
@@ -29,9 +40,9 @@
 
 .. image:: dm4_in_jb2.png
 
-Other tracks
+Other samples
 
-.. image:: jbrowse8.png
+.. image:: jb2_samplerMay5.png
 
 JBrowse2 is a fast, embeddable genome browser built completely with
 JavaScript and HTML5
@@ -69,17 +80,17 @@
 
 - 2.10.0+galaxy2
 
-    - UPDATED existing JBrowse1.16.11 code to JBrowse 2.10.0
-    - was working well enough for VGP when previous PR discovered
-        - too late to backport all the fixes
-        - working default session and some other ideas copied instead.
-    - seems to work well with defaults.
-    - need to document and implement track settings by running the browser locally.
-    - works well enough to be useful in workflows such as TreeValGal.
-    - JB2 seems to set defaults wisely.
-    - not yet ideal for users who need fine grained track control.
-    - synteny (paf + reference) now working
-    - rehomed at https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 while IUC reviews are slowly sorted out.
+- UPDATED existing JBrowse1.16.11 code to JBrowse 2.10.0
+- was working well enough for VGP when previous PR discovered
+   - too late to backport all the fixes
+   - working default session and some other ideas copied instead.
+- seems to work well with defaults.
+- need to document and implement track settings by running the browser locally.
+- works well enough to be useful in workflows such as TreeValGal.
+- JB2 seems to set defaults wisely.
+- not yet ideal for users who need fine grained track control.
+- synteny (paf + reference) now working
+- rehomed at https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 while IUC reviews are slowly sorted out.
 
 
 Wrapper License (MIT/BSD Style)