Mercurial > repos > fubar > jbrowse2
view autogenJB2.py @ 19:bde6b1d09f7d draft
planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 1290bf486bc55c02fecd0327de10a28655a18e81-dirty
author | fubar |
---|---|
date | Tue, 30 Jan 2024 06:05:03 +0000 |
parents | |
children |
line wrap: on
line source
import argparse import os from jbrowse2 import jbrowseConnector as jbC if __name__ == "__main__": parser = argparse.ArgumentParser(description="", epilog="") parser.add_argument("--yaml", help="Track Configuration") parser.add_argument("--outdir", help="Output directory", default="out") parser.add_argument("--version", "-V", action="version", version="%(prog)s 0.0.1") args = parser.parse_args() if os.path.exists(args.outdir): root = args.outdir dirList = os.scandir(root) subdirs = [f.path for f in dirList if f.is_dir()] genome_paths = [f.path for f in dirList if f.name.startswith('genome') and f.is_file()] if len(genome_paths) > 0: genome_fnames = [os.path.basename(x).split('_')[2:] for x in genome_paths] # expect genome_1_genomename.fasta etc jc = jbC( outdir=args.outdir, genomes=[ { "path": x, "meta": {"name" : genome_fnames[i], }, } for i,x in enumerate(genome_paths) ], ) jc.process_genomes() # .add_default_view() replace from https://github.com/abretaud/tools-iuc/blob/jbrowse2/tools/jbrowse2/jbrowse2.py default_session_data = { "visibility": { "default_on": [], "default_off": [], }, "style": {}, "style_labels": {}, } track_paths = [x for x in genome_paths if not x.startswith('genome') and x.is_file()] for i, track in enumerate(track_paths): track_conf = {} track_conf['format']= os.path.basename(track).split('_')[0] track_conf["name"] = os.path.basename(track).split('_')[2:] # expect genome_1_genomename.fasta etc fext = os.path.splitext(os.path.basename(track)).replace('.','') track_conf["label"] = "%s_%i" % (os.path.basename(track), i) track_conf["trackfiles"] = [] keys = jc.process_annotations(track_conf) if keys: for key in keys: default_session_data["visibility"][ track.attrib.get("visibility", "default_off") ].append(key) if track_conf.get("style", None): default_session_data["style"][key] = track_conf[ "style" ] # TODO do we need this anymore? if track_conf.get("style_lables", None): default_session_data["style_labels"][key] = track_conf.get( "style_labels", None ) # default_session_data["defaultLocation"] = root.find( # "metadata/general/defaultLocation" # ).text # default_session_data["session_name"] = root.find( # "metadata/general/session_name" # ).text # general_data = { # "analytics": root.find("metadata/general/analytics").text, # "primary_color": root.find("metadata/general/primary_color").text, # "secondary_color": root.find("metadata/general/secondary_color").text, # "tertiary_color": root.find("metadata/general/tertiary_color").text, # "quaternary_color": root.find("metadata/general/quaternary_color").text, # "font_size": root.find("metadata/general/font_size").text, # } # jc.add_general_configuration(general_data) trackconf = jc.config_json.get("tracks", None) if trackconf: jc.config_json["tracks"].update(jc.tracksToAdd) else: jc.config_json["tracks"] = jc.tracksToAdd jc.write_config() jc.add_default_session(default_session_data) # jc.text_index() not sure what broke here.