Previous changeset 97:74074746ccd8 (2024-06-01) Next changeset 99:990291e918c7 (2024-06-21) |
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 44d8fc559ecf5463a8f753561976fa26686c96f6 |
modified:
autogenJB2.py blastxml_to_gapped_gff3.py gff3_rebase.py jbrowse2.py jbrowse2.xml macros.xml maf2bed.py readme.rst |
added:
all_fasta.loc.sample tool_data_table_conf.xml.test |
removed:
README.md Screenshot at 2024-04-30 16-11-29.png __pycache__/jbrowse2.cpython-310.pyc dm4_in_jb2.png jb210demotracks.png jb2_urlconf.py jbrowse2.py.apr17 jbrowse8.png test-data/Merlin test-data/bam/merlin-sample.bam.gz test-data/blastxml/blastn-gene1.xml test-data/blastxml/merlin.gff test-data/dm3.cool test-data/dm3.fasta test-data/jbrowse2_result01.zip test-data/jbrowse2_result02.zip test-data/merlin_tab.maf test-data/vcf/test.vcf test-data/vcf/test.xml |
b |
diff -r 74074746ccd8 -r b1260bca5fdc Screenshot at 2024-04-30 16-11-29.png |
b |
Binary file Screenshot at 2024-04-30 16-11-29.png has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc __pycache__/jbrowse2.cpython-310.pyc |
b |
Binary file __pycache__/jbrowse2.cpython-310.pyc has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc all_fasta.loc.sample --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/all_fasta.loc.sample Wed Jun 05 10:00:07 2024 +0000 |
b |
@@ -0,0 +1,18 @@ +#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 74074746ccd8 -r b1260bca5fdc autogenJB2.py --- a/autogenJB2.py Sat Jun 01 05:37:13 2024 +0000 +++ b/autogenJB2.py Wed Jun 05 10:00:07 2024 +0000 |
[ |
@@ -77,7 +77,6 @@ for i, x in enumerate(genome_paths) ], ) - logging.debug("@@@autogenJB2 paths=%s, genomes=%s" % (genome_paths, genomes)) assref_name = jc.process_genomes(genomes[0]) if not default_session_data.get(assref_name, None): default_session_data[assref_name] = { @@ -90,6 +89,7 @@ }, } listtracks = trackList + # foo.paf must have a foo_paf.fasta or fasta.gz to match tnames = [x[2] for x in listtracks] texts = [x[1] for x in listtracks] for i, track in enumerate(listtracks): @@ -104,20 +104,22 @@ if tpath.startswith("http://") or tpath.startswith("https://"): useuri = "yes" if trext == "paf": - refdat = ["%s ~ %s" % (x[0],x[2]) for x in listtracks if x[1] in ["fasta", "fasta.gz"]] - if len(refdat) == 0: + refname = trackname + "_paf.fasta" + refdat = [x[2] for x in listtracks if x[2] == refname] + if not refdat: jc.logging.warn( - "!! No reference file for %s found. Using main reference" - % (refname) + "No reference file %s corresponding to paf file %s found. Not building - there must be a corresponding fasta for each paf" + % (refname, trackname) ) - refdat = ["%s ~ %s" % (genomes[0].path, assref_name),] + sys.exit(3) else: track_conf.update( { "conf": { "options": { "paf": { - "genome": ",".join(refdat) + "genome": refdat, + "genome_label": trackname, } } } @@ -140,7 +142,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] @@ -222,5 +224,5 @@ # jc.text_index() not sure what broke here. else: sys.stderr.write( - "!!!! Collection has no suitable trackfiles for autogenJB2 - nothing to process" + "Collection has no suitable trackfiles for autogenJB2 - nothing to process" ) |
b |
diff -r 74074746ccd8 -r b1260bca5fdc blastxml_to_gapped_gff3.py --- a/blastxml_to_gapped_gff3.py Sat Jun 01 05:37:13 2024 +0000 +++ b/blastxml_to_gapped_gff3.py Wed Jun 05 10:00:07 2024 +0000 |
[ |
@@ -32,7 +32,7 @@ recid = record.query if " " in recid: - recid = recid[0 : recid.index(" ")] + recid = recid[0: recid.index(" ")] rec = SeqRecord(Seq("ACTG"), id=recid) for idx_hit, hit in enumerate(record.alignments): @@ -72,7 +72,7 @@ qualifiers["blast_" + prop] = getattr(hsp, prop, None) desc = hit.title.split(" >")[0] - qualifiers["description"] = desc[desc.index(" ") :] + qualifiers["description"] = desc[desc.index(" "):] # This required a fair bit of sketching out/match to figure out # the first time. @@ -161,9 +161,9 @@ fm = "" fs = "" for position in re.finditer("-", query): - fq += query[prev : position.start()] - fm += match[prev : position.start()] - fs += subject[prev : position.start()] + fq += query[prev: position.start()] + fm += match[prev: position.start()] + fs += subject[prev: position.start()] prev = position.start() + 1 fq += query[prev:] fm += match[prev:] |
b |
diff -r 74074746ccd8 -r b1260bca5fdc dm4_in_jb2.png |
b |
Binary file dm4_in_jb2.png has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc gff3_rebase.py --- a/gff3_rebase.py Sat Jun 01 05:37:13 2024 +0000 +++ b/gff3_rebase.py Wed Jun 05 10:00:07 2024 +0000 |
[ |
@@ -63,13 +63,8 @@ else: yield feature - if hasattr(feature, "sub_features"): - for x in feature_lambda( - feature.sub_features, - test, - test_kwargs, - subfeatures=subfeatures, - ): + if hasattr(feature, 'sub_features'): + for x in feature_lambda(feature.sub_features, test, test_kwargs, subfeatures=subfeatures): yield x @@ -79,8 +74,8 @@ For every feature, check that at least one value in feature.quailfiers(kwargs['qualifier']) is in kwargs['attribute_list'] """ - for attribute_value in feature.qualifiers.get(kwargs["qualifier"], []): - if attribute_value in kwargs["attribute_list"]: + for attribute_value in feature.qualifiers.get(kwargs['qualifier'], []): + if attribute_value in kwargs['attribute_list']: return True return False @@ -95,12 +90,12 @@ # If it's an interpro specific gff3 file if interpro: # Then we ignore polypeptide features as they're useless - if feature.type == "polypeptide": + if feature.type == 'polypeptide': continue # If there's an underscore, we strip up to that underscore? # I do not know the rationale for this, removing. # if '_' in parent_feature_id: - # parent_feature_id = parent_feature_id[parent_feature_id.index('_') + 1:] + # parent_feature_id = parent_feature_id[parent_feature_id.index('_') + 1:] try: child_features[parent_feature_id].append(feature) @@ -117,7 +112,7 @@ start *= 3 end *= 3 - if parent.location.strand != None and parent.location.strand >= 0: + if parent.location.strand >= 0: ns = parent.location.start + start ne = parent.location.start + end st = +1 @@ -136,33 +131,31 @@ ns %= 3 if ne < 0: ne %= 3 - if ns > ne: - ne, ns = ns, ne # dunno why but sometimes happens + feature.location = FeatureLocation(ns, ne, strand=st) - if hasattr(feature, "sub_features"): + if hasattr(feature, 'sub_features'): for subfeature in feature.sub_features: __update_feature_location(subfeature, parent, protein2dna) -def rebase(parent, child, interpro=False, protein2dna=False, map_by="ID"): +def rebase(parent, child, interpro=False, protein2dna=False, map_by='ID'): # get all of the features we will be re-mapping in a dictionary, keyed by parent feature ID child_features = __get_features(child, interpro=interpro) for rec in GFF.parse(parent): replacement_features = [] for feature in feature_lambda( - rec.features, - # Filter features in the parent genome by those that are - # "interesting", i.e. have results in child_features array. - # Probably an unnecessary optimisation. - feature_test_qual_value, - { - "qualifier": map_by, - "attribute_list": child_features.keys(), - }, - subfeatures=False, - ): + rec.features, + # Filter features in the parent genome by those that are + # "interesting", i.e. have results in child_features array. + # Probably an unnecessary optimisation. + feature_test_qual_value, + { + 'qualifier': map_by, + 'attribute_list': child_features.keys(), + }, + subfeatures=False): # Features which will be re-mapped to_remap = child_features[feature.id] @@ -173,7 +166,7 @@ __update_feature_location(x, feature, protein2dna) if interpro: - for y in ("status", "Target"): + for y in ('status', 'Target'): try: del x.qualifiers[y] except Exception: @@ -188,28 +181,14 @@ GFF.write([rec], sys.stdout) -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description="rebase gff3 features against parent locations", epilog="" - ) - parser.add_argument( - "parent", type=argparse.FileType("r"), help="Parent GFF3 annotations" - ) - parser.add_argument( - "child", - type=argparse.FileType("r"), - help="Child GFF3 annotations to rebase against parent", - ) - parser.add_argument( - "--interpro", - action="store_true", - help="Interpro specific modifications", - ) - parser.add_argument( - "--protein2dna", - action="store_true", - help="Map protein translated results to original DNA data", - ) - parser.add_argument("--map_by", help="Map by key", default="ID") +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='rebase gff3 features against parent locations', epilog="") + parser.add_argument('parent', type=argparse.FileType('r'), help='Parent GFF3 annotations') + parser.add_argument('child', type=argparse.FileType('r'), help='Child GFF3 annotations to rebase against parent') + parser.add_argument('--interpro', action='store_true', + help='Interpro specific modifications') + parser.add_argument('--protein2dna', action='store_true', + help='Map protein translated results to original DNA data') + parser.add_argument('--map_by', help='Map by key', default='ID') args = parser.parse_args() rebase(**vars(args)) |
b |
diff -r 74074746ccd8 -r b1260bca5fdc jb210demotracks.png |
b |
Binary file jb210demotracks.png has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc jb2_urlconf.py --- a/jb2_urlconf.py Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
[ |
@@ -1,13 +0,0 @@ -inconf = open("config.json", "r").readlines() -with open("config.json.local", "w") as bak: - bak.write("".join(inconf)) -urlbase = "https://galaxy.genomicsvl-students.cloud.edu.au/jbrowse/hum/" -utag = '"uri":' -for i, row in enumerate(inconf): - ispath = False - if row.strip().startswith(utag): - ispath = True - parth = row.split(utag)[1].strip().replace('"', "").replace("'", "") - inconf[i] = '%s "%s%s"' % (utag, urlbase, parth) -with open("config.json", "w") as outconf: - outconf.write("".join(inconf)) |
b |
diff -r 74074746ccd8 -r b1260bca5fdc jbrowse2.py --- a/jbrowse2.py Sat Jun 01 05:37:13 2024 +0000 +++ b/jbrowse2.py Wed Jun 05 10:00:07 2024 +0000 |
[ |
b'@@ -3,6 +3,7 @@\n import argparse\n import binascii\n import datetime\n+# import hashlib\n import json\n import logging\n import os\n@@ -20,9 +21,9 @@\n log = logging.getLogger("jbrowse")\n \n JB2VER = "v2.11.0"\n-# version pinned if cloning - but not cloning now\n+# version pinned if cloning - but not used until now\n logCommands = True\n-# useful for seeing what\'s being written but NOT for production setups\n+# useful for seeing what\'s being written but not for production setups\n TODAY = datetime.datetime.now().strftime("%Y-%m-%d")\n SELF_LOCATION = os.path.dirname(os.path.realpath(__file__))\n GALAXY_INFRASTRUCTURE_URL = None\n@@ -41,6 +42,32 @@\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@@ -398,7 +425,6 @@\n return self.outdir\n else:\n return subprocess.check_output(["pwd"]).decode("utf-8").strip()\n- # return None\n \n def subprocess_check_call(self, command, output=None, cwd=True):\n if output:\n@@ -429,7 +455,7 @@\n log.error(command)\n log.error(output)\n log.error(err)\n- raise RuntimeError("Command failed with exit code %s" % (retcode))\n+ raise RuntimeError(f"Command ( {command} ) failed with exit code {retcode}")\n \n def subprocess_check_output(self, command):\n if logCommands:\n@@ -473,7 +499,7 @@\n nrow = len(fl)\n except Exception:\n nrow = 0\n- logging.debug("### getNrow %s returning %d" % (url, nrow))\n+ logging.debug("getNrow %s returning %d" % (url, nrow))\n return nrow\n \n def process_genomes(self, genomes):\n@@ -514,9 +540,6 @@\n return primaryGenome\n \n def make_assembly(self, fapath, gname, useuri):\n- """added code to grab the first contig name and length for broken default session from Anthony and Helena\'s code\n- that poor Bjoern is trying to figure out.\n- """\n if useuri:\n faname = fapath\n scontext = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)\n@@ -675,8 +698,8 @@\n ]\n }\n categ = trackData["category"]\n- fname = tId\n- dest = "%s/%s" % (self.outdir, fname)\n+ fname = f"{tId}"\n+ dest = os.path.join(self.outdir, fname)\n gname = trackData["assemblyNames"]\n \n cmd = [\n@@ -931,10 +954,6 @@\n \n def add_vcf(self, data, trackData):\n tId = trackData["label"]\n- # url = "%s/api/datasets/%s/display" % (\n- # self.giURL,\n- # trackData["metadata"]["dataset_id"],\n- # )\n categ = trackData["category"]\n useuri = trackData["useuri"].lower() == "yes"\n if useuri:\n@@ -1195,14 +1214,29 @@\n "category": category,\n "style": {},\n }\n+\n+ # hashData = [\n+ # str(dataset_path),\n+ # track_human_label,\n+ # track["category"],\n+ # ]\n+ # hashData = "|".join(hashData).encode("utf-8")\n+ # hash_string = hashlib.md5(hashData).hexdigest()\n+\n outputTrackConfig["assemblyNames"] = track["assemblyNames"]\n outputTrackConfig["key"] = track_human_label\n outputTrackConfig["useuri"] = useuri\n outputTrackConfig["path"] = datase'..b' "offsetPx": 0,\n+ "minimized": False,\n+ "tracks": tracks_data,\n+ }\n first = [x for x in self.ass_first_contigs if x[0] == gnome]\n- drdict = {\n+ if len(first) > 0:\n+ [gnome, refName, end] = first[0]\n+ start = 0\n+ end = int(end)\n+ drdict = {\n+ "refName": refName,\n+ "start": start,\n+ "end": end,\n "reversed": False,\n "assemblyName": gnome,\n }\n- if len(first) > 0:\n- [gnome, refName, end] = first[0]\n- drdict["refName"] = refName\n- drdict["start"] = 0\n- end = int(end)\n- drdict["end"] = end \n else:\n ddl = default_data.get("defaultLocation", None)\n if ddl:\n@@ -1370,13 +1404,6 @@\n "@@@ regexp could not match contig:start..end in the supplied location %s - please fix"\n % ddl\n )\n- view_json = {\n- "type": "LinearGenomeView",\n- "offsetPx": 0,\n- "bpPerPx" : bpPerPx,\n- "minimized": False,\n- "tracks": tracks_data\n- }\n if drdict.get("refName", None):\n # TODO displayedRegions is not just zooming to the region, it hides the rest of the chromosome\n view_json["displayedRegions"] = [\n@@ -1392,10 +1419,12 @@\n for key, value in mapped_chars.items():\n session_name = session_name.replace(value, key)\n session_json["name"] = session_name\n+\n if "views" not in session_json:\n session_json["views"] = session_views\n else:\n session_json["views"] += session_views\n+\n pp = json.dumps(session_views, indent=2)\n config_json["defaultSession"] = session_json\n self.config_json.update(config_json)\n@@ -1430,33 +1459,6 @@\n https://github.com/GMOD/jbrowse-components/discussions/3568\n https://github.com/GMOD/jbrowse-components/pull/4148\n """\n-\n-\n- INDEX_TEMPLATE = """<!doctype html>\n- <html lang="en" style="height:100%">\n- <head>\n- <meta charset="utf-8"/>\n- <link rel="shortcut icon" href="./favicon.ico"/>\n- <meta name="viewport" content="width=device-width,initial-scale=1"/>\n- <meta name="theme-color" content="#000000"/>\n- <meta name="description" content="A fast and flexible genome browser"/>\n- <link rel="manifest" href="./manifest.json"/>\n- <title>JBrowse</title>\n- </script>\n- </head>\n- <body style="overscroll-behavior:none; height:100%; margin: 0;">\n- <iframe\n- id="jbframe"\n- title="JBrowse2"\n- frameborder="0"\n- width="100%"\n- height="100%"\n- src=\'index_noview.html?config=config.json__SESSION_SPEC__\'>\n- </iframe>\n- </body>\n- </html>\n- """\n-\n new_index = "Nothing written"\n session_spec = {"views": []}\n logging.debug("def ass_first=%s\\ndata=%s" % (self.ass_first_contigs, data))\n@@ -1522,8 +1524,13 @@\n json.dump(self.config_json, config_file, indent=2)\n \n def clone_jbrowse(self, realclone=False):\n- """Clone a JBrowse directory into a destination directory. This also works in Biocontainer testing now\n- Leave as True between version updates on temporary tools - requires manual conda trigger :(\n+ """\n+ Clone a JBrowse directory into a destination directory.\n+\n+ `realclone=true` will use the `jbrowse create` command.\n+ To allow running on internet-less compute and for reproducibility\n+ use frozen code with `realclone=false\n+\n """\n dest = self.outdir\n if realclone:\n' |
b |
diff -r 74074746ccd8 -r b1260bca5fdc jbrowse2.py.apr17 --- a/jbrowse2.py.apr17 Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
[ |
b'@@ -1,1772 +0,0 @@\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 74074746ccd8 -r b1260bca5fdc jbrowse2.xml --- a/jbrowse2.xml Sat Jun 01 05:37:13 2024 +0000 +++ b/jbrowse2.xml Wed Jun 05 10:00:07 2024 +0000 |
[ |
b'@@ -1,4 +1,4 @@\n-<tool id="jbrowse2" name="JBrowse2" version="@TOOL_VERSION@+@WRAPPER_VERSION@_17" profile="22.05">\n+<tool id="jbrowse2" name="JBrowse2" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="22.05">\n <description>genome browser</description>\n <macros>\n <import>macros.xml</import>\n@@ -7,51 +7,50 @@\n <xrefs>\n <xref type="bio.tools">jbrowse2</xref>\n </xrefs>\n- <expand macro="requirements" />\n- <expand macro="creators"/>\n- <version_command>python \'${__tool_directory__}/jbrowse2.py\' --version</version_command>\n+ <expand macro="requirements"/>\n <required_files>\n- <include path="autogenJB2.py" />\n- <include path="blastxml_to_gapped_gff3.py" />\n- <include path="convertMAF.sh" />\n- <include path="gff3_rebase.py" />\n- <include path="jb2_urlconf.py" />\n- <include path="jb2_webserver.py" />\n- <include path="jbrowse2.py" />\n- <include path="maf2bed.py" />\n+ <include path="autogenJB2.py"/>\n+ <include path="blastxml_to_gapped_gff3.py"/>\n+ <include path="convertMAF.sh"/>\n+ <include path="gff3_rebase.py"/>\n+ <include path="jb2_webserver.py"/>\n+ <include path="jbrowse2.py"/>\n+ <include path="maf2bed.py"/>\n </required_files>\n+ <version_command>python \'${__tool_directory__}/jbrowse2.py\' --version</version_command>\n <command detect_errors="aggressive"><![CDATA[\n mkdir -p \'$output.files_path\' &&\n cp \'$trackxml\' \'$output.files_path/galaxy.xml\' &&\n-export JBROWSE2_PATH=\\$(dirname \\$(which jbrowse))/../opt/jbrowse2 &&\n+export JBROWSE2_PATH=\\$(dirname \\$(which jbrowse))/../opt/jbrowse2 &&\n #if $jbgen.ucol.formcoll=="collect":\n python \'$__tool_directory__/autogenJB2.py\'\n #for $key in $autoCollection.keys():\n #if $autoCollection[$key].is_collection:\n #set subCol=$autoCollection[$key]\n #set pafs=[($subCol[x],$subcol[x].ext,x) for x in $subCol.keys() if $subCol[x].ext == \'paf\']\n- #set refs=[($subCol[x],$subcol[x].ext,x) for x in $subCol.keys() if $subCol[x].ext in [\'fasta.gz\',\'fasta\']]\n #if len($pafs) > 0:\n- --pafmeta \'$pafs[0]\'\n+ --pafmeta \'$pafs[0]\'\n+ #set refs = [($pafs[0][2],$subCol[x],x) for x in $subCol.keys() if $subCol[x].ext == \'fasta\']\n #for $ref in $refs:\n- --pafreferencemeta \'$ref\'\n+ --pafreferencemeta \'$ref\'\n #end for\n #end if\n #else if $autoCollection[$key].ext == \'fasta\':\n- --referencemeta \'$autoCollection[$key],$autoCollection[$key].ext,$key\'\n+ --referencemeta \'$autoCollection[$key],$autoCollection[$key].ext,$key\'\n #else if $autoCollection[$key].ext in [\'bed\', \'bigwig\', \'cool\', \'gff\', \'gff3\', \'hic\', \'maf\', \'mcool\', \'scool\', \'vcf\']\n- --trackmeta \'$autoCollection[$key],$autoCollection[$key].ext,$key\'\n+ --trackmeta \'$autoCollection[$key],$autoCollection[$key].ext,$key\'\n #else if $autoCollection[$key].ext in [\'bam\',]\n- --trackmeta \'$autoCollection[$key],$autoCollection[$key].ext,$key,$autoCollection[$key].metadata.bam_index\'\n- #else if $autoCollection[$key].ext in [\'cram\',]\n- --trackmeta \'$autoCollection[$key],$autoCollection[$key].ext,$key,$autoCollection[$key].metadata.cram_index\'\n+ --trackmeta \'$autoCollection[$key],$autoCollection[$key].ext,$key,$autoCollection[$key].metadata.bam_index\'\n+ #else if $autoCollection[$key].ext in [\'cram\',]\n+ --trackmeta \'$autoCollection[$key],$autoCollection[$key].ext,$key,$autoCollection[$key].metadata.cram_index\'\n #end if\n #end for\n --outdir \'$output.files_path\'\n --jbrowse2path \\${JBROWSE2_PATH}\n --sessName "Autogen JBrowse" &&\n #if $jbgen.zipOut == "true":\n- (cd \'$output.files_path\' && zip -r - . ) > \'$output\'\n+ cd \'$output.files_path\' &&\n+ zip -r - . > \'$output\'\n #else\n '..b'- <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_archive_member path="A.gff"/>\n+ <has_archive_member path="B.gff"/>\n+ <has_archive_member path="C.gff"/>\n+ <has_archive_member path="interpro.gff"/>\n+ <has_archive_member path="1.gff"/>\n+ <has_archive_member path="2.gff"/>\n+ <has_archive_member path="galaxy.xml">\n+ <is_valid_xml/>\n+ <has_n_elements_with_path path="./metadata/general/session_name" n="1"/>\n+ <element_text_is path="./metadata/general/session_name" text="New JBrowse2 session"/>\n+ </has_archive_member>\n </assert_contents>\n </output>\n </test>\n- <!-- TODO add a synteny test -->\n- <!-- TODO add a bam and a cram test -->\n- <!-- TODO add an hic test -->\n- <!-- TODO add a vcf_bgzip test -->\n+ <test>\n+ <repeat name="assemblies">\n+ <conditional name="reference_genome">\n+ <param name="genome_type_select" value="history"/>\n+ <param name="genome" value="merlin.fa"/>\n+ </conditional>\n+ <repeat name="track_groups">\n+ <param name="category" value="Auto Coloured"/>\n+ <repeat name="data_tracks">\n+ <conditional name="data_format">\n+ <param name="data_format_select" value="cram"/>\n+ <param name="annotation" value="cram/merlin-sample.cram"/>\n+ </conditional>\n+ </repeat>\n+ </repeat>\n+ </repeat>\n+ <section name="jbgen">\n+ <param name="zipOut" value="true"/>\n+ </section>\n+ <output name="output" ftype="zip">\n+ <assert_contents>\n+ <!-- roughly 590 files in an archive -->\n+ <has_archive_member path=".*" n="608" delta="30"/>\n+ <has_archive_member path="index.html"/>\n+ <has_archive_member path="static/media/roboto-latin-400-normal.3f2b9a42f643e62a49b7.woff"/>\n+ <has_archive_member path="manifest.json">\n+ <has_text text="favicon.ico"/>\n+ <has_text text="background_color"/>\n+ </has_archive_member>\n+ <has_archive_member path="merlin.fa.fa.gz.fai"/>\n+ <has_archive_member path="galaxy.xml">\n+ <is_valid_xml/>\n+ <has_n_elements_with_path path="./metadata/general/session_name" n="1"/>\n+ <element_text_is path="./metadata/general/session_name" text="New JBrowse2 session"/>\n+ </has_archive_member>\n+ </assert_contents>\n+ </output>\n+ </test>\n </tests>\n <help><![CDATA[\n \n JBrowse2-in-Galaxy\n ==================\n \n-JBrowse2-in-Galaxy offers a highly configurable, workflow-compatible\n-alternative to JBrowse1-in-Galaxy and Trackster.\n+JBrowse2-in-Galaxy offers a highly configurable, workflow-compatible Genome viewer.\n \n Compared to JBrowse1-in-Galaxy, there is no support for alternative codons for unusual genomes,\n-and detailed track styling is not yet implemented. Send code.\n-JBrowse1 development has now ceased in favour of JBrowse2.\n+and detailed track styling is not yet implemented. Please contact us if you are missing features.\n \n Use and local viewing\n =====================\n' |
b |
diff -r 74074746ccd8 -r b1260bca5fdc jbrowse8.png |
b |
Binary file jbrowse8.png has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc macros.xml --- a/macros.xml Sat Jun 01 05:37:13 2024 +0000 +++ b/macros.xml Wed Jun 05 10:00:07 2024 +0000 |
[ |
@@ -1,5 +1,5 @@ <macros> - <token name="@TOOL_VERSION@">2.11.0</token> + <token name="@TOOL_VERSION@">2.11.1</token> <xml name="edamInc"> <edam_topics> <edam_topic>topic_3307</edam_topic> @@ -13,7 +13,7 @@ <xml name="requirements"> <requirements> <requirement type="package" version="@TOOL_VERSION@">jbrowse2</requirement> - <requirement type="package" version="1.81">biopython</requirement> + <requirement type="package" version="1.82">biopython</requirement> <requirement type="package" version="0.7.1">bcbio-gff</requirement> <requirement type="package" version="1.19">samtools</requirement> <requirement type="package" version="6.0.1">pyyaml</requirement> @@ -25,24 +25,15 @@ </requirements> </xml> <token name="@DATA_DIR@">\$GALAXY_JBROWSE_SHARED_DIR</token> - <token name="@WRAPPER_VERSION@">galaxy2</token> - <token name="@ATTRIBUTION@"><![CDATA[ -**Attribution** -This Galaxy tool relies on the JBrowse2, maintained by the GMOD Community. The Galaxy wrapper is -maintained by Ross Lazarus and Bjoern Gruening until the IUC complete their own. -]]> - </token> + <token name="@VERSION_SUFFIX@">0</token> <xml name="creators"> <creator> - <person givenName="Helena" familyName="Rasche" url="https://github.com/hexylena" /> - <person givenName="Anthony" familyName="Bretaudeau" url="https://github.com/abretaud" /> - <person givenName="Ross" familyName="Lazarus" url="https://github.com/fubar2/" /> + <person givenName="Helena" familyName="Rasche" url="https://github.com/hexylena"/> + <person givenName="Anthony" familyName="Bretaudeau" url="https://github.com/abretaud"/> + <person givenName="Ross" familyName="Lazarus" url="https://github.com/fubar2/"/> </creator> </xml> - <xml name="genome_selector" - token_help="" - token_label="Fasta sequences" - token_optional="False" > + <xml name="genome_selector" token_help="" token_label="Fasta sequences" token_optional="False"> <conditional name="reference_genome"> <param name="genome_type_select" type="select" label="Reference genome to display" help="Built-in references"> <option selected="True" value="indexed">Use a built-in genome</option> @@ -112,12 +103,11 @@ <when value="collect"> <param name="autoCollection" type="data_collection" label="Collection of bed, bam and other track files"/> </when> - <when value="form"> - </when> + <when value="form"/> </conditional> - <param name="zipOut" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Create a zip archive for downloading rather than viewing " help="Default is to make an interactive browser appear when the 'eye' icon is activated"/> + <param name="zipOut" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Create a zip archive for downloading rather than viewing" help="Default is to make an interactive browser appear when the 'eye' icon is activated"/> <param name="defaultLocation" type="text" value="" label="Subset to display to new users" help="Initial subset to be shown for users who have never visited the browser before. Example: 'ctgA:1234..5678"/> - <param name="session_name" type="text" value="New JB2 session" label="Session name" help="Displayed at the top of the window"/> + <param name="session_name" type="text" value="New JBrowse2 session" label="Session name" help="Displayed at the top of the window"/> <param name="enableAnalytics" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Enable analytics" help="Will send usage data to Google Analytics, see https://github.com/GMOD/jbrowse-components/issues/1166"/> <param name="primary_color" type="color" value="#0D233F" label="Primary color"> <sanitizer> |
b |
diff -r 74074746ccd8 -r b1260bca5fdc maf2bed.py --- a/maf2bed.py Sat Jun 01 05:37:13 2024 +0000 +++ b/maf2bed.py Wed Jun 05 10:00:07 2024 +0000 |
[ |
@@ -32,7 +32,7 @@ elif line[0] == 'a': score = int(line[1].split('=')[1]) if id > 0: - sys.stdout.write('\t'.join([chrom, '%d' % start, '%d' % end, f"{sys.argv[1]}_{id}", '%d' % score, buffer])+ '\n') + sys.stdout.write('\t'.join([chrom, '%d' % start, '%d' % end, f"{sys.argv[1]}_{id}", '%d' % score, buffer]) + '\n') id += 1 buffer = '' elif line[0] == 's': |
b |
diff -r 74074746ccd8 -r b1260bca5fdc readme.rst --- a/readme.rst Sat Jun 01 05:37:13 2024 +0000 +++ b/readme.rst Wed Jun 05 10:00:07 2024 +0000 |
b |
@@ -1,6 +1,8 @@ JBrowse2 in Galaxy ================== + JBrowse2 is a fast, embeddable genome browser built completely with + JavaScript and HTML5 Added April 2024: Multiple independent assembly/track sets in the same browser now working @@ -15,7 +17,6 @@ Testing history added with tests of the 8 simple formats hic and paf need small tests but work with big ones... - Added Mar 8: - URI as data source for tracks - Autogenerate from a collection now builtin to advanced options - ignores form @@ -40,7 +41,7 @@ .. image:: dm4_in_jb2.png -Other samples +Other tracks .. image:: jb2_samplerMay5.png @@ -80,17 +81,17 @@ - 2.10.0+galaxy2 -- UPDATED existing JBrowse1.16.11 code to JBrowse 2.10.0 -- was working well enough for VGP when previous PR discovered - - too late to backport all the fixes - - working default session and some other ideas copied instead. -- seems to work well with defaults. -- need to document and implement track settings by running the browser locally. -- works well enough to be useful in workflows such as TreeValGal. -- JB2 seems to set defaults wisely. -- not yet ideal for users who need fine grained track control. -- synteny (paf + reference) now working -- rehomed at https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 while IUC reviews are slowly sorted out. + - UPDATED existing JBrowse1.16.11 code to JBrowse 2.10.0 + - was working well enough for VGP when previous PR discovered + - too late to backport all the fixes + - working default session and some other ideas copied instead. + - seems to work well with defaults. + - need to document and implement track settings by running the browser locally. + - works well enough to be useful in workflows such as TreeValGal. + - JB2 seems to set defaults wisely. + - not yet ideal for users who need fine grained track control. + - synteny (paf + reference) now working + - rehomed at https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 while IUC reviews are slowly sorted out. Wrapper License (MIT/BSD Style) |
b |
diff -r 74074746ccd8 -r b1260bca5fdc test-data/Merlin --- a/test-data/Merlin Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
b'@@ -1,2881 +0,0 @@\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 74074746ccd8 -r b1260bca5fdc test-data/bam/merlin-sample.bam.gz |
b |
Binary file test-data/bam/merlin-sample.bam.gz has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc test-data/blastxml/blastn-gene1.xml --- a/test-data/blastxml/blastn-gene1.xml Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
b'@@ -1,128 +0,0 @@\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 74074746ccd8 -r b1260bca5fdc test-data/blastxml/merlin.gff --- a/test-data/blastxml/merlin.gff Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
b'@@ -1,1230 +0,0 @@\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 74074746ccd8 -r b1260bca5fdc test-data/dm3.cool |
b |
Binary file test-data/dm3.cool has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc test-data/dm3.fasta --- a/test-data/dm3.fasta Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
b'@@ -1,401577 +0,0 @@\n->NT_037436.4 Drosophila melanogaster chromosome 3L\n-TAGGGAGAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTCTTTGATTTTTTGGCAACCC\n-AAAATGGTGGCGGATGAACGAGATGATAATATATTCAAGTTGCCGCTAATCAGAAATAAATTCATTGCAA\n-CGTTAAATACAGCACAATATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTAATGAGTGCCT\n-CTCGTTCTCTGTCTTATATTACCGCAAACCCAAAAAGACAATACACGACAGAGAGAGAGAGCAGCGGAGA\n-TATTTAGATTGCCTATTAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTCTGCTCTCTATATAA\n-TGACTGCCTCTCATTCTGTCTTATTTTACCGCAAACCCAAATCGACAATGCACGACAGAGGAAGCAGAAC\n-AGATATTTAGATTGCCTCTCATTTTCTCTCCCATATTATAGGGAGAAATATGATCGCGTATGCGAGAGTA\n-GTGCCAACATATTGTGCTCTTTGATTTTTTGGCAACCCAAAATGGTGGCGGATGAACGAGATGATAATAT\n-ATTCAAGTTGCCGCTAATCAGAAATAAATTCATTGCAACGTTAAATACAGCACAATATATGATCGCGTAT\n-GCGAGAGTAGTGCCAACATATTGTGCTAATGAGTGCCTCTCGTTCTCTGTCTTATATTACCGCAAACCCA\n-AAAAGACAATACACGACAGAGAGAGAGAGCAGCGGAGATATTTAGATTGCCTATTAAATATGATCGCGTA\n-TGCGAGAGTAGTGCCAACATATTCTGCTCTCTACATAATGACTGCCTCTCATTCTGTCTTATTTTACCGC\n-AAACCCAAATCGACAATGCACGACAGAGGAAGCAGAACAGATATTTAGATTGCCTCTCATTTTCTCTCCC\n-ATATTATAGGGAGAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTCTTTGATTTTTTGG\n-CAACCCAAAATGGTGGCGGATGAACGAGATGATAATATATTCAAGTTGCCGCTAATCAGAAATAAATTCA\n-TTGCAACGTTAAATACAGCACAATATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTAATGA\n-GTGCCTCTCGTTCTCTGTCTTATATTACCGCAAACCCAAAAAGACAATACACGACAGAGAGAGAGAGCAG\n-CGGAGATATTTAGATTGCCTATTAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTCTGCTCTCT\n-ATATAATGACTGCCTCTCATTCTGTCTTATTTTACCGCAAACCCAAATCGACAATGCACGACAGAGGAAG\n-CAGAACAGATATTTAGATTGCCTCTCATTTTCTCTCCCATATTATAGGGAGAAATATGATCGCGTATGCG\n-AGAGTAGTGCCAACATATTGTGCTCTTTGATTTTTTGGCAACCCAAAATGGTGGCGGATGAACGAGATGA\n-TAATATATTCAAGTTGCCGCTAATCAGAAATAAATTCATTGCAACGTTAAATACAGCACAATATATGATC\n-GCGTATGCGAGAGTAGTGCCAACATATTGTGCTAATGAGTGCCTCTCGTTCTCTGTCTTATATTACCGCA\n-AACCCAAAAAGACAATACACGACAGAGAGAGAGAGCAGCGGAGATATTTAGATTGCCTATTAAATATGAT\n-CGCGTATGCGAGAGTAGTGCCAACATATTCTGCTCTCTATATAATGACTGCCTCTCATTCTGTCTTATTT\n-TACCGCAAACCCAAATCGACAATGCACGACAGAGGAAGCAGAACAGATATTTAGATTGCCTCTCATTTTC\n-TCTCCCATATTATAGGGAGAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTCTTTGATT\n-TTTTGGCAACCCAAAATGGTGGCGGATGAACGAGATGATAATATATTCAAGTTGCCGCTAATCAGAAATA\n-AATTCATTGCAACGTTAAATACAGCACAATATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGC\n-TAATGAGTGCCTCTCGTTCTCTGTCTTATATTACCGCAAACCCAAAAAGACAATACACGACAGAGAGAGA\n-GAGCAGCGGAGATATTTAGATTGCCTATTAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTCTG\n-CTCTCTATATAATGACTGCCTCTCATTCTGTCTTATTTTACCGCAAACCCAAATCGACAATGCACGACAG\n-AGGAAGCAGAACAGATATTTAGATTGCCTCTCATTTTCTCTCCCATATTATAGGGAGAAATATGATCGCG\n-TATGCGAGAGTAGTGCCAACATATTGTGCTCTTTGATTTTTTGGCAACCCAAAATGGTGGCGGATGAACG\n-AGATGATAATATATTCAAGTTGCCGCTAATCAGAAATAAATTCATTGCAACGTTAAATACAGCACAATAT\n-ATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTAATGAGTGCCTCTCGTTCTCTGTCTTATATT\n-ACCGCAAACCCAAAAAGACAATACACGACAGAGAGAGCAGCGGAGATATTTAGATTGCCTATTAAATATG\n-ATCGCGTATGCGAGAGTAGTGCCAACATATTCTGCTCTCTATATAATGACTGCCTCTCATTCTGTCTTAT\n-TTTACCGCAAACCCAAATCGACAATGCACGACAGAGGAAGCAGAACAGATATTTAGATTGCCTCTCATTT\n-TCTCTCCCATATTATAGGGAGAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTCTTTGA\n-TTTTTTGGCAACCCAAAATGGTGGCGGATGAACGAGATGATAATATATTCAAGTTGCCGCTAATCAGAAA\n-TAAATTCATTGCAACGTTAAATACAGCACAATATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGT\n-GCTAATGAGTGCCTCTCGTTCTCTGTCTTATATTACCGCAAACCCAAAAAGACAATACACGACAGAGAGA\n-GAGAGCAGCGGAGATATTTAGATTGCCTATTAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTC\n-TGCTCTCTATATAATGACTGCCTCTCATTCTGTCTTATTTTACCGCAAACCCAAATCGACAATGCACGAC\n-AGAGGAAGCAGAACAGATATTTAGATTGCCTCTCATTTTCTCTCCCATATTATAGGGAGAAATATGATCG\n-CGTATGCGAGAGTAGTGCCAACATATTGTGCTCTTTGATTTTTTGGCAACCCAAAATGGTGGCGGATGAA\n-CGAGATGATAATATATTCAAGTTGCCGCTAATCAGAAATAAATTCATTGCAACGTTAAATACAGCACAAT\n-ATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCTAATGAGTGCCTCTCGTTCTCTGTCTTATA\n-TTACCGCAAACCCAAAAAGACAATACACGACAGAGAGAGAGAGCAGCGGAGATATTTAGATTGCCTATTA\n-AATATGATCGCGTATGCGAGAGTAGTGCCAACATATTCTGCTCTCTATATAATGACTGCCTCTCATTCTG\n-TCTTATTTTACCGCAAACCCAAATCGACAATGCACGACAGAGGAAGCAGAACAGATATTTAGATTGCCTC\n-TCATTTTCTCTCCCATATTATAGGGAGAAATATGATCGCGTATGCGAGAGTAGTGCCAACATATTGTGCT\n-CTTTGATTTTTTGGCAACCCAAAATGGTGGCGGATGAACGAGATGATAATATATTCAAGTTGCCGCTAAT\n-CAGAAATAAATTCATTGCAACGTTAAATACAGCACAA'..b'CTAATAAATTAATAACATTAATTTCCCCTGAATTGCAGAAAGTTGGATTCAACTTAAGG\n-AAATGGATTTCCAACAATTCCAAAATATTAACCACTGTGGAGGACACAGGGGACAATAAGGTTCTCAATA\n-TTATCGAAAATGAATGTGTTAAAACTTTAGGACTAAAATGGGAACATCAAAATGATTTATTTAAATTCAG\n-CGTAAATTGTAATGAATCAAAAAATATAAATAAGCGCGTTGTGTTATCAACGCTAGCAAAAATATATGAT\n-CCGTTAGGATGGTTGGCACCAGTCACCGTTTCAGGAAAACTTTTTATTCAAAAACTTTGGATAAATAAAA\n-GTGAATGGGATCAGGAATTATCCATAGAAGATAAAAATTATTGGGAAAAATATAAAGAAAATTTATTATT\n-GTTAAAAAATATTCGAATCCCAAGGTGGATTAATTCAAACAGTTCTTCAGTCATTCAGATTCACGGATTT\n-GCGGACGCCTCCGAAAAAGCATATGCTGCAGTAGTCTATGCTAAAGTAGGACCTCATGTTAATATAATAG\n-CTAGCAAAAGTAGAGTCAACCCTATAAAAAATAGGAAGACAATTCCCAAACTCGAGCTGTGTGCAGCTCA\n-CCTGCTTAGTGAATTAATCCAAAGACTAAAAGGATCAATTGACAATATAATGGAGATCTATGCTTGGAGT\n-GATTCCACGATTACCTTAGCATGGATTAACAGTGGTCAAAGTAAGATCAAATTTATAAGAAGAAGAACGG\n-ATGACATTCGGAAATTAAAAAATACTCAATGGAATCATGTTAAGTCAGAGGATAATCCAGCACATTTAGC\n-ATCCAGGGGAGTGGATTCTAACCAGTTGATCAACTGTGATTTTTGGTGGAAAGGTCCGAAATGGCTAGCC\n-GACCCAAAAGAACTTTGGCCTCGGCAGCAGTCTGTAGAAGAACCTGTCTTAATAAATACGGTATTACAAG\n-ACAAAATAGATGATCCTATTTACGAATTGATAGAAAGGTATTCCAGAAAAACTTATACGTATAATAGCAT\n-ACATAAATAGATTCGTGCAGATGAAAACAAATAATAAAGCCTATTCATCAATTATTTCAGTAAAGGAGAT\n-AAGAATAGCGGAAACAGTTGTTATTAAGAAACAACAAGAATACCAGTTTAGGCAAGAGATAAAGTGCCTT\n-AAAATCAAAAAGGAAATCAAGACAAATAATAAAATATTGTCATTGAATCCATTTTTGGACAAGGATGGGG\n-TTCTAAGAGTTGGAGGAAGATTGCAAAACTCCAATGCAGAATTTAATGTTAAACATCCAATCATTTTAGA\n-AAAATGCCACCTAACAAGCTTATTAATAAAAAATGCTCATAAGGAAACATTGCATGGAGGGATAAACCTT\n-ATGCGAAACTATATCCAAAGAAAGTATTGGATTTTCGGGTTGAAAAATTCGTTGAAAAAGTATTTAAGAG\n-AATGTGTAAAGTGTGCAAGGTATAAACAAAATACAGCTCAGCAAATAATGGGTAACTTGTCAAAATATAG\n-AGTGACGATGACATTCCCGTTTCTTAATACTGGAAGAGATTACGCAGGTCCTTATTATGTTAAATGTTCA\n-AAAAATCGTGGCCAAAAAACATTTAAAGGATACGTTGCCGTATTTGTTTGCATGGCCACCAAAGCCATAC\n-ACTTAGAAATGGTAAGCGATCTAACTTCTGACGCATTTTTAGCAGCACTCAGAAGATTTATTGCTAGACG\n-GGGAAAATGTTCCAATATCTATTCAAACAACGGAACAAATTTTGTAGGAGCTGCAAGAAAATTAGATCAA\n-GAGTTATTTAATGCAATACAAGAAAATATAACGATTGCAGCGCAGCTTGAAAAGGACAGGATTGATTGGC\n-ATTTTATTCCCCCGGCAGGACCTCACTTCGGAGGTATTTGGGAAGCTGGGGTTAAGTCAATGAAATACCA\n-TTTAAAGCGTATAATCGGCGACACAATTTTGACTTACGAAGAAATGTCAACTCTTTTATGTCAAATAAAA\n-GCATGCTTAAATTCAAGGCCATTATACACTATAGTTAGTGAGATGGACCAACAAGAGGTTTTAACACCAG\n-GTCATTTTTTAATTGGAAGACCACCTTTAGAAATAGTCGAACCAATGGAAGATGAAAAAATCGGAAATTT\n-GGATAGGTGGAGACTTATCCAAAAAATGAGGAAAGATATCTGGGTTAAGTGGAAAAGTGAATATTTGCAT\n-ACGCTCCAGCAAAGGAATAAATGGAAAAAGGAAATTCCTAATATAGAAGAAGGGCAAATAGTTTCATTAA\n-AGGATGAGAATTGTCATCCTGCAAGATGGCCTTTAGGAAAGGTGGAAAAGGTCCATAAGGGGAATGATGA\n-TAAGGTCCGGGTGGCTAAAGTAAAGATGCAGGAAGGATATATCACTAGACCCGTTACTAAAATTTGTCCC\n-TTGGAAGGAATAAAGTCTGTTGACAAAAATGAGGCTGACCAGGAGCCAAAAAGGCGAACTAGAGCGACAT\n-CGGGAATGTCCAAGATCGGAATCATCATGGCAATGTTGTTGTTTGTGTTAAGTTGTCAAGTTTCTAGCGC\n-ATTACCTAAAGATATAGCACCAAGATATTCTATAGACAAAATAAATAAAACCTCAGCAATATATCTAGAC\n-CCGCTAGGAGATGTTGAGATTGTGAGTACTTCTTGGAATTTGGAATATTATAAAATGGATCCATATTTTA\n-AAATGTTAACAAAGGGTAATGCGCTTATACAAAGTATGAGGAAAGTTTGCGAAAGACTTCATAGCTTTGA\n-AGAGCAATGTAGTCTAGTCTTAGATAATATGCAAAGGAAGTTGGCCCTGGAATTCTGCCAATGATAATGC\n-ATGATTCAGCCTCTAAAGCCAAAAAAAGTGGCGAACTGCATCTATAAAACAGTAGTCGACTCTAAAAGTT\n-ACTGGGTAGAGTTAGAAAAGAAAAGTAGTTGGTTGTTTAAGGTTCCTGTGAATTCAAAAGTCCGTCTGCA\n-ATGTACTGGCTCTCAAATTGAATTGTTTGATTTGCCTCAGCAAGGAGTTTTAAGCATTGCGCCATATTGT\n-ACGGCAAGAACCGACGATAAAATTATAGTTGCCCACCATAACATTCAGTCCGAAAGTGAAGAATTATTAT\n-CAACACCTTATATAGGAGAAGTTAGTGAAGTGCCGAAGATTATTTGGGATCCGCTGAAACTATCAATATT\n-AAATCATACTGAGGAATTTGAACGATTGAATAATGAAATTAAAAATTGAAAGATTTAGATTTCCATCATA\n-TTTCCGGACATGCTGGATTAATTATTGCTTTAATAATAATGGTAGTATTAATAATATATTTCATACGGAA\n-ATGTGCTGTGCAACAAAGAATGCAAGCCAATAACCTTTGCAGGTCCGTTGCCAGTACTATAAATATCAAT\n-AGTAAATAAAAAATAAAATTATATAACAAAAAAATATATACAGTCCACTATATCGTTGTTTAAGAGAAAA\n-TGTACTTCTACATAGAAAAAGCGAAATGTTTAAAATAAGTTAATTGAGTACAAATTGTTGAATTAAAAAT\n-AATATAAACCATAATTGTAATCCAATAAAATTAAAAGCCAGGAAAACTAGGGCCATTGAATTCTTAGTTG\n-CAAAATAAATGAACATATATCAAATAAATACAGTCCACTACTGTTATAAATGCAACTAATATACTAATGT\n-ACATCTATCTCAGCTTTTCTGGCCCTTTGGCAGAATGTTCACACATGAACACGAATATATTTAAAGACTT\n-ACAATTTTGGGCTCCGTTCATATCTTATGTAAATGAATCGAGAGCGATAAATTATATTTAGGATTTTGTA\n-AGAATAACATATTCTATGTTATTCTATGTTATTCCATGTTATTCTAT\n-\n' |
b |
diff -r 74074746ccd8 -r b1260bca5fdc test-data/jbrowse2_result01.zip |
b |
Binary file test-data/jbrowse2_result01.zip has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc test-data/jbrowse2_result02.zip |
b |
Binary file test-data/jbrowse2_result02.zip has changed |
b |
diff -r 74074746ccd8 -r b1260bca5fdc test-data/merlin_tab.maf --- a/test-data/merlin_tab.maf Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
@@ -1,37 +0,0 @@ -##maf version=1 scoring=lastz.v1.04.22 -# lastz.v1.04.22 --strand=both --ambiguous=iupac --traceback=160M --format=maf --action:target=multiple -# -# hsp_threshold = 3000 -# gapped_threshold = 3000 -# x_drop = 910 -# y_drop = 9400 -# gap_open_penalty = 400 -# gap_extend_penalty = 30 -# A C G T -# A 91 -114 -31 -123 -# C -114 100 -125 -31 -# G -31 -125 100 -114 -# T -123 -31 -114 91 -a score=5703 -s Merlin.Merlin 1320 60 + 172788 ATGTAAGCTCAGGAGCTCCACACGCAACAGGAACACAACCTGTGAACATTATCACAGTAT -s Merlin1.Merlin 0 60 + 60 ATGTAAGCTCAGGAGCTCCACACGCAACAGGAACACAACCTGTGAACATTATCACAGTAT - -a score=5595 -s Merlin.Merlin 4020 60 + 172788 ATGAATTTATCAGTCCAATACTTAAAATGAATACGAAGTAAATCTATGCCTAATACTAAT -s Merlin2.Merlin 0 60 + 60 ATGAATTTATCAGTCCAATACTTAAAATGAATACGAAGTAAATCTATGCCTAATACTAAT - -a score=5667 -s Merlin.Merlin 5220 60 + 172788 TAATCAACGTGTGATGCTTCAAGCCAAGCTTAGGAATAGAAATGGTTTTGCCATTGACTT -s Merlin3.Merlin 0 60 + 60 TAATCAACGTGTGATGCTTCAAGCCAAGCTTAGGAATAGAAATGGTTTTGCCATTGACTT - -a score=5640 -s Merlin.Merlin 7740 60 + 172788 AAAAGCTTATTGCTTAAGCCTACAGTTAAACTCGCTATTCCAGTTAAATGCGATAAATGT -s Merlin4.Merlin 0 60 + 60 AAAAGCTTATTGCTTAAGCCTACAGTTAAACTCGCTATTCCAGTTAAATGCGATAAATGT - -a score=5649 -s Merlin.Merlin 9720 60 + 172788 TTTTCTTTGCTAATTTAACACCAAGAGCTGCAATCCATTGGTTTCTTCGTTTATATCCTG -s Merlin5.Merlin 0 60 + 60 TTTTCTTTGCTAATTTAACACCAAGAGCTGCAATCCATTGGTTTCTTCGTTTATATCCTG - -a score=5658 -s Merlin.Merlin 10380 60 + 172788 ATACTGCATCCTTTTGATACCAATGCGGTTCAATTTGAGTGTTACCAGAGTATATCTTGA -s Merlin6.Merlin 0 60 + 60 ATACTGCATCCTTTTGATACCAATGCGGTTCAATTTGAGTGTTACCAGAGTATATCTTGA |
b |
diff -r 74074746ccd8 -r b1260bca5fdc test-data/vcf/test.vcf --- a/test-data/vcf/test.vcf Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
@@ -1,23 +0,0 @@ -##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 74074746ccd8 -r b1260bca5fdc test-data/vcf/test.xml --- a/test-data/vcf/test.xml Sat Jun 01 05:37:13 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 |
b |
@@ -1,28 +0,0 @@ -<?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 74074746ccd8 -r b1260bca5fdc tool_data_table_conf.xml.test --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_data_table_conf.xml.test Wed Jun 05 10:00:07 2024 +0000 |
b |
@@ -0,0 +1,7 @@ +<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> |