MediaWiki:JBrowse.js
From Metabolomics.JP
Note: After saving, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Konqueror: Click Reload or press F5
- Opera: Clear the cache in Tools → Preferences
var baseUrl = "/JBrowse/";
// 最初にdojo.jsを属性付きで読み込む
var dojoScript = document.createElement('script');
dojoScript.type = 'text/javascript';
dojoScript.src = baseUrl+'/src/dojo/dojo.js'
dojoScript.setAttribute("data-dojo-config", "async: 1, baseUrl: baseUrl+'src'");
var css = document.getElementsByTagName( 'link' )[0];
css.parentNode.appendChild(dojoScript, css);
// dojo.jsの読み込み完了後、init.jsを読み込む
dojoScript.onload = function(){
var initScript = document.createElement('script');
initScript.type = 'text/javascript';
initScript.src = baseUrl+'/src/JBrowse/init.js';
dojoScript.parentNode.appendChild(initScript, dojoScript);
// init.jsの読み込み完了後、初期化を行う
initScript.onload = function(){
window.onerror=function(msg){
if( document.body )
document.body.setAttribute("JSError",msg);
}
// puts the main Browser object in this for convenience. feel
// free to move it into function scope if you want to keep it
// out of the global namespace
var JBrowse;
require(['JBrowse/Browser', 'dojo/io-query', 'dojo/json' ],
function (Browser,ioQuery,JSON) {
// the initial configuration of this JBrowse
// instance
// NOTE: this initial config is the same as any
// other JBrowse config in any other file. this
// one just sets defaults from URL query params.
// If you are embedding JBrowse in some other app,
// you might as well just set this initial config
// to something like { include: '../my/dynamic/conf.json' },
// or you could put the entire
// dynamically-generated JBrowse config here.
// parse the query vars in the page URL
var queryParams = ioQuery.queryToObject( window.location.search.slice(1) );
var config = {
containerID: "GenomeBrowser",
sourceUrl: baseUrl,
browserRoot: baseUrl,
dataRoot: baseUrl + "data/{{{1}}}",
queryParams: queryParams,
location: queryParams.loc,
forceTracks: "DNA,BAM SNPs/Coverage,BAM",
initialHighlight: queryParams.highlight,
show_nav: queryParams.nav,
show_tracklist: queryParams.tracklist,
show_overview: queryParams.overview,
stores: { url: { type: "JBrowse/Store/SeqFeature/FromConfig", features: [] } },
makeFullViewURL: function( browser ) {
// the URL for the 'Full view' link
// in embedded mode should be the current
// view URL, except with 'nav', 'tracklist',
// and 'overview' parameters forced to 1.
return browser.makeCurrentViewURL({ nav: 1, tracklist: 1, overview: 1 });
},
updateBrowserURL: true
};
//if there is ?addFeatures in the query params,
//define a store for data from the URL
if( queryParams.addFeatures ) {
config.stores.url.features = JSON.parse( queryParams.addFeatures );
}
// if there is ?addTracks in the query params, add
// those track configurations to our initial
// configuration
if( queryParams.addTracks ) {
config.tracks = JSON.parse( queryParams.addTracks );
}
// if there is ?addStores in the query params, add
// those store configurations to our initial
// configuration
if( queryParams.addStores ) {
config.stores = JSON.parse( queryParams.addStores );
}
// create a JBrowse global variable holding the JBrowse instance
JBrowse = new Browser( config );
});
}
}