3
|
1 <!DOCTYPE html>
|
|
2 <html>
|
|
3 <head>
|
|
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
5 <title>JBrowse</title>
|
|
6 <link rel="stylesheet" type="text/css" href="css/genome.css">
|
|
7 </head>
|
|
8 <body>
|
|
9
|
|
10 <script type="text/javascript">
|
|
11 // jshint unused: false
|
|
12 var dojoConfig = {
|
|
13 async: true,
|
|
14 baseUrl: './src',
|
|
15 has: {
|
|
16 'host-node': false // Prevent dojo from being fooled by Electron
|
|
17 }
|
|
18 };
|
|
19 // Move Electron's require out before loading Dojo
|
|
20 if(window.process&&process.versions&&process.versions.electron) {
|
|
21 window.electronRequire = require;
|
|
22 delete window.require;
|
|
23 }
|
|
24 </script>
|
|
25 <script type="text/javascript" src="src/dojo/dojo.js"></script>
|
|
26 <script type="text/javascript" src="src/JBrowse/init.js"></script>
|
|
27 <script type="text/javascript">
|
|
28 window.onerror=function(msg){
|
|
29 if( document.body )
|
|
30 document.body.setAttribute("JSError",msg);
|
|
31 }
|
|
32
|
|
33 // puts the main Browser object in this for convenience. feel
|
|
34 // free to move it into function scope if you want to keep it
|
|
35 // out of the global namespace
|
|
36 var JBrowse;
|
|
37 require(['JBrowse/Browser', 'dojo/io-query', 'dojo/json' ],
|
|
38 function (Browser,ioQuery,JSON) {
|
|
39 // the initial configuration of this JBrowse
|
|
40 // instance
|
|
41
|
|
42 // NOTE: this initial config is the same as any
|
|
43 // other JBrowse config in any other file. this
|
|
44 // one just sets defaults from URL query params.
|
|
45 // If you are embedding JBrowse in some other app,
|
|
46 // you might as well just set this initial config
|
|
47 // to something like { include: '../my/dynamic/conf.json' },
|
|
48 // or you could put the entire
|
|
49 // dynamically-generated JBrowse config here.
|
|
50
|
|
51 // parse the query vars in the page URL
|
|
52 var queryParams = ioQuery.queryToObject( window.location.search.slice(1) );
|
|
53
|
|
54 var config = {
|
|
55 containerID: "GenomeBrowser",
|
|
56
|
|
57 dataRoot: queryParams.data,
|
|
58 queryParams: queryParams,
|
|
59 location: queryParams.loc,
|
|
60 forceTracks: queryParams.tracks,
|
|
61 initialHighlight: queryParams.highlight,
|
|
62 show_nav: queryParams.nav,
|
|
63 show_tracklist: queryParams.tracklist,
|
|
64 show_overview: queryParams.overview,
|
|
65 show_menu: queryParams.menu,
|
|
66 show_tracklabels: queryParams.tracklabels,
|
|
67 highResolutionMode: queryParams.highres,
|
|
68 stores: { url: { type: "JBrowse/Store/SeqFeature/FromConfig", features: [] } },
|
|
69 makeFullViewURL: function( browser ) {
|
|
70
|
|
71 // the URL for the 'Full view' link
|
|
72 // in embedded mode should be the current
|
|
73 // view URL, except with 'nav', 'tracklist',
|
|
74 // and 'overview' parameters forced to 1.
|
|
75
|
|
76 return browser.makeCurrentViewURL({ nav: 1, tracklist: 1, overview: 1 });
|
|
77 },
|
|
78 updateBrowserURL: true
|
|
79 };
|
|
80
|
|
81 //if there is ?addFeatures in the query params,
|
|
82 //define a store for data from the URL
|
|
83 if( queryParams.addFeatures ) {
|
|
84 config.stores.url.features = JSON.parse( queryParams.addFeatures );
|
|
85 }
|
|
86
|
|
87 // if there is ?addTracks in the query params, add
|
|
88 // those track configurations to our initial
|
|
89 // configuration
|
|
90 if( queryParams.addTracks ) {
|
|
91 config.tracks = JSON.parse( queryParams.addTracks );
|
|
92 }
|
|
93
|
|
94 // if there is ?addStores in the query params, add
|
|
95 // those store configurations to our initial
|
|
96 // configuration
|
|
97 if( queryParams.addStores ) {
|
|
98 config.stores = JSON.parse( queryParams.addStores );
|
|
99 }
|
|
100
|
|
101 // create a JBrowse global variable holding the JBrowse instance
|
|
102 JBrowse = new Browser( config );
|
|
103 });
|
|
104 </script>
|
|
105
|
|
106 </head>
|
|
107
|
|
108 <body>
|
|
109 <div id="GenomeBrowser" style="height: 100%; width: 100%; padding: 0; border: 0;"></div>
|
|
110 <div style="display: none">JBrowseDefaultMainPage</div>
|
|
111 </body>
|
|
112 </html>
|