Mercurial > repos > fubar > jbrowse2
changeset 20:9c7aa5885721 draft
planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit b831bbba43ba42d44be2a91800f387fa868c7d9d
author | fubar |
---|---|
date | Tue, 30 Jan 2024 07:49:23 +0000 |
parents | bde6b1d09f7d |
children | 8e34214ccee4 |
files | autogenJB2.py autogenJB2.xml |
diffstat | 2 files changed, 0 insertions(+), 236 deletions(-) [+] |
line wrap: on
line diff
--- a/autogenJB2.py Tue Jan 30 06:05:03 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -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.
--- a/autogenJB2.xml Tue Jan 30 06:05:03 2024 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ - <tool id="autogenjb2" name="autogenjb2" version="2.10.0_0" profile="22.05"> - <description>Files to JBrowse2</description> - <macros> - <import>macros.xml</import> - </macros> - <expand macro="edamInc"/> - <xrefs> - <xref type="bio.tools">jbrowse2</xref> - </xrefs> - <expand macro="requirements"/> - <version_command>python '${__tool_directory__}/autogenJB2.py' --version</version_command> - <command detect_errors="aggressive"><![CDATA[ -python '$__tool_directory__/autogenJB2.py' ---outdir '$jbrowseme' - -&& - -cp '$output.files_path/index.html' '$output' - -## Ugly testing hack since I cannot get <extra_files> to test the files I want to test. Hmph. -#if str($uglyTestingHack) == "enabled": - && cp '$trackxml' '$output' -#end if - ]]></command> - <inputs> - <param - label="Collection of files specially named to become tracks" - name="jbrowseme" - type="data_collection"> - </param> - <param type="hidden" name="uglyTestingHack" value="" /> - </inputs> - <outputs> - <data format="html" name="output" label="JBrowse2 on $reference_genome.genome.element_identifier"/> - </outputs> - - <help><![CDATA[ - -JBrowse2-in-Galaxy -================== - -JBrowse2-in-Galaxy offers a highly configurable, workflow-compatible -alternative to JBrowse1-in-Galaxy and Trackster. - -Compared to JBrowse1-in-Galaxy, there is no support for alternative codons for unusual genomes, -and detailed track styling is not yet implemented. Send code. -JBrowse1 development has now ceased in favour of JBrowse2. - -Use and local viewing -===================== - - -A JBrowse2 history item can be opened by viewing it (the "eye" icon). - -The same browser data and setup can also be downloaded as a compressed zip archive by clicking the download ("floppy disk") icon in the history. -This can be shared and viewed without Galaxy. - -A replacement application to serve the browser is required without Galaxy. A local python web server can be started using a script included in each archive, -assuming that Python3 is already working on your desktop - if not you will have to install it first. Unzip the archive (*unzip [filename].zip*) and change -directory to the first level in that zip archive. It contains a file named *jb2_webserver.py* - -With python3 installed, - -*python3 jb2_webserver.py* - -will serve the unarchived JBrowse2 configuration from the same directory as the python script automatically. If a new browser window does not open, -but the script appears to be running, try pointing your web browser to the default of *localhost:8080* - -Overview --------- - -JBrowse is a fast, embeddable genome browser built completely with -JavaScript and HTML5. - -The JBrowse-in-Galaxy (JiG) tool was written to help build complex -JBrowse installations straight from Galaxy. It allows you to build up a JBrowse instance without worrying -about how to run the command line tools to format your data, and which -options need to be supplied and where. - -The JBrowse-in-Galaxy tool has been rejected by `a Galaxy IUC -<https://github.com/galaxyproject/tools-iuc/issues>`__, reviewer. -It is maintained by https://github.com/fubar2 who you can help you -with missing features or bugs in the tool. For the record, he remains unconvinced by the reviewer's logic, -and disturbed by the distinctly coercive approach to introducing new code, -compared to the more usual method of providing a working PR. - -Options -------- - -**Reference or Assembly** - -Choose either a built-in or select one from your history. - -Track coordinates and contig names *must* match this reference precisely -or they will not display. - -**Track Groups** represent a set of tracks in a single category. - -Annotation Tracks ------------------ - -GFF3/BED -~~~~~~~~ - -Standard feature tracks. They usually highlight genes, mRNAs and other features of interest along a genomic region. - -When these contain tens of millions of features, such as repeat regions from a VGP assembly, displaying one at a time leads -to extremely slow loading times when a large region is in view, unless the "LinearPileupDisplay" display option is -selected for that track in the styling options section. The default is LinearBasicDisplay, which shows all details and works -well for relatively sparse bed files. A better option is to make a bigwig track using a set of windows based on the -lengths of each assembly or reference contig. - -BAM Pileups -~~~~~~~~~~~ - -We support BAM files and can automatically generate SNP tracks based on -that bam data. - - -BlastXML -~~~~~~~~ - -JiG now supports both blastn and blastp datasets. JiG internally uses a -blastXML to gapped GFF3 tool to convert your blastxml datasets into a -format amenable to visualization in JBrowse. This tool is also -available separately from the IUC on the toolshed. - -**Minimum Gap Size** reflects how long a gap must be before it becomes a -real gap in the processed gff3 file. In the picture above, various sizes -of gaps can be seen. If the minimum gap size was set much higher, say -100nt, many of the smaller gaps would disappear, and the features on -both sides would be merged into one, longer feature. This setting is -inversely proportional to runtime and output file size. *Do not set this -to a low value for large datasets*. By setting this number lower, you -will have extremely large outputs and extremely long runtimes. The -default was configured based off of the author's experience, but the -author only works on small viruses. It is *strongly* recommended that -you filter your blast results before display, e.g. picking out the top -10 hits or so. - -**Protein blast search** option merely informs underlying tools that -they should adjust feature locations by 3x. - - -@ATTRIBUTION@ -]]></help> - <expand macro="citations"/> -</tool>