Previous changeset 92:3c4db8203fad (2024-04-21) Next changeset 94:acbacaf0efe3 (2024-04-24) |
Commit message:
planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit aeef2fbc0f90a9366851941ff51baeba410c56e4 |
modified:
autogenJB2.py jbrowse2.py jbrowse2.xml macros.xml test-data/jbrowse2_result02.zip |
added:
__pycache__/jbrowse2.cpython-310.pyc jbrowse2.py.apr17 test-data/Merlin test-data/blastxml/blastn-gene1.xml test-data/blastxml/merlin.gff test-data/jbrowse2_result01.zip 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 jb210demotracks.jpg jb210demotracks.png jbrowse8.png tool_data_table_conf.xml.sample tool_data_table_conf.xml.test |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 Galaxy-History-jb2testout.tar.gz |
b |
Binary file Galaxy-History-jb2testout.tar.gz has changed |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 Galaxy-Workflow-_jb2testWF_mar26.ga --- a/Galaxy-Workflow-_jb2testWF_mar26.ga Sun Apr 21 04:42:29 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 3c4db8203fad -r 4c517a0041a8 __pycache__/jbrowse2.cpython-310.pyc |
b |
Binary file __pycache__/jbrowse2.cpython-310.pyc has changed |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 all_fasta.loc.sample --- a/all_fasta.loc.sample Sun Apr 21 04:42:29 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 3c4db8203fad -r 4c517a0041a8 autogenJB2.py --- a/autogenJB2.py Sun Apr 21 04:42:29 2024 +0000 +++ b/autogenJB2.py Wed Apr 24 02:29:32 2024 +0000 |
[ |
@@ -143,7 +143,7 @@ sys.stdout.write("#### calling %s" % " ".join(cmd)) jc.subprocess_check_call(cmd) track_conf.update( - {"conf": {"options": {"bam": {"bam_index": " %s:%s," % (tpath,ipath)}}}} + {"conf": {"options": {"bam": {"bam_index": " %s ~ %s," % (tpath,ipath)}}}} ) elif trext == "cram": ipath = track[3] @@ -161,7 +161,7 @@ ] jc.subprocess_check_call(cmd) track_conf.update( - {"conf": {"options": {"cram": {"cram_index": "%s:%s," % (tpath, ipath)}}}} + {"conf": {"options": {"cram": {"cram_index": "%s ~ %s," % (tpath, ipath)}}}} ) track_conf["path"] = tpath track_conf["format"] = trext |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 config.json --- a/config.json Sun Apr 21 04:42:29 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 3c4db8203fad -r 4c517a0041a8 jb210demotracks.jpg |
b |
Binary file jb210demotracks.jpg has changed |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 jb210demotracks.png |
b |
Binary file jb210demotracks.png has changed |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 jbrowse2.py --- a/jbrowse2.py Sun Apr 21 04:42:29 2024 +0000 +++ b/jbrowse2.py Wed Apr 24 02:29:32 2024 +0000 |
[ |
@@ -19,7 +19,7 @@ logging.basicConfig(level=logging.DEBUG) log = logging.getLogger("jbrowse") -JB2VER = "v2.10.3" +JB2VER = "v2.11.0" # version pinned if cloning - but not cloning now logCommands = True # useful for seeing what's being written but not for production setups @@ -531,32 +531,7 @@ this_genome["genome_sequence_adapter"] = assem["sequence"][ "adapter" ] - this_genome["genome_firstcontig"] = None - if not useuri: - fl = open(fapath, "r").readline() - fls = fl.strip().split(">") - if len(fls) > 1: - fl = fls[1] - if len(fl.split()) > 1: - this_genome["genome_firstcontig"] = fl.split()[ - 0 - ].strip() - else: - this_genome["genome_firstcontig"] = fl - else: - try: - scontext = ssl.SSLContext(ssl.PROTOCOL_TLS) - scontext.verify_mode = ssl.VerifyMode.CERT_NONE - with urllib.request.urlopen( - url=fapath + ".fai", context=scontext - ) as f: - fl = f.readline() - except Exception: - fl = None - if fl: # is first row of the text fai so the first contig name - this_genome["genome_firstcontig"] = ( - fl.decode("utf8").strip().split()[0] - ) + this_genome["genome_firstcontig"] = first_contig assmeta.append(this_genome) self.assemblies += assembly self.assmeta[primaryGenome] = assmeta @@ -569,12 +544,6 @@ """ if useuri: faname = fapath - adapter = { - "type": "BgzipFastaAdapter", - "fastaLocation": {"uri": faname, "locationType": "UriLocation"}, - "faiLocation": {"uri": faname + ".fai", "locationType": "UriLocation"}, - "gziLocation": {"uri": faname + ".gzi", "locationType": "UriLocation"}, - } scontext = ssl.SSLContext(ssl.PROTOCOL_TLS) scontext.verify_mode = ssl.VerifyMode.CERT_NONE with urllib.request.urlopen(url=faname + ".fai", context=scontext) as f: @@ -591,20 +560,19 @@ fadest, ) self.subprocess_popen(cmd) - - adapter = { - "type": "BgzipFastaAdapter", - "fastaLocation": { - "uri": faname, - }, - "faiLocation": { - "uri": faname + ".fai", - }, - "gziLocation": { - "uri": faname + ".gzi", - }, - } contig = open(fadest + ".fai", "r").readline().strip() + adapter = { + "type": "BgzipFastaAdapter", + "fastaLocation": { + "uri": faname, + }, + "faiLocation": { + "uri": faname + ".fai", + }, + "gziLocation": { + "uri": faname + ".gzi", + }, + } first_contig = contig.split()[:2] first_contig.insert(0, gname) trackDict = { @@ -877,9 +845,9 @@ bindex = fname + ".bai" bi = bam_indexes.split(",") bam_index = [ - x.split(":")[1].strip() + x.split(" ~ ")[1].strip() for x in bi - if ":" in x and x.split(":")[0].strip() == realFName + if " ~ " in x and x.split(" ~ ")[0].strip() == realFName ] logging.debug( "===realFName=%s got %s as bam_indexes %s as bi, %s for bam_index" @@ -939,9 +907,9 @@ self.subprocess_check_call(["cp", data, dest]) ci = cram_indexes.split(",") cram_index = [ - x.split(":")[1].strip() + x.split(" ~ ")[1].strip() for x in ci - if ":" in x and x.split(":")[0].strip() == realFName + if " ~ " in x and x.split(" ~ ")[0].strip() == realFName ] logging.debug( "===realFName=%s got %s as cram_indexes %s as ci, %s for cram_index" @@ -1166,7 +1134,8 @@ categ = trackData["category"] pg = pafOpts["genome"].split(",") pgc = [x.strip() for x in pg if x.strip() > ""] - gnomes = [x.split(":") for x in pgc] + gnomes = [x.split(" ~ ") for x in pgc] + logging.debug("pg=%s, gnomes=%s" % (pg, gnomes)) passnames = [trackData["assemblyNames"]] # always first for i, (gpath, gname) in enumerate(gnomes): # may have been forgotten by user for uri @@ -1178,7 +1147,7 @@ gname = gname.split()[0] if gname not in passnames: passnames.append(gname) - useuri = gpath.startswith("http://") or gpath.startswith("https://") + useuri = pafOpts["useuri"] == "true" if gname not in self.genome_names: # ignore if already there - eg for duplicates among pafs. asstrack, first_contig = self.make_assembly(gpath, gname, useuri) @@ -1616,7 +1585,7 @@ genomes = [ { "path": x.attrib["path"], - "label": x.attrib["label"], + "label": x.attrib["label"].split(" ")[0].replace(",", ""), "useuri": x.attrib["useuri"], "meta": metadata_from_node(x.find("metadata")), } @@ -1650,7 +1619,10 @@ trackfiles = track.findall("files/trackFile") if trackfiles: for x in trackfiles: - track_conf["label"] = "%s_%d" % (x.attrib["label"], trackI) + track_conf["label"] = "%s_%d" % ( + x.attrib["label"].replace(" ", "_").replace(",", ""), + trackI, + ) trackI += 1 track_conf["useuri"] = x.attrib["useuri"] if is_multi_bigwig: |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 jbrowse2.py.apr17 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jbrowse2.py.apr17 Wed Apr 24 02:29:32 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 3c4db8203fad -r 4c517a0041a8 jbrowse2.xml --- a/jbrowse2.xml Sun Apr 21 04:42:29 2024 +0000 +++ b/jbrowse2.xml Wed Apr 24 02:29:32 2024 +0000 |
[ |
b'@@ -1,13 +1,13 @@\n- <tool id="jbrowse2" name="JBrowse2" version="@TOOL_VERSION@+@WRAPPER_VERSION@_15" profile="22.05">\n+<tool id="jbrowse2" name="JBrowse2" version="@TOOL_VERSION@+@WRAPPER_VERSION@_17" profile="22.05">\n <description>genome browser</description>\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="requirements" />\n <version_command>python \'${__tool_directory__}/jbrowse2.py\' --version</version_command>\n <command detect_errors="aggressive"><![CDATA[\n mkdir -p \'$output.files_path\' &&\n@@ -60,7 +60,7 @@\n #end if\n #end if\n ]]></command>\n-<configfiles>\n+ <configfiles>\n <configfile name="trackxml"><![CDATA[<?xml version="1.0"?>\n <root>\n <metadata>\n@@ -232,7 +232,7 @@\n <bam>\n <bam_index>\n #for $dataset in $track.data_format.useuri.annotation:\n- ${dataset}:${dataset.metadata.bam_index},\n+ ${dataset} ~ ${dataset.metadata.bam_index},\n #end for\n </bam_index>\n </bam>\n@@ -240,7 +240,7 @@\n <cram>\n <cram_index>\n #for $dataset in $track.data_format.useuri.annotation:\n- ${dataset}:${dataset.metadata.cram_index},\n+ ${dataset} ~ ${dataset.metadata.cram_index},\n #end for\n </cram_index>\n </cram>\n@@ -260,18 +260,24 @@\n </gff>\n #else if str($track.data_format.data_format_select) == "paf":\n <paf>\n- #if $track.data_format.pafuseuri.insource == "history":\n+ #if str($track.data_format.pafuseuri.insource) == "history":\n <genome>\n #for $anno in $track.data_format.pafuseuri.annotation:\n- ${anno}:${anno.name},\n+ ${anno} ~ ${anno.name},\n #end for\n </genome>\n+ <useuri>\n+ false\n+ </useuri>\n #else:\n <genome>\n #for $refgenome in $track.data_format.pafuseuri.refuri:\n- ${refgenome.annotation}:${refgenome.annoname},\n+ ${refgenome.annotation} ~ ${refgenome.annoname},\n #end for\n </genome>\n+ <useuri>\n+ true\n+ </useuri>\n #end if\n </paf>\n #else if str($track.data_format.data_format_select) == "hic":\n@@ -304,165 +310,186 @@\n ]]></configfile>\n </configfiles>\n <inputs>\n- <repeat name="assemblies" min="1" 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- <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- <option selected="True" value="'..b' </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- <conditional name="useuri">\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+ <conditional name="data_format">\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+ </conditional>\n+ <conditional name="match_part">\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+ </conditional>\n+ <conditional name="color">\n+ <param name="color_select" value="automatic" />\n+ </conditional>\n+ </section>\n </conditional>\n- <section name="jbcolor_scale">\n- <conditional name="color_score">\n- <param name="color_score_select" value="none"/>\n- </conditional>\n- <conditional name="color">\n- <param name="color_select" value="automatic"/>\n- </conditional>\n- </section>\n- </conditional>\n </repeat>\n </repeat>\n </repeat>\n@@ -1036,14 +1145,14 @@\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@@ -1168,5 +1277,5 @@\n \n @ATTRIBUTION@\n ]]></help>\n- <expand macro="citations"/>\n-</tool>\n+ <expand macro="citations" />\n+</tool>\n\\ No newline at end of file\n' |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 jbrowse8.png |
b |
Binary file jbrowse8.png has changed |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 macros.xml --- a/macros.xml Sun Apr 21 04:42:29 2024 +0000 +++ b/macros.xml Wed Apr 24 02:29:32 2024 +0000 |
b |
@@ -1,6 +1,6 @@ <?xml version="1.0"?> <macros> - <token name="@TOOL_VERSION@">2.10.1</token> + <token name="@TOOL_VERSION@">2.11.0</token> <xml name = "edamInc"> <edam_topics> <edam_topic>topic_3307</edam_topic> @@ -20,7 +20,8 @@ <requirement type="package" version="6.0.1">pyyaml</requirement> <requirement type="package" version="1.11">tabix</requirement> <requirement type="package" version="4.6.0">findutils</requirement> - <requirement type="package" version="0.0.8">hictk</requirement> + <requirement type="package" version="0.0.12-0">hictk</requirement> + <requirement type="package" version="3.0">zip</requirement> <yield/> </requirements> </xml> @@ -539,51 +540,51 @@ <xml name="input_conditional" token_label="Track Data" token_format="data"> <conditional name="useuri"> - <param name="insource" type="select" label="Define track data as a history file or an internet URI" - help="A public URI implies that all the associated tabix files are also in place. They are created for history files"> - <option value="history" selected="true">Track data from a history file</option> - <option value="uri" >Tabix data URI - index files must be available at corresponding URI</option> + <param name="insource" type="select" label="Define track data as a history file or an internet URI" + help="A public URI implies that all the associated tabix files are also in place. They are created for history files"> + <option value="history" selected="true">Track data from a history file</option> + <option value="uri" >Tabix data URI - index files must be available at corresponding URI</option> + </param> + <when value="history"> + <param label="@LABEL@" format="@FORMAT@" name="annotation" multiple="True" optional="true" type="data" /> + </when> + <when value="uri"> + <param label="@LABEL@" name="annouri" type="text" /> + <param label="Short name for track display" name="annoname" type="text" > + <sanitizer invalid_char="_"> + <valid initial="string.printable" > + <remove value="'" /> + </valid> + </sanitizer> </param> - <when value="history"> - <param label="@LABEL@" format="@FORMAT@" name="annotation" multiple="True" optional="true" type="data" /> - </when> - <when value="uri"> - <param label="@LABEL@" name="annouri" type="text" /> - <param label="Short name for track display" name="annoname" type="text" > - <sanitizer invalid_char="_"> + </when> + </conditional> + </xml> + <xml name="pafref_conditional" token_label="Track Data" token_format="data"> + <conditional name="pafuseuri"> + <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."> + <option value="history" selected="true">PAF reference comparison genome from a history file</option> + <option value="uri">PAF reference comparison genome tabix .gz URI with index files at the corresponding URIs</option> + </param> + <when value="history"> + <param label="@LABEL@" format="@FORMAT@" name="annotation" type="data" + help="Add all PAF reference comparison genomes used to make the PAF" multiple="true" /> + </when> + <when value="uri"> + <repeat name="refuri" title="PAF reference comparison genome URI" min="1"> + <param label="@LABEL@" name="annotation" type="text" /> + <param label="Short name for this reference" name="annoname" type="text" help="Short names take less track space"> + <sanitizer invalid_char="_"> <valid initial="string.printable" > <remove value="'" /> </valid> - </sanitizer> - </param> - </when> - </conditional> - </xml> - <xml name="pafref_conditional" token_label="Track Data" token_format="data"> - <conditional name="pafuseuri"> - <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."> - <option value="history" selected="true">PAF reference comparison genome from a history file</option> - <option value="uri">PAF reference comparison genome tabix .gz URI with index files at the corresponding URIs</option> - </param> - <when value="history"> - <param label="@LABEL@" format="@FORMAT@" name="annotation" type="data" - help="Add all PAF reference comparison genomes used to make the PAF" multiple="true" /> - </when> - <when value="uri"> - <repeat name="refuri" title="PAF reference comparison genome URI" min="1"> - <param label="@LABEL@" name="annotation" type="text" /> - <param label="Short name for this reference" name="annoname" type="text" help="Short names take less track space"> - <sanitizer invalid_char="_"> - <valid initial="string.printable" > - <remove value="'" /> - </valid> - </sanitizer> - </param> - </repeat> - </when> - </conditional> - </xml> + </sanitizer> + </param> + </repeat> + </when> + </conditional> + </xml> <xml name="citations"> <citations> <citation type="doi">10.1186/s13059-016-0924-1</citation> |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 test-data/Merlin --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/Merlin Wed Apr 24 02:29:32 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 3c4db8203fad -r 4c517a0041a8 test-data/blastxml/blastn-gene1.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/blastxml/blastn-gene1.xml Wed Apr 24 02:29:32 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&auml;ffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search programs", 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 3c4db8203fad -r 4c517a0041a8 test-data/blastxml/merlin.gff --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/blastxml/merlin.gff Wed Apr 24 02:29:32 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 3c4db8203fad -r 4c517a0041a8 test-data/jbrowse2_result01.zip |
b |
Binary file test-data/jbrowse2_result01.zip has changed |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 test-data/jbrowse2_result02.zip |
b |
Binary file test-data/jbrowse2_result02.zip has changed |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 test-data/vcf/test.vcf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/vcf/test.vcf Wed Apr 24 02:29:32 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 3c4db8203fad -r 4c517a0041a8 test-data/vcf/test.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/vcf/test.xml Wed Apr 24 02:29:32 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 3c4db8203fad -r 4c517a0041a8 tool_data_table_conf.xml.sample --- a/tool_data_table_conf.xml.sample Sun Apr 21 04:42:29 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="tool-data/all_fasta.loc" /> - </table> -</tables> |
b |
diff -r 3c4db8203fad -r 4c517a0041a8 tool_data_table_conf.xml.test --- a/tool_data_table_conf.xml.test Sun Apr 21 04:42:29 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> |