HiCBrowser is a simple web browser to visualize Hi-C and other genomic tracks.
-
It is based on HiCExplorer, a set of programs that enable you to process, normalize, analyze and visualize Hi-C data.
+
It is based on pyGenomeTracks, a program and library to plot beautiful genome browser tracks.
diff --git a/hicbrowser/runBrowser.py b/hicbrowser/runBrowser.py
index 721ba56..a6fee90 100644
--- a/hicbrowser/runBrowser.py
+++ b/hicbrowser/runBrowser.py
@@ -22,7 +22,7 @@ def parse_arguments(args=None):
parser.add_argument('--htmlFolder',
help='File where the template index.html file is located. The default is'
- 'fine unless the contents wants to be personalized. The full path '
+ ' fine unless the contents wants to be personalized. The full path '
'has to be given.',
default=None)
diff --git a/hicbrowser/static/js/App.js b/hicbrowser/static/js/App.js
index 4a40052..314d7d1 100644
--- a/hicbrowser/static/js/App.js
+++ b/hicbrowser/static/js/App.js
@@ -275,7 +275,7 @@ this["Templates"]["gene"] = Handlebars.template({"1":function(container,depth0,h
},"useData":true});
this["Templates"]["index"] = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
- return "\n
\n
\n
HiCBrowser is a simple web browser to visualize Hi-C and other genomic tracks. \n
It is based on HiCExplorer, a set of programs that enable you to process, normalize, analyze and visualize Hi-C data.
\n
\n
\n \n \n \n
\n
\n \n \n";
+ return "\n
\n
\n
HiCBrowser is a simple web browser to visualize Hi-C and other genomic tracks. \n
It is based on pyGenomeTracks, a program and library to plot beautiful genome browser tracks.
\n
\n
\n \n \n \n
\n
\n \n \n";
},"useData":true});
this["Templates"]["loading"] = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
diff --git a/hicbrowser/static/js/App.min.js b/hicbrowser/static/js/App.min.js
index 771565e..ec5cb46 100644
--- a/hicbrowser/static/js/App.min.js
+++ b/hicbrowser/static/js/App.min.js
@@ -1,4 +1,4 @@
-!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g did not match any gene. Check the browser for examples of valid gene names as they may be an id.";App.views.search.renderError(e),d()}})}),j.on("route:getBrowser",function(){return g.isUndefined(i.browser)?(App.views.search.showBrowserView(),void d()):(App.router.navigate("/browser/"+i.browser.id,{trigger:!1}),void f(i.browser))}),j.on("route:getBrowserId",function(a){if(!g.isUndefined(i.browser)&&i.browser.id===a)return void f(i.browser);var b=new App.models.Browser({id:a}),c="Your search - "+a+" - did not match any region.";b.fetch({success:function(a){a=a.toJSON();var b=g.flatten(a.tracks);0===b.length?(App.views.search.renderError(c),d()):$.ajax({url:b[0],success:function(){i.browser=a,f(a)},error:function(){App.views.search.renderError(c),d()}})},error:function(a,b){App.views.search.renderError(c),d()}})}),j.on("route:defaultRoute",d),Backbone.history.start(),b.exports=j},{underscore:82}],6:[function(a,b,c){(function(d){var e="undefined"==typeof window?d:window,f=e.Handlebars||a("handlebars");this.Templates=this.Templates||{},this.Templates.browser=f.template({1:function(a,b,c,d,e){var f=a.lambda,g=a.escapeExpression;return'
").hide().append(b),$(this.el).append(h),g(document.getElementsByTagName("img"),6)}},setVisible:function(){h.show().siblings().hide(),$(this.el).css({opacity:0,visibility:"visible"}).animate({opacity:1},800)}})},{"../templates":6,underscore:82}],8:[function(a,b,c){function d(a){var b=a.toString(16);return 1==b.length?"0"+b:b}function e(a,b,c){return"#"+d(a)+d(b)+d(c)}function f(a){var b={};return b.tracks=h.compact(h.map(a.tracks,function(a,c){var d;return"boundaries"===a.file_type?(b.extent=i.extent(a.x_values),d=h.map(a.x_values,function(b,c){return{x:b,y:a.y_values[c]}}),{type:"line",name:a.section_name,className:"tads",color:"#008B8D",height:"5",data:d,interpolation:"linear"}):"bed"===a.file_type?(d=h.map(a.intervals,function(b,c){var d={x:b.bed[1],y:b.bed[2]};return"genes"===a.title&&(d.description=b.bed[3]),h.isArray(b.bed[8])&&(d.color=e.apply(null,b.bed[8])),d}),{type:"rect",name:a.title,data:d,color:"steelblue"}):void 0})),b}var g,h=a("underscore"),i=a("d3"),j=a("feature-viewer"),k=a("../templates"),l={},m=h.uniqueId("feat_viewer_");b.exports=Backbone.View.extend({initialize:function(a){this.options=a},render:function(a){if(a=h.isUndefined(a)?{}:a,a.feature_viewer=m,a.id!==l.id){$(this.el).css({opacity:0,visibility:"hidden"});var b=k.gene(a);h.isUndefined(g)||g.remove(),g=$("").hide().append(b),$(this.el).append(g),this.renderViewer(a.tracks),$('[data-toggle="tooltip"]').tooltip()}},setVisible:function(){g.show().siblings().hide(),$(this.el).css({opacity:0,visibility:"visible"}).animate({opacity:1},800)},renderViewer:function(a){data=f(a);var b=new j(data.extent[1],"#"+m,{showAxis:!1,showSequence:!1,brushActive:!0,toolbar:!1,bubbleHelp:!1,zoomMax:10,offset:{start:data.extent[0],end:data.extent[1]}});h.each(data.tracks,b.addFeature)}})},{"../templates":6,d3:31,"feature-viewer":32,underscore:82}],9:[function(a,b,c){var d,e=a("underscore"),f=a("../templates");b.exports=Backbone.View.extend({initialize:function(a){this.options=a},render:function(a){a=e.isUndefined(a)?{}:a,$(this.el).css({opacity:0,visibility:"hidden"});var b=f.index(a);d=$("").hide().append(b),$(this.el).empty().append(d),this.rendered=!0},rendered:!1,setVisible:function(){d.show().siblings().hide(),$(this.el).css({opacity:0,visibility:"visible"}).animate({opacity:1},800)}})},{"../templates":6,underscore:82}],10:[function(a,b,c){var d=a("underscore"),e=a("../templates"),f=d.uniqueId("loading_");b.exports=Backbone.View.extend({initialize:function(a){this.options=a},render:function(a){a=d.isUndefined(a)?{}:a,a.id=f;var b=e.loading(a);$(this.options.el).append(b)},show:function(){$("#"+f).modal({show:!0,backdrop:"static",keyboard:!1})},hide:function(){$("#"+f).modal("hide")}})},{"../templates":6,underscore:82}],11:[function(a,b,c){var d,e=a("underscore"),f=a("../templates"),g=e.uniqueId("prev_id_"),h=e.uniqueId("next_id_"),i=e.uniqueId("zoomout_id_"),j=e.uniqueId("search_input_"),k=e.uniqueId("search_input_"),l=(e.uniqueId("search_btn_"),e.uniqueId("gene_btn_")),m=e.uniqueId("browser_btn_"),n=e.uniqueId("gene_example_"),o=e.uniqueId("browser_example_"),p=!0;b.exports=Backbone.View.extend({initialize:function(a){this.options=a},events:{"click li":"onLiClick","click button":"search","keydown input":"keyAction","click a":"linkClick"},render:function(a){a=e.isUndefined(a)?{}:a.attributes,a.prev_id=g,a.next_id=h,a.zoomout_id=i,a.gene_search_input=k,a.browser_search_input=j,a.gene_btn=l,a.browser_btn=m,a.browser_example_id=o,a.gene_example_id=n;var b=f.search(a);$(this.options.el).html(b)},renderError:function(a){$("#error").html(a).show()},update:function(a){e.isUndefined(a.name)?onGeneButton():(onBrowserButton(),updateButtons(a))},search:function(){var a=p?$("#"+k).val():$("#"+j).val();if($("#error").hide(),a.length>0){var b=p?"/gene/"+a:"/browser/"+a;App.router.navigate(b,{trigger:!0})}},onLiClick:function(a){a.preventDefault();var b=$(a.currentTarget).data("id");b===l?(p=!0,this.showGeneView(),App.router.navigate("/gene",{trigger:!0,replace:!0})):b===m&&(p=!1,this.showBrowserView(),App.router.navigate("/browser",{trigger:!0,replace:!0}))},linkClick:function(a){a.preventDefault();var b=$(a.currentTarget).data("id");b===n?App.router.navigate("/gene/"+App.config.attributes.gene_example,{trigger:!0}):b===o?App.router.navigate("/browser/"+App.config.attributes.browser_example,{trigger:!0}):e.isUndefined(d)||(b===g?App.router.navigate("/browser/"+d.previous,{trigger:!0}):b===h?App.router.navigate("/browser/"+d.next,{trigger:!0}):b===i&&App.router.navigate("/browser/"+d.out,{trigger:!0}))},keyAction:function(a){13===a.which&&this.search()},showGeneView:function(a){e.isUndefined(a)||$("#"+k).val(a),$("#"+m).removeClass("active"),$("#"+l).addClass("active"),$("#"+j).parent().parent().css({opacity:0,display:"none"}),$("#"+k).parent().parent().css({opacity:0,display:"block"}).animate({opacity:1},800)},showBrowserView:function(a){d=a,e.isUndefined(a)||$("#"+j).val(a.id),$("#"+l).removeClass("active"),$("#"+m).addClass("active"),$("#"+k).parent().parent().css({opacity:0,display:"none"}),$("#"+j).parent().parent().css({opacity:0,display:"block"}).animate({opacity:1},800)}})},{"../templates":6,underscore:82}],12:[function(a,b,c){(function(c,d){"use strict";function e(b,e){function f(a){var b,c;for(b=0;a[b];b+=1)if(c=a[b],"."===c)a.splice(b,1),b-=1;else if(".."===c){if(1===b&&(".."===a[2]||".."===a[0]))break;b>0&&(a.splice(b-1,2),b-=2)}}function g(a,b){var c;return a&&"."===a.charAt(0)&&b&&(c=b.split("/"),c=c.slice(0,c.length-1),c=c.concat(a.split("/")),f(c),a=c.join("/")),a}function h(a){return function(b){return g(b,a)}}function i(a){function b(b){o[a]=b}return b.fromText=function(a,b){throw new Error("amdefine does not implement load.fromText")},b}function j(a,c,f){var g,h,i,j;if(a)h=o[a]={},i={id:a,uri:d,exports:h},g=l(e,h,i,a);else{if(p)throw new Error("amdefine with no module ID cannot be called more than once per file.");p=!0,h=b.exports,i=b,g=l(e,h,i,b.id)}c&&(c=c.map(function(a){return g(a)})),j="function"==typeof f?f.apply(i.exports,c):f,void 0!==j&&(i.exports=j,a&&(o[a]=i.exports))}function k(a,b,c){Array.isArray(a)?(c=b,b=a,a=void 0):"string"!=typeof a&&(c=a,a=b=void 0),b&&!Array.isArray(b)&&(c=b,b=void 0),b||(b=["require","exports","module"]),a?n[a]=[a,b,c]:j(a,b,c)}var l,m,n={},o={},p=!1,q=a("path");return l=function(a,b,d,e){function f(f,g){return"string"==typeof f?m(a,b,d,f,e):(f=f.map(function(c){return m(a,b,d,c,e)}),void(g&&c.nextTick(function(){g.apply(null,f)})))}return f.toUrl=function(a){return 0===a.indexOf(".")?g(a,q.dirname(d.filename)):a},f},e=e||function(){return b.require.apply(b,arguments)},m=function(a,b,c,d,e){var f,k,p=d.indexOf("!"),q=d;if(p===-1){if(d=g(d,e),"require"===d)return l(a,b,c,e);if("exports"===d)return b;if("module"===d)return c;if(o.hasOwnProperty(d))return o[d];if(n[d])return j.apply(null,n[d]),o[d];if(a)return a(q);throw new Error("No module with ID: "+d)}return f=d.substring(0,p),d=d.substring(p+1,d.length),k=m(a,b,c,f,e),d=k.normalize?k.normalize(d,h(e)):g(d,e),o[d]?o[d]:(k.load(d,l(a,b,c,e),i(d),{}),o[d])},k.require=function(a){return o[a]?o[a]:n[a]?(j.apply(null,n[a]),o[a]):void 0},k.amd={},k}b.exports=e}).call(this,a("_process"),"/node_modules/amdefine/amdefine.js")},{_process:81,path:80}],13:[function(a,b,c){!function(){function a(){return{keys:Object.keys||function(a){if("object"!=typeof a&&"function"!=typeof a||null===a)throw new TypeError("keys() called on a non-object");var b,c=[];for(b in a)a.hasOwnProperty(b)&&(c[c.length]=b);return c},uniqueId:function(a){var b=++i+"";return a?a+b:b},has:function(a,b){return g.call(a,b)},each:function(a,b,c){if(null!=a)if(f&&a.forEach===f)a.forEach(b,c);else if(a.length===+a.length)for(var d=0,e=a.length;d did not match any gene. Check the browser for examples of valid gene names as they may be an id.";App.views.search.renderError(e),d()}})}),j.on("route:getBrowser",function(){return g.isUndefined(i.browser)?(App.views.search.showBrowserView(),void d()):(App.router.navigate("/browser/"+i.browser.id,{trigger:!1}),void f(i.browser))}),j.on("route:getBrowserId",function(a){if(!g.isUndefined(i.browser)&&i.browser.id===a)return void f(i.browser);var b=new App.models.Browser({id:a}),c="Your search - "+a+" - did not match any region.";b.fetch({success:function(a){a=a.toJSON();var b=g.flatten(a.tracks);0===b.length?(App.views.search.renderError(c),d()):$.ajax({url:b[0],success:function(){i.browser=a,f(a)},error:function(){App.views.search.renderError(c),d()}})},error:function(a,b){App.views.search.renderError(c),d()}})}),j.on("route:defaultRoute",d),Backbone.history.start(),b.exports=j},{underscore:82}],6:[function(a,b,c){(function(d){var e="undefined"==typeof window?d:window,f=e.Handlebars||a("handlebars");this.Templates=this.Templates||{},this.Templates.browser=f.template({1:function(a,b,c,d,e){var f=a.lambda,g=a.escapeExpression;return'