UNPKG

@gmod/jbrowse

Version:

JBrowse - client-side genome browser

138 lines (120 loc) 15.9 kB
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Sample configuration bash script · JBrowse</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="A common way of preparing data for usage in JBrowse is running the perl pre-processing scripts. These are not CGI perl scripts, they simple transform some feature data into JSON format for JBrowse to statically consume."/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Sample configuration bash script · JBrowse"/><meta property="og:type" content="website"/><meta property="og:url" content="https://jbrowse.org/index.html"/><meta property="og:description" content="A common way of preparing data for usage in JBrowse is running the perl pre-processing scripts. These are not CGI perl scripts, they simple transform some feature data into JSON format for JBrowse to statically consume."/><meta name="twitter:card" content="summary"/><link rel="shortcut icon" href="/img/favicon.ico"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><link rel="alternate" type="application/atom+xml" href="https://jbrowse.org/blog/atom.xml" title="JBrowse Blog ATOM Feed"/><link rel="alternate" type="application/rss+xml" href="https://jbrowse.org/blog/feed.xml" title="JBrowse Blog RSS Feed"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" href="/css/main.css"/></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/"><h2 class="headerTitle">JBrowse</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class=""><a href="/blog" target="_self">Blog</a></li><li class="siteNavGroupActive"><a href="/docs/installation.html" target="_self">Documentation</a></li><li class=""><a href="/en/demos.html" target="_self">Demos</a></li><li class=""><a href="/en/developers.html" target="_self">Developers</a></li><li class=""><a href="/en/contact.html" target="_self">Contact</a></li><li class=""><a href="/en/references.html" target="_self">References</a></li><li class=""><a href="/en/help.html" target="_self">Help</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i></i><span>Other topics</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Tutorial</h3><ul><li class="navListItem"><a class="navItem" href="/docs/installation.html">Installation</a></li><li class="navListItem"><a class="navItem" href="/docs/tutorial.html">Indexed file formats tutorial</a></li><li class="navListItem"><a class="navItem" href="/docs/tutorial_classic.html">Classic quick-start guide</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Configuring tracks</h3><ul><li class="navListItem"><a class="navItem" href="/docs/reference_sequence.html">Reference sequence configuration</a></li><li class="navListItem"><a class="navItem" href="/docs/canvas_features.html">CanvasFeatures</a></li><li class="navListItem"><a class="navItem" href="/docs/html_features.html">HTMLFeatures</a></li><li class="navListItem"><a class="navItem" href="/docs/alignments.html">Alignments tracks</a></li><li class="navListItem"><a class="navItem" href="/docs/bigwig.html">Wiggle/BigWig Tracks</a></li><li class="navListItem"><a class="navItem" href="/docs/variants.html">VCF tracks</a></li><li class="navListItem"><a class="navItem" href="/docs/minimal.html">Minimal JBrowse configurations</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Advanced configuration</h3><ul><li class="navListItem"><a class="navItem" href="/docs/embedding.html">Embedding JBrowse</a></li><li class="navListItem"><a class="navItem" href="/docs/mouse_configs.html">Mouse clicks, menus, and popups</a></li><li class="navListItem"><a class="navItem" href="/docs/configuration_file_formats.html">Configuration File Formats</a></li><li class="navListItem"><a class="navItem" href="/docs/dataset_selector.html">Dataset Selector</a></li><li class="navListItem"><a class="navItem" href="/docs/track_selectors.html">Track Selectors</a></li><li class="navListItem"><a class="navItem" href="/docs/track_metadata.html">Track Metadata</a></li><li class="navListItem"><a class="navItem" href="/docs/global_options.html">Global configuration options</a></li><li class="navListItem"><a class="navItem" href="/docs/compression.html">Compressing JBrowse data</a></li><li class="navListItem"><a class="navItem" href="/docs/authentication.html">HTTP authentication for JBrowse</a></li><li class="navListItem"><a class="navItem" href="/docs/paired_reads.html">Paired read viewing</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Command line</h3><ul><li class="navListItem"><a class="navItem" href="/docs/flatfile-to-json.pl.html">flatfile-to-json.pl</a></li><li class="navListItem"><a class="navItem" href="/docs/remove-track.pl.html">remove-track.pl</a></li><li class="navListItem"><a class="navItem" href="/docs/ucsc-to-json.pl.html">ucsc-to-json.pl</a></li><li class="navListItem"><a class="navItem" href="/docs/generate-names.pl.html">generate-names.pl</a></li><li class="navListItem"><a class="navItem" href="/docs/prepare-refseqs.pl.html">prepare-refseqs.pl</a></li><li class="navListItem"><a class="navItem" href="/docs/biodb-to-json.pl.html">biodb-to-json.pl</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">JBrowse Desktop</h3><ul><li class="navListItem"><a class="navItem" href="/docs/jbrowse_desktop.html">JBrowse Desktop</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">FAQ</h3><ul><li class="navListItem"><a class="navItem" href="/docs/faq.html">JBrowse FAQ</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Other topics</h3><ul><li class="navListItem"><a class="navItem" href="/docs/url_strings.html">JBrowse URL parameters</a></li><li class="navListItem"><a class="navItem" href="/docs/image_tracks.html">Pre-rendered Image Tracks</a></li><li class="navListItem"><a class="navItem" href="/docs/feature_coverage.html">Feature Coverage Tracks</a></li><li class="navListItem"><a class="navItem" href="/docs/screenshots.html">Automating screenshots of JBrowse</a></li><li class="navListItem"><a class="navItem" href="/docs/events.html">JBrowse Subscribe/Publish events</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/docs/perl_config.html">Sample configuration bash script</a></li><li class="navListItem"><a class="navItem" href="/docs/data_formats.html">JBrowse REST API and Data APIs</a></li><li class="navListItem"><a class="navItem" href="/docs/plugins.html">Installing and writing plugins</a></li><li class="navListItem"><a class="navItem" href="/docs/cors.html">Cross-origin resource sharing (CORS)</a></li><li class="navListItem"><a class="navItem" href="/docs/sparql.html">SPARQL configuration</a></li><li class="navListItem"><a class="navItem" href="/docs/data_export.html">Data export</a></li><li class="navListItem"><a class="navItem" href="/docs/usage_stats.html">Usage Statistics</a></li></ul></div></div></section></div><script> document.addEventListener('DOMContentLoaded', function() { createToggler('#navToggler', '#docsNav', 'docsSliderActive'); createToggler('#tocToggler', 'body', 'tocActive'); const headings = document.querySelector('.toc-headings'); headings && headings.addEventListener('click', function(event) { if (event.target.tagName === 'A') { document.body.classList.remove('tocActive'); } }, false); function createToggler(togglerSelector, targetSelector, className) { var toggler = document.querySelector(togglerSelector); var target = document.querySelector(targetSelector); toggler.onclick = function(event) { event.preventDefault(); target.classList.toggle(className); }; } }); </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><h1 class="postHeaderTitle">Sample configuration bash script</h1></header><article><div><span><p>A common way of preparing data for usage in JBrowse is running the perl pre-processing scripts. These are not CGI perl scripts, they simple transform some feature data into JSON format for JBrowse to statically consume.</p> <p>Here is an example script that prepares an instance of tomato genomic data</p> <pre><code class="hljs">#!/usr/bin/env bash ## example script that fetches and formats large data from the tomato ## genome (similar in size to Human) using flatfile-to-json IN='sample_data/raw/tomato'; OUT='sample_data/json/tomato'; # uncomment the line below to compress all the datasets on disk # (requires a little bit of web server configuration for the files to # be served correctly) #COMPRESS='--compress' set -e; rm -rf $OUT; mkdir -p $IN $OUT; # fetch the tomato data using `wget` (about 1G total) for f in ITAG2.3_assembly.gff3 \ ITAG2.3_gene_models.gff3 \ ITAG2.3_genomic.fasta \ ITAG2.3_cdna_alignments.gff3 \ ITAG2.3_sgn_data.gff3 \ ; do if [ ! -e $IN/$f ]; then wget -v -O $IN/$f ftp://ftp.solgenomics.net/genomes/Solanum_lycopersicum/annotation/ITAG2.3_release/$f; fi done set -x; # format the reference sequences bin/prepare-refseqs.pl $COMPRESS --fasta $IN/ITAG2.3_genomic.fasta --out $OUT; # official ITAG2.3 gene models bin/flatfile-to-json.pl $COMPRESS \ -<span class="ruby">-out $OUT \ </span> -<span class="ruby">-gff $IN/ITAG2.<span class="hljs-number">3_</span>gene_models.gff3 \ </span> -<span class="ruby">-type mRNA \ </span> -<span class="ruby">-autocomplete all \ </span> -<span class="ruby">-trackLabel genes \ </span> -<span class="ruby">-key <span class="hljs-string">'Gene models'</span> \ </span> -<span class="ruby">-getSubfeatures \ </span> -<span class="ruby">-className transcript \ </span> -<span class="ruby">-subfeatureClasses <span class="hljs-string">'{"CDS": "transcript-CDS", "exon": "hidden"}'</span> \ </span> -<span class="ruby">-arrowheadClass arrowhead \ </span> -<span class="ruby">-urltemplate <span class="hljs-string">"http://solgenomics.net/search/quick?term={name}"</span> \ </span> ; # SL2.40 assembly bin/flatfile-to-json.pl $COMPRESS \ -<span class="ruby">-out $OUT \ </span> -<span class="ruby">-trackLabel assembly \ </span> -<span class="ruby">-key <span class="hljs-string">'Assembly'</span> \ </span> -<span class="ruby">-gff $IN/ITAG2.<span class="hljs-number">3_</span>assembly.gff3 \ </span> -<span class="ruby">-type supercontig,remark \ </span> -<span class="ruby">-autocomplete all \ </span> -<span class="ruby">-getSubfeatures \ </span> -<span class="ruby">-className generic_parent \ </span> -<span class="ruby">-subfeatureClasses <span class="hljs-string">'{"contig": "feature3"}'</span> \ </span> -<span class="ruby">-urltemplate <span class="hljs-string">"http://solgenomics.net/search/quick?term={name}"</span> \ </span> ; # SGN unigene alignments bin/flatfile-to-json.pl $COMPRESS \ -<span class="ruby">-out $OUT \ </span> -<span class="ruby">-trackLabel sgn_unigenes \ </span> -<span class="ruby">-key <span class="hljs-string">'SGN unigenes'</span> \ </span> -<span class="ruby">-gff $IN/ITAG2.<span class="hljs-number">3_</span>sgn_data.gff3 \ </span> -<span class="ruby">-type <span class="hljs-symbol">match:</span>ITAG_sgn_unigenes \ </span> -<span class="ruby">-autocomplete all \ </span> -<span class="ruby">-getSubfeatures \ </span> -<span class="ruby">-className generic_parent \ </span> -<span class="ruby">-subfeatureClasses <span class="hljs-string">'{"match_part": "match_part"}'</span> \ </span> -<span class="ruby">-arrowheadClass <span class="hljs-string">'arrowhead'</span> \ </span> -<span class="ruby">-urltemplate <span class="hljs-string">"http://solgenomics.net/search/quick?term={name}"</span> \ </span> ; # microtom cDNA alignments bin/flatfile-to-json.pl $COMPRESS \ -<span class="ruby">-out $OUT \ </span> -<span class="ruby">-trackLabel microtom_cdna \ </span> -<span class="ruby">-key <span class="hljs-string">'MicroTom full-length cDNAs'</span> \ </span> -<span class="ruby">-gff $IN/ITAG2.<span class="hljs-number">3_</span>cdna_alignments.gff3 \ </span> -<span class="ruby">-type <span class="hljs-symbol">match:</span>ITAG_microtom_flcdnas \ </span> -<span class="ruby">-autocomplete all \ </span> -<span class="ruby">-getSubfeatures \ </span> -<span class="ruby">-className generic_parent \ </span> -<span class="ruby">-subfeatureClasses <span class="hljs-string">'{"match_part": "match_part"}'</span> \ </span> -<span class="ruby">-arrowheadClass <span class="hljs-string">'arrowhead'</span> \ </span> ; # SGN marker sequences bin/flatfile-to-json.pl $COMPRESS \ -<span class="ruby">-out $OUT \ </span> -<span class="ruby">-trackLabel sgn_markers \ </span> -<span class="ruby">-key <span class="hljs-string">'SGN markers'</span> \ </span> -<span class="ruby">-gff $IN/ITAG2.<span class="hljs-number">3_</span>sgn_data.gff3 \ </span> -<span class="ruby">-type <span class="hljs-symbol">match:</span>ITAG_sgn_markers \ </span> -<span class="ruby">-autocomplete all \ </span> -<span class="ruby">-getSubfeatures \ </span> -<span class="ruby">-className transcript \ </span> -<span class="ruby">-subfeatureClasses <span class="hljs-string">'{"match_part": "match_part"}'</span> \ </span> -<span class="ruby">-arrowheadClass <span class="hljs-string">'arrowhead'</span> \ </span> -<span class="ruby">-urltemplate <span class="hljs-string">"http://solgenomics.net/search/quick?term={name}"</span> \ </span> ; # index feature names bin/generate-names.pl --out $OUT; echo "To see the formatted ITAG2.3 tomato genome, point your browser at http://your.jbrowse.root/index.html?data=sample_data/json/tomato"; </code></pre> </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/events.html">← JBrowse Subscribe/Publish events</a><a class="docs-next button" href="/docs/data_formats.html">JBrowse REST API and Data APIs →</a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="sitemap"><div><h5>Docs</h5><a href="/blog">Blog</a><a href="/docs/tutorial.html">Getting Started</a></div><div><h5>Community</h5><a href="https://gitter.im/GMOD/jbrowse">Project Chat</a><a href="https://twitter.com/JBrowseGossip" target="_blank" rel="noreferrer noopener">Twitter</a></div><div><h5>More</h5><a href="https://github.com/GMOD/jbrowse">GitHub</a><a class="github-button" href="https://github.com/GMOD/jbrowse" data-icon="octicon-star" data-count-href="/GMOD/jbrowse/stargazers" data-show-count="true" data-count-aria-label="# stargazers on GitHub" aria-label="Star this project on GitHub">Star</a></div></section><section class="copyright">Copyright © 2019 Evolutionary Software Foundation</section></footer></div></body></html>