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

Changeset 96:5ef1ba2031f2 (2024-04-25)
Previous changeset 95:a0c848f00363 (2024-04-24) Next changeset 97:74074746ccd8 (2024-06-01)
Commit message:
planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 8e40627c0488fc1adf2b7d1e331ca65f533038b2
modified:
__pycache__/jbrowse2.cpython-310.pyc
test-data/jbrowse2_result01.zip
test-data/jbrowse2_result02.zip
added:
jbrowse2.py.apr17
test-data/Merlin
test-data/blastxml/blastn-gene1.xml
test-data/blastxml/merlin.gff
test-data/vcf/test.vcf
test-data/vcf/test.xml
removed:
Galaxy-History-jb2testout.tar.gz
Galaxy-Workflow-_jb2testWF_mar26.ga
all_fasta.loc.sample
config.json
galaxy.xml
jb210demotracks.jpg
jb210demotracks.png
jbrowse8.png
tool_data_table_conf.xml.test
b
diff -r a0c848f00363 -r 5ef1ba2031f2 Galaxy-History-jb2testout.tar.gz
b
Binary file Galaxy-History-jb2testout.tar.gz has changed
b
diff -r a0c848f00363 -r 5ef1ba2031f2 Galaxy-Workflow-_jb2testWF_mar26.ga
--- a/Galaxy-Workflow-_jb2testWF_mar26.ga Wed Apr 24 03:25:23 2024 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,331 +0,0 @@\n-{\n-    "a_galaxy_workflow": "true",\n-    "annotation": "",\n-    "comments": [],\n-    "format-version": "0.1",\n-    "name": "\'jb2testWF_mar26",\n-    "steps": {\n-        "0": {\n-            "annotation": "",\n-            "content_id": null,\n-            "errors": null,\n-            "id": 0,\n-            "input_connections": {},\n-            "inputs": [\n-                {\n-                    "description": "",\n-                    "name": "Merlin"\n-                }\n-            ],\n-            "label": "Merlin",\n-            "name": "Input dataset",\n-            "outputs": [],\n-            "position": {\n-                "left": 0,\n-                "top": 0\n-            },\n-            "tool_id": null,\n-            "tool_state": "{\\"optional\\": false, \\"tag\\": null}",\n-            "tool_version": null,\n-            "type": "data_input",\n-            "uuid": "60c939a2-b9c9-47cd-9ef4-6415e87a1680",\n-            "when": null,\n-            "workflow_outputs": []\n-        },\n-        "1": {\n-            "annotation": "",\n-            "content_id": null,\n-            "errors": null,\n-            "id": 1,\n-            "input_connections": {},\n-            "inputs": [\n-                {\n-                    "description": "",\n-                    "name": "merlin.bw"\n-                }\n-            ],\n-            "label": "merlin.bw",\n-            "name": "Input dataset",\n-            "outputs": [],\n-            "position": {\n-                "left": 0,\n-                "top": 102\n-            },\n-            "tool_id": null,\n-            "tool_state": "{\\"optional\\": false, \\"tag\\": null}",\n-            "tool_version": null,\n-            "type": "data_input",\n-            "uuid": "97251b21-c6c4-4ef9-b985-0cf90f1d2f75",\n-            "when": null,\n-            "workflow_outputs": []\n-        },\n-        "2": {\n-            "annotation": "",\n-            "content_id": null,\n-            "errors": null,\n-            "id": 2,\n-            "input_connections": {},\n-            "inputs": [\n-                {\n-                    "description": "",\n-                    "name": "merlinlastz.maf"\n-                }\n-            ],\n-            "label": "merlinlastz.maf",\n-            "name": "Input dataset",\n-            "outputs": [],\n-            "position": {\n-                "left": 0,\n-                "top": 204\n-            },\n-            "tool_id": null,\n-            "tool_state": "{\\"optional\\": false, \\"tag\\": null}",\n-            "tool_version": null,\n-            "type": "data_input",\n-            "uuid": "41961b03-3ea3-4fe4-a45e-85e2f74b8a48",\n-            "when": null,\n-            "workflow_outputs": []\n-        },\n-        "3": {\n-            "annotation": "",\n-            "content_id": null,\n-            "errors": null,\n-            "id": 3,\n-            "input_connections": {},\n-            "inputs": [\n-                {\n-                    "description": "",\n-                    "name": "merlinblast.xml"\n-                }\n-            ],\n-            "label": "merlinblast.xml",\n-            "name": "Input dataset",\n-            "outputs": [],\n-            "position": {\n-                "left": 0,\n-                "top": 327\n-            },\n-            "tool_id": null,\n-            "tool_state": "{\\"optional\\": false, \\"tag\\": null}",\n-            "tool_version": null,\n-            "type": "data_input",\n-            "uuid": "544106a0-44ea-40c9-8c55-ff5100110ae2",\n-            "when": null,\n-            "workflow_outputs": []\n-        },\n-        "4": {\n-            "annotation": "",\n-            "content_id": null,\n-            "errors": null,\n-            "id": 4,\n-            "input_connections": {},\n-            "inputs": [\n-                {\n-                    "description": "",\n-                    "name": "merlin-sample.bam"\n-                }\n-            ],\n-            "label": "merlin-sample.bam",\n-            "name": "Input dataset",\n-            "outputs": [],\n-            "position": {\n-   '..b'f\\", \\"__current_case__\\": 6, \\"useuri\\": {\\"insource\\": \\"history\\", \\"__current_case__\\": 0, \\"annotation\\": {\\"__class__\\": \\"ConnectedValue\\"}}, \\"jbstyle\\": {\\"track_style\\": {\\"display\\": \\"LinearBasicDisplay\\", \\"__current_case__\\": 1, \\"show_labels\\": false, \\"show_descriptions\\": false, \\"display_mode\\": \\"normal\\", \\"max_height\\": \\"600\\", \\"label\\": \\"jexl:get(feature,\'name\') || get(feature,\'id\')\\", \\"description\\": \\"jexl:get(feature,\'note\') || get(feature,\'description\')\\"}}, \\"track_visibility\\": \\"default_on\\"}}, {\\"__index__\\": 2, \\"data_format\\": {\\"data_format_select\\": \\"blastxml\\", \\"__current_case__\\": 0, \\"useuri\\": {\\"insource\\": \\"history\\", \\"__current_case__\\": 0, \\"annotation\\": {\\"__class__\\": \\"ConnectedValue\\"}}, \\"blast_parent\\": null, \\"min_gap\\": \\"10\\", \\"is_protein\\": false, \\"jbstyle\\": {\\"track_style\\": {\\"display\\": \\"LinearBasicDisplay\\", \\"__current_case__\\": 1, \\"show_labels\\": false, \\"show_descriptions\\": false, \\"display_mode\\": \\"normal\\", \\"max_height\\": \\"600\\", \\"label\\": \\"jexl:get(feature,\'name\') || get(feature,\'id\')\\", \\"description\\": \\"jexl:get(feature,\'note\') || get(feature,\'description\')\\"}}, \\"track_visibility\\": \\"default_on\\"}}]}, {\\"__index__\\": 1, \\"category\\": \\"two\\", \\"data_tracks\\": [{\\"__index__\\": 0, \\"data_format\\": {\\"data_format_select\\": \\"bam\\", \\"__current_case__\\": 3, \\"useuri\\": {\\"insource\\": \\"history\\", \\"__current_case__\\": 0, \\"annotation\\": {\\"__class__\\": \\"ConnectedValue\\"}}, \\"track_visibility\\": \\"default_on\\"}}, {\\"__index__\\": 1, \\"data_format\\": {\\"data_format_select\\": \\"cram\\", \\"__current_case__\\": 5, \\"useuri\\": {\\"insource\\": \\"history\\", \\"__current_case__\\": 0, \\"annotation\\": {\\"__class__\\": \\"ConnectedValue\\"}}, \\"track_visibility\\": \\"default_on\\"}}]}, {\\"__index__\\": 2, \\"category\\": \\"three\\", \\"data_tracks\\": [{\\"__index__\\": 0, \\"data_format\\": {\\"data_format_select\\": \\"gff\\", \\"__current_case__\\": 2, \\"useuri\\": {\\"insource\\": \\"history\\", \\"__current_case__\\": 0, \\"annotation\\": {\\"__class__\\": \\"ConnectedValue\\"}}, \\"match_part\\": {\\"match_part_select\\": \\"false\\", \\"__current_case__\\": 1}, \\"jbstyle\\": {\\"track_style\\": {\\"display\\": \\"LinearBasicDisplay\\", \\"__current_case__\\": 1, \\"show_labels\\": false, \\"show_descriptions\\": false, \\"display_mode\\": \\"normal\\", \\"max_height\\": \\"600\\", \\"label\\": \\"jexl:get(feature,\'name\') || get(feature,\'id\')\\", \\"description\\": \\"jexl:get(feature,\'note\') || get(feature,\'description\')\\"}}, \\"track_visibility\\": \\"default_on\\"}}, {\\"__index__\\": 1, \\"data_format\\": {\\"data_format_select\\": \\"bed\\", \\"__current_case__\\": 4, \\"useuri\\": {\\"insource\\": \\"history\\", \\"__current_case__\\": 0, \\"annotation\\": {\\"__class__\\": \\"ConnectedValue\\"}}, \\"jbstyle\\": {\\"track_style\\": {\\"display\\": \\"LinearBasicDisplay\\", \\"__current_case__\\": 1, \\"show_labels\\": false, \\"show_descriptions\\": false, \\"display_mode\\": \\"normal\\", \\"max_height\\": \\"600\\", \\"label\\": \\"jexl:get(feature,\'name\') || get(feature,\'id\')\\", \\"description\\": \\"jexl:get(feature,\'note\') || get(feature,\'description\')\\"}}, \\"track_visibility\\": \\"default_on\\"}}, {\\"__index__\\": 2, \\"data_format\\": {\\"data_format_select\\": \\"vcf\\", \\"__current_case__\\": 1, \\"useuri\\": {\\"insource\\": \\"history\\", \\"__current_case__\\": 0, \\"annotation\\": {\\"__class__\\": \\"ConnectedValue\\"}}, \\"jbstyle\\": {\\"track_style\\": {\\"display\\": \\"LinearVariantDisplay\\", \\"__current_case__\\": 0, \\"show_labels\\": false, \\"show_descriptions\\": false, \\"display_mode\\": \\"normal\\", \\"max_height\\": \\"600\\"}}, \\"track_visibility\\": \\"default_on\\"}}]}], \\"uglyTestingHack\\": \\"\\", \\"__page__\\": null, \\"__rerun_remap_job_id__\\": null}",\n-            "tool_version": "2.10.1+galaxy2_7",\n-            "type": "tool",\n-            "uuid": "ab05b81c-a0a2-4dcc-b76a-e47b15ebcdb9",\n-            "when": null,\n-            "workflow_outputs": []\n-        }\n-    },\n-    "tags": [],\n-    "uuid": "ea921c36-b1bb-4d82-9d35-5965daa3d3b2",\n-    "version": 1\n-}\n\\ No newline at end of file\n'
b
diff -r a0c848f00363 -r 5ef1ba2031f2 __pycache__/jbrowse2.cpython-310.pyc
b
Binary file __pycache__/jbrowse2.cpython-310.pyc has changed
b
diff -r a0c848f00363 -r 5ef1ba2031f2 all_fasta.loc.sample
--- a/all_fasta.loc.sample Wed Apr 24 03:25:23 2024 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,18 +0,0 @@
-#This file lists the locations and dbkeys of all the fasta files
-#under the "genome" directory (a directory that contains a directory
-#for each build). The script extract_fasta.py will generate the file
-#all_fasta.loc. This file has the format (white space characters are
-#TAB characters):
-#
-#<unique_build_id> <dbkey> <display_name> <file_path>
-#
-#So, all_fasta.loc could look something like this:
-#
-#apiMel3 apiMel3 Honeybee (Apis mellifera): apiMel3 /path/to/genome/apiMel3/apiMel3.fa
-#hg19canon hg19 Human (Homo sapiens): hg19 Canonical /path/to/genome/hg19/hg19canon.fa
-#hg19full hg19 Human (Homo sapiens): hg19 Full /path/to/genome/hg19/hg19full.fa
-#
-#Your all_fasta.loc file should contain an entry for each individual
-#fasta file. So there will be multiple fasta files for each build,
-#such as with hg19 above.
-#
b
diff -r a0c848f00363 -r 5ef1ba2031f2 config.json
--- a/config.json Wed Apr 24 03:25:23 2024 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,9 +0,0 @@
-{
-  "assemblies": [],
-  "configuration": {},
-  "connections": [],
-  "defaultSession": {
-    "name": "New Session"
-  },
-  "tracks": []
-}
\ No newline at end of file
b
diff -r a0c848f00363 -r 5ef1ba2031f2 galaxy.xml
--- a/galaxy.xml Wed Apr 24 03:25:23 2024 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,607 +0,0 @@\n-<?xml version="1.0"?>\n-<root>\n-    <metadata>\n-        <general>\n-            <defaultLocation></defaultLocation>\n-            <zipOut>true</zipOut>\n-            <analytics>false</analytics>\n-            <primary_color>#0d233f</primary_color>\n-            <secondary_color>#721e63</secondary_color>\n-            <tertiary_color>#135560</tertiary_color>\n-            <quaternary_color>#ffb11d</quaternary_color>\n-            <font_size>10</font_size>\n-            <session_name>New test session</session_name>\n-        </general>\n-        <galaxyUrl>http://localhost:8080</galaxyUrl>\n-    </metadata>\n-    <assembly>\n-        <metadata>\n-            <genomes>\n-                  <genome path="/tmp/tmpaivwlly7/files/2/6/5/dataset_265ba9ba-75c3-49ca-be12-7c34a7b56380.dat" label="Merlin" useuri="no">\n-                    <metadata>\n-\n-                      <dataset id="e3f2f10afcaf3f83"\n-                          hid="1"\n-                          size="171.6 KB"\n-                          edam_format="format_1929"\n-                          file_ext="fasta"\n-                          dname = "Merlin"\n-                          />\n-                      <history\n-                          user_email="planemo@galaxyproject.org"\n-                          user_id="1"\n-                          display_name="Tool Test History for jbrowse2/2.10.1+galaxy2_15-0"/>\n-                          id="e3f2f10afcaf3f83"\n-                          />\n-                      <metadata\n-                              dbkey="?"\n-                              data_lines="2881"\n-                              sequences="1"\n-                          />\n-                      <tool\n-                          tool_id="upload1"\n-                          tool_version="1.1.7"\n-                          />\n-\n-                    </metadata>\n-                  </genome>\n-            </genomes>\n-    </metadata>\n-    <tracks>\n-                    <track cat="Assembly properties" format="gff" visibility="default_on">\n-                    <files>\n-                              <trackFile path="/tmp/tmpaivwlly7/files/8/d/6/dataset_8d6c2542-1af4-4bd1-ab96-98e31f60a542.dat" ext="gff3" label="merlin.gff3" useuri="no">\n-                                <metadata>\n-\n-                                  <dataset id="6e131a28d20492ec" hid="2"\n-                                      size="5.0 KB"\n-                                      edam_format="format_1975"\n-                                      file_ext="gff3" />\n-                                  <history id="e3f2f10afcaf3f83"\n-                                      user_email="planemo@galaxyproject.org"\n-                                      user_id="1"\n-                                      display_name="Tool Test History for jbrowse2/2.10.1+galaxy2_15-0"/>\n-\n-                                  <metadata\n-                                        dbkey="?"\n-                                        data_lines="9"\n-                                        comment_lines="10"\n-                                        columns="9"\n-                                        column_names="[]"\n-                                        delimiter="__tc__"\n-                                        attributes="23"\n-                                      />\n-                                  <tool\n-                                      tool_id="upload1"\n-                                      tool_version="1.1.7"\n-                                      />\n-                                </metadata>\n-                              </trackFile>\n-                    </files>\n-                      <options>\n-                        <style>\n-                                <type>LinearBasicDisplay</type>\n-                                    <trackShowLabels>false</trackShowLabels>\n-                                    <trackShowDescriptions>false</trackShowDescriptions>\n-                        </style>\n-                            <gff>\n- '..b's>\n-                        <style>\n-                        </style>\n-                            <paf>\n-                                <genome>\n-                                        /tmp/tmpaivwlly7/files/2/e/c/dataset_2ecf769e-1708-4c31-9ed6-674860dbe9a1.dat ~ Ppersica1.fa,\n-                                </genome>\n-                                <useuri>\n-                                    false\n-                                </useuri>\n-                            </paf>\n-                        </options>\n-                  </track>\n-                    <track cat="Assembly properties" format="paf" visibility="default_on">\n-                    <files>\n-                              <trackFile path="/tmp/tmpaivwlly7/files/9/0/2/dataset_90280415-a7d6-44d2-8dfb-76d81e020377.dat" ext="paf" label="arabgrapepeach.paf" useuri="no">\n-                                <metadata>\n-\n-                                  <dataset id="7d8a901b0ce79e73" hid="15"\n-                                      size="12.8 MB"\n-                                      edam_format="format_2330"\n-                                      file_ext="paf" />\n-                                  <history id="e3f2f10afcaf3f83"\n-                                      user_email="planemo@galaxyproject.org"\n-                                      user_id="1"\n-                                      display_name="Tool Test History for jbrowse2/2.10.1+galaxy2_15-0"/>\n-\n-                                  <metadata\n-                                        dbkey="?"\n-                                        data_lines="129777"\n-                                      />\n-                                  <tool\n-                                      tool_id="upload1"\n-                                      tool_version="1.1.7"\n-                                      />\n-                                </metadata>\n-                              </trackFile>\n-                    </files>\n-                      <options>\n-                        <style>\n-                        </style>\n-                            <paf>\n-                                <genome>\n-                                        /tmp/tmpaivwlly7/files/2/e/c/dataset_2ecf769e-1708-4c31-9ed6-674860dbe9a1.dat ~ Ppersica1.fa,\n-                                </genome>\n-                                <useuri>\n-                                    false\n-                                </useuri>\n-                            </paf>\n-                        </options>\n-                  </track>\n-    </tracks>\n-    </assembly>\n-    <assembly>\n-        <metadata>\n-            <genomes>\n-                  <genome path="https://s3.amazonaws.com/jbrowse.org/genomes/GRCh38/fasta/GRCh38.fa.gz" label="hg38" useuri="yes">\n-                      <metadata>\n-                         <dataset\n-                          dname = "hg38" />\n-                  </metadata>\n-                  </genome>\n-            </genomes>\n-    </metadata>\n-    <tracks>\n-                        <track cat="Assembly properties" format="hic" visibility="default_on">\n-                            <files>\n-                                 <trackFile path="https://s3.amazonaws.com/igv.broadinstitute.org/data/hic/intra_nofrag_30.hic" ext="hic"\n-                                    label="humanhic" useuri="yes">\n-                                    <metadata>\n-                                    <dataset id = "https://s3.amazonaws.com/igv.broadinstitute.org/data/hic/intra_nofrag_30.hic" />\n-                                    </metadata>\n-                                 </trackFile>\n-                            </files>\n-                      <options>\n-                        <style>\n-                                <type>LinearHicDisplay</type>\n-                        </style>\n-                            <hic>\n-                            </hic>\n-                        </options>\n-                  </track>\n-    </tracks>\n-    </assembly>\n-</root>\n'
b
diff -r a0c848f00363 -r 5ef1ba2031f2 jb210demotracks.jpg
b
Binary file jb210demotracks.jpg has changed
b
diff -r a0c848f00363 -r 5ef1ba2031f2 jb210demotracks.png
b
Binary file jb210demotracks.png has changed
b
diff -r a0c848f00363 -r 5ef1ba2031f2 jbrowse2.py.apr17
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jbrowse2.py.apr17 Thu Apr 25 07:25:52 2024 +0000
[
b'@@ -0,0 +1,1772 @@\n+#!/usr/bin/env python\n+\n+import argparse\n+import binascii\n+import datetime\n+import json\n+import logging\n+import os\n+import re\n+import shutil\n+import ssl\n+import struct\n+import subprocess\n+import tempfile\n+import urllib.request\n+import xml.etree.ElementTree as ET\n+from collections import defaultdict\n+\n+logging.basicConfig(level=logging.DEBUG)\n+log = logging.getLogger("jbrowse")\n+\n+JB2VER = "v2.10.3"\n+# version pinned if cloning - but not cloning now\n+\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+mapped_chars = {\n+    ">": "__gt__",\n+    "<": "__lt__",\n+    "\'": "__sq__",\n+    \'"\': "__dq__",\n+    "[": "__ob__",\n+    "]": "__cb__",\n+    "{": "__oc__",\n+    "}": "__cc__",\n+    "@": "__at__",\n+    "#": "__pd__",\n+    "": "__cn__",\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+    function(feature, variableName, glyphObject, track) {{\n+        var score = {score};\n+        {opacity}\n+        return \'rgba({red}, {green}, {blue}, \' + opacity + \')\';\n+    }}\n+    """\n+\n+    COLOR_FUNCTION_TEMPLATE_QUAL = r"""\n+    function(feature, variableName, glyphObject, track) {{\n+        var search_up = function self(sf, attr){{\n+            if(sf.get(attr) !== undefined){{\n+                return sf.get(attr);\n+            }}\n+            if(sf.parent() === undefined) {{\n+                return;\n+            }}else{{\n+                return self(sf.parent(), attr);\n+            }}\n+        }};\n+\n+        var search_down = function self(sf, attr){{\n+            if(sf.get(attr) !== undefined){{\n+                return sf.get(attr);\n+            }}\n+            if(sf.children() === undefined) {{\n+                return;\n+            }}else{{\n+                var kids = sf.children();\n+                for(var child_idx in kids){{\n+                    var x = self(kids[child_idx], attr);\n+                    if(x !== undefined){{\n+                        return x;\n+                    }}\n+                }}\n+                return;\n+            }}\n+        }};\n+\n+        var color = ({user_spec_color} || search_up(feature, \'color\') || search_down(feature, \'color\') || {auto_gen_color});\n+        var score = (search_up(feature, \'score\') || search_down(feature, \'score\'));\n+        {opacity}\n+        if(score === undefined){{ opacity = 1; }}\n+        var result = /^#?([a-f\\d]{{2}})([a-f\\d]{{2}})([a-f\\d]{{2}})$/i.exec(color);\n+        var red = parseInt(result[1], 16);\n+        var green = parseInt(result[2], 16);\n+        var blue = parseInt(result[3], 16);\n+        if(isNaN(opacity) || opacity < 0){{ opacity = 0; }}\n+        return \'rgba(\' + red + \',\' + green + \',\' + blue + \',\' + opacity + \')\';\n+    }}\n+    """\n+\n+    OPACITY_MATH = {\n+        "linear": """\n+            var opacity = (score - ({min})) / (({max}) - ({min}));\n+        """,\n+        "logarithmic": """\n+            var opacity = Math.log10(score - ({min})) / Math.log10(({max}) - ({min}));\n+        """,\n+        "blast": """\n+            var opacity = 0;\n+            if(score == 0.0) {{\n+                opacity = 1;\n+            }} else {{\n+                opacity = (20 - Math.log10(score)) / 180;\n+            }}\n+        """,\n+    }\n+\n+    BREWER_COLOU'..b'                       x.attrib["ext"],\n+                                    x.attrib["useuri"],\n+                                    x.attrib["label"],\n+                                    metadata,\n+                                )\n+                            track_conf["trackfiles"].append(tfa)\n+\n+                if is_multi_bigwig:\n+                    metadata = metadata_from_node(x.find("metadata"))\n+\n+                    track_conf["trackfiles"].append(\n+                        (\n+                            multi_bigwig_paths,  # Passing an array of paths to represent as one track\n+                            "bigwig_multiple",\n+                            "MultiBigWig",  # Giving an hardcoded name for now\n+                            {},  # No metadata for multiple bigwig\n+                        )\n+                    )\n+\n+            track_conf["category"] = track.attrib["cat"]\n+            track_conf["format"] = track.attrib["format"]\n+            track_conf["conf"] = etree_to_dict(track.find("options"))\n+            keys = jc.process_annotations(track_conf)\n+\n+            if keys:\n+                for key in keys:\n+                    vis = track.attrib.get("visibility", "default_off")\n+                    if not vis:\n+                        vis = "default_off"\n+                    default_session_data[assref_name]["visibility"][vis].append(key)\n+                    trakdat = jc.tracksToAdd[assref_name]\n+                    stile = {}\n+                    for trak in trakdat:\n+                        if trak["trackId"] == key:\n+                            stile = trak.get("style", {})\n+                    if track.find("options/style"):\n+                        supdate = {\n+                            item.tag: parse_style_conf(item)\n+                            for item in track.find("options/style")\n+                        }\n+                        stile.update(supdate)\n+                    default_session_data[assref_name]["style"][key] = stile\n+                    logging.debug("@@@ for %s got style=%s" % (key, stile))\n+                    if track.find("options/style_labels"):\n+                        default_session_data[assref_name]["style_labels"][key] = {\n+                            item.tag: parse_style_conf(item)\n+                            for item in track.find("options/style_labels")\n+                        }\n+                default_session_data[assref_name]["tracks"].append(key)\n+    default_session_data["defaultLocation"] = root.find(\n+        "metadata/general/defaultLocation"\n+    ).text\n+    default_session_data["session_name"] = root.find(\n+        "metadata/general/session_name"\n+    ).text\n+    logging.debug("default_session=%s" % (default_session_data))\n+    jc.zipOut = root.find("metadata/general/zipOut").text == "true"\n+    general_data = {\n+        "analytics": root.find("metadata/general/analytics").text,\n+        "primary_color": root.find("metadata/general/primary_color").text,\n+        "secondary_color": root.find("metadata/general/secondary_color").text,\n+        "tertiary_color": root.find("metadata/general/tertiary_color").text,\n+        "quaternary_color": root.find("metadata/general/quaternary_color").text,\n+        "font_size": root.find("metadata/general/font_size").text,\n+    }\n+    jc.add_general_configuration(general_data)\n+    trackconf = jc.config_json.get("tracks", [])\n+    for gnome in jc.genome_names:\n+        trackconf += jc.tracksToAdd[gnome]\n+    jc.config_json["tracks"] = trackconf\n+    assconf = jc.config_json.get("assemblies", [])\n+    assconf += jc.assemblies\n+    jc.config_json["assemblies"] = assconf\n+    logging.debug("assemblies=%s, gnames=%s" % (assconf, jc.genome_names))\n+    jc.write_config()\n+    jc.add_default_session(default_session_data)\n+    # note that this can be left in the config.json but has NO EFFECT if add_defsess_to_index is called.\n+    # jc.add_defsess_to_index(default_session_data)\n+    # jc.text_index() not sure what broke here.\n'
b
diff -r a0c848f00363 -r 5ef1ba2031f2 jbrowse8.png
b
Binary file jbrowse8.png has changed
b
diff -r a0c848f00363 -r 5ef1ba2031f2 test-data/Merlin
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Merlin Thu Apr 25 07:25:52 2024 +0000
b
b'@@ -0,0 +1,2881 @@\n+>Merlin\n+TCGTTTAGACAAAGGTACATTATTGTATCGTGGCCAAAAATTAGACCTTCCTACATTCGA\n+GCATAACGCAGAGAATAAGTTGTTCTATTTCAGAAACTACGTTTCAACTTCATTAAAGCC\n+TCTGATCTTTGGTGAATTTGGTCGTATGTTTATGGCACTAGATGACGATACTACAATTTA\n+TACTGCTGAGACGCCTGATGATTATAATCGTTTCGCAAACCCAGAAGATATAATTGATAT\n+TGGCGCTACTCAAAAAGACTCATTTGACGATAACAATAATGATGGAACATCTATTAATAT\n+CGGCAAACAAGTTAATTTAGGATTCGTTATTTCCGGTGCTGAAAATGTTCGAGTTATTGT\n+TCCAGGTTCTTTAACTGAATATCCAGAAGAAGCGGAAGTTATTCTGCCTCGTGGTACTCT\n+TTTGAAGATCAATAAAATCACTACTCAAGTAGATAAACGCTCGAATAAGTTCATGGTTGA\n+AGGTTCAATCGTTCCGCCTTCTGAGCAAATTGATGAATCTGTTGAGATTTATGACGGTGA\n+TCTGTTCATGGAAACAGGTGAAGTAGTAAAACTGTCCGGATTCATGCAGTTCGTCAACGA\n+ATCTGCATACGATGAAGAGCAAAACCAGATGGCTGCTGAGATTCTGTCTGGATTCTTGGA\n+CATTGATGACATGCCACGTAAGTTCCGCTAGCCGTTTACATCCACATGGAAGTGGATTAT\n+AATGGCTCTACGTTAACAAGAGGAAAACAACATGAAATCAATTTTTCGTATCAACGGTGT\n+AGAAATTGTAGTTGAAGATGTAGTTCCTATGTCTTATGAATTCAATGAAGTTGTTTTCAA\n+AGAGCTTAAGAAAATTTTAGGCGATAAGAAGCTTCAAAGTACTCCAATTGGACGTTTTGG\n+AATGAAAGAAAACGTTGATACTTATATTGAAAGTGTAGTGACAGGGCAGTTAGAAGGTGA\n+ATTTTCTGTAGCAGTTCAAACTGTAGAAAATGATGAAGTTATTTTAACTTTACCAGCTTT\n+CGTAATTTTCCGCAAATAAAACAATGGGGAGCTATGCTCCCCATTTTTACAATCCAAGTA\n+TTTTCGAAGTAGAGTTTCGGGTCGAATTAATGACGTGAGACAACCCTCCAGCAGCTCCTC\n+CAAGTCTAGATAATCTACTTAAACTTCCATTAAGAGACATTTCACTATTAATTCCAGTTA\n+TAGAATTAACAGCTCTATCTTCAATCCAATCAAGAGCAGCTTGACGTCCAACAGCACCCG\n+TTTGCATTACTCTGTAAGCAAATGTAACATCGAAAACCGCAATTTGGTTATCTCCTTCAT\n+ATGTAAGCTCAGGAGCTCCACACGCAACAGGAACACAACCTGTGAACATTATCACAGTAT\n+GAGGTAATCCATTTCGAGCATGAAGGTTAACCTGAATGTCAGCTTCGACGTCAGTTGGTA\n+ATGCTCGCAATCCAGTAACCGGGTCTTGAACGGAGTTCACCCAATCTTGCATTGCACGAT\n+AGTTACTTGCTTCGGGATCCATTCTGAATGATATAGTTAACGGATCGAGTTCACGTCCAG\n+TTATTCTAATATTCGGTGAGTTATGGTTGAAATCCATTTCATGAGACAATCTGTTCTCTG\n+GAATTTTGACCGAATAAATCATCAATCCAGATTGCGGATAAGCCATGTTAAAGAAGTCTA\n+ACAAATAAGTTCCGACTTCAAATTCACCTAATAAAGACTGAACAACACGATTGCTCATTG\n+CTCCAATAAGATATTTCGATACACCAGACTTTCTTACCAGCTGTTGAGTACCGGCAGTGA\n+TAATTGAGGTGAGTCCTGATGTGAACTCACCTTGTGTTAATCCAAGCCAGTCATTATTCA\n+ACGGAAGGTTATTAAAGAGCATACCGCCAAATTGATCGAGTAATTGTTGAGACTTTGCTG\n+ACGGAGTAGTTGCAAATACACAACTAAACATATTAGTACGCTGAAAGTCTATATTACCCG\n+CTTGGTTTTTAAATTCATCTAAAGTTAGCATCAGAATCCTTCCGCATATACTGAAGCTCG\n+GTTCAATGTCAAGATTTCACGCATAGTAATTTCTAATGTGAATGTACTTGGCAGGTTTGG\n+AGCTATAGCTAAACCGTTAAAGTTTCCATTTGGAGTTTTATCAAAACGGATACTCTGAAT\n+TTGACATGGACCGAATACTTCAGCACGTCCATCGAATTTACTTGTGGTTCCAAAGTTTCT\n+GACGAACCACACAGTAGGGTTACTTACAACAATAACATTACTTAAGAATGAAGTTATTTT\n+CTCAAAAACAGTGTCATTTTTATTAGCTTCATCTGGAGTTAATGTATCAAGGAAAGTTGA\n+TTTATACCATTCATCTAATTGAGACTTAACTTCTTTTGCATAAGTAGACGTTCCCGTTTC\n+GCCATAACTATAGTAGTTAAAGTATTCATAGATCTCGATAATAGCAATAAGATCTTGTAC\n+TGATCGAGGAGTTAAATCCCACGTGAATACCTTCGTACGGTTATCTGCGCCGCCATACAT\n+TGATCGAGCAGTGTTATAGATCTGCTCGTTATGGTCAGCCATTAATCCTTGAGTCAATGA\n+CTCTAATCCGCCAAAGACAGCAGTAGATGCAACGTTACTTAATACCCCTGTAGCAGTACC\n+GCCGCCACGAGAAATAAGTGAATCTCCAACGTCATTAAATTTATGAGAAACTGATTCAAC\n+ATCTGATTTCGAGCGTGGAAGTAAAATATTCACTACTGGAATTTTATCAACTTTATTAGT\n+ATTTGTTCCAGTGATTGATTTCACTACACTATTTGCAGTACGTTTCATTTCACCTAAACG\n+CATGCTACGCATATCACCGGTTGTACGAGAATTCATATCATACGCAGTGAACAACAACCC\n+GTTCTTATAAAGATCATGAACTCGTAAAGAACCAGATGTGTCATTACCAGCTGAACGTTC\n+AGACGGATATTGCGCAGTTATAGTGGATTTTATTTTTGCTGATTGTGAACTTTGACCAGC\n+GGAGGTTTTAACTCCGCTAATTAAAGCATCAGTCTTATCATCTAATTCTCTGACTTTAAT\n+GCTCATTAATTAACTCCTGTTGCCCCGAATACTCCAGGAGCTGGAGTAGCCGTGACTGTT\n+TGAACCTGGTGAATAGTCTTACTATTATTTACGTTATTAACCTGAGTGTTAGCAACATTC\n+ATATCACCGGTTGATTTTTTAGATTGCTCTTTAGCATTTTCAGCTTTTTGAATATTTTGA\n+ACTCGTTGATTATCTTCCGAAGTAGCTGGAGCCGCAGGCTTCGGAGTGTTATCTTCTTTG\n+AGCTTCTGATACTTGGATTCTACTCGTTGGAATCTTTTATCGAGTTCCTTTTTAGTAGCT\n+GGTTGATCACTTATAGCAGAATCACTAATAGACTTTTTGGCACTGTTATATGCCTTCTCT\n+AAAGATTGCATATTAGTTGGATTCTCTGGATCAACATCACCAATATATTTTTCTAAACGC\n+TGAACAGCTGCACGAGCTTCGTTTTGTTTGATCAGTGTTTCTTCGCGTTTTTCAGGAGCC\n+ATTGCTTTAAGATTCTGAGTCTCTTGATCACGGTCAGATGCTTGTGTAGAATCGATTTTA\n+TTCTCTCTTCCTAGTACCCAATCAAATGCACGAGTTTTAAATTCGCCAGCTTTATCAATA\n+ATTCCAGGACCTTCTTCAATACGCTTACTCTGATATTTAGCCAAAGCTTTTTGATCATCT\n+TCAGACAATGAATTACCAGTGCGTTCCTGGAATCCTTCTAGTGCTGAACCACGAATAGTA\n+GTTGCTGCATTTTCAAAGCCAAGTGCATCGAGTATAGAAGCAGATATCTTTGAAATTCCC\n+AA'..b'ATTTCCATGAGGTTACTGGGTTATGAGTTATAAAATTCTTTT\n+AGAAGTTACCGTGATGTCTTCGACTGGACATGTGGCGGTTAGTACTGAACAGCTGGATTT\n+TTATAGCTGGGATAATGCTAATATGTATTATGAAGCAGTAGAAGTTTATGAAGAAACGCC\n+AGATATTAAAGTATGGCGTCAAGTAACAAAACTTTATTAAAGCCCTTCGGGGCTTTTGTT\n+GTCTATAAATATAGTAAACTATAGAGGACTTTTTATGATCGAATTAAATGAAGTCTTCGA\n+TGAAGGGAAAGAACGTCTAGCAGTTACGAACCTTTATCCGAAGCTCAAGATTCCACAAAT\n+TTTTGCAATAGACAACACTAAAGTAGCTTATCGTATGTGCTCATATACTGGTGGTGGAGA\n+TGCAAATAAAAACATCAAACCCGGTGATAAAATGATGCATGTCATTGCATTAGGAGTTAC\n+TGATAAAGGCCTTGGTCAACTTAAGACCTTAGGTGATAATCCAATTGCTGTTATTGATAC\n+AATCTTTAACCACGTAATGGGTATCATGAAGTTTTATCGTTTTGACGCTGCTTTATTTCG\n+TGTTAAAAAGAATAAAACTGGTGGAGCAGGTCGCCAGATGCAAGTTATTGTTGATCGTCT\n+AATCAAGAAGAAAGGCGGTGGCAAATTCGTTATGCTTAAAGAGTTGTATGATTTTGATAA\n+GAAATACAACTACATTTTAGTATACAAGAAGAATGCTGATCTTGTCAATATCCCTGGAAT\n+GACTGAGATCATGGACTCAATTTATAAGAAAGTAGACACTGATGTAGGTGATGCTTATAT\n+CAACGTTGAGACCGGCAAACAAGTATCTAAGCTTGAAGCTATCGCGGGTTCAATCGCAGC\n+AGAAAATGATAAACGCTCAGACCAGGCGGTTGCGTCTCGAGCTAAAATATCTCGTCGTGC\n+TTTAATGGCTTCTCAATATTCAATCCAAGTGGGATTTGATACTCGTAAAGATGCGGTAGA\n+ACATGATAAGCGATTAGATGTAATTAACTCTAAACCTCCGGTTTATTTGACAGATAAGTC\n+TTCTGACCAAGTATCGAATATTCAAATGGCTATTGATAATTTCAGAAATGATTCTCAATC\n+AATTGCTAAAACCGGCGAAGCGTTTAAGACATTTGACCCGTCATGGAAAATGGATGATGA\n+TCGTCATTCTACTGGTACAATGAAAGCCCAAGAACTTGTTCTAAGGCTCACTAATATATT\n+AACCAGTGGAACAGTAGACGATTTCAGTCAACATCCTACTGATAGAAGAGAAGCATTTAA\n+AACATTAGCGGTCAGAGACATTTATCGTATTGGTGAAGCCTGGTCTAAATTAGAGCCTAA\n+TGACTATTATGGTGCTATTAAAGAACTTACTCGAGTCGCAATGGAAGACAAAGAATGGTC\n+TTCTGATGCAAATCGTGAATACGCAGTAAAAGAGATTGTAGAATTAATTTCTAAACAGTT\n+CTCTGATTTAGCAGCTAGCATGTACAAAAATACATCAGATGTGGATCGTTATACTCCGGT\n+ACAATTGTCAGGTTTACATGCTTACGTCGGTTCATCTTATAAGTACATCAACGACTATCT\n+TTTAGGCCTTGATGATTATGGCAAAGAAACTGTTGAAAAATGGATTGAGTCTATCGATTC\n+TGCGTTTGAAAATGGTGTTCGTCTTCCGAAGGGAACTAAGCTATTTCGAGGTCAACATAC\n+TAAGCGCGAAGCTATTGAAGTTAGTTTAGAAAACAAGCACTTCTATTTCAAGAATTATGT\n+GTCAACTTCAATGGCTCCTATTATCTTTGGTGGATATGGACGAGCATATGATGCAATGGA\n+CCCCGCTGCATTGAACACAGATACATCGACTCCTAAAGAAGTGCTTGACTCTGTTTCAAC\n+TGTTCGGCCTGATAGTATTACTAACTCTGAAATGGGTGAATTGCGTTTAGCGTTCGTTAT\n+TTCTGGCGCAGAGAAAATAAAGACTATCGTAACCAATGCTGGAATCTCAGGATTGTCATT\n+TGAAGCTGAAGTTATTCTTCCTCGTGGTACTGTTCTTAGAATTGATAAAATGTATGGAAC\n+AGCTCAGAAACTTCAAGCTAATGACTACACAGCATCAAAGAGTGTTCTTATGGAATGCAC\n+TGTAGTATCTCCAGAACAATTATCTGAAACTACAATTTATGATGGCGATAAATTGTTAGA\n+AGGTGAATTGGTTGAATCTGATTATTCGTTCAGTTCTTTTATTGGTCAATTAAATGAAGC\n+TAAAGTTGAAACACCAGATTGGTTAGGTGAAGCTCTAGCATCATTTGTTGACATAAATAA\n+TTTACCAGAACGATTCATAAATTAATATTTTCACATGGACGTGAATTCAGAGAGGGCTTT\n+ATGGAAATTTTAAACGAAGTACTAGACGAAAGTAAACTGGATTTACCAGTTACGAACCTT\n+TATCCAAAGACGAAAATTCCACAAATTTTTGCTATTCAAACTAACTCCGAGGGTTCACTG\n+CCAGCATTCAGGATGTGTTCATATACATCTGGCGGTGATACCAATAAGAACGTTAAACCT\n+GGCGACAAAATGATTCATGTTGTTATGCTATCATTGAGCGAAAAAGGATCATTAGTTAAG\n+CTTAAAAACTTAGGCGGCGATCCAATTGGTGTTATCTCTACTACGTTCAATATCGTTTAT\n+TCAACGATGAAGCAGTATAAAATGGACGCATGCTTGTTCCGAATGGCCAAAAGCAAAATC\n+GGTGGACAAGCTCGTCAGATGCAGGTTATTATGGACCGACTCGTACGTTCTCGTACTGGT\n+GGTAAATTTGTTATCCTGAAAGAACTCTGGGATTATGATAAGAAGTACGCATATATTCTT\n+ATTCATCGTAAAAATGTTGATCTCTCAACCATCCCTGGCGTCCCAGAGATTGATACTGGA\n+CTGTTCACTGCAGTTGAAACTAAAGTTGGTGAAGTTTATGTTGAAAAGAAATCAGGTCAA\n+CAAGTAACTAAAGCCCAAGCCGTTGCTGCTTCTATTGCAGTCGAAAACGATAAGCGTTCA\n+GATCAAAACGTTATTTCTCGTGCTAAGATAAATCGTCGTCAAGCTATTGCTGCTCAGTAT\n+TCTGTTGATGCATCTAGCATCCAAGGCGATGATCGTGCTGCTGAAGAATTTAAACGCTTA\n+GAAGCTAAAGTTCCAGTTAAAAGCTCTAAAGGCGCTGAGTCATCAGACATGGTAGCAAAA\n+GTTAATACCATCGCTGACCGTCAAGGAAATGAGTATATCGGCAAAGTACTAAACTTCATC\n+ACTAATCCTGAAACATCTCAGGACACAGATGGTAAAGCATTGACTGCACGAATAGGTCAA\n+TTGCGCCAGTTATCTAAAATGCCTAAAGGTGCCATGTTATCAGGTGGATTTGAAACTGGT\n+GGTATGAAGTACTACATGGAAAACCAAAAAGAAATGTACAATGAAGTTCGTTCATTTGCT\n+CGATTGATAGCTGGGGTGAATACAACTAACTCCTTTCAGACGATGAAAGATTTAGTTAAA\n+ATGGCTTCAGCTGGAACTAGACCTGAAGATCGTGAACAGTTAATTGCAAATTTAATTGGA\n+TTAGCTTATAAAGAAATAAGTGCAATCATCAGAGATTCATACCAAACTGCAGCAAGTTTA\n+TCTAAAGAGAATGATCATTATTCTAAAGATGAAAAACAAGCTATCAGTGAATACTGCGCA\n+AACGCTTTCGAATACGTGAATATGTTCTTAATCGGTAAGCCGGAAGAAGGGTATTCAACT\n+TCTGATTCTCTCGAGATCATCGATAATATGGACTCTGCGTTTGAAAAAGGAACTCGTTTA\n+GACAAAGGTACATTATTGTATCGTGGCCAAAAATTAGACCTTCCTACA\n'
b
diff -r a0c848f00363 -r 5ef1ba2031f2 test-data/blastxml/blastn-gene1.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/blastxml/blastn-gene1.xml Thu Apr 25 07:25:52 2024 +0000
b
b'@@ -0,0 +1,128 @@\n+<?xml version="1.0"?>\n+<!DOCTYPE BlastOutput PUBLIC "-//NCBI//NCBI BlastOutput/EN" "http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd">\n+<BlastOutput>\n+  <BlastOutput_program>blastn</BlastOutput_program>\n+  <BlastOutput_version>BLASTN 2.2.28+</BlastOutput_version>\n+  <BlastOutput_reference>Stephen F. Altschul, Thomas L. Madden, Alejandro A. Sch&amp;auml;ffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), &quot;Gapped BLAST and PSI-BLAST: a new generation of protein database search programs&quot;, Nucleic Acids Res. 25:3389-3402.</BlastOutput_reference>\n+  <BlastOutput_db>/opt/db/nt_aug2015/nt</BlastOutput_db>\n+  <BlastOutput_query-ID>Query_1</BlastOutput_query-ID>\n+  <BlastOutput_query-def>Merlin</BlastOutput_query-def>\n+  <BlastOutput_query-len>58313</BlastOutput_query-len>\n+  <BlastOutput_param>\n+    <Parameters>\n+      <Parameters_expect>0.001</Parameters_expect>\n+      <Parameters_sc-match>2</Parameters_sc-match>\n+      <Parameters_sc-mismatch>-3</Parameters_sc-mismatch>\n+      <Parameters_gap-open>5</Parameters_gap-open>\n+      <Parameters_gap-extend>2</Parameters_gap-extend>\n+      <Parameters_filter>L;m;</Parameters_filter>\n+    </Parameters>\n+  </BlastOutput_param>\n+<BlastOutput_iterations>\n+<Iteration>\n+  <Iteration_iter-num>1</Iteration_iter-num>\n+  <Iteration_query-ID>Query_1</Iteration_query-ID>\n+  <Iteration_query-def>Merlin</Iteration_query-def>\n+  <Iteration_query-len>58313</Iteration_query-len>\n+<Iteration_hits>\n+<Hit>\n+  <Hit_num>1</Hit_num>\n+  <Hit_id>gi|451937967|gb|KC139519.1|</Hit_id>\n+  <Hit_def>Salmonella phage FSL SP-030, complete genome</Hit_def>\n+  <Hit_accession>KC139519</Hit_accession>\n+  <Hit_len>59746</Hit_len>\n+  <Hit_hsps>\n+    <Hsp>\n+      <Hsp_num>1</Hsp_num>\n+      <Hsp_bit-score>9779.15</Hsp_bit-score>\n+      <Hsp_score>10844</Hsp_score>\n+      <Hsp_evalue>0</Hsp_evalue>\n+      <Hsp_query-from>35381</Hsp_query-from>\n+      <Hsp_query-to>53427</Hsp_query-to>\n+      <Hsp_hit-from>22789</Hsp_hit-from>\n+      <Hsp_hit-to>4832</Hsp_hit-to>\n+      <Hsp_query-frame>1</Hsp_query-frame>\n+      <Hsp_hit-frame>-1</Hsp_hit-frame>\n+      <Hsp_identity>13209</Hsp_identity>\n+      <Hsp_positive>13209</Hsp_positive>\n+      <Hsp_gaps>547</Hsp_gaps>\n+      <Hsp_align-len>18276</Hsp_align-len>\n+      <Hsp_qseq>GCCACCTGCTGACGGTACTGGTCGATTTGCTGCGCCAGTCCGGCAGCCGCACGGTTCGCCTCGTTCAGCAT-CTTCGTCTTCTGCGCCAGGTCCTTGATGGCGTTGCCGCTGGTCGACACTTCGGATGCGAGGGTGTGGACTTGCTGCTGCAGGCCAGATAGCGTCCGGCGCGCAGCGTCTGACGGACTTATGATTTGCTGGATTTTCGACGCCAGTGGCCCCATCTGCGACGTGGTGGTCTGCACGACCCGGCCCAGGGTTGAATACCCTTTTACCGCCGCCAGTGCCTGCTGCGCTTGCTGCTGCAGACCCTGTATGACTTTATTTTGGGCGGCCGCCGCAGGCGCGGTGGCGATGATGTTTTCCTGCTGCTGCAGTACCTTGTTAACGCTCGCCACGCTGTTAACGATACTGGACTGCGCGGCACCGAGCGTTTTTGTCTCAATGCCATATCGTTGCAGCTCTTTCGTTGTACGGCTCACCTGCGCCGCCCGCGACGCCTCGGTGCGCTCTGCACGCTCTACCTGCCGGTTAACACGGGCGAGTTCGGCTTCCTGTTTTTTCGTTACCTTCGCGGCAGAGTCATACGCTTGCTGCAGCTGGGCTTGCTTGGCCCGTAAGTCTTCCGTCTTTTGCGCCGCTTCAACCATCGTGGCGT---TCTGACGTTTATACAGCTCCACAAGGGCATTCAGCTTTAACAGCTGCTGCCCGGCCTGCTCAAGTTTTTTGTACGAGGCTTCCAGCTGACGCGTCGAGACTTCGCCCCGTTCTGCCGCTTTACGCTGGTCGTCCTGCGCCTTCGCCAT-TGCTTCAATCGCGGAGGCCACGGCTTTAAGGGGTTTCTGGCTGAAATCCCTCGCCCGGATCCTTAGTTCGACGTCTTTGCTGTTAGCCATCGCTCAAGCCCTTAATCAGTTTTTTGTAGTGCGGGCCACCTTTCTTCCCGTTCATGACGGAGGC----CAGTAGCGCCTGCAGTAACGTGCTTTCCGTCACCATGTGCATATTCACGCGGCGCCGGGCAATCTTGATTTCAGACCACAGGTACCCCAGCGGGTACCGGCGTGCGTCTGGGTGTCCCTGAGACATCAGGAAGGACACGCCTTCCCGCAGCTCATTGTGAAACCGTATTACTTTTTCCCTTTTGCTGTAGACTCGGGTGTCAGGCCGGCCTTTGTGTCCCTCATCAGG---------TCCATGGCCTTCCGTAGCATCTTTTTTATATCTTCAACGTCCGAGAAGGTCAGGCGGCCAATGGCTTTCAGCGCGTCAATCTGGGCGGTCAGCGGGAGGCG-CTGGGCTTTCTCCAGGTTGGCTTCGTCGTCCGCTGCCAGCGCGATGATATGGGCTACCAGGCCGGGCGCATCGTTAATAAGGCCCATGGCGAATTTGCCCATGGCCACGTAGGAAAGGTCGCTGCCGCCGTGGGTTTC--GTAAATATCAAACAGCCCTTCCAGGTCGTCATAGTGAACGCGGACGATCTTCGAAATGTCCTGGAATGACAGGCCGCGGACCTCGAATGCAACGTCGCCTTTTTTA-GCG-CG---CTTAATGATGATCTCTTCGGTATCCGGGGTGAAATCTGACAGTGACATGGG--GTTTATCCTCTTCGTTGGTTGACGTCGTTAATGTAGCACGTCG--GCAGAAAAGCATAAAAGAAAAGCGC'..b'sp_query-from>\n+      <Hsp_query-to>8129</Hsp_query-to>\n+      <Hsp_hit-from>52248</Hsp_hit-from>\n+      <Hsp_hit-to>51278</Hsp_hit-to>\n+      <Hsp_query-frame>1</Hsp_query-frame>\n+      <Hsp_hit-frame>-1</Hsp_hit-frame>\n+      <Hsp_identity>719</Hsp_identity>\n+      <Hsp_positive>719</Hsp_positive>\n+      <Hsp_gaps>24</Hsp_gaps>\n+      <Hsp_align-len>983</Hsp_align-len>\n+      <Hsp_qseq>ATGAAAGTTAAAGGTTTTGAGAAAGTCATCATACTGCATCTCGGCGCGCTCTTTGGCGCCGCAAACGCTGG---CGAGAAGTCTGTAAAGAGTTTCCACCGCACGCTGCTGAACACGCCGAACATGGACGAAATGAGCGTCCATGAATTCGCCGCCGGC-CGTGTGAGCGACCGACTGGCGAAGCACGAAGTGAAAGACCCGATCG--GC----TATAAGACGATTGGCTTTGCGCCTTACGCGGACTACGTGGGCGGCAAGTTCGCCATGGGCATCCCGGGTACTAACGCCATCGTGCTGCAGGCCGAAAAGCGTGAACGCGTGCTGCCCGGGGTCAGCGTGCGCAACGAAGTGACGAAGCGCATGGACGCCTGGCGCGAGAAAGAGATCGAAGGCTGGGAGCCGACCCGGAAAGACTGGGCGCAGCTGAAAGACGATGTCGAAGCCGAAATGCTGAAAACCGCGCCTATCCGCCCGACCCGCTACAATGTGATCATCGCCGTCCCGTACGTCTACGTGTTCACCACCAGCGCCAAGACCGCCGAAGAGGTTAACGCCCTGCTGCGTGCCGCGTTCGGTACCTGGCCAGTGGAACACCTGCTGATCAATGACTTCGTGCTGCGTCAGTCAATGGAGAAGGTCGTACGCGG-CAGCATCGAGGGTATCACTGGCGACGACTTCATCCACATCAAGCACGATGACGGCGATGACGTGAAGTTCAAGGACATTGACATCCATAAGGACGAAGTGGTCCTCGACTACCTGGCGCGGCATTACACGGTTCGGGCGCTGAACATGCGAA-TCGACGAACGCGAGATGCGACCTGGCGTGGGCAACGTGTTCTTCCGCCTGACCGACAAGGCGATCATCTCCGGGATCCACATCGGCGAGGCGGACGTTGACGCCAACTATGAAGCCACCCTGGAGCGCTACAACAATGACAGCGGTACGTTCCTGACCTACATGGCCAACCTGTTCCA</Hsp_qseq>\n+      <Hsp_hseq>ATGAAAATCAAGAGTTATGAGAAAGCCATTATCTTGCACCTCGGCGCGCTGTATGACGCGGCCAACGACGGTAACGAGAAG---GTCAAGCCGCTGCACCGCCTGATCCTGAACCTGCCGAACGTTGACGAAGAGGCCGTAACGGCTTTCGCGAAAGGAGCGTTT-AGCGATGCACTCGAAAAGCATGAAGTGTCAGATCCGCCGGAGGCGTCTTACAAGACAATGGGCTTTGCAGCGTACGGCGAAGAGGTTGACAGCAAGTTTGCGCTCGCCATCCCCGGAACAAACGCCATCGTCTTCCAGATCGAAAAGCGCGAGCGAGTGCTGCCCGGCGTTAGCGTACGAAACGAAGTCGTGAAGCGCATGGCCGCGTTGCGCGAGAAAGAGATCGAGGGTTGGGAGCCGAACCGCAAGGATTGGGCGCAGATGAAGGACGACGTGGAAGCGGAAATGCTGAAACACGCGCCTATCCGCCCGTCCCGCGTCAACGTCATCCTGTCCGCCCCGTTCGTGTACGTGTTCACGTCGAGCGCGAAGACGGCAGAAGAGTGCAGCGCGCTGATCCGTACCGCGCTCGGCACATGGCCCGTTGAACACCTCCTGCCGAGCGAGTATGAGCTGCGCCAGTTAATGCAGCGCGCGGTTCTCGGCCAGCA-GGACGGCATCAAGGGCGATGCATTTATCCACCTGAAACACGATGACGGCGACGACGTCAAGATGAAGGACACGGACATCTTCAAAGACGAGGCGGTGGTTGACCTGCTGTCCCGCCACTGGACTGTCCGCGCACTGGATCT-CGAAGTCGA--TACGC--AATGC--CCGGGCATCGACACCGTGTACTTCCGCCTGTCCGACAAAGCCATCCTGTCCGGTATCCACATCGGCGAGGCCGACGTTGATGCGAACTACGACGCCACGCTCGAACGCTACGGCACCGACGGCGGCCAGTTCCTGACCATGATGGCGAACCTGTTCCA</Hsp_hseq>\n+      <Hsp_midline>|||||| | ||  ||| |||||||| ||| ||  |||| ||||||||||| | || ||| || ||||  ||   |||||||   || |||    | ||||||  | | ||||||  ||||||| | ||||||  |  |||    |  |||||    ||  ||| | |||||   ||| |  ||||| ||||||  ||| |||   |  ||    || ||||| || ||||||||  | ||||  ||  | || | | ||||||| ||  | | |||||| || || |||||||||||  | |||  ||||||||| || || ||||||||||| || ||||| || ||||||||   ||||||||||| ||| | |||||||||||||||||| || |||||||||| ||| || || ||||||||| |||| ||||| || ||||| ||||||||||||  |||||||||||||||| |||||  ||| || ||| |  ||| ||||| ||| |||||||||||  | ||||| ||||| || ||||||   | ||| ||| | ||| ||||| |||| || ||||| || |||||||| |||   |  || |  | |||||| |||| |||| ||   |  || | ||| |||||  || || ||||  ||||| |  || |||||| | || |||||||||||||| ||||| ||| | |||||||  ||||||   || ||||| | |||  | |||   ||| | || || |  || || || || ||| |  | |||| ||||   ||||   ||||  || ||| | | || ||||| |||||||||| ||||||| || ||| | ||||| ||||||||||||||||| |||||||| || ||||| || ||||| || || ||||||  ||  ||| ||||   ||||||||||   ||||| |||||||||||</Hsp_midline>\n+    </Hsp>\n+  </Hit_hsps>\n+</Hit>\n+</Iteration_hits>\n+  <Iteration_stat>\n+    <Statistics>\n+      <Statistics_db-num>31902778</Statistics_db-num>\n+      <Statistics_db-len>102365819095</Statistics_db-len>\n+      <Statistics_hsp-len>43</Statistics_hsp-len>\n+      <Statistics_eff-space>5.88492035908107e+15</Statistics_eff-space>\n+      <Statistics_kappa>0.41</Statistics_kappa>\n+      <Statistics_lambda>0.625</Statistics_lambda>\n+      <Statistics_entropy>0.78</Statistics_entropy>\n+    </Statistics>\n+  </Iteration_stat>\n+</Iteration>\n+</BlastOutput_iterations>\n+</BlastOutput>\n+\n'
b
diff -r a0c848f00363 -r 5ef1ba2031f2 test-data/blastxml/merlin.gff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/blastxml/merlin.gff Thu Apr 25 07:25:52 2024 +0000
b
b'@@ -0,0 +1,1230 @@\n+##gff-version 3\n+##sequence-region Merlin 1 172788\n+Merlin\tGeneMark.hmm\tgene\t2\t691\t-856.563659\t+\t.\tID=Merlin_1;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t2\t691\t.\t+\t.\tID=Merlin_1_mRNA;Parent=Merlin_1;seqid=Merlin;color=#00ff00\n+Merlin\tGeneMark.hmm\texon\t2\t691\t.\t+\t.\tID=Merlin_1_exon;Parent=Merlin_1_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t2\t691\t.\t+\t0\tID=Merlin_1_CDS;Parent=Merlin_1_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t752\t1039\t-339.046618\t+\t.\tID=Merlin_2;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t752\t1039\t.\t+\t.\tID=Merlin_2_mRNA;Parent=Merlin_2;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t752\t1039\t.\t+\t.\tID=Merlin_2_exon;Parent=Merlin_2_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t752\t1039\t.\t+\t0\tID=Merlin_2_CDS;Parent=Merlin_2_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t1067\t2011\t-1229.683915\t-\t.\tID=Merlin_3;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t1067\t2011\t.\t-\t.\tID=Merlin_3_mRNA;Parent=Merlin_3;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t1067\t2011\t.\t-\t.\tID=Merlin_3_exon;Parent=Merlin_3_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t1067\t2011\t.\t-\t0\tID=Merlin_3_CDS;Parent=Merlin_3_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t2011\t3066\t-1335.034872\t-\t.\tID=Merlin_4;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t2011\t3066\t.\t-\t.\tID=Merlin_4_mRNA;Parent=Merlin_4;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t2011\t3066\t.\t-\t.\tID=Merlin_4_exon;Parent=Merlin_4_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t2011\t3066\t.\t-\t0\tID=Merlin_4_CDS;Parent=Merlin_4_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t3066\t4796\t-2177.374893\t-\t.\tID=Merlin_5;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t3066\t4796\t.\t-\t.\tID=Merlin_5_mRNA;Parent=Merlin_5;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t3066\t4796\t.\t-\t.\tID=Merlin_5_exon;Parent=Merlin_5_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t3066\t4796\t.\t-\t0\tID=Merlin_5_CDS;Parent=Merlin_5_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t4793\t5317\t-682.565030\t-\t.\tID=Merlin_6;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t4793\t5317\t.\t-\t.\tID=Merlin_6_mRNA;Parent=Merlin_6;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t4793\t5317\t.\t-\t.\tID=Merlin_6_exon;Parent=Merlin_6_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t4793\t5317\t.\t-\t0\tID=Merlin_6_CDS;Parent=Merlin_6_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t5289\t6431\t-1457.525863\t-\t.\tID=Merlin_7;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t5289\t6431\t.\t-\t.\tID=Merlin_7_mRNA;Parent=Merlin_7;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t5289\t6431\t.\t-\t.\tID=Merlin_7_exon;Parent=Merlin_7_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t5289\t6431\t.\t-\t0\tID=Merlin_7_CDS;Parent=Merlin_7_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t6428\t7180\t-968.015933\t-\t.\tID=Merlin_8;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t6428\t7180\t.\t-\t.\tID=Merlin_8_mRNA;Parent=Merlin_8;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t6428\t7180\t.\t-\t.\tID=Merlin_8_exon;Parent=Merlin_8_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t6428\t7180\t.\t-\t0\tID=Merlin_8_CDS;Parent=Merlin_8_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t7228\t7857\t-809.330137\t+\t.\tID=Merlin_9;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t7228\t7857\t.\t+\t.\tID=Merlin_9_mRNA;Parent=Merlin_9;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t7228\t7857\t.\t+\t.\tID=Merlin_9_exon;Parent=Merlin_9_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t7228\t7857\t.\t+\t0\tID=Merlin_9_CDS;Parent=Merlin_9_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t7857\t8252\t-515.006678\t+\t.\tID=Merlin_10;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t7857\t8252\t.\t+\t.\tID=Merlin_10_mRNA;Parent=Merlin_10;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t7857\t8252\t.\t+\t.\tID=Merlin_10_exon;Parent=Merlin_10_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t7857\t8252\t.\t+\t0\tID=Merlin_10_CDS;Parent=Merlin_10_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t8340\t8753\t-522.529341\t+\t.\tID=Merlin_11;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t8340\t8753\t.\t+\t.\tID=Merlin_11_mRNA;Parent=Merlin_11;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t8340\t8753\t.\t+\t.\tID=Merlin_11_exon;Parent=Merlin_11_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t8340\t8753\t.\t+\t0\tID=Merlin_11_CDS;Parent=Merlin_11_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t8787\t8951\t-212.019038\t+\t.\tID=Merlin_12;seqid=Merlin'..b'rlin\n+Merlin\tGeneMark.hmm\texon\t164715\t165071\t.\t+\t.\tID=Merlin_297_exon;Parent=Merlin_297_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t164715\t165071\t.\t+\t0\tID=Merlin_297_CDS;Parent=Merlin_297_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t165107\t165601\t-618.360781\t+\t.\tID=Merlin_298;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t165107\t165601\t.\t+\t.\tID=Merlin_298_mRNA;Parent=Merlin_298;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t165107\t165601\t.\t+\t.\tID=Merlin_298_exon;Parent=Merlin_298_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t165107\t165601\t.\t+\t0\tID=Merlin_298_CDS;Parent=Merlin_298_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t165612\t165773\t-191.091430\t+\t.\tID=Merlin_299;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t165612\t165773\t.\t+\t.\tID=Merlin_299_mRNA;Parent=Merlin_299;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t165612\t165773\t.\t+\t.\tID=Merlin_299_exon;Parent=Merlin_299_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t165612\t165773\t.\t+\t0\tID=Merlin_299_CDS;Parent=Merlin_299_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t165770\t166000\t-285.030914\t+\t.\tID=Merlin_300;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t165770\t166000\t.\t+\t.\tID=Merlin_300_mRNA;Parent=Merlin_300;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t165770\t166000\t.\t+\t.\tID=Merlin_300_exon;Parent=Merlin_300_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t165770\t166000\t.\t+\t0\tID=Merlin_300_CDS;Parent=Merlin_300_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t165997\t166191\t-241.609251\t+\t.\tID=Merlin_301;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t165997\t166191\t.\t+\t.\tID=Merlin_301_mRNA;Parent=Merlin_301;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t165997\t166191\t.\t+\t.\tID=Merlin_301_exon;Parent=Merlin_301_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t165997\t166191\t.\t+\t0\tID=Merlin_301_CDS;Parent=Merlin_301_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t166352\t167200\t-1091.167753\t+\t.\tID=Merlin_302;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t166352\t167200\t.\t+\t.\tID=Merlin_302_mRNA;Parent=Merlin_302;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t166352\t167200\t.\t+\t.\tID=Merlin_302_exon;Parent=Merlin_302_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t166352\t167200\t.\t+\t0\tID=Merlin_302_CDS;Parent=Merlin_302_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t167197\t167433\t-294.645060\t+\t.\tID=Merlin_303;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t167197\t167433\t.\t+\t.\tID=Merlin_303_mRNA;Parent=Merlin_303;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t167197\t167433\t.\t+\t.\tID=Merlin_303_exon;Parent=Merlin_303_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t167197\t167433\t.\t+\t0\tID=Merlin_303_CDS;Parent=Merlin_303_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t167487\t168944\t-1811.170385\t+\t.\tID=Merlin_304;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t167487\t168944\t.\t+\t.\tID=Merlin_304_mRNA;Parent=Merlin_304;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t167487\t168944\t.\t+\t.\tID=Merlin_304_exon;Parent=Merlin_304_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t167487\t168944\t.\t+\t0\tID=Merlin_304_CDS;Parent=Merlin_304_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t168941\t169120\t-220.159549\t+\t.\tID=Merlin_305;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t168941\t169120\t.\t+\t.\tID=Merlin_305_mRNA;Parent=Merlin_305;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t168941\t169120\t.\t+\t.\tID=Merlin_305_exon;Parent=Merlin_305_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t168941\t169120\t.\t+\t0\tID=Merlin_305_CDS;Parent=Merlin_305_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t169175\t171265\t-2617.092758\t+\t.\tID=Merlin_306;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t169175\t171265\t.\t+\t.\tID=Merlin_306_mRNA;Parent=Merlin_306;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t169175\t171265\t.\t+\t.\tID=Merlin_306_exon;Parent=Merlin_306_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t169175\t171265\t.\t+\t0\tID=Merlin_306_CDS;Parent=Merlin_306_exon;seqid=Merlin\n+Merlin\tGeneMark.hmm\tgene\t171301\t172788\t-1876.322043\t+\t.\tID=Merlin_307;seqid=Merlin\n+Merlin\tGeneMark.hmm\tmRNA\t171301\t172788\t.\t+\t.\tID=Merlin_307_mRNA;Parent=Merlin_307;seqid=Merlin\n+Merlin\tGeneMark.hmm\texon\t171301\t172788\t.\t+\t.\tID=Merlin_307_exon;Parent=Merlin_307_mRNA;seqid=Merlin\n+Merlin\tGeneMark.hmm\tCDS\t171301\t172788\t.\t+\t0\tID=Merlin_307_CDS;Parent=Merlin_307_exon;seqid=Merlin\n'
b
diff -r a0c848f00363 -r 5ef1ba2031f2 test-data/jbrowse2_result01.zip
b
Binary file test-data/jbrowse2_result01.zip has changed
b
diff -r a0c848f00363 -r 5ef1ba2031f2 test-data/jbrowse2_result02.zip
b
Binary file test-data/jbrowse2_result02.zip has changed
b
diff -r a0c848f00363 -r 5ef1ba2031f2 test-data/vcf/test.vcf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/vcf/test.vcf Thu Apr 25 07:25:52 2024 +0000
b
@@ -0,0 +1,23 @@
+##fileformat=VCFv4.0
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=1000GenomesPilot-NCBI36
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003
+Merlin 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.
+Merlin 17330 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3
+Merlin 1110696 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
+Merlin 1230237 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2
+Merlin 1234567 microsat1 GTCT G,GTACT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
b
diff -r a0c848f00363 -r 5ef1ba2031f2 test-data/vcf/test.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/vcf/test.xml Thu Apr 25 07:25:52 2024 +0000
b
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<root>
+    <metadata>
+        <genomes>
+            <genome>test-data/merlin.fa</genome>
+        </genomes>
+        <general>
+            <defaultLocation></defaultLocation>
+            <trackPadding>40</trackPadding>
+            <shareLink>true</shareLink>
+            <aboutDescription></aboutDescription>
+            <show_tracklist>true</show_tracklist>
+            <show_nav>true</show_nav>
+            <show_overview>false</show_overview>
+            <show_menu>true</show_menu>
+            <hideGenomeOptions>false</hideGenomeOptions>
+        </general>
+    </metadata>
+    <tracks>
+        <track cat="Default" format="vcf">
+            <files>
+                <trackFile path="test-data/vcf/test.vcf" ext="vcf" label="Basic"/>
+            </files>
+            <options>
+            </options>
+        </track>
+    </tracks>
+</root>
b
diff -r a0c848f00363 -r 5ef1ba2031f2 tool_data_table_conf.xml.test
--- a/tool_data_table_conf.xml.test Wed Apr 24 03:25:23 2024 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-<tables>
-    <!-- Locations of all fasta files under genome directory -->
-    <table name="all_fasta" comment_char="#">
-        <columns>value, dbkey, name, path</columns>
-        <file path="${__HERE__}/test-data/all_fasta.loc" />
-    </table>
-</tables>