From c79127e5611f6fff4282a0fd49b8e8480f9b9f73 Mon Sep 17 00:00:00 2001 From: Isaac Virshup Date: Sun, 24 Mar 2019 15:48:55 +1100 Subject: [PATCH 1/4] Added first draft of external plotting tools --- external_plotting_tools.ipynb | 2508 +++++++++++++++++++++++++++++++++ 1 file changed, 2508 insertions(+) create mode 100644 external_plotting_tools.ipynb diff --git a/external_plotting_tools.ipynb b/external_plotting_tools.ipynb new file mode 100644 index 0000000..eb05f0f --- /dev/null +++ b/external_plotting_tools.ipynb @@ -0,0 +1,2508 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using external plotting tools with `scanpy`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook contains some demonstrations of using external plotting tools for looking at quality control metrics and differential expression results. I'll be demonstrating some plots I find useful from [`seaborn`](https://seaborn.pydata.org) and [`hvplot`](https://hvplot.pyviz.org). As an example, we'll be looking at some PBMCs from 10x genomics." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get setup let's import our dependencies, grab the data, and create our `AnnData` object:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "(function(root) {\n", + " function now() {\n", + " return new Date();\n", + " }\n", + "\n", + " var force = true;\n", + "\n", + " if (typeof (root._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", + " root._bokeh_onload_callbacks = [];\n", + " root._bokeh_is_loading = undefined;\n", + " }\n", + "\n", + " var JS_MIME_TYPE = 'application/javascript';\n", + " var HTML_MIME_TYPE = 'text/html';\n", + " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", + " var CLASS_NAME = 'output_bokeh rendered_html';\n", + "\n", + " /**\n", + " * Render data to the DOM node\n", + " */\n", + " function render(props, node) {\n", + " var script = document.createElement(\"script\");\n", + " node.appendChild(script);\n", + " }\n", + "\n", + " /**\n", + " * Handle when an output is cleared or removed\n", + " */\n", + " function handleClearOutput(event, handle) {\n", + " var cell = handle.cell;\n", + "\n", + " var id = cell.output_area._bokeh_element_id;\n", + " var server_id = cell.output_area._bokeh_server_id;\n", + " // Clean up Bokeh references\n", + " if (id != null && id in Bokeh.index) {\n", + " Bokeh.index[id].model.document.clear();\n", + " delete Bokeh.index[id];\n", + " }\n", + "\n", + " if (server_id !== undefined) {\n", + " // Clean up Bokeh references\n", + " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", + " cell.notebook.kernel.execute(cmd, {\n", + " iopub: {\n", + " output: function(msg) {\n", + " var id = msg.content.text.trim();\n", + " if (id in Bokeh.index) {\n", + " Bokeh.index[id].model.document.clear();\n", + " delete Bokeh.index[id];\n", + " }\n", + " }\n", + " }\n", + " });\n", + " // Destroy server and session\n", + " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", + " cell.notebook.kernel.execute(cmd);\n", + " }\n", + " }\n", + "\n", + " /**\n", + " * Handle when a new output is added\n", + " */\n", + " function handleAddOutput(event, handle) {\n", + " var output_area = handle.output_area;\n", + " var output = handle.output;\n", + "\n", + " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", + " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", + " return\n", + " }\n", + "\n", + " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", + "\n", + " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", + " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", + " // store reference to embed id on output_area\n", + " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", + " }\n", + " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", + " var bk_div = document.createElement(\"div\");\n", + " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var script_attrs = bk_div.children[0].attributes;\n", + " for (var i = 0; i < script_attrs.length; i++) {\n", + " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", + " }\n", + " // store reference to server id on output_area\n", + " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", + " }\n", + " }\n", + "\n", + " function register_renderer(events, OutputArea) {\n", + "\n", + " function append_mime(data, metadata, element) {\n", + " // create a DOM node to render to\n", + " var toinsert = this.create_output_subarea(\n", + " metadata,\n", + " CLASS_NAME,\n", + " EXEC_MIME_TYPE\n", + " );\n", + " this.keyboard_manager.register_events(toinsert);\n", + " // Render to node\n", + " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", + " render(props, toinsert[toinsert.length - 1]);\n", + " element.append(toinsert);\n", + " return toinsert\n", + " }\n", + "\n", + " /* Handle when an output is cleared or removed */\n", + " events.on('clear_output.CodeCell', handleClearOutput);\n", + " events.on('delete.Cell', handleClearOutput);\n", + "\n", + " /* Handle when a new output is added */\n", + " events.on('output_added.OutputArea', handleAddOutput);\n", + "\n", + " /**\n", + " * Register the mime type and append_mime function with output_area\n", + " */\n", + " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", + " /* Is output safe? */\n", + " safe: true,\n", + " /* Index of renderer in `output_area.display_order` */\n", + " index: 0\n", + " });\n", + " }\n", + "\n", + " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", + " if (root.Jupyter !== undefined) {\n", + " var events = require('base/js/events');\n", + " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", + "\n", + " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", + " register_renderer(events, OutputArea);\n", + " }\n", + " }\n", + "\n", + " \n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", + " root._bokeh_timeout = Date.now() + 5000;\n", + " root._bokeh_failed_load = false;\n", + " }\n", + "\n", + " var NB_LOAD_WARNING = {'data': {'text/html':\n", + " \"
\\n\"+\n", + " \"

\\n\"+\n", + " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", + " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", + " \"

\\n\"+\n", + " \"\\n\"+\n", + " \"\\n\"+\n", + " \"from bokeh.resources import INLINE\\n\"+\n", + " \"output_notebook(resources=INLINE)\\n\"+\n", + " \"\\n\"+\n", + " \"
\"}};\n", + "\n", + " function display_loaded() {\n", + " var el = document.getElementById(null);\n", + " if (el != null) {\n", + " el.textContent = \"BokehJS is loading...\";\n", + " }\n", + " if (root.Bokeh !== undefined) {\n", + " if (el != null) {\n", + " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", + " }\n", + " } else if (Date.now() < root._bokeh_timeout) {\n", + " setTimeout(display_loaded, 100)\n", + " }\n", + " }\n", + "\n", + "\n", + " function run_callbacks() {\n", + " try {\n", + " root._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", + " }\n", + " finally {\n", + " delete root._bokeh_onload_callbacks\n", + " }\n", + " console.info(\"Bokeh: all callbacks have finished\");\n", + " }\n", + "\n", + " function load_libs(js_urls, callback) {\n", + " root._bokeh_onload_callbacks.push(callback);\n", + " if (root._bokeh_is_loading > 0) {\n", + " console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", + " return null;\n", + " }\n", + " if (js_urls == null || js_urls.length === 0) {\n", + " run_callbacks();\n", + " return null;\n", + " }\n", + " console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " root._bokeh_is_loading = js_urls.length;\n", + " for (var i = 0; i < js_urls.length; i++) {\n", + " var url = js_urls[i];\n", + " var s = document.createElement('script');\n", + " s.src = url;\n", + " s.async = false;\n", + " s.onreadystatechange = s.onload = function() {\n", + " root._bokeh_is_loading--;\n", + " if (root._bokeh_is_loading === 0) {\n", + " console.log(\"Bokeh: all BokehJS libraries loaded\");\n", + " run_callbacks()\n", + " }\n", + " };\n", + " s.onerror = function() {\n", + " console.warn(\"failed to load library \" + url);\n", + " };\n", + " console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.getElementsByTagName(\"head\")[0].appendChild(s);\n", + " }\n", + " };\n", + "\n", + " var js_urls = [];\n", + "\n", + " var inline_js = [\n", + " function(Bokeh) {\n", + " /* BEGIN bokeh.min.js */\n", + " /*!\n", + " * Copyright (c) 2012 - 2018, Anaconda, Inc., and Bokeh Contributors\n", + " * All rights reserved.\n", + " * \n", + " * Redistribution and use in source and binary forms, with or without modification,\n", + " * are permitted provided that the following conditions are met:\n", + " * \n", + " * Redistributions of source code must retain the above copyright notice,\n", + " * this list of conditions and the following disclaimer.\n", + " * \n", + " * Redistributions in binary form must reproduce the above copyright notice,\n", + " * this list of conditions and the following disclaimer in the documentation\n", + " * and/or other materials provided with the distribution.\n", + " * \n", + " * Neither the name of Anaconda nor the names of any contributors\n", + " * may be used to endorse or promote products derived from this software\n", + " * without specific prior written permission.\n", + " * \n", + " * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n", + " * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n", + " * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n", + " * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n", + " * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n", + " * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n", + " * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n", + " * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n", + " * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n", + " * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n", + " * THE POSSIBILITY OF SUCH DAMAGE.\n", + " */\n", + " !function(t,e){var o,s,r,a,l;t.Bokeh=(o=[function(t,e,i){var n=t(153),r=t(32);i.overrides={};var o=r.clone(n);i.Models=function(t){var e=i.overrides[t]||o[t];if(null==e)throw new Error(\"Model '\"+t+\"' does not exist. This could be due to a widget\\n or a custom model not being registered before first usage.\");return e},i.Models.register=function(t,e){i.overrides[t]=e},i.Models.unregister=function(t){delete i.overrides[t]},i.Models.register_models=function(t,e,i){if(void 0===e&&(e=!1),null!=t)for(var n in t){var r=t[n];e||!o.hasOwnProperty(n)?o[n]=r:null!=i?i(n):console.warn(\"Model '\"+n+\"' was already registered\")}},i.register_models=i.Models.register_models,i.Models.registered_names=function(){return Object.keys(o)},i.index={}},function(t,e,o){var s=t(336),a=t(14),l=t(52),h=t(282),u=t(283),c=t(2);o.DEFAULT_SERVER_WEBSOCKET_URL=\"ws://localhost:5006/ws\",o.DEFAULT_SESSION_ID=\"default\";var _=0,p=function(){function t(t,e,i,n,r){void 0===t&&(t=o.DEFAULT_SERVER_WEBSOCKET_URL),void 0===e&&(e=o.DEFAULT_SESSION_ID),void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=null),this.url=t,this.id=e,this.args_string=i,this._on_have_session_hook=n,this._on_closed_permanently_hook=r,this._number=_++,this.socket=null,this.session=null,this.closed_permanently=!1,this._current_handler=null,this._pending_ack=null,this._pending_replies={},this._receiver=new u.Receiver,a.logger.debug(\"Creating websocket \"+this._number+\" to '\"+this.url+\"' session '\"+this.id+\"'\")}return t.prototype.connect=function(){var i=this;if(this.closed_permanently)return s.Promise.reject(new Error(\"Cannot connect() a closed ClientConnection\"));if(null!=this.socket)return s.Promise.reject(new Error(\"Already connected\"));this._pending_replies={},this._current_handler=null;try{var t=this.url+\"?bokeh-protocol-version=1.0&bokeh-session-id=\"+this.id;return null!=this.args_string&&0=this.x0&&t<=this.x1&&e>=this.y0&&e<=this.y1},e.prototype.clip=function(t,e){return tthis.x1&&(t=this.x1),ethis.y1&&(e=this.y1),[t,e]},e.prototype.union=function(t){return new e({x0:n(this.x0,t.x0),y0:n(this.y0,t.y0),x1:r(this.x1,t.x1),y1:r(this.y1,t.y1)})},e}();i.BBox=o},function(t,e,i){i.delay=function(t,e){return setTimeout(t,e)};var n=\"function\"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate;i.defer=function(t){return n(t)},i.throttle=function(i,n,r){void 0===r&&(r={});var o,s,a,l=null,h=0,u=function(){h=!1===r.leading?0:Date.now(),l=null,a=i.apply(o,s),l||(o=s=null)};return function(){var t=Date.now();h||!1!==r.leading||(h=t);var e=n-(t-h);return o=this,s=arguments,e<=0||n2*Math.PI;)t-=2*Math.PI;return t}function l(t,e){return Math.abs(a(t-e))}function o(){return Math.random()}i.angle_norm=a,i.angle_dist=l,i.angle_between=function(t,e,i,n){var r=a(t),o=l(e,i),s=l(e,r)<=o&&l(r,i)<=o;return 1==n?!s:s},i.random=o,i.randomIn=function(t,e){return null==e&&(e=t,t=0),t+Math.floor(Math.random()*(e-t+1))},i.atan2=function(t,e){return Math.atan2(e[1]-t[1],e[0]-t[0])},i.rnorm=function(t,e){for(var i,n;i=o(),n=(2*(n=o())-1)*Math.sqrt(1/Math.E*2),!(-4*i*i*Math.log(i)>=n*n););var r=n/i;return r=t+e*r},i.clamp=function(t,e,i){return ia[e][0]&&t\"'`])/g,function(t){switch(t){case\"&\":return\"&\";case\"<\":return\"<\";case\">\":return\">\";case'\"':return\""\";case\"'\":return\"'\";case\"`\":return\"`\";default:return t}})},i.unescape=function(t){return t.replace(/&(amp|lt|gt|quot|#x27|#x60);/g,function(t,e){switch(e){case\"amp\":return\"&\";case\"lt\":return\"<\";case\"gt\":return\">\";case\"quot\":return'\"';case\"#x27\":return\"'\";case\"#x60\":return\"`\";default:return e}})},i.use_strict=function(t){return\"'use strict';\\n\"+t}},function(t,e,i){i.svg_colors={indianred:\"#CD5C5C\",lightcoral:\"#F08080\",salmon:\"#FA8072\",darksalmon:\"#E9967A\",lightsalmon:\"#FFA07A\",crimson:\"#DC143C\",red:\"#FF0000\",firebrick:\"#B22222\",darkred:\"#8B0000\",pink:\"#FFC0CB\",lightpink:\"#FFB6C1\",hotpink:\"#FF69B4\",deeppink:\"#FF1493\",mediumvioletred:\"#C71585\",palevioletred:\"#DB7093\",coral:\"#FF7F50\",tomato:\"#FF6347\",orangered:\"#FF4500\",darkorange:\"#FF8C00\",orange:\"#FFA500\",gold:\"#FFD700\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",lemonchiffon:\"#FFFACD\",lightgoldenrodyellow:\"#FAFAD2\",papayawhip:\"#FFEFD5\",moccasin:\"#FFE4B5\",peachpuff:\"#FFDAB9\",palegoldenrod:\"#EEE8AA\",khaki:\"#F0E68C\",darkkhaki:\"#BDB76B\",lavender:\"#E6E6FA\",thistle:\"#D8BFD8\",plum:\"#DDA0DD\",violet:\"#EE82EE\",orchid:\"#DA70D6\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",mediumorchid:\"#BA55D3\",mediumpurple:\"#9370DB\",blueviolet:\"#8A2BE2\",darkviolet:\"#9400D3\",darkorchid:\"#9932CC\",darkmagenta:\"#8B008B\",purple:\"#800080\",indigo:\"#4B0082\",slateblue:\"#6A5ACD\",darkslateblue:\"#483D8B\",mediumslateblue:\"#7B68EE\",greenyellow:\"#ADFF2F\",chartreuse:\"#7FFF00\",lawngreen:\"#7CFC00\",lime:\"#00FF00\",limegreen:\"#32CD32\",palegreen:\"#98FB98\",lightgreen:\"#90EE90\",mediumspringgreen:\"#00FA9A\",springgreen:\"#00FF7F\",mediumseagreen:\"#3CB371\",seagreen:\"#2E8B57\",forestgreen:\"#228B22\",green:\"#008000\",darkgreen:\"#006400\",yellowgreen:\"#9ACD32\",olivedrab:\"#6B8E23\",olive:\"#808000\",darkolivegreen:\"#556B2F\",mediumaquamarine:\"#66CDAA\",darkseagreen:\"#8FBC8F\",lightseagreen:\"#20B2AA\",darkcyan:\"#008B8B\",teal:\"#008080\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",lightcyan:\"#E0FFFF\",paleturquoise:\"#AFEEEE\",aquamarine:\"#7FFFD4\",turquoise:\"#40E0D0\",mediumturquoise:\"#48D1CC\",darkturquoise:\"#00CED1\",cadetblue:\"#5F9EA0\",steelblue:\"#4682B4\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",lightblue:\"#ADD8E6\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",deepskyblue:\"#00BFFF\",dodgerblue:\"#1E90FF\",cornflowerblue:\"#6495ED\",royalblue:\"#4169E1\",blue:\"#0000FF\",mediumblue:\"#0000CD\",darkblue:\"#00008B\",navy:\"#000080\",midnightblue:\"#191970\",cornsilk:\"#FFF8DC\",blanchedalmond:\"#FFEBCD\",bisque:\"#FFE4C4\",navajowhite:\"#FFDEAD\",wheat:\"#F5DEB3\",burlywood:\"#DEB887\",tan:\"#D2B48C\",rosybrown:\"#BC8F8F\",sandybrown:\"#F4A460\",goldenrod:\"#DAA520\",darkgoldenrod:\"#B8860B\",peru:\"#CD853F\",chocolate:\"#D2691E\",saddlebrown:\"#8B4513\",sienna:\"#A0522D\",brown:\"#A52A2A\",maroon:\"#800000\",white:\"#FFFFFF\",snow:\"#FFFAFA\",honeydew:\"#F0FFF0\",mintcream:\"#F5FFFA\",azure:\"#F0FFFF\",aliceblue:\"#F0F8FF\",ghostwhite:\"#F8F8FF\",whitesmoke:\"#F5F5F5\",seashell:\"#FFF5EE\",beige:\"#F5F5DC\",oldlace:\"#FDF5E6\",floralwhite:\"#FFFAF0\",ivory:\"#FFFFF0\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lavenderblush:\"#FFF0F5\",mistyrose:\"#FFE4E1\",gainsboro:\"#DCDCDC\",lightgray:\"#D3D3D3\",lightgrey:\"#D3D3D3\",silver:\"#C0C0C0\",darkgray:\"#A9A9A9\",darkgrey:\"#A9A9A9\",gray:\"#808080\",grey:\"#808080\",dimgray:\"#696969\",dimgrey:\"#696969\",lightslategray:\"#778899\",lightslategrey:\"#778899\",slategray:\"#708090\",slategrey:\"#708090\",darkslategray:\"#2F4F4F\",darkslategrey:\"#2F4F4F\",black:\"#000000\"},i.is_svg_color=function(t){return t in i.svg_colors}},function(t,e,s){var r=t(389),n=t(361),o=t(390),_=t(38),a=t(44);function l(t,e,i){if(a.isNumber(t)){var n=function(){switch(!1){case Math.floor(t)!=t:return\"%d\";case!(.1\");if(\"SCRIPT\"==e.tagName){var i=r.div({class:n.BOKEH_ROOT});r.replaceWith(e,i),e=i}return e}n.BOKEH_ROOT=\"bk-root\",n.inject_css=function(t){var e=r.link({href:t,rel:\"stylesheet\",type:\"text/css\"});document.body.appendChild(e)},n.inject_raw_css=function(t){var e=r.style({},t);document.body.appendChild(e)},n._resolve_element=function(t){var e=t.elementid;return null!=e?o(e):document.body},n._resolve_root_elements=function(t){var e={};if(null!=t.roots)for(var i in t.roots)e[i]=o(t.roots[i]);return e}},function(t,e,i){var d=t(52),f=t(14),a=t(25),v=t(38),m=t(44),g=t(57),y=t(56),b=t(53),n=t(57);i.add_document_standalone=n.add_document_standalone;var r=t(56);i.add_document_from_session=r.add_document_from_session;var o=t(55);i.embed_items_notebook=o.embed_items_notebook,i.kernels=o.kernels;var s=t(53);function l(t,e,i,n){m.isString(t)&&(t=JSON.parse(v.unescape(t)));var r={};for(var o in t){var s=t[o];r[o]=d.Document.from_json(s)}for(var a=0,l=e;athis.sleft&&tthis.stop&&el||(_[r].push(u[d]),_[o].push(0));for(var d=0,f=c.length;dl||(p[r].push(c[d]),p[o].push(0));var v={major:this._format_major_labels(_[r],u)},m={major:[[],[]],minor:[[],[]]};return m.major[r]=i.v_compute(_[r]),m.minor[r]=i.v_compute(p[r]),m.major[o]=_[o],m.minor[o]=p[o],\"vertical\"==this.orientation&&(m.major[r]=g.map(m.major[r],function(t){return e-t}),m.minor[r]=g.map(m.minor[r],function(t){return e-t})),{coords:m,labels:v}},t}(r.Annotation);(i.ColorBar=m).initClass()},function(t,e,i){var n=t(60);i.Annotation=n.Annotation;var r=t(61);i.Arrow=r.Arrow;var o=t(62);i.ArrowHead=o.ArrowHead;var s=t(62);i.OpenHead=s.OpenHead;var a=t(62);i.NormalHead=a.NormalHead;var l=t(62);i.TeeHead=l.TeeHead;var h=t(62);i.VeeHead=h.VeeHead;var u=t(63);i.Band=u.Band;var c=t(64);i.BoxAnnotation=c.BoxAnnotation;var _=t(65);i.ColorBar=_.ColorBar;var p=t(67);i.Label=p.Label;var d=t(68);i.LabelSet=d.LabelSet;var f=t(69);i.Legend=f.Legend;var v=t(70);i.LegendItem=v.LegendItem;var m=t(71);i.PolyAnnotation=m.PolyAnnotation;var g=t(72);i.Slope=g.Slope;var y=t(73);i.Span=y.Span;var b=t(74);i.TextAnnotation=b.TextAnnotation;var x=t(75);i.Title=x.Title;var w=t(76);i.ToolbarPanel=w.ToolbarPanel;var k=t(77);i.Tooltip=k.Tooltip;var S=t(78);i.Whisker=S.Whisker},function(t,e,i){var n=t(391),r=t(74),a=t(5),o=t(15),s=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.__extends(t,e),t.prototype.initialize=function(t){e.prototype.initialize.call(this,t),this.visuals.warm_cache()},t.prototype._get_size=function(){var t=this.plot_view.canvas_view.ctx;if(this.visuals.text.set_value(t),this.model.panel.is_horizontal){var e=t.measureText(this.model.text).ascent;return e}var i=t.measureText(this.model.text).width;return i},t.prototype.render=function(){if(this.model.visible||\"css\"!=this.model.render_mode||a.hide(this.el),this.model.visible){var t;switch(this.model.angle_units){case\"rad\":t=-this.model.angle;break;case\"deg\":t=-this.model.angle*Math.PI/180;break;default:throw new Error(\"unreachable code\")}var e=null!=this.model.panel?this.model.panel:this.plot_view.frame,i=this.plot_view.frame.xscales[this.model.x_range_name],n=this.plot_view.frame.yscales[this.model.y_range_name],r=\"data\"==this.model.x_units?i.compute(this.model.x):e.xview.compute(this.model.x),o=\"data\"==this.model.y_units?n.compute(this.model.y):e.yview.compute(this.model.y);r+=this.model.x_offset,o-=this.model.y_offset;var s=\"canvas\"==this.model.render_mode?this._canvas_text.bind(this):this._css_text.bind(this);s(this.plot_view.canvas_view.ctx,this.model.text,r,o,t)}},t}(r.TextAnnotationView);i.LabelView=s;var l=function(e){function t(t){return e.call(this,t)||this}return n.__extends(t,e),t.initClass=function(){this.prototype.type=\"Label\",this.prototype.default_view=s,this.mixins([\"text\",\"line:border_\",\"fill:background_\"]),this.define({x:[o.Number],x_units:[o.SpatialUnits,\"data\"],y:[o.Number],y_units:[o.SpatialUnits,\"data\"],text:[o.String],angle:[o.Angle,0],angle_units:[o.AngleUnits,\"rad\"],x_offset:[o.Number,0],y_offset:[o.Number,0],x_range_name:[o.String,\"default\"],y_range_name:[o.String,\"default\"]}),this.override({background_fill_color:null,border_line_color:null})},t}(r.TextAnnotation);(i.Label=l).initClass()},function(t,e,i){var n=t(391),r=t(74),o=t(200),u=t(5),s=t(15),a=function(r){function t(){return null!==r&&r.apply(this,arguments)||this}return n.__extends(t,r),t.prototype.initialize=function(t){if(r.prototype.initialize.call(this,t),this.set_data(this.model.source),\"css\"==this.model.render_mode)for(var e=0,i=this._text.length;eh(a-l)?(n=c(u(o,s),a),r=u(c(o,s),l)):(n=u(o,s),r=c(o,s)),[n,r]}throw new Error(\"user bounds '\"+e+\"' not understood\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"rule_coords\",{get:function(){var t=this.dimension,e=(t+1)%2,i=this.ranges[0],n=this.computed_bounds,r=n[0],o=n[1],s=new Array(2),a=new Array(2),l=[s,a];return l[t][0]=Math.max(r,i.min),l[t][1]=Math.min(o,i.max),l[t][0]>l[t][1]&&(l[t][0]=l[t][1]=NaN),l[e][0]=this.loc,l[e][1]=this.loc,l},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"tick_coords\",{get:function(){for(var t=this.dimension,e=(t+1)%2,i=this.ranges[0],n=this.computed_bounds,r=n[0],o=n[1],s=this.ticker.get_ticks(r,o,i,this.loc,{}),a=s.major,l=s.minor,h=[[],[]],u=[[],[]],c=[i.min,i.max],_=c[0],p=c[1],d=0;dp||(h[t].push(a[d]),h[e].push(this.loc));for(var d=0;dp||(u[t].push(l[d]),u[e].push(this.loc));return{major:h,minor:u}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"loc\",{get:function(){if(null!=this.fixed_location){if(T.isNumber(this.fixed_location))return this.fixed_location;var t=this.ranges,e=t[1];if(e instanceof a.FactorRange)return e.synthetic(this.fixed_location);throw new Error(\"unexpected\")}var i=this.ranges,n=i[1];switch(this.panel.side){case\"left\":case\"below\":return n.start;case\"right\":case\"above\":return n.end}},enumerable:!0,configurable:!0}),t}(r.GuideRenderer);(i.Axis=p).initClass()},function(t,e,i){var n=t(391),r=t(79),o=t(208),s=t(105),a=t(15),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n.__extends(e,t),e.prototype._render=function(t,e,i){this._draw_group_separators(t,e,i)},e.prototype._draw_group_separators=function(t,e,i){var n,r=this.model.ranges[0],o=this.model.computed_bounds,s=o[0],a=o[1];if(r.tops&&!(r.tops.length<2)&&this.visuals.separator_line.doit){for(var l=this.model.dimension,h=(l+1)%2,u=[[],[]],c=0,_=0;_=this.scientific_limit_high||a<=this.scientific_limit_low)){n=!0;break}}var l=new Array(t.length),h=this.precision;if(null==h||f.isNumber(h))if(n)for(var u=0,c=t.length;ut.maxX&&(t.maxX=r.maxX)}for(var o=this.index.search(h.positive_y()),s=0,a=o;st.maxY&&(t.maxY=l.maxY)}return this._bounds(t)},t.prototype.get_anchor_point=function(t,e,i){var n=i[0],r=i[1];switch(t){case\"center\":return{x:this.scenterx(e,n,r),y:this.scentery(e,n,r)};default:return null}},t.prototype.sdist=function(t,e,i,n,r){var o,s;void 0===n&&(n=\"edge\"),void 0===r&&(r=!1);var a=e.length;if(\"center\"==n){var l=b.map(i,function(t){return t/2});o=new Float64Array(a);for(var h=0;h=a.length?c:a[n],l[t]=r},e=0,i=o.length;e=h.end&&(r=!0,h.end=_,(e||i)&&(h.start=_+d)),null!=p&&p<=h.start&&(r=!0,h.start=p,(e||i)&&(h.end=p-d))):(null!=_&&_>=h.start&&(r=!0,h.start=_,(e||i)&&(h.end=_+d)),null!=p&&p<=h.end&&(r=!0,h.end=p,(e||i)&&(h.start=p-d)))}}if(!(i&&r&&n))for(var f=0,v=t;fn.lod_timeout&&e.interactive_stop(n),t.request_render()},n.lod_timeout):e.interactive_stop(n)}for(var r in this.renderer_views){var o=this.renderer_views[r];if(null==this.range_update_timestamp||o instanceof T.GlyphRendererView&&o.set_data_timestamp>this.range_update_timestamp){this.update_dataranges();break}}this.model.frame.update_scales();var s=this.canvas_view.ctx,a=this.canvas.pixel_ratio;s.save(),s.scale(a,a),s.translate(.5,.5);var l=[this.frame._left.value,this.frame._top.value,this.frame._width.value,this.frame._height.value];if(this._map_hook(s,l),this._paint_empty(s,l),this.prepare_webgl(a,l),s.save(),this.visuals.outline_line.doit){this.visuals.outline_line.set_value(s);var h=l[0],u=l[1],c=l[2],_=l[3];h+c==this.canvas._width.value&&(c-=1),u+_==this.canvas._height.value&&(_-=1),s.strokeRect(h,u,c,_)}s.restore(),this._paint_levels(s,[\"image\",\"underlay\",\"glyph\"],l,!0),this.blit_webgl(a),this._paint_levels(s,[\"annotation\"],l,!0),this._paint_levels(s,[\"overlay\"],l,!1),null==this._initial_state_info.range&&this.set_initial_range(),s.restore(),this._has_finished||(this._has_finished=!0,this.notify_finished())}},t.prototype._paint_levels=function(t,e,i,n){t.save(),n&&(t.beginPath(),t.rect.apply(t,i),t.clip());for(var r={},o=0;oc&&(\"start\"==this.follow?r=n+u*c:\"end\"==this.follow&&(n=r-u*c)),[n,r]},t.prototype.update=function(t,e,i,n){if(!this.have_updated_interactively){var r=this.computed_renderers(),o=this._compute_plot_bounds(r,t);null!=n&&(o=this.adjust_bounds_for_aspect(o,n)),this._plot_bounds[i]=o;var s=this._compute_min_max(this._plot_bounds,e),a=s[0],l=s[1],h=this._compute_range(a,l),u=h[0],c=h[1];null!=this._initial_start&&(\"log\"==this.scale_hint?0this.end},enumerable:!0,configurable:!0}),t}(r.Model);(i.Range=a).initClass()},function(t,e,i){var n=t(391),r=t(183),o=t(15),s=function(e){function t(t){return e.call(this,t)||this}return n.__extends(t,e),t.initClass=function(){this.prototype.type=\"Range1d\",this.define({start:[o.Number,0],end:[o.Number,1],reset_start:[o.Number],reset_end:[o.Number]})},t.prototype._set_auto_bounds=function(){if(\"auto\"==this.bounds){var t=Math.min(this.reset_start,this.reset_end),e=Math.max(this.reset_start,this.reset_end);this.setv({bounds:[t,e]},{silent:!0})}},t.prototype.initialize=function(){e.prototype.initialize.call(this),null==this.reset_start&&(this.reset_start=this.start),null==this.reset_end&&(this.reset_end=this.end),this._set_auto_bounds()},Object.defineProperty(t.prototype,\"min\",{get:function(){return Math.min(this.start,this.end)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"max\",{get:function(){return Math.max(this.start,this.end)},enumerable:!0,configurable:!0}),t.prototype.reset=function(){this._set_auto_bounds(),this.start!=this.reset_start||this.end!=this.reset_end?this.setv({start:this.reset_start,end:this.reset_end}):this.change.emit()},t}(r.Range);(i.Range1d=s).initClass()},function(t,e,i){var n=t(391),r=t(189),P=t(130),o=t(199),j=t(14),s=t(15),a=t(22),N=t(21),_=t(32),l=t(181),p={fill:{},line:{}},d={fill:{fill_alpha:.3,fill_color:\"grey\"},line:{line_alpha:.3,line_color:\"grey\"}},f={fill:{fill_alpha:.2},line:{}},h=function(c){function t(){return null!==c&&c.apply(this,arguments)||this}return n.__extends(t,c),t.prototype.initialize=function(t){c.prototype.initialize.call(this,t);var i=this.model.glyph,n=N.includes(i.mixins,\"fill\"),r=N.includes(i.mixins,\"line\"),o=_.clone(i.attributes);function e(t){var e=_.clone(o);return n&&_.extend(e,t.fill),r&&_.extend(e,t.line),new i.constructor(e)}delete o.id,this.glyph=this.build_glyph_view(i);var s=this.model.selection_glyph;null==s?s=e({fill:{},line:{}}):\"auto\"===s&&(s=e(p)),this.selection_glyph=this.build_glyph_view(s);var a=this.model.nonselection_glyph;null==a?a=e({fill:{},line:{}}):\"auto\"===a&&(a=e(f)),this.nonselection_glyph=this.build_glyph_view(a);var l=this.model.hover_glyph;null!=l&&(this.hover_glyph=this.build_glyph_view(l));var h=this.model.muted_glyph;null!=h&&(this.muted_glyph=this.build_glyph_view(h));var u=e(d);this.decimated_glyph=this.build_glyph_view(u),this.xscale=this.plot_view.frame.xscales[this.model.x_range_name],this.yscale=this.plot_view.frame.yscales[this.model.y_range_name],this.set_data(!1)},t.prototype.build_glyph_view=function(t){return new t.default_view({model:t,renderer:this,plot_view:this.plot_view,parent:this})},t.prototype.connect_signals=function(){var e=this;c.prototype.connect_signals.call(this),this.connect(this.model.change,function(){return e.request_render()}),this.connect(this.model.glyph.change,function(){return e.set_data()}),this.connect(this.model.data_source.change,function(){return e.set_data()}),this.connect(this.model.data_source.streaming,function(){return e.set_data()}),this.connect(this.model.data_source.patching,function(t){return e.set_data(!0,t)}),this.connect(this.model.data_source.selected.change,function(){return e.request_render()}),this.connect(this.model.data_source._select,function(){return e.request_render()}),null!=this.hover_glyph&&this.connect(this.model.data_source.inspect,function(){return e.request_render()}),this.connect(this.model.properties.view.change,function(){return e.set_data()}),this.connect(this.model.view.change,function(){return e.set_data()});var t=this.plot_model.frame,i=t.x_ranges,n=t.y_ranges;for(var r in i){var o=i[r];o instanceof l.FactorRange&&this.connect(o.change,function(){return e.set_data()})}for(var s in n){var o=n[s];o instanceof l.FactorRange&&this.connect(o.change,function(){return e.set_data()})}this.connect(this.model.glyph.transformchange,function(){return e.set_data()})},t.prototype.have_selection_glyphs=function(){return null!=this.selection_glyph&&null!=this.nonselection_glyph},t.prototype.set_data=function(t,e){void 0===t&&(t=!0),void 0===e&&(e=null);var i=Date.now(),n=this.model.data_source;this.all_indices=this.model.view.indices,this.glyph.model.setv({x_range_name:this.model.x_range_name,y_range_name:this.model.y_range_name},{silent:!0}),this.glyph.set_data(n,this.all_indices,e),this.glyph.set_visuals(n),this.decimated_glyph.set_visuals(n),this.have_selection_glyphs()&&(this.selection_glyph.set_visuals(n),this.nonselection_glyph.set_visuals(n)),null!=this.hover_glyph&&this.hover_glyph.set_visuals(n),null!=this.muted_glyph&&this.muted_glyph.set_visuals(n);var r=this.plot_model.plot.lod_factor;this.decimated=[];for(var o=0,s=Math.floor(this.all_indices.length/r);ov?(o=this.decimated,_=this.decimated_glyph,p=this.decimated_glyph):(_=this.model.muted&&null!=this.muted_glyph?this.muted_glyph:this.glyph,p=this.nonselection_glyph),d=this.selection_glyph,null!=this.hover_glyph&&f.length&&(o=N.difference(o,f));var m,g=null;if(l.length&&this.have_selection_glyphs()){for(var y=Date.now(),b={},x=0,w=l;xi?n.slice(-i):n}if(S.isTypedArray(t)){var r=t.length+e.length;if(null!=i&&i=Math.pow(2,i))||e<0||e>=Math.pow(2,i))},t.prototype.parent_by_tile_xyz=function(t,e,i){var n=this.tile_xyz_to_quadkey(t,e,i),r=n.substring(0,n.length-1);return this.quadkey_to_tile_xyz(r)},t.prototype.get_resolution=function(t){return this._computed_initial_resolution()/Math.pow(2,t)},t.prototype.get_resolution_by_extent=function(t,e,i){var n=(t[2]-t[0])/i,r=(t[3]-t[1])/e;return[n,r]},t.prototype.get_level_by_extent=function(t,e,i){for(var n=(t[2]-t[0])/i,r=(t[3]-t[1])/e,o=Math.max(n,r),s=0,a=0,l=this._resolutions;ar.end)&&(this.v_axis_only=!0),(io.end)&&(this.h_axis_only=!0)}null!=this.model.document&&this.model.document.interactive_start(this.plot_model.plot)},e.prototype._pan=function(t){this._update(t.deltaX,t.deltaY),null!=this.model.document&&this.model.document.interactive_start(this.plot_model.plot)},e.prototype._pan_end=function(t){this.h_axis_only=!1,this.v_axis_only=!1,null!=this.pan_info&&this.plot_view.push_state(\"pan\",{range:this.pan_info})},e.prototype._update=function(t,e){var i,n,r,o,s,a,l=this.plot_model.frame,h=t-this.last_dx,u=e-this.last_dy,c=l.bbox.h_range,_=c.start-h,p=c.end-h,d=l.bbox.v_range,f=d.start-u,v=d.end-u,m=this.model.dimensions;\"width\"!=m&&\"both\"!=m||this.v_axis_only?(i=c.start,n=c.end,r=0):(i=_,n=p,r=-h),\"height\"!=m&&\"both\"!=m||this.h_axis_only?(o=d.start,s=d.end,a=0):(o=f,s=v,a=-u),this.last_dx=t,this.last_dy=e;var g=l.xscales,y=l.yscales,b={};for(var x in g){var w=g[x],k=w.r_invert(i,n),S=k[0],C=k[1];b[x]={start:S,end:C}}var T={};for(var A in y){var w=y[A],E=w.r_invert(o,s),S=E[0],C=E[1];T[A]={start:S,end:C}}this.pan_info={xrs:b,yrs:T,sdx:r,sdy:a},this.plot_view.update_range(this.pan_info,!0)},e}(r.GestureToolView);i.PanToolView=s;var a=function(i){function t(t){var e=i.call(this,t)||this;return e.tool_name=\"Pan\",e.event_type=\"pan\",e.default_order=10,e}return n.__extends(t,i),t.initClass=function(){this.prototype.type=\"PanTool\",this.prototype.default_view=s,this.define({dimensions:[o.Dimensions,\"both\"]})},Object.defineProperty(t.prototype,\"tooltip\",{get:function(){return this._get_dim_tooltip(\"Pan\",this.dimensions)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"icon\",{get:function(){switch(this.dimensions){case\"both\":return\"bk-tool-icon-pan\";case\"width\":return\"bk-tool-icon-xpan\";case\"height\":return\"bk-tool-icon-ypan\"}},enumerable:!0,configurable:!0}),t}(r.GestureTool);(i.PanTool=a).initClass()},function(t,e,i){var l=t(391),n=t(256),r=t(71),o=t(5),s=t(15),a=t(21),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l.__extends(t,e),t.prototype.initialize=function(t){e.prototype.initialize.call(this,t),this.data={sx:[],sy:[]}},t.prototype.connect_signals=function(){var t=this;e.prototype.connect_signals.call(this),this.connect(this.model.properties.active.change,function(){return t._active_change()})},t.prototype._active_change=function(){this.model.active||this._clear_data()},t.prototype._keyup=function(t){t.keyCode==o.Keys.Enter&&this._clear_data()},t.prototype._doubletap=function(t){var e=t.shiftKey;this._do_select(this.data.sx,this.data.sy,!0,e),this.plot_view.push_state(\"poly_select\",{selection:this.plot_view.get_selection()}),this._clear_data()},t.prototype._clear_data=function(){this.data={sx:[],sy:[]},this.model.overlay.update({xs:[],ys:[]})},t.prototype._tap=function(t){var e=t.sx,i=t.sy,n=this.plot_model.frame;n.bbox.contains(e,i)&&(this.data.sx.push(e),this.data.sy.push(i),this.model.overlay.update({xs:a.copy(this.data.sx),ys:a.copy(this.data.sy)}))},t.prototype._do_select=function(t,e,i,n){var r={type:\"poly\",sx:t,sy:e};this._select(r,i,n)},t.prototype._emit_callback=function(t){var e=this.computed_renderers[0],i=this.plot_model.frame,n=i.xscales[e.x_range_name],r=i.yscales[e.y_range_name],o=n.v_invert(t.sx),s=r.v_invert(t.sy),a=l.__assign({x:o,y:s},t);this.model.callback.execute(this.model,{geometry:a})},t}(n.SelectToolView);i.PolySelectToolView=h;var u=function(){return new r.PolyAnnotation({level:\"overlay\",xs_units:\"screen\",ys_units:\"screen\",fill_color:{value:\"lightgrey\"},fill_alpha:{value:.5},line_color:{value:\"black\"},line_alpha:{value:1},line_width:{value:2},line_dash:{value:[4,4]}})},c=function(i){function t(t){var e=i.call(this,t)||this;return e.tool_name=\"Poly Select\",e.icon=\"bk-tool-icon-polygon-select\",e.event_type=\"tap\",e.default_order=11,e}return l.__extends(t,i),t.initClass=function(){this.prototype.type=\"PolySelectTool\",this.prototype.default_view=h,this.define({callback:[s.Instance],overlay:[s.Instance,u]})},t}(n.SelectTool);(i.PolySelectTool=c).initClass()},function(t,e,i){var n=t(391),_=t(64),r=t(14),o=t(15),s=t(251);function p(t,e,i,n){if(null==e)return!1;var r=i.compute(e);return Math.abs(t-r)r.right)&&(o=!1)}if(null!=r.bottom&&null!=r.top){var a=n.invert(e);(ar.top)&&(o=!1)}return o}function l(t,e,i,n){var r=e.compute(t),o=e.invert(r+i);return o>=n.start&&o<=n.end?o:t}function h(t,e,i,n){var r=e.r_compute(t.start,t.end),o=r[0],s=r[1],a=e.r_invert(o+i,s+i),l=a[0],h=a[1];l>=n.start&&l<=n.end&&h>=n.start&&h<=n.end&&(t.start=l,t.end=h)}i.is_near=p,i.is_inside=d,i.compute_value=l,i.update_range=h;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n.__extends(t,e),t.prototype.initialize=function(t){e.prototype.initialize.call(this,t),this.side=0,this.model.update_overlay_from_ranges()},t.prototype.connect_signals=function(){var t=this;e.prototype.connect_signals.call(this),null!=this.model.x_range&&this.connect(this.model.x_range.change,function(){return t.model.update_overlay_from_ranges()}),null!=this.model.y_range&&this.connect(this.model.y_range.change,function(){return t.model.update_overlay_from_ranges()})},t.prototype._pan_start=function(t){this.last_dx=0,this.last_dy=0;var e=this.model.x_range,i=this.model.y_range,n=this.plot_model.frame,r=n.xscales.default,o=n.yscales.default,s=this.model.overlay,a=s.left,l=s.right,h=s.top,u=s.bottom,c=this.model.overlay.properties.line_width.value()+_.EDGE_TOLERANCE;null!=e&&this.model.x_interaction&&(p(t.sx,a,r,c)?this.side=1:p(t.sx,l,r,c)?this.side=2:d(t.sx,t.sy,r,o,s)&&(this.side=3)),null!=i&&this.model.y_interaction&&(0==this.side&&p(t.sy,u,o,c)&&(this.side=4),0==this.side&&p(t.sy,h,o,c)?this.side=5:d(t.sx,t.sy,r,o,this.model.overlay)&&(3==this.side?this.side=7:this.side=6))},t.prototype._pan=function(t){var e=this.plot_model.frame,i=t.deltaX-this.last_dx,n=t.deltaY-this.last_dy,r=this.model.x_range,o=this.model.y_range,s=e.xscales.default,a=e.yscales.default;null!=r&&(3==this.side||7==this.side?h(r,s,i,e.x_range):1==this.side?r.start=l(r.start,s,i,e.x_range):2==this.side&&(r.end=l(r.end,s,i,e.x_range))),null!=o&&(6==this.side||7==this.side?h(o,a,n,e.y_range):4==this.side?o.start=l(o.start,a,n,e.y_range):5==this.side&&(o.end=l(o.end,a,n,e.y_range))),this.last_dx=t.deltaX,this.last_dy=t.deltaY},t.prototype._pan_end=function(t){this.side=0},t}(s.GestureToolView);i.RangeToolView=a;var u=function(){return new _.BoxAnnotation({level:\"overlay\",render_mode:\"css\",fill_color:\"lightgrey\",fill_alpha:{value:.5},line_color:{value:\"black\"},line_alpha:{value:1},line_width:{value:.5},line_dash:[2,2]})},c=function(i){function t(t){var e=i.call(this,t)||this;return e.tool_name=\"Range Tool\",e.icon=\"bk-tool-icon-range\",e.event_type=\"pan\",e.default_order=1,e}return n.__extends(t,i),t.initClass=function(){this.prototype.type=\"RangeTool\",this.prototype.default_view=a,this.define({x_range:[o.Instance,null],x_interaction:[o.Bool,!0],y_range:[o.Instance,null],y_interaction:[o.Bool,!0],overlay:[o.Instance,u]})},t.prototype.initialize=function(){i.prototype.initialize.call(this),this.overlay.in_cursor=\"grab\",this.overlay.ew_cursor=null!=this.x_range&&this.x_interaction?\"ew-resize\":null,this.overlay.ns_cursor=null!=this.y_range&&this.y_interaction?\"ns-resize\":null},t.prototype.update_overlay_from_ranges=function(){null==this.x_range&&null==this.y_range&&(this.overlay.left=null,this.overlay.right=null,this.overlay.bottom=null,this.overlay.top=null,r.logger.warn(\"RangeTool not configured with any Ranges.\")),null==this.x_range?(this.overlay.left=null,this.overlay.right=null):(this.overlay.left=this.x_range.start,this.overlay.right=this.x_range.end),null==this.y_range?(this.overlay.bottom=null,this.overlay.top=null):(this.overlay.bottom=this.y_range.start,this.overlay.top=this.y_range.end)},t}(s.GestureTool);(i.RangeTool=c).initClass()},function(t,e,i){var y=t(391),n=t(251),o=t(186),r=t(271),s=t(15),a=t(5),b=t(3),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return y.__extends(e,t),Object.defineProperty(e.prototype,\"computed_renderers\",{get:function(){var t=this.model.renderers,e=this.plot_model.plot.renderers,i=this.model.names;return r.compute_renderers(t,e,i)},enumerable:!0,configurable:!0}),e.prototype._computed_renderers_by_data_source=function(){for(var t={},e=0,i=this.computed_renderers;ee.x?-1:t.x==e.x?0:1}):r.sort(function(t,e){return t.xthis._x_sorted[this._x_sorted.length-1])return NaN}else{if(ethis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}if(e==this._x_sorted[0])return this._y_sorted[0];var t=s.findLastIndex(this._x_sorted,function(t){return tthis._x_sorted[this._x_sorted.length-1])return NaN}else{if(ethis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}var t;switch(this.mode){case\"after\":t=s.findLastIndex(this._x_sorted,function(t){return t<=e});break;case\"before\":t=s.findIndex(this._x_sorted,function(t){return e<=t});break;case\"center\":var i=this._x_sorted.map(function(t){return Math.abs(t-e)}),n=s.min(i);t=s.findIndex(i,function(t){return n===t});break;default:throw new Error(\"unknown mode: \"+this.mode)}return-1!=t?this._y_sorted[t]:NaN},t}(r.Interpolator);(i.StepInterpolator=a).initClass()},function(t,e,i){var n=t(391),r=t(59),o=function(e){function t(t){return e.call(this,t)||this}return n.__extends(t,e),t.initClass=function(){this.prototype.type=\"Transform\"},t}(r.Model);(i.Transform=o).initClass()},function(t,e,i){\"function\"!=typeof WeakMap&&t(342),Number.isInteger||(Number.isInteger=function(t){return\"number\"==typeof t&&isFinite(t)&&Math.floor(t)===t});var n,l,r,h,o=String.prototype;o.repeat||(o.repeat=function(t){if(null==this)throw new TypeError(\"can't convert \"+this+\" to object\");var e=\"\"+this;if((t=+t)!=t&&(t=0),t<0)throw new RangeError(\"repeat count must be non-negative\");if(t==1/0)throw new RangeError(\"repeat count must be less than infinity\");if(t=Math.floor(t),0==e.length||0==t)return\"\";if(e.length*t>=1<<28)throw new RangeError(\"repeat count must not overflow maximum string size\");for(var i=\"\";1==(1&t)&&(i+=e),0!=(t>>>=1);)e+=e;return i}),Array.from||(Array.from=(n=Object.prototype.toString,l=function(t){return\"function\"==typeof t||\"[object Function]\"===n.call(t)},r=Math.pow(2,53)-1,h=function(t){var e,i=(e=Number(t),isNaN(e)?0:0!==e&&isFinite(e)?(0Math.PI?0:1:_>Math.PI?1:0,this.lineTo(l,h),this.__addPathCommand(f(\"A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}\",{rx:i,ry:i,xAxisRotation:0,largeArcFlag:c,sweepFlag:u,endX:s,endY:a})),this.__currentPosition={x:s,y:a}}},x.prototype.clip=function(){var t=this.__closestGroupOrSvg(),e=this.__createElement(\"clipPath\"),i=l(this.__ids),n=this.__createElement(\"g\");this.__applyCurrentDefaultPath(),t.removeChild(this.__currentElement),e.setAttribute(\"id\",i),e.appendChild(this.__currentElement),this.__defs.appendChild(e),t.setAttribute(\"clip-path\",f(\"url(#{id})\",{id:i})),t.appendChild(n),this.__currentElement=n},x.prototype.drawImage=function(){var t,e,i,n,r,o,s,a,l,h,u,c,_,p,d=Array.prototype.slice.call(arguments),f=d[0],v=0,m=0;if(3===d.length)t=d[1],e=d[2],r=f.width,o=f.height,i=r,n=o;else if(5===d.length)t=d[1],e=d[2],i=d[3],n=d[4],r=f.width,o=f.height;else{if(9!==d.length)throw new Error(\"Inavlid number of arguments passed to drawImage: \"+arguments.length);v=d[1],m=d[2],r=d[3],o=d[4],t=d[5],e=d[6],i=d[7],n=d[8]}s=this.__closestGroupOrSvg(),this.__currentElement;var g=\"translate(\"+t+\", \"+e+\")\";if(f instanceof x){if((a=f.getSvg().cloneNode(!0)).childNodes&&1=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach(function(t,e){i<=t&&(this.__redo__[e]=++t)},this),this.__redo__.push(i)):c(this,\"__redo__\",l(\"c\",[i])))}),_onDelete:l(function(i){var t;i>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(t=this.__redo__.indexOf(i))&&this.__redo__.splice(t,1),this.__redo__.forEach(function(t,e){i>1,a=i>>1^i,l=r>>1^n&o>>1^r,h=i&r>>1^o>>1^o;a=(i=s)&(n=a)>>2^n&(i^n)>>2,l^=i&(r=l)>>2^n&(o=h)>>2,h^=n&r>>2^(i^n)&o>>2,a=(i=s=i&i>>2^n&n>>2)&(n=a)>>4^n&(i^n)>>4,l^=i&(r=l)>>4^n&(o=h)>>4,h^=n&r>>4^(i^n)&o>>4,l^=(i=s=i&i>>4^n&n>>4)&(r=l)>>8^(n=a)&(o=h)>>8;var u=t^e,c=(n=(h^=n&r>>8^(i^n)&o>>8)^h>>1)|65535^(u|(i=l^l>>1));return((c=1431655765&((c=858993459&((c=252645135&((c=16711935&(c|c<<8))|c<<4))|c<<2))|c<<1))<<1|(u=1431655765&((u=858993459&((u=252645135&((u=16711935&(u|u<<8))|u<<4))|u<<2))|u<<1)))>>>0}return h.from=function(t){if(!(t instanceof ArrayBuffer))throw new Error(\"Data must be an instance of ArrayBuffer.\");var e=new Uint8Array(t,0,2),i=e[0],n=e[1];if(251!==i)throw new Error(\"Data does not appear to be in a Flatbush format.\");if(n>>4!=3)throw new Error(\"Got v\"+(n>>4)+\" data when expected v3.\");var r=new Uint16Array(t,2,1),o=r[0],s=new Uint32Array(t,4,1),a=s[0];return new h(a,o,l[15&n],t)},h.prototype.add=function(t,e,i,n){var r=this._pos>>2;this._indices[r]=r,this._boxes[this._pos++]=t,this._boxes[this._pos++]=e,this._boxes[this._pos++]=i,this._boxes[this._pos++]=n,tthis.maxX&&(this.maxX=i),n>this.maxY&&(this.maxY=n)},h.prototype.finish=function(){var t=this;if(this._pos>>2!==this.numItems)throw new Error(\"Added \"+(this._pos>>2)+\" items when expected \"+this.numItems+\".\");for(var e=this.maxX-this.minX,i=this.maxY-this.minY,n=new Uint32Array(this.numItems),r=0;r>1],a=r-1,l=o+1;;){for(;e[++a]s;);if(l<=a)break;C(e,i,n,a,l)}t(e,i,n,r,l),t(e,i,n,l+1,o)}}(n,this._boxes,this._indices,0,this.numItems-1);for(var _=0,p=0;_>2]=y,t._boxes[t._pos++]=f,t._boxes[t._pos++]=v,t._boxes[t._pos++]=m,t._boxes[t._pos++]=g}},h.prototype.search=function(t,e,i,n,r){if(this._pos!==this._boxes.length)throw new Error(\"Data not yet indexed - call index.finish().\");for(var o=this._boxes.length-4,s=this._levelBounds.length-1,a=[],l=[];void 0!==o;){for(var h=Math.min(o+4*this.nodeSize,this._levelBounds[s]),u=o;u>2];ithis._boxes[u+2]||e>this._boxes[u+3]||(o<4*this.numItems?(void 0===r||r(c))&&l.push(c):(a.push(c),a.push(s-1)))}s=a.pop(),o=a.pop()}return l},h},\"object\"==typeof i&&void 0!==e?e.exports=r():n.Flatbush=r()},function(t,Yt,e){\n", + " /*! Hammer.JS - v2.0.7 - 2016-04-22\n", + " * http://hammerjs.github.io/\n", + " *\n", + " * Copyright (c) 2016 Jorik Tangelder;\n", + " * Licensed under the MIT license */\n", + " !function(o,a,t,x){\"use strict\";var s,l=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],e=a.createElement(\"div\"),i=\"function\",h=Math.round,w=Math.abs,k=Date.now;function u(t,e,i){return setTimeout(f(t,i),e)}function n(t,e,i){return!!Array.isArray(t)&&(c(t,i[e],i),!0)}function c(t,e,i){var n;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==x)for(n=0;n\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",i=o.console&&(o.console.warn||o.console.log);return i&&i.call(o.console,r,e),n.apply(this,arguments)}}s=\"function\"!=typeof Object.assign?function(t){if(t===x||null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;ie[i]}):n.sort()),n}function M(t,e){for(var i,n,r=e[0].toUpperCase()+e.slice(1),o=0;ow(y.y)?y.x:y.y,e.scale=_?(m=_.pointers,it((g=n)[0],g[1],J)/it(m[0],m[1],J)):1,e.rotation=_?(f=_.pointers,nt((v=n)[1],v[0],J)+nt(f[1],f[0],J)):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,function(t,e){var i,n,r,o,s=t.lastInterval||e,a=e.timeStamp-s.timeStamp;if(e.eventType!=B&&(Dw(u.y)?u.x:u.y,o=et(l,h),t.lastInterval=e}else i=s.velocity,n=s.velocityX,r=s.velocityY,o=s.direction;e.velocity=i,e.velocityX=n,e.velocityY=r,e.direction=o}(i,e);var b=t.element;S(e.srcEvent.target,b)&&(b=e.srcEvent.target),e.target=b}(t,i),t.emit(\"hammer.input\",i),t.recognize(i),t.session.prevInput=i}function K(t){for(var e=[],i=0;i=w(e)?t<0?V:G:e<0?U:q}function it(t,e,i){i||(i=W);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return Math.sqrt(n*n+r*r)}function nt(t,e,i){i||(i=W);var n=e[i[0]]-t[i[0]],r=e[i[1]]-t[i[1]];return 180*Math.atan2(r,n)/Math.PI}Q.prototype={handler:function(){},init:function(){this.evEl&&g(this.element,this.evEl,this.domHandler),this.evTarget&&g(this.target,this.evTarget,this.domHandler),this.evWin&&g(z(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&y(this.element,this.evEl,this.domHandler),this.evTarget&&y(this.target,this.evTarget,this.domHandler),this.evWin&&y(z(this.element),this.evWin,this.domHandler)}};var rt={mousedown:I,mousemove:2,mouseup:R},ot=\"mousedown\",st=\"mousemove mouseup\";function at(){this.evEl=ot,this.evWin=st,this.pressed=!1,Q.apply(this,arguments)}d(at,Q,{handler:function(t){var e=rt[t.type];e&I&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=R),this.pressed&&(e&R&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:\"mouse\",srcEvent:t}))}});var lt={pointerdown:I,pointermove:2,pointerup:R,pointercancel:B,pointerout:B},ht={2:F,3:\"pen\",4:\"mouse\",5:\"kinect\"},ut=\"pointerdown\",ct=\"pointermove pointerup pointercancel\";function _t(){this.evEl=ut,this.evWin=ct,Q.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}o.MSPointerEvent&&!o.PointerEvent&&(ut=\"MSPointerDown\",ct=\"MSPointerMove MSPointerUp MSPointerCancel\"),d(_t,Q,{handler:function(t){var e=this.store,i=!1,n=t.type.toLowerCase().replace(\"ms\",\"\"),r=lt[n],o=ht[t.pointerType]||t.pointerType,s=o==F,a=T(e,t.pointerId,\"pointerId\");r&I&&(0===t.button||s)?a<0&&(e.push(t),a=e.length-1):r&(R|B)&&(i=!0),a<0||(e[a]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),i&&e.splice(a,1))}});var pt={touchstart:I,touchmove:2,touchend:R,touchcancel:B};function dt(){this.evTarget=\"touchstart\",this.evWin=\"touchstart touchmove touchend touchcancel\",this.started=!1,Q.apply(this,arguments)}d(dt,Q,{handler:function(t){var e=pt[t.type];if(e===I&&(this.started=!0),this.started){var i=function(t,e){var i=A(t.touches),n=A(t.changedTouches);return e&(R|B)&&(i=E(i.concat(n),\"identifier\",!0)),[i,n]}.call(this,t,e);e&(R|B)&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:F,srcEvent:t})}}});var ft={touchstart:I,touchmove:2,touchend:R,touchcancel:B},vt=\"touchstart touchmove touchend touchcancel\";function mt(){this.evTarget=vt,this.targetIds={},Q.apply(this,arguments)}d(mt,Q,{handler:function(t){var e=ft[t.type],i=function(t,e){var i=A(t.touches),n=this.targetIds;if(e&(2|I)&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,o,s=A(t.changedTouches),a=[],l=this.target;if(o=i.filter(function(t){return S(t.target,l)}),e===I)for(r=0;re.threshold&&r&e.direction},attrTest:function(t){return Nt.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Pt(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),d(Dt,Nt,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[St]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||2&this.state)},emit:function(t){if(1!==t.scale){var e=t.scale<1?\"in\":\"out\";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),d(It,Ot,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[\"auto\"]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distancee.time;if(this._input=t,!n||!i||t.eventType&(R|B)&&!r)this.reset();else if(t.eventType&I)this.reset(),this._timer=u(function(){this.state=8,this.tryEmit()},e.time,this);else if(t.eventType&R)return 8;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){8===this.state&&(t&&t.eventType&R?this.manager.emit(this.options.event+\"up\",t):(this._input.timeStamp=k(),this.manager.emit(this.options.event,this._input)))}}),d(Rt,Nt,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[St]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||2&this.state)}}),d(Bt,Nt,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:Y|X,pointers:1},getTouchAction:function(){return Ft.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Y|X)?e=t.overallVelocity:i&Y?e=t.overallVelocityX:i&X&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&w(e)>this.options.velocity&&t.eventType&R},emit:function(t){var e=Pt(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),d(Lt,Ot,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[kt]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,n=t.distance=\";case n.Eq:return\"==\"}}()+\" 0\"},Object.defineProperty(t.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"expression\",{get:function(){return this._expression},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"op\",{get:function(){return this._operator},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"strength\",{get:function(){return this._strength},enumerable:!0,configurable:!0}),t}();i.Constraint=s;var a=0},function(t,e,i){var h=t(357),u=t(360),c=t(351),n=function(){function t(){var t=function(t){for(var e=0,i=function(){return 0},n=c.createMap(u.Variable.Compare),r=0,o=t.length;r>1)],e)<0?(o=r+1,s-=n+1):s=n;return o}i.lowerBound=o,i.binarySearch=function(t,e,i){var n=o(t,e,i);if(n===t.length)return-1;var r=t[n];return 0!==i(r,e)?-1:n},i.binaryFind=function(t,e,i){var n=o(t,e,i);if(n!==t.length){var r=t[n];if(0===i(r,e))return r}},i.asSet=function(t,e){var i=l.asArray(t),n=i.length;if(n<=1)return i;i.sort(e);for(var r=[i[0]],o=1,s=0;o=Math.pow(10,12)&&!z||O?(T+=U[q].abbreviations.trillion,t/=Math.pow(10,12)):N=Math.pow(10,9)&&!z||M?(T+=U[q].abbreviations.billion,t/=Math.pow(10,9)):N=Math.pow(10,6)&&!z||E?(T+=U[q].abbreviations.million,t/=Math.pow(10,6)):(N=Math.pow(10,3)&&!z||A)&&(T+=U[q].abbreviations.thousand,t/=Math.pow(10,3)))}if(-1Math.PI&&(a-=2*Math.PI),r=Math.sin(l),s=Math.cos(l),o=r*r,{x:((n=i/Math.sqrt(1-e*o))+h)*s*Math.cos(a),y:(n+h)*s*Math.sin(a),z:(n*(1-e)+h)*r}},i.geocentricToGeodetic=function(t,e,i,n){var r,o,s,a,l,h,u,c,_,p,d,f,v,m,g,y,b=t.x,x=t.y,w=t.z?t.z:0;if(r=Math.sqrt(b*b+x*x),o=Math.sqrt(b*b+x*x+w*w),r/i<1e-12){if(m=0,o/i<1e-12)return g=k,y=-n,{x:t.x,y:t.y,z:t.z}}else m=Math.atan2(x,b);for(s=w/o,a=r/o,l=1/Math.sqrt(1-e*(2-e)*a*a),c=a*(1-e)*l,_=s*l,v=0;v++,u=i/Math.sqrt(1-e*_*_),h=e*u/(u+(y=r*c+w*_-u*(1-e*_*_))),l=1/Math.sqrt(1-h*(2-h)*a*a),f=(d=s*l)*c-(p=a*(1-h)*l)*_,c=p,_=d,1e-24>>0).toString(8);break;case\"s\":i=String(i),i=o[7]?i.substring(0,o[7]):i;break;case\"t\":i=String(!!i),i=o[7]?i.substring(0,o[7]):i;break;case\"T\":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=o[7]?i.substring(0,o[7]):i;break;case\"u\":i=parseInt(i,10)>>>0;break;case\"v\":i=i.valueOf(),i=o[7]?i.substring(0,o[7]):i;break;case\"x\":i=(parseInt(i,10)>>>0).toString(16);break;case\"X\":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}d.json.test(o[8])?p+=i:(!d.number.test(o[8])||h&&!o[3]?u=\"\":(u=h?\"+\":\"-\",i=i.toString().replace(d.sign,\"\")),a=o[4]?\"0\"===o[4]?\"0\":o[4].charAt(1):\" \",l=o[6]-(u+i).length,s=o[6]&&0=c[n][e]&&c[n][c[n].clock]>o[c[n].clock]&&(s=c[n])}return s&&((a=/^(.*)\\/(.*)$/.exec(o.format))?s.abbrev=a[s.save?2:1]:s.abbrev=o.format.replace(/%s/,s.rule.letter)),s||o}function a(t,e){return\"UTC\"==t.zone?e:(t.entry=r(t,\"posix\",e),e+t.entry.offset+t.entry.save)}function c(t,e){return\"UTC\"==t.zone?e:(t.entry=i=r(t,\"wallclock\",e),0<(n=e-i.wallclock)&&ns[0]&&e[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}}},p=function(t,e){var i=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,r,o=i.call(t),s=[];try{for(;(void 0===e||0=t&&(this.model.active=t-1);var o=this.model.tabs.map(function(t,e){return h.li({},h.span({data:{index:e}},t.title))});o[this.model.active].classList.add(\"bk-bs-active\");var e=h.ul({class:[\"bk-bs-nav\",\"bk-bs-nav-tabs\"]},o);this.el.appendChild(e);var s=this.model.tabs.map(function(t){return h.div({class:\"bk-bs-tab-pane\"})});s[this.model.active].classList.add(\"bk-bs-active\");var n=h.div({class:\"bk-bs-tab-content\"},s);this.el.appendChild(n),e.addEventListener(\"click\",function(t){if(t.preventDefault(),t.target!=t.currentTarget){var e=t.target,n=r.model.active,i=parseInt(e.dataset.index);n!=i&&(o[n].classList.remove(\"bk-bs-active\"),s[n].classList.remove(\"bk-bs-active\"),o[i].classList.add(\"bk-bs-active\"),s[i].classList.add(\"bk-bs-active\"),r.model.active=i,null!=r.model.callback&&r.model.callback.execute(r.model))}});for(var i=0,a=p.zip(this.model.children,s);i=e[n];)n+=1;return n}function n(t,e,n){if(n>=t.slice(-1)[0])return 100;var i,r,o,s,a,l,u=h(n,t);return i=t[u-1],r=t[u],o=e[u-1],s=e[u],o+(l=n,d(a=[i,r],a[0]<0?l+Math.abs(a[0]):l-a[0])/c(o,s))}function i(t,e,n,i){if(100===i)return i;var r,o,s,a,l=h(i,t);return n?(r=t[l-1],((o=t[l])-r)/2n.stepAfter.startValue&&(r=n.stepAfter.startValue-i),o=i>n.thisStep.startValue?n.thisStep.step:!1!==n.stepBefore.step&&i-n.stepBefore.highestStep,100===t?r=null:0===t&&(o=null);var s=w.countStepDecimals();return null!==r&&!1!==r&&(r=Number(r.toFixed(s))),null!==o&&!1!==o&&(o=Number(o.toFixed(s))),[o,r]})},on:J,off:function(t){var i=t&&t.split(\".\")[0],r=i&&t.substring(i.length);Object.keys(b).forEach(function(t){var e=t.split(\".\")[0],n=t.substring(e.length);i&&i!==e||r&&r!==n||delete b[t]})},get:K,set:X,reset:function(t){X(d.start,t)},__moveHandles:function(t,e,n){T(t,e,m,n)},options:o,updateOptions:function(e,t){var n=K(),i=[\"margin\",\"limit\",\"padding\",\"range\",\"animate\",\"snap\",\"step\",\"format\"];i.forEach(function(t){void 0!==e[t]&&(o[t]=e[t])});var r=rt(o);i.forEach(function(t){void 0!==e[t]&&(d[t]=r[t])}),w=r.spectrum,d.margin=r.margin,d.limit=r.limit,d.padding=r.padding,d.pips&&N(d.pips),m=[],X(e.start||n,t)},target:_,removePips:A,pips:N},(c=d.events).fixed||l.forEach(function(t,e){V(p.start,t.children[0],B,{handleNumbers:[e]})}),c.tap&&V(p.start,u,U,{}),c.hover&&V(p.move,u,j,{hover:!0}),c.drag&&s.forEach(function(t,e){if(!1!==t&&0!==e&&e!==s.length-1){var n=l[e-1],i=l[e],r=[t];et(t,d.cssClasses.draggable),c.fixed&&(r.push(n.children[0]),r.push(i.children[0])),r.forEach(function(t){V(p.start,t,B,{handles:[n,i],handleNumbers:[e-1,e]})})}}),X(d.start),d.pips&&N(d.pips),d.tooltips&&(r=l.map(D),J(\"update\",function(t,e,n){if(r[e]){var i=t[e];!0!==d.tooltips[e]&&(i=d.tooltips[e].to(n[e])),r[e].innerHTML=i}})),J(\"update\",function(t,e,s,n,a){v.forEach(function(t){var e=l[t],n=z(m,t,0,!0,!0,!0),i=z(m,t,100,!0,!0,!0),r=a[t],o=d.ariaFormat.to(s[t]);e.children[0].setAttribute(\"aria-valuemin\",n.toFixed(1)),e.children[0].setAttribute(\"aria-valuemax\",i.toFixed(1)),e.children[0].setAttribute(\"aria-valuenow\",r.toFixed(1)),e.children[0].setAttribute(\"aria-valuetext\",o)})}),a}return{version:$,create:function(t,e){if(!t||!t.nodeName)throw new Error(\"noUiSlider (\"+$+\"): create requires a single element, got: \"+t);var n=rt(e),i=P(t,n,e);return t.noUiSlider=i}}},\"object\"==typeof n?e.exports=i():window.noUiSlider=i()},433:function(i,r,o){\n", + " /*!\n", + " * Pikaday\n", + " *\n", + " * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday\n", + " */\n", + " !function(t,e){\"use strict\";var n;if(\"object\"==typeof o){try{n=i(\"moment\")}catch(t){}r.exports=e(n)}else t.Pikaday=e(t.moment)}(this,function(n){\"use strict\";var o=\"function\"==typeof n,s=!!window.addEventListener,c=window.document,u=window.setTimeout,a=function(t,e,n,i){s?t.addEventListener(e,n,!!i):t.attachEvent(\"on\"+e,n)},i=function(t,e,n,i){s?t.removeEventListener(e,n,!!i):t.detachEvent(\"on\"+e,n)},l=function(t,e){return-1!==(\" \"+t.className+\" \").indexOf(\" \"+e+\" \")},g=function(t){return/Array/.test(Object.prototype.toString.call(t))},B=function(t){return/Date/.test(Object.prototype.toString.call(t))&&!isNaN(t.getTime())},U=function(t,e){return[31,(n=t,n%4==0&&n%100!=0||n%400==0?29:28),31,30,31,30,31,31,30,31,30,31][e];var n},j=function(t){B(t)&&t.setHours(0,0,0,0)},z=function(t,e){return t.getTime()===e.getTime()},d=function(t,e,n){var i,r;for(i in e)(r=void 0!==t[i])&&\"object\"==typeof e[i]&&null!==e[i]&&void 0===e[i].nodeName?B(e[i])?n&&(t[i]=new Date(e[i].getTime())):g(e[i])?n&&(t[i]=e[i].slice(0)):t[i]=d({},e[i],n):!n&&r||(t[i]=e[i]);return t},r=function(t,e,n){var i;c.createEvent?((i=c.createEvent(\"HTMLEvents\")).initEvent(e,!0,!1),i=d(i,n),t.dispatchEvent(i)):c.createEventObject&&(i=c.createEventObject(),i=d(i,n),t.fireEvent(\"on\"+e,i))},e=function(t){return t.month<0&&(t.year-=Math.ceil(Math.abs(t.month)/12),t.month+=12),11';e.push(\"is-outside-current-month\"),t.enableSelectionDaysInNextAndPreviousMonths||e.push(\"is-selection-disabled\")}return t.isDisabled&&e.push(\"is-disabled\"),t.isToday&&e.push(\"is-today\"),t.isSelected&&(e.push(\"is-selected\"),n=\"true\"),t.hasEvent&&e.push(\"has-event\"),t.isInRange&&e.push(\"is-inrange\"),t.isStartRange&&e.push(\"is-startrange\"),t.isEndRange&&e.push(\"is-endrange\"),'\"},f=function(t,e,n,i,r,o){var s,a,l,u,c,d=t._o,h=n===d.minYear,p=n===d.maxYear,f='
',m=!0,v=!0;for(l=[],s=0;s<12;s++)l.push('\");for(u='
'+d.i18n.months[i]+'
\",g(d.yearRange)?(s=d.yearRange[0],a=d.yearRange[1]+1):(s=n-d.yearRange,a=1+n+d.yearRange),l=[];s=d.minYear&&l.push('\");return c='
'+n+d.yearSuffix+'
\",d.showMonthAfterYear?f+=c+u:f+=u+c,h&&(0===i||d.minMonth>=i)&&(m=!1),p&&(11===i||d.maxMonth<=i)&&(v=!1),0===e&&(f+='\"),e===t._o.numberOfMonths-1&&(f+='\"),f+=\"
\"},Y=function(t,e,n){return''+function(t){var e,n=[];for(t.showWeekNumber&&n.push(\"\"),e=0;e<7;e++)n.push('\");return\"\"+(t.isRTL?n.reverse():n).join(\"\")+\"\"}(t)+\"\"+e.join(\"\")+\"
'+p(t,e,!0)+\"
\"},t=function(t){var i=this,r=i.config(t);i._onMouseDown=function(t){if(i._v){var e=(t=t||window.event).target||t.srcElement;if(e)if(l(e,\"is-disabled\")||(!l(e,\"pika-button\")||l(e,\"is-empty\")||l(e.parentNode,\"is-disabled\")?l(e,\"pika-prev\")?i.prevMonth():l(e,\"pika-next\")&&i.nextMonth():(i.setDate(new Date(e.getAttribute(\"data-pika-year\"),e.getAttribute(\"data-pika-month\"),e.getAttribute(\"data-pika-day\"))),r.bound&&u(function(){i.hide(),r.blurFieldOnSelect&&r.field&&r.field.blur()},100))),l(e,\"pika-select\"))i._c=!0;else{if(!t.preventDefault)return t.returnValue=!1;t.preventDefault()}}},i._onChange=function(t){var e=(t=t||window.event).target||t.srcElement;e&&(l(e,\"pika-select-month\")?i.gotoMonth(e.value):l(e,\"pika-select-year\")&&i.gotoYear(e.value))},i._onKeyChange=function(t){if(t=t||window.event,i.isVisible())switch(t.keyCode){case 13:case 27:r.field&&r.field.blur();break;case 37:t.preventDefault(),i.adjustDate(\"subtract\",1);break;case 38:i.adjustDate(\"subtract\",7);break;case 39:i.adjustDate(\"add\",1);break;case 40:i.adjustDate(\"add\",7)}},i._onInputChange=function(t){var e;t.firedBy!==i&&(e=r.parse?r.parse(r.field.value,r.format):o?(e=n(r.field.value,r.format,r.formatStrict))&&e.isValid()?e.toDate():null:new Date(Date.parse(r.field.value)),B(e)&&i.setDate(e),i._v||i.show())},i._onInputFocus=function(){i.show()},i._onInputClick=function(){i.show()},i._onInputBlur=function(){var t=c.activeElement;do{if(l(t,\"pika-single\"))return}while(t=t.parentNode);i._c||(i._b=u(function(){i.hide()},50)),i._c=!1},i._onClick=function(t){var e=(t=t||window.event).target||t.srcElement,n=e;if(e){!s&&l(e,\"pika-select\")&&(e.onchange||(e.setAttribute(\"onchange\",\"return;\"),a(e,\"change\",i._onChange)));do{if(l(n,\"pika-single\")||n===r.trigger)return}while(n=n.parentNode);i._v&&e!==r.trigger&&n!==r.trigger&&i.hide()}},i.el=c.createElement(\"div\"),i.el.className=\"pika-single\"+(r.isRTL?\" is-rtl\":\"\")+(r.theme?\" \"+r.theme:\"\"),a(i.el,\"mousedown\",i._onMouseDown,!0),a(i.el,\"touchend\",i._onMouseDown,!0),a(i.el,\"change\",i._onChange),r.keyboardInput&&a(c,\"keydown\",i._onKeyChange),r.field&&(r.container?r.container.appendChild(i.el):r.bound?c.body.appendChild(i.el):r.field.parentNode.insertBefore(i.el,r.field.nextSibling),a(r.field,\"change\",i._onInputChange),r.defaultDate||(o&&r.field.value?r.defaultDate=n(r.field.value,r.format).toDate():r.defaultDate=new Date(Date.parse(r.field.value)),r.setDefaultDate=!0));var e=r.defaultDate;B(e)?r.setDefaultDate?i.setDate(e,!0):i.gotoDate(e):i.gotoDate(new Date),r.bound?(this.hide(),i.el.className+=\" is-bound\",a(r.trigger,\"click\",i._onInputClick),a(r.trigger,\"focus\",i._onInputFocus),a(r.trigger,\"blur\",i._onInputBlur)):this.show()};return t.prototype={config:function(t){this._o||(this._o=d({},h,!0));var e=d(this._o,t,!0);e.isRTL=!!e.isRTL,e.field=e.field&&e.field.nodeName?e.field:null,e.theme=\"string\"==typeof e.theme&&e.theme?e.theme:null,e.bound=!!(void 0!==e.bound?e.field&&e.bound:e.field),e.trigger=e.trigger&&e.trigger.nodeName?e.trigger:e.field,e.disableWeekends=!!e.disableWeekends,e.disableDayFn=\"function\"==typeof e.disableDayFn?e.disableDayFn:null;var n=parseInt(e.numberOfMonths,10)||1;if(e.numberOfMonths=4=r&&(this._y=r,!isNaN(s)&&this._m>s&&(this._m=s)),e=\"pika-title-\"+Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,2);for(var l=0;l'+f(this,l,this.calendars[l].year,this.calendars[l].month,this.calendars[0].year,e)+this.render(this.calendars[l].year,this.calendars[l].month,e)+\"\";this.el.innerHTML=a,n.bound&&\"hidden\"!==n.field.type&&u(function(){n.trigger.focus()},1),\"function\"==typeof this._o.onDraw&&this._o.onDraw(this),n.bound&&n.field.setAttribute(\"aria-label\",\"Use the arrow keys to pick a date\")}},adjustPosition:function(){var t,e,n,i,r,o,s,a,l,u;if(!this._o.container){if(this.el.style.position=\"absolute\",t=this._o.trigger,e=t,n=this.el.offsetWidth,i=this.el.offsetHeight,r=window.innerWidth||c.documentElement.clientWidth,o=window.innerHeight||c.documentElement.clientHeight,s=window.pageYOffset||c.body.scrollTop||c.documentElement.scrollTop,\"function\"==typeof t.getBoundingClientRect)u=t.getBoundingClientRect(),a=u.left+window.pageXOffset,l=u.bottom+window.pageYOffset;else for(a=e.offsetLeft,l=e.offsetTop+e.offsetHeight;e=e.offsetParent;)a+=e.offsetLeft,l+=e.offsetTop;(this._o.reposition&&ri.maxDate||i.disableWeekends&&(0===(x=E.getDay())||6===x)||i.disableDayFn&&i.disableDayFn(E);N&&(S'+Math.ceil(((new Date(_,b,y)-w)/864e5+w.getDay()+1)/7)+\"\")),a.push((v=l,g=i.isRTL,''+(g?v.reverse():v).join(\"\")+\"\")),C=0,k=!(l=[]))}return Y(i,a,n)},isVisible:function(){return this._v},show:function(){var t,e,n;this.isVisible()||(this._v=!0,this.draw(),t=this.el,e=\"is-hidden\",t.className=(n=(\" \"+t.className+\" \").replace(\" \"+e+\" \",\" \")).trim?n.trim():n.replace(/^\\s+|\\s+$/g,\"\"),this._o.bound&&(a(c,\"click\",this._onClick),this.adjustPosition()),\"function\"==typeof this._o.onOpen&&this._o.onOpen.call(this))},hide:function(){var t,e,n=this._v;!1!==n&&(this._o.bound&&i(c,\"click\",this._onClick),this.el.style.position=\"static\",this.el.style.left=\"auto\",this.el.style.top=\"auto\",t=this.el,l(t,e=\"is-hidden\")||(t.className=\"\"===t.className?e:t.className+\" \"+e),this._v=!1,void 0!==n&&\"function\"==typeof this._o.onClose&&this._o.onClose.call(this))},destroy:function(){var t=this._o;this.hide(),i(this.el,\"mousedown\",this._onMouseDown,!0),i(this.el,\"touchend\",this._onMouseDown,!0),i(this.el,\"change\",this._onChange),t.keyboardInput&&i(c,\"keydown\",this._onKeyChange),t.field&&(i(t.field,\"change\",this._onInputChange),t.bound&&(i(t.trigger,\"click\",this._onInputClick),i(t.trigger,\"focus\",this._onInputFocus),i(t.trigger,\"blur\",this._onInputBlur))),this.el.parentNode&&this.el.parentNode.removeChild(this.el)}},t})}})}(this);\n", + " //# sourceMappingURL=bokeh-widgets.min.js.map\n", + " /* END bokeh-widgets.min.js */\n", + " },\n", + " \n", + " function(Bokeh) {\n", + " /* BEGIN bokeh-tables.min.js */\n", + " /*!\n", + " * Copyright (c) 2012 - 2018, Anaconda, Inc., and Bokeh Contributors\n", + " * All rights reserved.\n", + " * \n", + " * Redistribution and use in source and binary forms, with or without modification,\n", + " * are permitted provided that the following conditions are met:\n", + " * \n", + " * Redistributions of source code must retain the above copyright notice,\n", + " * this list of conditions and the following disclaimer.\n", + " * \n", + " * Redistributions in binary form must reproduce the above copyright notice,\n", + " * this list of conditions and the following disclaimer in the documentation\n", + " * and/or other materials provided with the distribution.\n", + " * \n", + " * Neither the name of Anaconda nor the names of any contributors\n", + " * may be used to endorse or promote products derived from this software\n", + " * without specific prior written permission.\n", + " * \n", + " * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n", + " * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n", + " * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n", + " * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n", + " * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n", + " * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n", + " * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n", + " * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n", + " * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n", + " * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n", + " * THE POSSIBILITY OF SUCH DAMAGE.\n", + " */\n", + " !function(a,b){!function(Bokeh){var define;(function(e,t,n){if(null!=Bokeh)return Bokeh.register_plugin(e,{\"models/widgets/tables/cell_editors\":434,\"models/widgets/tables/cell_formatters\":435,\"models/widgets/tables/data_table\":436,\"models/widgets/tables/index\":437,\"models/widgets/tables/main\":438,\"models/widgets/tables/table_column\":439,\"models/widgets/tables/table_widget\":440,\"models/widgets/widget\":441},438);throw new Error(\"Cannot find Bokeh. You have to load it prior to loading plugins.\")})({434:function(e,t,n){var o=e(391),r=e(15),i=e(5),l=e(6),a=e(59),s=e(436),c=function(t){function e(e){return t.call(this,o.__assign({model:e.column.model},e))||this}return o.__extends(e,t),Object.defineProperty(e.prototype,\"emptyValue\",{get:function(){return null},enumerable:!0,configurable:!0}),e.prototype.initialize=function(e){t.prototype.initialize.call(this,e),this.inputEl=this._createInput(),this.defaultValue=null,this.args=e,this.render()},e.prototype.css_classes=function(){return t.prototype.css_classes.call(this).concat(\"bk-cell-editor\")},e.prototype.render=function(){t.prototype.render.call(this),this.args.container.appendChild(this.el),this.el.appendChild(this.inputEl),this.renderEditor(),this.disableNavigation()},e.prototype.renderEditor=function(){},e.prototype.disableNavigation=function(){this.inputEl.addEventListener(\"keydown\",function(e){switch(e.keyCode){case i.Keys.Left:case i.Keys.Right:case i.Keys.Up:case i.Keys.Down:case i.Keys.PageUp:case i.Keys.PageDown:e.stopImmediatePropagation()}})},e.prototype.destroy=function(){this.remove()},e.prototype.focus=function(){this.inputEl.focus()},e.prototype.show=function(){},e.prototype.hide=function(){},e.prototype.position=function(){},e.prototype.getValue=function(){return this.inputEl.value},e.prototype.setValue=function(e){this.inputEl.value=e},e.prototype.serializeValue=function(){return this.getValue()},e.prototype.isValueChanged=function(){return!(\"\"==this.getValue()&&null==this.defaultValue)&&this.getValue()!==this.defaultValue},e.prototype.applyValue=function(e,t){var n=this.args.grid.getData(),o=n.index.indexOf(e[s.DTINDEX_NAME]);n.setField(o,this.args.column.field,t)},e.prototype.loadValue=function(e){var t=e[this.args.column.field];this.defaultValue=null!=t?t:this.emptyValue,this.setValue(this.defaultValue)},e.prototype.validateValue=function(e){if(this.args.column.validator){var t=this.args.column.validator(e);if(!t.valid)return t}return{valid:!0,msg:null}},e.prototype.validate=function(){return this.validateValue(this.getValue())},e}(l.DOMView);n.CellEditorView=c;var u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"CellEditor\"},t}(a.Model);(n.CellEditor=u).initClass();var d=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o.__extends(e,t),Object.defineProperty(e.prototype,\"emptyValue\",{get:function(){return\"\"},enumerable:!0,configurable:!0}),e.prototype._createInput=function(){return i.input({type:\"text\"})},e.prototype.renderEditor=function(){this.inputEl.focus(),this.inputEl.select()},e.prototype.loadValue=function(e){t.prototype.loadValue.call(this,e),this.inputEl.defaultValue=this.defaultValue,this.inputEl.select()},e}(c);n.StringEditorView=d;var p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"StringEditor\",this.prototype.default_view=d,this.define({completions:[r.Array,[]]})},t}(u);(n.StringEditor=p).initClass();var f=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.prototype._createInput=function(){return i.textarea()},t}(c);n.TextEditorView=f;var h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.initClass=function(){this.prototype.type=\"TextEditor\",this.prototype.default_view=f},t}(u);(n.TextEditor=h).initClass();var g=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return o.__extends(t,e),t.prototype._createInput=function(){return i.select()},t.prototype.renderEditor=function(){for(var e=0,t=this.model.options;e/g,\">\")},e}(r.Model),l=function(t){function e(e){return t.call(this,e)||this}return s.__extends(e,t),e.initClass=function(){this.prototype.type=\"StringFormatter\",this.define({font_style:[o.FontStyle,\"normal\"],text_align:[o.TextAlign,\"left\"],text_color:[o.Color]})},e.prototype.doFormat=function(e,t,n,o,r){var i=this.font_style,l=this.text_align,a=this.text_color,s=d.div({},null==n?\"\":\"\"+n);switch(i){case\"bold\":s.style.fontWeight=\"bold\";break;case\"italic\":s.style.fontStyle=\"italic\"}return null!=l&&(s.style.textAlign=l),null!=a&&(s.style.color=a),s.outerHTML},e}(n.CellFormatter=i);(n.StringFormatter=l).initClass();var f=function(c){function e(e){return c.call(this,e)||this}return s.__extends(e,c),e.initClass=function(){this.prototype.type=\"NumberFormatter\",this.define({format:[o.String,\"0,0\"],language:[o.String,\"en\"],rounding:[o.String,\"round\"]})},e.prototype.doFormat=function(e,t,n,o,r){var i=this,l=this.format,a=this.language,s=function(){switch(i.rounding){case\"round\":case\"nearest\":return Math.round;case\"floor\":case\"rounddown\":return Math.floor;case\"ceil\":case\"roundup\":return Math.ceil}}();return n=u.format(n,l,a,s),c.prototype.doFormat.call(this,e,t,n,o,r)},e}(l);(n.NumberFormatter=f).initClass();var h=function(t){function e(e){return t.call(this,e)||this}return s.__extends(e,t),e.initClass=function(){this.prototype.type=\"BooleanFormatter\",this.define({icon:[o.String,\"check\"]})},e.prototype.doFormat=function(e,t,n,o,r){return n?d.i({class:this.icon}).outerHTML:\"\"},e}(i);(n.BooleanFormatter=h).initClass();var g=function(l){function e(e){return l.call(this,e)||this}return s.__extends(e,l),e.initClass=function(){this.prototype.type=\"DateFormatter\",this.define({format:[o.String,\"ISO-8601\"]})},e.prototype.getFormat=function(){switch(this.format){case\"ATOM\":case\"W3C\":case\"RFC-3339\":case\"ISO-8601\":return\"%Y-%m-%d\";case\"COOKIE\":return\"%a, %d %b %Y\";case\"RFC-850\":return\"%A, %d-%b-%y\";case\"RFC-1123\":case\"RFC-2822\":return\"%a, %e %b %Y\";case\"RSS\":case\"RFC-822\":case\"RFC-1036\":return\"%a, %e %b %y\";case\"TIMESTAMP\":return;default:return this.format}},e.prototype.doFormat=function(e,t,n,o,r){n=p.isString(n)?parseInt(n,10):n;var i=a(n,this.getFormat());return l.prototype.doFormat.call(this,e,t,i,o,r)},e}(i);(n.DateFormatter=g).initClass();var m=function(t){function e(e){return t.call(this,e)||this}return s.__extends(e,t),e.initClass=function(){this.prototype.type=\"HTMLTemplateFormatter\",this.define({template:[o.String,\"<%= value %>\"]})},e.prototype.doFormat=function(e,t,n,o,r){var i=this.template;if(null==n)return\"\";var l=c(i),a=s.__assign({},r,{value:n});return l(a)},e}(i);(n.HTMLTemplateFormatter=m).initClass()},436:function(e,t,i){var o=e(391),s=e(449).Grid,c=e(447).RowSelectionModel,u=e(446).CheckboxSelectColumn,d=e(445).CellExternalCopyManager,r=e(15),n=e(38),p=e(44),l=e(21),a=e(32),f=e(14),h=e(440),g=e(441);i.DTINDEX_NAME=\"__bkdt_internal_index__\";var m=function(){function e(e,t){if(this.source=e,this.view=t,i.DTINDEX_NAME in this.source.data)throw new Error(\"special name \"+i.DTINDEX_NAME+\" cannot be used as a data table column\");this.index=this.view.indices}return e.prototype.getLength=function(){return this.index.length},e.prototype.getItem=function(e){for(var t={},n=0,o=a.keys(this.source.data);n+~]|\"+F+\")\"+F+\"*\"),q=new RegExp(\"=\"+F+\"*([^\\\\]'\\\"]*?)\"+F+\"*\\\\]\",\"g\"),z=new RegExp(W),X=new RegExp(\"^\"+_+\"$\"),K={ID:new RegExp(\"^#(\"+_+\")\"),CLASS:new RegExp(\"^\\\\.(\"+_+\")\"),TAG:new RegExp(\"^(\"+_+\"|[*])\"),ATTR:new RegExp(\"^\"+M),PSEUDO:new RegExp(\"^\"+W),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+F+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+F+\"*(?:([+-]|)\"+F+\"*(\\\\d+)|))\"+F+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+L+\")$\",\"i\"),needsContext:new RegExp(\"^\"+F+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+F+\"*((?:-\\\\d)?\\\\d*)\"+F+\"*\\\\)|)(?=[^-]|$)\",\"i\")},U=/^(?:input|select|textarea|button)$/i,G=/^h\\d$/i,Y=/^[^{]+\\{\\s*\\[native \\w/,Q=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,J=/[+~]/,Z=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+F+\"?|(\"+F+\")|.)\",\"ig\"),ee=function(e,t,n){var o=\"0x\"+t-65536;return o!=o||n?t:o<0?String.fromCharCode(o+65536):String.fromCharCode(o>>10|55296,1023&o|56320)},te=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ne=function(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){x()},re=we(function(e){return!0===e.disabled&&(\"form\"in e||\"label\"in e)},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=$.call(w.childNodes),w.childNodes),t[w.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){N.apply(e,$.call(t))}:function(e,t){for(var n=e.length,o=0;e[n++]=t[o++];);e.length=n-1}}}function ie(e,t,n,o){var r,i,l,a,s,c,u,d=t&&t.ownerDocument,p=t?t.nodeType:9;if(n=n||[],\"string\"!=typeof e||!e||1!==p&&9!==p&&11!==p)return n;if(!o&&((t?t.ownerDocument||t:w)!==R&&x(t),t=t||R,S)){if(11!==p&&(s=Q.exec(e)))if(r=s[1]){if(9===p){if(!(l=t.getElementById(r)))return n;if(l.id===r)return n.push(l),n}else if(d&&(l=d.getElementById(r))&&v(t,l)&&l.id===r)return n.push(l),n}else{if(s[2])return H.apply(n,t.getElementsByTagName(e)),n;if((r=s[3])&&f.getElementsByClassName&&t.getElementsByClassName)return H.apply(n,t.getElementsByClassName(r)),n}if(f.qsa&&!T[e+\" \"]&&(!m||!m.test(e))){if(1!==p)d=t,u=e;else if(\"object\"!==t.nodeName.toLowerCase()){for((a=t.getAttribute(\"id\"))?a=a.replace(te,ne):t.setAttribute(\"id\",a=E),c=h(e),i=c.length;i--;)c[i]=\"#\"+a+\" \"+ve(c[i]);u=c.join(\",\"),d=J.test(e)&&ge(t.parentNode)||t}if(u)try{return H.apply(n,d.querySelectorAll(u)),n}catch(e){}finally{a===E&&t.removeAttribute(\"id\")}}}return g(e.replace(j,\"$1\"),t,n,o)}function le(){var o=[];return function e(t,n){o.push(t+\" \")>y.cacheLength&&delete e[o.shift()];return e[t+\" \"]=n}}function ae(e){return e[E]=!0,e}function se(e){var t=R.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ce(e,t){for(var n=e.split(\"|\"),o=n.length;o--;)y.attrHandle[n[o]]=t}function ue(e,t){var n=t&&e,o=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(o)return o;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(n){return function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&e.type===n}}function pe(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function fe(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&re(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function he(l){return ae(function(i){return i=+i,ae(function(e,t){for(var n,o=l([],e.length,i),r=o.length;r--;)e[n=o[r]]&&(e[n]=!(t[n]=e[n]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in f=ie.support={},r=ie.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&\"HTML\"!==t.nodeName},x=ie.setDocument=function(e){var t,n,o=e?e.ownerDocument||e:w;return o!==R&&9===o.nodeType&&o.documentElement&&(l=(R=o).documentElement,S=!r(R),w!==R&&(n=R.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),f.attributes=se(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),f.getElementsByTagName=se(function(e){return e.appendChild(R.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),f.getElementsByClassName=Y.test(R.getElementsByClassName),f.getById=se(function(e){return l.appendChild(e).id=E,!R.getElementsByName||!R.getElementsByName(E).length}),f.getById?(y.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute(\"id\")===t}},y.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(y.filter.ID=function(e){var n=e.replace(Z,ee);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},y.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n,o,r,i=t.getElementById(e);if(i){if((n=i.getAttributeNode(\"id\"))&&n.value===e)return[i];for(r=t.getElementsByName(e),o=0;i=r[o++];)if((n=i.getAttributeNode(\"id\"))&&n.value===e)return[i]}return[]}}),y.find.TAG=f.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):f.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,o=[],r=0,i=t.getElementsByTagName(e);if(\"*\"===e){for(;n=i[r++];)1===n.nodeType&&o.push(n);return o}return i},y.find.CLASS=f.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&S)return t.getElementsByClassName(e)},a=[],m=[],(f.qsa=Y.test(R.querySelectorAll))&&(se(function(e){l.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&m.push(\"[*^$]=\"+F+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||m.push(\"\\\\[\"+F+\"*(?:value|\"+L+\")\"),e.querySelectorAll(\"[id~=\"+E+\"-]\").length||m.push(\"~=\"),e.querySelectorAll(\":checked\").length||m.push(\":checked\"),e.querySelectorAll(\"a#\"+E+\"+*\").length||m.push(\".#.+[+~]\")}),se(function(e){e.innerHTML=\"\";var t=R.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&m.push(\"name\"+F+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&m.push(\":enabled\",\":disabled\"),l.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&m.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),m.push(\",.*:\")})),(f.matchesSelector=Y.test(u=l.matches||l.webkitMatchesSelector||l.mozMatchesSelector||l.oMatchesSelector||l.msMatchesSelector))&&se(function(e){f.disconnectedMatch=u.call(e,\"*\"),u.call(e,\"[s!='']:x\"),a.push(\"!=\",W)}),m=m.length&&new RegExp(m.join(\"|\")),a=a.length&&new RegExp(a.join(\"|\")),t=Y.test(l.compareDocumentPosition),v=t||Y.test(l.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,o=t&&t.parentNode;return e===o||!(!o||1!==o.nodeType||!(n.contains?n.contains(o):e.compareDocumentPosition&&16&e.compareDocumentPosition(o)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},P=t?function(e,t){if(e===t)return c=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!f.sortDetached&&t.compareDocumentPosition(e)===n?e===R||e.ownerDocument===w&&v(w,e)?-1:t===R||t.ownerDocument===w&&v(w,t)?1:s?I(s,e)-I(s,t):0:4&n?-1:1)}:function(e,t){if(e===t)return c=!0,0;var n,o=0,r=e.parentNode,i=t.parentNode,l=[e],a=[t];if(!r||!i)return e===R?-1:t===R?1:r?-1:i?1:s?I(s,e)-I(s,t):0;if(r===i)return ue(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;l[o]===a[o];)o++;return o?ue(l[o],a[o]):l[o]===w?-1:a[o]===w?1:0}),R},ie.matches=function(e,t){return ie(e,null,null,t)},ie.matchesSelector=function(e,t){if((e.ownerDocument||e)!==R&&x(e),t=t.replace(q,\"='$1']\"),f.matchesSelector&&S&&!T[t+\" \"]&&(!a||!a.test(t))&&(!m||!m.test(t)))try{var n=u.call(e,t);if(n||f.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||\"\").replace(Z,ee),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||ie.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&ie.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return K.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&z.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+\" \"];return t||(t=new RegExp(\"(^|\"+F+\")\"+e+\"(\"+F+\"|$)\"))&&p(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,o,r){return function(e){var t=ie.attr(e,n);return null==t?\"!=\"===o:!o||(t+=\"\",\"=\"===o?t===r:\"!=\"===o?t!==r:\"^=\"===o?r&&0===t.indexOf(r):\"*=\"===o?r&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||ce(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),f.attributes&&se(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||ce(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),se(function(e){return null==e.getAttribute(\"disabled\")})||ce(L,function(e,t,n){var o;if(!n)return!0===e[t]?t.toLowerCase():(o=e.getAttributeNode(t))&&o.specified?o.value:null}),ie}(R);E.find=C,E.expr=C.selectors,E.expr[\":\"]=E.expr.pseudos,E.uniqueSort=E.unique=C.uniqueSort,E.text=C.getText,E.isXMLDoc=C.isXML,E.contains=C.contains,E.escapeSelector=C.escape;var y=function(e,t,n){for(var o=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&E(e).is(n))break;o.push(e)}return o},b=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},x=E.expr.match.needsContext;function k(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var T=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i,P=/^.[^:#\\[\\.,]*$/;function D(e,n,o){return E.isFunction(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==o}):n.nodeType?E.grep(e,function(e){return e===n!==o}):\"string\"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/,H=E.fn.init=function(e,t,n){var o,r;if(!e)return this;if(n=n||A,\"string\"==typeof e){if(!(o=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:N.exec(e))||!o[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(o[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(o[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),T.test(o[1])&&E.isPlainObject(t))for(o in t)E.isFunction(this[o])?this[o](t[o]):this.attr(o,t[o]);return this}return(r=S.getElementById(o[2]))&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):E.isFunction(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)};H.prototype=E.fn,A=E(S);var $=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};function L(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]+)/i,se=/^$|\\/(?:java|ecma)script/i,ce={option:[1,\"\"],thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ue(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&k(e,t)?E.merge([e],n):n}function de(e,t){for(var n=0,o=e.length;nx\",m.noCloneChecked=!!fe.cloneNode(!0).lastChild.defaultValue;var ve=S.documentElement,we=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ye=/^([^.]*)(?:\\.(.+)|)/;function be(){return!0}function xe(){return!1}function Re(){try{return S.activeElement}catch(e){}}function Se(e,t,n,o,r,i){var l,a;if(\"object\"==typeof t){for(a in\"string\"!=typeof n&&(o=o||n,n=void 0),t)Se(e,a,n,o,t[a],i);return e}if(null==o&&null==r?(r=n,o=n=void 0):null==r&&(\"string\"==typeof n?(r=o,o=void 0):(r=o,o=n,n=void 0)),!1===r)r=xe;else if(!r)return e;return 1===i&&(l=r,(r=function(e){return E().off(e),l.apply(this,arguments)}).guid=l.guid||(l.guid=E.guid++)),e.each(function(){E.event.add(this,t,r,o,n)})}E.event={global:{},add:function(t,e,n,o,r){var i,l,a,s,c,u,d,p,f,h,g,m=X.get(t);if(m)for(n.handler&&(n=(i=n).handler,r=i.selector),r&&E.find.matchesSelector(ve,r),n.guid||(n.guid=E.guid++),(s=m.events)||(s=m.events={}),(l=m.handle)||(l=m.handle=function(e){return void 0!==E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),e=(e||\"\").match(F)||[\"\"],c=e.length;c--;)a=ye.exec(e[c])||[],f=g=a[1],h=(a[2]||\"\").split(\".\").sort(),f&&(d=E.event.special[f]||{},f=(r?d.delegateType:d.bindType)||f,d=E.event.special[f]||{},u=E.extend({type:f,origType:g,data:o,handler:n,guid:n.guid,selector:r,needsContext:r&&E.expr.match.needsContext.test(r),namespace:h.join(\".\")},i),(p=s[f])||((p=s[f]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(t,o,h,l)||t.addEventListener&&t.addEventListener(f,l)),d.add&&(d.add.call(t,u),u.handler.guid||(u.handler.guid=n.guid)),r?p.splice(p.delegateCount++,0,u):p.push(u),E.event.global[f]=!0)},remove:function(e,t,n,o,r){var i,l,a,s,c,u,d,p,f,h,g,m=X.hasData(e)&&X.get(e);if(m&&(s=m.events)){for(t=(t||\"\").match(F)||[\"\"],c=t.length;c--;)if(a=ye.exec(t[c])||[],f=g=a[1],h=(a[2]||\"\").split(\".\").sort(),f){for(d=E.event.special[f]||{},f=(o?d.delegateType:d.bindType)||f,p=s[f]||[],a=a[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),l=i=p.length;i--;)u=p[i],!r&&g!==u.origType||n&&n.guid!==u.guid||a&&!a.test(u.namespace)||o&&o!==u.selector&&(\"**\"!==o||!u.selector)||(p.splice(i,1),u.selector&&p.delegateCount--,d.remove&&d.remove.call(e,u));l&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,h,m.handle)||E.removeEvent(e,f,m.handle),delete s[f])}else for(f in s)E.event.remove(e,f+t[c],n,o,!0);E.isEmptyObject(s)&&X.remove(e,\"handle events\")}},dispatch:function(e){var t,n,o,r,i,l,a=E.event.fix(e),s=new Array(arguments.length),c=(X.get(this,\"events\")||{})[a.type]||[],u=E.event.special[a.type]||{};for(s[0]=a,t=1;t\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,ke=/\\s*$/g;function Ae(e,t){return k(e,\"table\")&&k(11!==t.nodeType?t:t.firstChild,\"tr\")&&E(\">tbody\",e)[0]||e}function Ne(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function He(e){var t=Pe.exec(e.type);return t?e.type=t[1]:e.removeAttribute(\"type\"),e}function $e(e,t){var n,o,r,i,l,a,s,c;if(1===t.nodeType){if(X.hasData(e)&&(i=X.access(e),l=X.set(t,i),c=i.events))for(r in delete l.handle,l.events={},c)for(n=0,o=c[r].length;n\")},clone:function(e,t,n){var o,r,i,l,a=e.cloneNode(!0),s=E.contains(e.ownerDocument,e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(l=ue(a),i=ue(e),o=0,r=i.length;o\").prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",r=function(e){o.remove(),r=null,e&&t(\"error\"===e.type?404:200,e.type)}),S.head.appendChild(o[0])},abort:function(){r&&r()}}});var Ot,Bt=[],qt=/(=)\\?(?=&|$)|\\?\\?/;E.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Bt.pop()||E.expando+\"_\"+yt++;return this[e]=!0,e}}),E.ajaxPrefilter(\"json jsonp\",function(e,t,n){var o,r,i,l=!1!==e.jsonp&&(qt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&qt.test(e.data)&&\"data\");if(l||\"jsonp\"===e.dataTypes[0])return o=e.jsonpCallback=E.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,l?e[l]=e[l].replace(qt,\"$1\"+o):!1!==e.jsonp&&(e.url+=(bt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+o),e.converters[\"script json\"]=function(){return i||E.error(o+\" was not called\"),i[0]},e.dataTypes[0]=\"json\",r=R[o],R[o]=function(){i=arguments},n.always(function(){void 0===r?E(R).removeProp(o):R[o]=r,e[o]&&(e.jsonpCallback=t.jsonpCallback,Bt.push(o)),i&&E.isFunction(r)&&r(i[0]),i=r=void 0}),\"script\"}),m.createHTMLDocument=((Ot=S.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Ot.childNodes.length),E.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(m.createHTMLDocument?(t=S.implementation.createHTMLDocument(\"\"),(o=t.createElement(\"base\")).href=S.location.href,t.head.appendChild(o)):t=S),r=T.exec(e),i=!n&&[],r?[t.createElement(r[1])]:(r=me([e],t,i),i&&i.length&&E(i).remove(),E.merge([],r.childNodes)));var o,r,i},E.fn.load=function(e,t,n){var o,r,i,l=this,a=e.indexOf(\" \");return-1\").append(E.parseHTML(e)).find(o):e)}).always(n&&function(e,t){l.each(function(){n.apply(this,i||[e.responseText,t,e])})}),this},E.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var o,r,i,l,a,s,c=E.css(e,\"position\"),u=E(e),d={};\"static\"===c&&(e.style.position=\"relative\"),a=u.offset(),i=E.css(e,\"top\"),s=E.css(e,\"left\"),(\"absolute\"===c||\"fixed\"===c)&&-1<(i+s).indexOf(\"auto\")?(o=u.position(),l=o.top,r=o.left):(l=parseFloat(i)||0,r=parseFloat(s)||0),E.isFunction(t)&&(t=t.call(e,n,E.extend({},a))),null!=t.top&&(d.top=t.top-a.top+l),null!=t.left&&(d.left=t.left-a.left+r),\"using\"in t?t.using.call(e,d):u.css(d)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,o,r,i=this[0];return i?i.getClientRects().length?(o=i.getBoundingClientRect(),e=i.ownerDocument,n=e.documentElement,r=e.defaultView,{top:o.top+r.pageYOffset-n.clientTop,left:o.left+r.pageXOffset-n.clientLeft}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n=this[0],o={top:0,left:0};return\"fixed\"===E.css(n,\"position\")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),k(e[0],\"html\")||(o=e.offset()),o={top:o.top+E.css(e[0],\"borderTopWidth\",!0),left:o.left+E.css(e[0],\"borderLeftWidth\",!0)}),{top:t.top-o.top-E.css(n,\"marginTop\",!0),left:t.left-o.left-E.css(n,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&\"static\"===E.css(e,\"position\");)e=e.offsetParent;return e||ve})}}),E.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,r){var i=\"pageYOffset\"===r;E.fn[t]=function(e){return B(this,function(e,t,n){var o;if(E.isWindow(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===n)return o?o[r]:e[t];o?o.scrollTo(i?o.pageXOffset:n,i?n:o.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each([\"top\",\"left\"],function(e,n){E.cssHooks[n]=je(m.pixelPosition,function(e,t){if(t)return t=Ve(e,n),Me.test(t)?E(e).position()[n]+\"px\":t})}),E.each({Height:\"height\",Width:\"width\"},function(l,a){E.each({padding:\"inner\"+l,content:a,\"\":\"outer\"+l},function(o,i){E.fn[i]=function(e,t){var n=arguments.length&&(o||\"boolean\"!=typeof e),r=o||(!0===e||!0===t?\"margin\":\"border\");return B(this,function(e,t,n){var o;return E.isWindow(e)?0===i.indexOf(\"outer\")?e[\"inner\"+l]:e.document.documentElement[\"client\"+l]:9===e.nodeType?(o=e.documentElement,Math.max(e.body[\"scroll\"+l],o[\"scroll\"+l],e.body[\"offset\"+l],o[\"offset\"+l],o[\"client\"+l])):void 0===n?E.css(e,t,r):E.style(e,t,n,r)},a,n?e:void 0,n)}})}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,o){return this.on(t,e,n,o)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=k,\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return E});var zt=R.jQuery,Xt=R.$;return E.noConflict=function(e){return R.$===E&&(R.$=Xt),e&&R.jQuery===E&&(R.jQuery=zt),E},e||(R.jQuery=R.$=E),E})},443:function(e,t,n){\n", + " /*!\n", + " * jquery.event.drag - v 2.3.0\n", + " * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com\n", + " * Open Source MIT License - http://threedubmedia.com/code/license\n", + " */\n", + " var f=e(450);f.fn.drag=function(e,t,n){var o=\"string\"==typeof e?e:\"\",r=f.isFunction(e)?e:f.isFunction(t)?t:null;return 0!==o.indexOf(\"drag\")&&(o=\"drag\"+o),n=(e==r?t:n)||{},r?this.on(o,n,r):this.trigger(o)};var h=f.event,o=h.special,g=o.drag={defaults:{which:1,distance:0,not:\":input\",handle:null,relative:!1,drop:!0,click:!1},datakey:\"dragdata\",noBubble:!0,add:function(e){var n=f.data(this,g.datakey),o=e.data||{};n.related+=1,f.each(g.defaults,function(e,t){void 0!==o[e]&&(n[e]=o[e])})},remove:function(){f.data(this,g.datakey).related-=1},setup:function(){if(!f.data(this,g.datakey)){var e=f.extend({related:0},g.defaults);f.data(this,g.datakey,e),h.add(this,\"touchstart mousedown\",g.init,e),this.attachEvent&&this.attachEvent(\"ondragstart\",g.dontstart)}},teardown:function(){var e=f.data(this,g.datakey)||{};e.related||(f.removeData(this,g.datakey),h.remove(this,\"touchstart mousedown\",g.init),g.textselect(!0),this.detachEvent&&this.detachEvent(\"ondragstart\",g.dontstart))},init:function(e){if(!g.touched){var t,n=e.data;if(!(0!=e.which&&0=e.left&&(t[0]||t.right)<=e.right&&(t[1]||t.top)>=e.top&&(t[1]||t.bottom)<=e.bottom},modes:{intersect:function(e,t,n){return this.contains(n,[e.pageX,e.pageY])?1e9:this.modes.overlap.apply(this,arguments)},overlap:function(e,t,n){return Math.max(0,Math.min(n.bottom,t.bottom)-Math.max(n.top,t.top))*Math.max(0,Math.min(n.right,t.right)-Math.max(n.left,t.left))},fit:function(e,t,n){return this.contains(n,t)?1:0},middle:function(e,t,n){return this.contains(n,[t.left+.5*t.width,t.top+.5*t.height])?1:0}},sort:function(e,t){return t.winner-e.winner||e.index-t.index},tolerate:function(e){var t,n,o,r,i,l,a,s,c=0,u=e.interactions.length,d=[g.event.pageX,g.event.pageY],p=g.tolerance||g.modes[g.mode];do{if(s=e.interactions[c]){if(!s)return;s.drop=[],i=[],l=s.droppable.length,p&&(o=g.locate(s.proxy)),t=0;do{if(a=s.droppable[t]){if(r=f.data(a,g.datakey),!(n=r.location))continue;r.winner=p?p.call(g,g.event,o,n):g.contains(n,d)?1:0,i.push(r)}}while(++t\"),column:t,position:{top:0,left:0},grid:m,event:n},l=new t.editor(i);l.loadValue(e),r=l.serializeValue(),l.destroy()}else r=e[t.field];return r}function E(e,t,n){if(x.dataItemColumnValueSetter)return x.dataItemColumnValueSetter(e,t,n);if(t.editor){var o={container:c(\"body\"),column:t,position:{top:0,left:0},grid:m},r=new t.editor(o);r.loadValue(e),r.applyValue(e,n),r.destroy()}else e[t.field]=n}function k(e){var t=document.createElement(\"textarea\");return t.style.position=\"absolute\",t.style.left=\"-1000px\",t.style.top=document.body.scrollTop+\"px\",t.value=e,R.appendChild(t),t.select(),t}function n(e,t){var n;if(!m.getEditorLock().isActive()||m.getOptions().autoEdit){if(e.which==D.ESC&&v&&(e.preventDefault(),P(),b.onCopyCancelled.notify({ranges:v}),v=null),(e.which===D.C||e.which===D.INSERT)&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&(w&&w.call(),0!=(n=m.getSelectionModel().getSelectedRanges()).length)){T(v=n),b.onCopyCells.notify({ranges:n});for(var o=m.getColumns(),r=\"\",i=0;ia.getDataLength();if(x.newRowCreator&&w){var C=u+f-a.getDataLength();x.newRowCreator(C)}var y={isClipboardCommand:!0,clippedRange:l,oldValues:[],cellExternalCopyManager:b,_options:x,setDataItemValueForColumn:E,markCopySelection:T,oneCellToMultiple:p,activeRow:u,activeCell:d,destH:f,destW:h,maxDestY:a.getDataLength(),maxDestX:a.getColumns().length,h:0,w:0,execute:function(){for(var e=this.h=0;e\",d.toolTip):a.updateColumnHeader(d.columnId,\"\",d.toolTip)),!d.hideInFilterHeaderRow){var l=v(\"#header-filter-selector\"+s);l.prop(\"checked\",u)}}function i(e,t){32==e.which&&a.getColumns()[t.cell].id===d.columnId&&(a.getEditorLock().isActive()&&!a.getEditorLock().commitCurrentEdit()||p(t.row),e.preventDefault(),e.stopImmediatePropagation())}function l(e,t){if(a.getColumns()[t.cell].id===d.columnId&&v(e.target).is(\":checkbox\")){if(a.getEditorLock().isActive()&&!a.getEditorLock().commitCurrentEdit())return e.preventDefault(),void e.stopImmediatePropagation();p(t.row),e.stopPropagation(),e.stopImmediatePropagation()}}function p(t){c[t]?a.setSelectedRows(v.grep(a.getSelectedRows(),function(e){return e!=t})):a.setSelectedRows(a.getSelectedRows().concat(t)),a.setActiveCell(t,function(){if(null===h){h=0;for(var e=a.getColumns(),t=0;t\":\"\":null}v.extend(this,{init:function(e){a=e,n.subscribe(a.onSelectedRowsChanged,t).subscribe(a.onClick,l).subscribe(a.onKeyDown,i),d.hideInFilterHeaderRow||e.onHeaderRowCellRendered.subscribe(function(e,t){\"sel\"===t.column.field&&(v(t.node).empty(),v(\"\").appendTo(t.node).on(\"click\",function(e){f(e,t)}))});d.hideInColumnTitleRow||n.subscribe(a.onHeaderClick,f)},destroy:function(){n.unsubscribeAll()},deSelectRows:function(e){var t,n=e.length,o=[];for(t=0;t\",toolTip:d.toolTip,field:\"sel\",width:d.width,resizable:!1,sortable:!1,cssClass:d.cssClass,hideSelectAllCheckbox:d.hideSelectAllCheckbox,formatter:m}},getOptions:function(){return d},setOptions:function(e){if((d=v.extend(!0,{},d,e)).hideSelectAllCheckbox)o(),r();else if(d.hideInColumnTitleRow?o():(u?a.updateColumnHeader(d.columnId,\"\",d.toolTip):a.updateColumnHeader(d.columnId,\"\",d.toolTip),n.subscribe(a.onHeaderClick,f)),d.hideInFilterHeaderRow)r();else{var t=v(\"#filter-checkbox-selectall-container\");t.show(),t.find('input[type=\"checkbox\"]').prop(\"checked\",u)}}})}}},447:function(e,t,n){var v=e(450),w=e(448);t.exports={RowSelectionModel:function(t){var c,n,o,u=[],r=this,i=new w.EventHandler,l={selectActiveRow:!0};function a(e){return function(){n||(n=!0,e.apply(this,arguments),n=!1)}}function d(e){for(var t=[],n=0;n=this.fromRow&&e<=this.toRow&&t>=this.fromCell&&t<=this.toCell},this.toString=function(){return this.isSingleCell()?\"(\"+this.fromRow+\":\"+this.fromCell+\")\":\"(\"+this.fromRow+\":\"+this.fromCell+\" - \"+this.toRow+\":\"+this.toCell+\")\"}},NonDataRow:o,Group:r,GroupTotals:i,EditorLock:a,GlobalEditorLock:new a,keyCode:{BACKSPACE:8,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,ESC:27,HOME:36,INSERT:45,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,RIGHT:39,TAB:9,UP:38,C:67,V:86},preClickClassName:\"slick-edit-preclick\"}},449:function _(require,module,exports){\n", + " /**\n", + " * @license\n", + " * (c) 2009-2016 Michael Leibman\n", + " * michael{dot}leibman{at}gmail{dot}com\n", + " * http://github.com/mleibman/slickgrid\n", + " *\n", + " * Distributed under MIT license.\n", + " * All rights reserved.\n", + " *\n", + " * SlickGrid v2.3\n", + " *\n", + " * NOTES:\n", + " * Cell/row DOM manipulations are done directly bypassing jQuery's DOM manipulation methods.\n", + " * This increases the speed dramatically, but can only be done safely because there are no event handlers\n", + " * or data associated with any cell/row DOM nodes. Cell editors must make sure they implement .destroy()\n", + " * and do proper cleanup.\n", + " */\n", + " var $=require(450),Slick=require(448),scrollbarDimensions,maxSupportedCssHeight;function SlickGrid(container,data,columns,options){$.fn.drag||require(443),$.fn.drop||require(444);var defaults={alwaysShowVerticalScroll:!1,explicitInitialization:!1,rowHeight:25,defaultColumnWidth:80,enableAddRow:!1,leaveSpaceForNewRows:!1,editable:!1,autoEdit:!0,suppressActiveCellChangeOnEdit:!1,enableCellNavigation:!0,enableColumnReorder:!0,asyncEditorLoading:!1,asyncEditorLoadDelay:100,forceFitColumns:!1,enableAsyncPostRender:!1,asyncPostRenderDelay:50,enableAsyncPostRenderCleanup:!1,asyncPostRenderCleanupDelay:40,autoHeight:!1,editorLock:Slick.GlobalEditorLock,showHeaderRow:!1,headerRowHeight:25,createFooterRow:!1,showFooterRow:!1,footerRowHeight:25,createPreHeaderPanel:!1,showPreHeaderPanel:!1,preHeaderPanelHeight:25,showTopPanel:!1,topPanelHeight:25,formatterFactory:null,editorFactory:null,cellFlashingCssClass:\"flashing\",selectedCellCssClass:\"selected\",multiSelect:!0,enableTextSelectionOnCells:!1,dataItemColumnValueExtractor:null,fullWidthRows:!1,multiColumnSort:!1,numberedMultiColumnSort:!1,tristateMultiColumnSort:!1,sortColNumberInSeparateSpan:!1,defaultFormatter:defaultFormatter,forceSyncScrolling:!1,addNewRowCssClass:\"new-row\",preserveCopiedSelectionOnPaste:!1,showCellSelection:!0,viewportClass:null,minRowBuffer:3,emulatePagingWhenScrolling:!0,editorCellNavOnLRKeys:!1},columnDefaults={name:\"\",resizable:!0,sortable:!1,minWidth:30,rerenderOnResize:!1,headerCssClass:null,defaultSortAsc:!0,focusable:!0,selectable:!0},th,h,ph,n,cj,page=0,offset=0,vScrollDir=1,initialized=!1,$container,uid=\"slickgrid_\"+Math.round(1e6*Math.random()),self=this,$focusSink,$focusSink2,$headerScroller,$headers,$headerRow,$headerRowScroller,$headerRowSpacer,$footerRow,$footerRowScroller,$footerRowSpacer,$preHeaderPanel,$preHeaderPanelScroller,$preHeaderPanelSpacer,$topPanelScroller,$topPanel,$viewport,$canvas,$style,$boundAncestors,stylesheet,columnCssRulesL,columnCssRulesR,viewportH,viewportW,canvasWidth,viewportHasHScroll,viewportHasVScroll,headerColumnWidthDiff=0,headerColumnHeightDiff=0,cellWidthDiff=0,cellHeightDiff=0,jQueryNewWidthBehaviour=!1,absoluteColumnMinWidth,tabbingDirection=1,activePosX,activeRow,activeCell,activeCellNode=null,currentEditor=null,serializedEditorValue,editController,rowsCache={},renderedRows=0,numVisibleRows,prevScrollTop=0,scrollTop=0,lastRenderedScrollTop=0,lastRenderedScrollLeft=0,prevScrollLeft=0,scrollLeft=0,selectionModel,selectedRows=[],plugins=[],cellCssClasses={},columnsById={},sortColumns=[],columnPosLeft=[],columnPosRight=[],pagingActive=!1,pagingIsLastPage=!1,scrollThrottle=ActionThrottle(render,50),h_editorLoader=null,h_render=null,h_postrender=null,h_postrenderCleanup=null,postProcessedRows={},postProcessToRow=null,postProcessFromRow=null,postProcessedCleanupQueue=[],postProcessgroupId=0,counter_rows_rendered=0,counter_rows_removed=0,rowNodeFromLastMouseWheelEvent,zombieRowNodeFromLastMouseWheelEvent,zombieRowCacheFromLastMouseWheelEvent,zombieRowPostProcessedFromLastMouseWheelEvent,cssShow={position:\"absolute\",visibility:\"hidden\",display:\"block\"},$hiddenParents,oldProps=[],columnResizeDragging=!1;function init(){if(($container=container instanceof $?container:$(container)).length<1)throw new Error(\"SlickGrid requires a valid container, \"+container+\" does not exist in the DOM.\");cacheCssForHiddenInit(),maxSupportedCssHeight=maxSupportedCssHeight||getMaxSupportedCssHeight(),options=$.extend({},defaults,options),validateAndEnforceOptions(),columnDefaults.width=options.defaultColumnWidth,columnsById={};for(var e=0;et.maxWidth&&(t.width=t.maxWidth)}if(options.enableColumnReorder&&!$.fn.sortable)throw new Error(\"SlickGrid's 'enableColumnReorder = true' option requires jquery-ui.sortable module to be loaded\");editController={commitCurrentEdit:commitCurrentEdit,cancelCurrentEdit:cancelCurrentEdit},$container.empty().css(\"overflow\",\"hidden\").css(\"outline\",0).addClass(uid).addClass(\"ui-widget\"),/relative|absolute|fixed/.test($container.css(\"position\"))||$container.css(\"position\",\"relative\"),$focusSink=$(\"
\").appendTo($container),options.createPreHeaderPanel&&($preHeaderPanelScroller=$(\"
\").appendTo($container),$preHeaderPanel=$(\"
\").appendTo($preHeaderPanelScroller),$preHeaderPanelSpacer=$(\"
\").appendTo($preHeaderPanelScroller),options.showPreHeaderPanel||$preHeaderPanelScroller.hide()),$headerScroller=$(\"
\").appendTo($container),$headers=$(\"
\").appendTo($headerScroller),$headerRowScroller=$(\"
\").appendTo($container),$headerRow=$(\"
\").appendTo($headerRowScroller),$headerRowSpacer=$(\"
\").appendTo($headerRowScroller),$topPanelScroller=$(\"
\").appendTo($container),$topPanel=$(\"
\").appendTo($topPanelScroller),options.showTopPanel||$topPanelScroller.hide(),options.showHeaderRow||$headerRowScroller.hide(),($viewport=$(\"
\").appendTo($container)).css(\"overflow-y\",options.alwaysShowVerticalScroll?\"scroll\":options.autoHeight?\"hidden\":\"auto\"),$viewport.css(\"overflow-x\",options.forceFitColumns?\"hidden\":\"auto\"),options.viewportClass&&$viewport.toggleClass(options.viewportClass,!0),$canvas=$(\"
\").appendTo($viewport),scrollbarDimensions=scrollbarDimensions||measureScrollbar(),$preHeaderPanelSpacer&&$preHeaderPanelSpacer.css(\"width\",getCanvasWidth()+scrollbarDimensions.width+\"px\"),$headers.width(getHeadersWidth()),$headerRowSpacer.css(\"width\",getCanvasWidth()+scrollbarDimensions.width+\"px\"),options.createFooterRow&&($footerRowScroller=$(\"
\").appendTo($container),$footerRow=$(\"
\").appendTo($footerRowScroller),$footerRowSpacer=$(\"
\").css(\"width\",getCanvasWidth()+scrollbarDimensions.width+\"px\").appendTo($footerRowScroller),options.showFooterRow||$footerRowScroller.hide()),$focusSink2=$focusSink.clone().appendTo($container),options.explicitInitialization||finishInitialization()}function finishInitialization(){initialized||(initialized=!0,viewportW=parseFloat($.css($container[0],\"width\",!0)),measureCellPaddingAndBorder(),disableSelection($headers),options.enableTextSelectionOnCells||$viewport.on(\"selectstart.ui\",function(e){return $(e.target).is(\"input,textarea\")}),updateColumnCaches(),createColumnHeaders(),setupColumnSort(),createCssRules(),resizeCanvas(),bindAncestorScrollEvents(),$container.on(\"resize.slickgrid\",resizeCanvas),$viewport.on(\"scroll\",handleScroll),$headerScroller.on(\"contextmenu\",handleHeaderContextMenu).on(\"click\",handleHeaderClick).on(\"mouseenter\",\".slick-header-column\",handleHeaderMouseEnter).on(\"mouseleave\",\".slick-header-column\",handleHeaderMouseLeave),$headerRowScroller.on(\"scroll\",handleHeaderRowScroll),options.createFooterRow&&$footerRowScroller.on(\"scroll\",handleFooterRowScroll),options.createPreHeaderPanel&&$preHeaderPanelScroller.on(\"scroll\",handlePreHeaderPanelScroll),$focusSink.add($focusSink2).on(\"keydown\",handleKeyDown),$canvas.on(\"keydown\",handleKeyDown).on(\"click\",handleClick).on(\"dblclick\",handleDblClick).on(\"contextmenu\",handleContextMenu).on(\"draginit\",handleDragInit).on(\"dragstart\",{distance:3},handleDragStart).on(\"drag\",handleDrag).on(\"dragend\",handleDragEnd).on(\"mouseenter\",\".slick-cell\",handleMouseEnter).on(\"mouseleave\",\".slick-cell\",handleMouseLeave),navigator.userAgent.toLowerCase().match(/webkit/)&&navigator.userAgent.toLowerCase().match(/macintosh/)&&$canvas.on(\"mousewheel\",handleMouseWheel),restoreCssFromHiddenInit())}function cacheCssForHiddenInit(){($hiddenParents=$container.parents().addBack().not(\":visible\")).each(function(){var e={};for(var t in cssShow)e[t]=this.style[t],this.style[t]=cssShow[t];oldProps.push(e)})}function restoreCssFromHiddenInit(){$hiddenParents.each(function(e){var t=oldProps[e];for(var n in cssShow)this.style[n]=t[n]})}function registerPlugin(e){plugins.unshift(e),e.init(self)}function unregisterPlugin(e){for(var t=plugins.length;0<=t;t--)if(plugins[t]===e){plugins[t].destroy&&plugins[t].destroy(),plugins.splice(t,1);break}}function setSelectionModel(e){selectionModel&&(selectionModel.onSelectedRangesChanged.unsubscribe(handleSelectedRangesChanged),selectionModel.destroy&&selectionModel.destroy()),(selectionModel=e)&&(selectionModel.init(self),selectionModel.onSelectedRangesChanged.subscribe(handleSelectedRangesChanged))}function getSelectionModel(){return selectionModel}function getCanvasNode(){return $canvas[0]}function measureScrollbar(){var e=$('
').appendTo($viewport),t=$('
').appendTo(e),n={width:e[0].offsetWidth-e[0].clientWidth,height:e[0].offsetHeight-e[0].clientHeight};return t.remove(),e.remove(),n}function getColumnTotalWidth(e){for(var t=0,n=0,o=columns.length;nviewportW-scrollbarDimensions.width);var n=canvasWidth+(viewportHasVScroll?scrollbarDimensions.width:0);$headerRowSpacer.width(n),options.createFooterRow&&$footerRowSpacer.width(n),options.createPreHeaderPanel&&$preHeaderPanelSpacer.width(n),(canvasWidth!=t||e)&&applyColumnWidths()}function disableSelection(e){e&&e.jquery&&e.attr(\"unselectable\",\"on\").css(\"MozUserSelect\",\"none\").on(\"selectstart.ui\",function(){return!1})}function getMaxSupportedCssHeight(){for(var e=1e6,t=navigator.userAgent.toLowerCase().match(/firefox/)?6e6:1e9,n=$(\"
\").appendTo(document.body);;){var o=2*e;if(n.css(\"height\",o),t\").html(\"\"+o.name+\"\").width(o.width-headerColumnWidthDiff).attr(\"id\",\"\"+uid+o.id).attr(\"title\",o.toolTip||\"\").data(\"column\",o).addClass(o.headerCssClass||\"\").appendTo($headers);if((options.enableColumnReorder||o.sortable)&&r.on(\"mouseenter\",e).on(\"mouseleave\",t),o.sortable&&(r.addClass(\"slick-header-sortable\"),r.append(\"\"),options.numberedMultiColumnSort&&options.sortColNumberInSeparateSpan&&r.append(\"\")),trigger(self.onHeaderCellRendered,{node:r[0],column:o,grid:self}),options.showHeaderRow){var i=$(\"
\").data(\"column\",o).appendTo($headerRow);trigger(self.onHeaderRowCellRendered,{node:i[0],column:o,grid:self})}if(options.createFooterRow&&options.showFooterRow){var l=$(\"
\").data(\"column\",o).appendTo($footerRow);trigger(self.onFooterRowCellRendered,{node:l[0],column:o})}}setSortColumns(sortColumns),setupColumnResize(),options.enableColumnReorder&&(\"function\"==typeof options.enableColumnReorder?options.enableColumnReorder(self,$headers,headerColumnWidthDiff,setColumns,setupColumnResize,columns,getColumnIndex,uid,trigger):setupColumnReorder())}function setupColumnSort(){$headers.click(function(e){if(!columnResizeDragging&&(e.metaKey=e.metaKey||e.ctrlKey,!$(e.target).hasClass(\"slick-resizable-handle\"))){var t=$(e.target).closest(\".slick-header-column\");if(t.length){var n=t.data(\"column\");if(n.sortable){if(!getEditorLock().commitCurrentEdit())return;for(var o=null,r=0;r=columns.length||columns[e].resizable&&(void 0===n&&(n=e),o=e)}),void 0!==n&&u.each(function(l,e){l>=columns.length||l\").appendTo(e).on(\"dragstart\",function(e,t){if(!getEditorLock().commitCurrentEdit())return!1;c=e.pageX,$(this).parent().addClass(\"slick-header-column-active\");var n=null,o=null;if(u.each(function(e,t){e>=columns.length||(columns[e].previousWidth=$(t).outerWidth())}),options.forceFitColumns)for(o=n=0,a=l+1;a
\").appendTo($headers),headerColumnWidthDiff=headerColumnHeightDiff=0,\"border-box\"!=n.css(\"box-sizing\")&&\"border-box\"!=n.css(\"-moz-box-sizing\")&&\"border-box\"!=n.css(\"-webkit-box-sizing\")&&($.each(e,function(e,t){headerColumnWidthDiff+=parseFloat(n.css(t))||0}),$.each(t,function(e,t){headerColumnHeightDiff+=parseFloat(n.css(t))||0})),n.remove();var r=$(\"
\").appendTo($canvas);n=$(\"\").appendTo(r),cellWidthDiff=cellHeightDiff=0,\"border-box\"!=n.css(\"box-sizing\")&&\"border-box\"!=n.css(\"-moz-box-sizing\")&&\"border-box\"!=n.css(\"-webkit-box-sizing\")&&($.each(e,function(e,t){cellWidthDiff+=parseFloat(n.css(t))||0}),$.each(t,function(e,t){cellHeightDiff+=parseFloat(n.css(t))||0})),r.remove(),absoluteColumnMinWidth=Math.max(headerColumnWidthDiff,cellWidthDiff)}function createCssRules(){$style=$(\"\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "function HoloViewsWidget() {\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.init_slider = function(init_val){\n", + " if(this.load_json) {\n", + " this.from_json()\n", + " } else {\n", + " this.update_cache();\n", + " }\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.populate_cache = function(idx){\n", + " this.cache[idx].innerHTML = this.frames[idx];\n", + " if (this.embed) {\n", + " delete this.frames[idx];\n", + " }\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.process_error = function(msg){\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.from_json = function() {\n", + " var data_url = this.json_path + this.id + '.json';\n", + " $.getJSON(data_url, $.proxy(function(json_data) {\n", + " this.frames = json_data;\n", + " this.update_cache();\n", + " this.update(0);\n", + " }, this));\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.dynamic_update = function(current){\n", + " if (current === undefined) {\n", + " return\n", + " }\n", + " this.current = current;\n", + " if (this.comm) {\n", + " var msg = {comm_id: this.id+'_client', content: current}\n", + " this.comm.send(msg);\n", + " }\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.update_cache = function(force){\n", + " var frame_len = Object.keys(this.frames).length;\n", + " for (var i=0; i 0) {\n", + " that.time = Date.now();\n", + " that.dynamic_update(that.queue[that.queue.length-1]);\n", + " that.queue = [];\n", + " } else {\n", + " that.wait = false;\n", + " }\n", + " if ((msg.msg_type == \"Ready\") && msg.content) {\n", + " console.log(\"Python callback returned following output:\", msg.content);\n", + " } else if (msg.msg_type == \"Error\") {\n", + " console.log(\"Python failed with the following traceback:\", msg.traceback)\n", + " }\n", + " }\n", + " var comm = HoloViews.comm_manager.get_client_comm(this.plot_id, this.id+'_client', ack_callback);\n", + " return comm\n", + " }\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.msg_handler = function(msg) {\n", + " var metadata = msg.metadata;\n", + " if ((metadata.msg_type == \"Ready\")) {\n", + " if (metadata.content) {\n", + " console.log(\"Python callback returned following output:\", metadata.content);\n", + " }\n", + "\treturn;\n", + " } else if (metadata.msg_type == \"Error\") {\n", + " console.log(\"Python failed with the following traceback:\", metadata.traceback)\n", + " return\n", + " }\n", + " this.process_msg(msg)\n", + "}\n", + "\n", + "HoloViewsWidget.prototype.process_msg = function(msg) {\n", + "}\n", + "\n", + "function SelectionWidget(frames, id, slider_ids, keyMap, dim_vals, notFound, load_json, mode, cached, json_path, dynamic, plot_id){\n", + " this.frames = frames;\n", + " this.id = id;\n", + " this.plot_id = plot_id;\n", + " this.slider_ids = slider_ids;\n", + " this.keyMap = keyMap\n", + " this.current_frame = 0;\n", + " this.current_vals = dim_vals;\n", + " this.load_json = load_json;\n", + " this.mode = mode;\n", + " this.notFound = notFound;\n", + " this.cached = cached;\n", + " this.dynamic = dynamic;\n", + " this.cache = {};\n", + " this.json_path = json_path;\n", + " this.init_slider(this.current_vals[0]);\n", + " this.queue = [];\n", + " this.wait = false;\n", + " if (!this.cached || this.dynamic) {\n", + " this.comm = this.init_comms();\n", + " }\n", + "}\n", + "\n", + "SelectionWidget.prototype = new HoloViewsWidget;\n", + "\n", + "\n", + "SelectionWidget.prototype.get_key = function(current_vals) {\n", + " var key = \"(\";\n", + " for (var i=0; i Date.now()))) {\n", + " this.queue.push(key);\n", + " return\n", + " }\n", + " this.queue = [];\n", + " this.time = Date.now();\n", + " this.current_frame = key;\n", + " this.wait = true;\n", + " this.dynamic_update(key)\n", + " } else if (key !== undefined) {\n", + " this.update(key)\n", + " }\n", + "}\n", + "\n", + "\n", + "/* Define the ScrubberWidget class */\n", + "function ScrubberWidget(frames, num_frames, id, interval, load_json, mode, cached, json_path, dynamic, plot_id){\n", + " this.slider_id = \"_anim_slider\" + id;\n", + " this.loop_select_id = \"_anim_loop_select\" + id;\n", + " this.id = id;\n", + " this.plot_id = plot_id;\n", + " this.interval = interval;\n", + " this.current_frame = 0;\n", + " this.direction = 0;\n", + " this.dynamic = dynamic;\n", + " this.timer = null;\n", + " this.load_json = load_json;\n", + " this.mode = mode;\n", + " this.cached = cached;\n", + " this.frames = frames;\n", + " this.cache = {};\n", + " this.length = num_frames;\n", + " this.json_path = json_path;\n", + " document.getElementById(this.slider_id).max = this.length - 1;\n", + " this.init_slider(0);\n", + " this.wait = false;\n", + " this.queue = [];\n", + " if (!this.cached || this.dynamic) {\n", + " this.comm = this.init_comms()\n", + " }\n", + "}\n", + "\n", + "ScrubberWidget.prototype = new HoloViewsWidget;\n", + "\n", + "ScrubberWidget.prototype.set_frame = function(frame){\n", + " this.current_frame = frame;\n", + " var widget = document.getElementById(this.slider_id);\n", + " if (widget === null) {\n", + " this.pause_animation();\n", + " return\n", + " }\n", + " widget.value = this.current_frame;\n", + " if (this.dynamic || !this.cached) {\n", + " if ((this.time !== undefined) && ((this.wait) && ((this.time + 10000) > Date.now()))) {\n", + " this.queue.push(frame);\n", + " return\n", + " }\n", + " this.queue = [];\n", + " this.time = Date.now();\n", + " this.wait = true;\n", + " this.dynamic_update(frame)\n", + " } else {\n", + " this.update(frame)\n", + " }\n", + "}\n", + "\n", + "ScrubberWidget.prototype.get_loop_state = function(){\n", + " var button_group = document[this.loop_select_id].state;\n", + " for (var i = 0; i < button_group.length; i++) {\n", + " var button = button_group[i];\n", + " if (button.checked) {\n", + " return button.value;\n", + " }\n", + " }\n", + " return undefined;\n", + "}\n", + "\n", + "\n", + "ScrubberWidget.prototype.next_frame = function() {\n", + " this.set_frame(Math.min(this.length - 1, this.current_frame + 1));\n", + "}\n", + "\n", + "ScrubberWidget.prototype.previous_frame = function() {\n", + " this.set_frame(Math.max(0, this.current_frame - 1));\n", + "}\n", + "\n", + "ScrubberWidget.prototype.first_frame = function() {\n", + " this.set_frame(0);\n", + "}\n", + "\n", + "ScrubberWidget.prototype.last_frame = function() {\n", + " this.set_frame(this.length - 1);\n", + "}\n", + "\n", + "ScrubberWidget.prototype.slower = function() {\n", + " this.interval /= 0.7;\n", + " if(this.direction > 0){this.play_animation();}\n", + " else if(this.direction < 0){this.reverse_animation();}\n", + "}\n", + "\n", + "ScrubberWidget.prototype.faster = function() {\n", + " this.interval *= 0.7;\n", + " if(this.direction > 0){this.play_animation();}\n", + " else if(this.direction < 0){this.reverse_animation();}\n", + "}\n", + "\n", + "ScrubberWidget.prototype.anim_step_forward = function() {\n", + " if(this.current_frame < this.length - 1){\n", + " this.next_frame();\n", + " }else{\n", + " var loop_state = this.get_loop_state();\n", + " if(loop_state == \"loop\"){\n", + " this.first_frame();\n", + " }else if(loop_state == \"reflect\"){\n", + " this.last_frame();\n", + " this.reverse_animation();\n", + " }else{\n", + " this.pause_animation();\n", + " this.last_frame();\n", + " }\n", + " }\n", + "}\n", + "\n", + "ScrubberWidget.prototype.anim_step_reverse = function() {\n", + " if(this.current_frame > 0){\n", + " this.previous_frame();\n", + " } else {\n", + " var loop_state = this.get_loop_state();\n", + " if(loop_state == \"loop\"){\n", + " this.last_frame();\n", + " }else if(loop_state == \"reflect\"){\n", + " this.first_frame();\n", + " this.play_animation();\n", + " }else{\n", + " this.pause_animation();\n", + " this.first_frame();\n", + " }\n", + " }\n", + "}\n", + "\n", + "ScrubberWidget.prototype.pause_animation = function() {\n", + " this.direction = 0;\n", + " if (this.timer){\n", + " clearInterval(this.timer);\n", + " this.timer = null;\n", + " }\n", + "}\n", + "\n", + "ScrubberWidget.prototype.play_animation = function() {\n", + " this.pause_animation();\n", + " this.direction = 1;\n", + " var t = this;\n", + " if (!this.timer) this.timer = setInterval(function(){t.anim_step_forward();}, this.interval);\n", + "}\n", + "\n", + "ScrubberWidget.prototype.reverse_animation = function() {\n", + " this.pause_animation();\n", + " this.direction = -1;\n", + " var t = this;\n", + " if (!this.timer) this.timer = setInterval(function(){t.anim_step_reverse();}, this.interval);\n", + "}\n", + "\n", + "function extend(destination, source) {\n", + " for (var k in source) {\n", + " if (source.hasOwnProperty(k)) {\n", + " destination[k] = source[k];\n", + " }\n", + " }\n", + " return destination;\n", + "}\n", + "\n", + "function update_widget(widget, values) {\n", + " if (widget.hasClass(\"ui-slider\")) {\n", + " widget.slider('option', {\n", + " min: 0,\n", + " max: values.length-1,\n", + " dim_vals: values,\n", + " value: 0,\n", + " dim_labels: values\n", + " })\n", + " widget.slider('option', 'slide').call(widget, event, {value: 0})\n", + " } else {\n", + " widget.empty();\n", + " for (var i=0; i\", {\n", + " value: i,\n", + " text: values[i]\n", + " }))\n", + " };\n", + " widget.data('values', values);\n", + " widget.data('value', 0);\n", + " widget.trigger(\"change\");\n", + " };\n", + "}\n", + "\n", + "function init_slider(id, plot_id, dim, values, next_vals, labels, dynamic, step, value, next_dim,\n", + " dim_idx, delay, jQueryUI_CDN, UNDERSCORE_CDN) {\n", + " // Slider JS Block START\n", + " function loadcssfile(filename){\n", + " var fileref=document.createElement(\"link\")\n", + " fileref.setAttribute(\"rel\", \"stylesheet\")\n", + " fileref.setAttribute(\"type\", \"text/css\")\n", + " fileref.setAttribute(\"href\", filename)\n", + " document.getElementsByTagName(\"head\")[0].appendChild(fileref)\n", + " }\n", + " loadcssfile(\"https://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css\");\n", + " /* Check if jQuery and jQueryUI have been loaded\n", + " otherwise load with require.js */\n", + " var jQuery = window.jQuery,\n", + " // check for old versions of jQuery\n", + " oldjQuery = jQuery && !!jQuery.fn.jquery.match(/^1\\.[0-4](\\.|$)/),\n", + " jquery_path = '',\n", + " paths = {},\n", + " noConflict;\n", + " var jQueryUI = jQuery.ui;\n", + " // check for jQuery\n", + " if (!jQuery || oldjQuery) {\n", + " // load if it's not available or doesn't meet min standards\n", + " paths.jQuery = jQuery;\n", + " noConflict = !!oldjQuery;\n", + " } else {\n", + " // register the current jQuery\n", + " define('jquery', [], function() { return jQuery; });\n", + " }\n", + " if (!jQueryUI) {\n", + " paths.jQueryUI = jQueryUI_CDN.slice(null, -3);\n", + " } else {\n", + " define('jQueryUI', [], function() { return jQuery.ui; });\n", + " }\n", + " paths.underscore = UNDERSCORE_CDN.slice(null, -3);\n", + " var jquery_require = {\n", + " paths: paths,\n", + " shim: {\n", + " \"jQueryUI\": {\n", + " exports:\"$\",\n", + " deps: ['jquery']\n", + " },\n", + " \"underscore\": {\n", + " exports: '_'\n", + " }\n", + " }\n", + " }\n", + " require.config(jquery_require);\n", + " require([\"jQueryUI\", \"underscore\"], function(jUI, _){\n", + " if (noConflict) $.noConflict(true);\n", + " var vals = values;\n", + " if (dynamic && vals.constructor === Array) {\n", + " var default_value = parseFloat(value);\n", + " var min = parseFloat(vals[0]);\n", + " var max = parseFloat(vals[vals.length-1]);\n", + " var wstep = step;\n", + " var wlabels = [default_value];\n", + " var init_label = default_value;\n", + " } else {\n", + " var min = 0;\n", + " if (dynamic) {\n", + " var max = Object.keys(vals).length - 1;\n", + " var init_label = labels[value];\n", + " var default_value = values[value];\n", + " } else {\n", + " var max = vals.length - 1;\n", + " var init_label = labels[value];\n", + " var default_value = value;\n", + " }\n", + " var wstep = 1;\n", + " var wlabels = labels;\n", + " }\n", + " function adjustFontSize(text) {\n", + " var width_ratio = (text.parent().width()/8)/text.val().length;\n", + " var size = Math.min(0.9, Math.max(0.6, width_ratio))+'em';\n", + " text.css('font-size', size);\n", + " }\n", + " var slider = $('#_anim_widget'+id+'_'+dim);\n", + " slider.slider({\n", + " animate: \"fast\",\n", + " min: min,\n", + " max: max,\n", + " step: wstep,\n", + " value: default_value,\n", + " dim_vals: vals,\n", + " dim_labels: wlabels,\n", + " next_vals: next_vals,\n", + " slide: function(event, ui) {\n", + " var vals = slider.slider(\"option\", \"dim_vals\");\n", + " var next_vals = slider.slider(\"option\", \"next_vals\");\n", + " var dlabels = slider.slider(\"option\", \"dim_labels\");\n", + " if (dynamic) {\n", + " var dim_val = ui.value;\n", + " if (vals.constructor === Array) {\n", + " var label = ui.value;\n", + " } else {\n", + " var label = dlabels[ui.value];\n", + " }\n", + " } else {\n", + " var dim_val = vals[ui.value];\n", + " var label = dlabels[ui.value];\n", + " }\n", + " var text = $('#textInput'+id+'_'+dim);\n", + " text.val(label);\n", + " adjustFontSize(text);\n", + " HoloViews.index[plot_id].set_frame(dim_val, dim_idx);\n", + " if (Object.keys(next_vals).length > 0) {\n", + " var new_vals = next_vals[dim_val];\n", + " var next_widget = $('#_anim_widget'+id+'_'+next_dim);\n", + " update_widget(next_widget, new_vals);\n", + " }\n", + " }\n", + " });\n", + " slider.keypress(function(event) {\n", + " if (event.which == 80 || event.which == 112) {\n", + " var start = slider.slider(\"option\", \"value\");\n", + " var stop = slider.slider(\"option\", \"max\");\n", + " for (var i=start; i<=stop; i++) {\n", + " var delay = i*delay;\n", + " $.proxy(function doSetTimeout(i) { setTimeout($.proxy(function() {\n", + " var val = {value:i};\n", + " slider.slider('value',i);\n", + " slider.slider(\"option\", \"slide\")(null, val);\n", + " }, slider), delay);}, slider)(i);\n", + " }\n", + " }\n", + " if (event.which == 82 || event.which == 114) {\n", + " var start = slider.slider(\"option\", \"value\");\n", + " var stop = slider.slider(\"option\", \"min\");\n", + " var count = 0;\n", + " for (var i=start; i>=stop; i--) {\n", + " var delay = count*delay;\n", + " count = count + 1;\n", + " $.proxy(function doSetTimeout(i) { setTimeout($.proxy(function() {\n", + " var val = {value:i};\n", + " slider.slider('value',i);\n", + " slider.slider(\"option\", \"slide\")(null, val);\n", + " }, slider), delay);}, slider)(i);\n", + " }\n", + " }\n", + " });\n", + " var textInput = $('#textInput'+id+'_'+dim)\n", + " textInput.val(init_label);\n", + " adjustFontSize(textInput);\n", + " });\n", + "}\n", + "\n", + "function init_dropdown(id, plot_id, dim, vals, value, next_vals, labels, next_dim, dim_idx, dynamic) {\n", + " var widget = $(\"#_anim_widget\"+id+'_'+dim);\n", + " widget.data('values', vals)\n", + " for (var i=0; i\", {\n", + " value: val,\n", + " text: labels[i]\n", + " }));\n", + " };\n", + " widget.data(\"next_vals\", next_vals);\n", + " widget.val(value);\n", + " widget.on('change', function(event, ui) {\n", + " if (dynamic) {\n", + " var dim_val = parseInt(this.value);\n", + " } else {\n", + " var dim_val = $.data(this, 'values')[this.value];\n", + " }\n", + " var next_vals = $.data(this, \"next_vals\");\n", + " if (Object.keys(next_vals).length > 0) {\n", + " var new_vals = next_vals[dim_val];\n", + " var next_widget = $('#_anim_widget'+id+'_'+next_dim);\n", + " update_widget(next_widget, new_vals);\n", + " }\n", + " var widgets = HoloViews.index[plot_id]\n", + " if (widgets) {\n", + " widgets.set_frame(dim_val, dim_idx);\n", + " }\n", + " });\n", + "}\n", + "\n", + "\n", + "if (window.HoloViews === undefined) {\n", + " window.HoloViews = {}\n", + " window.PyViz = window.HoloViews\n", + "} else if (window.PyViz === undefined) {\n", + " window.PyViz = window.HoloViews\n", + "}\n", + "\n", + "\n", + "var _namespace = {\n", + " init_slider: init_slider,\n", + " init_dropdown: init_dropdown,\n", + " comms: {},\n", + " comm_status: {},\n", + " index: {},\n", + " plot_index: {},\n", + " kernels: {},\n", + " receivers: {}\n", + "}\n", + "\n", + "for (var k in _namespace) {\n", + " if (!(k in window.HoloViews)) {\n", + " window.HoloViews[k] = _namespace[k];\n", + " }\n", + "}\n", + "\n", + "// Define Bokeh specific subclasses\n", + "function BokehSelectionWidget() {\n", + " SelectionWidget.apply(this, arguments);\n", + "}\n", + "\n", + "function BokehScrubberWidget() {\n", + " ScrubberWidget.apply(this, arguments);\n", + "}\n", + "\n", + "// Let them inherit from the baseclasses\n", + "BokehSelectionWidget.prototype = Object.create(SelectionWidget.prototype);\n", + "BokehScrubberWidget.prototype = Object.create(ScrubberWidget.prototype);\n", + "\n", + "// Define methods to override on widgets\n", + "var BokehMethods = {\n", + " update_cache : function(){\n", + " for (var index in this.frames) {\n", + " this.frames[index] = JSON.parse(this.frames[index]);\n", + " }\n", + " },\n", + " update : function(current){\n", + " if (current === undefined) {\n", + " return;\n", + " }\n", + " var data = this.frames[current];\n", + " if (data !== undefined) {\n", + " if (data.root in HoloViews.plot_index) {\n", + " var doc = HoloViews.plot_index[data.root].model.document;\n", + " } else {\n", + " var doc = Bokeh.index[data.root].model.document;\n", + " }\n", + " doc.apply_json_patch(data.content);\n", + " }\n", + " },\n", + " init_comms: function() {\n", + " if (Bokeh.protocol !== undefined) {\n", + " this.receiver = new Bokeh.protocol.Receiver()\n", + " } else {\n", + " this.receiver = null;\n", + " }\n", + " return HoloViewsWidget.prototype.init_comms.call(this);\n", + " },\n", + " process_msg : function(msg) {\n", + " if (this.plot_id in HoloViews.plot_index) {\n", + " var doc = HoloViews.plot_index[this.plot_id].model.document;\n", + " } else {\n", + " var doc = Bokeh.index[this.plot_id].model.document;\n", + " }\n", + " if (this.receiver === null) { return }\n", + " var receiver = this.receiver;\n", + " if (msg.buffers.length > 0) {\n", + " receiver.consume(msg.buffers[0].buffer)\n", + " } else {\n", + " receiver.consume(msg.content.data)\n", + " }\n", + " const comm_msg = receiver.message;\n", + " if ((comm_msg != null) && (doc != null)) {\n", + " doc.apply_json_patch(comm_msg.content, comm_msg.buffers)\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Extend Bokeh widgets with backend specific methods\n", + "extend(BokehSelectionWidget.prototype, BokehMethods);\n", + "extend(BokehScrubberWidget.prototype, BokehMethods);\n", + "\n", + "window.HoloViews.BokehSelectionWidget = BokehSelectionWidget\n", + "window.HoloViews.BokehScrubberWidget = BokehScrubberWidget\n", + "\n", + " function JupyterCommManager() {\n", + " }\n", + "\n", + " JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n", + " if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " comm_manager.register_target(comm_id, function(comm) {\n", + " comm.on_msg(msg_handler);\n", + " });\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n", + " comm.onMsg = msg_handler;\n", + " });\n", + " }\n", + " }\n", + "\n", + " JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n", + " if (comm_id in window.PyViz.comms) {\n", + " return window.PyViz.comms[comm_id];\n", + " } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n", + " if (msg_handler) {\n", + " comm.on_msg(msg_handler);\n", + " }\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n", + " comm.open();\n", + " if (msg_handler) {\n", + " comm.onMsg = msg_handler;\n", + " }\n", + " }\n", + "\n", + " window.PyViz.comms[comm_id] = comm;\n", + " return comm;\n", + " }\n", + "\n", + " window.PyViz.comm_manager = new JupyterCommManager();\n", + " \n", + "\n", + "var JS_MIME_TYPE = 'application/javascript';\n", + "var HTML_MIME_TYPE = 'text/html';\n", + "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n", + "var CLASS_NAME = 'output';\n", + "\n", + "/**\n", + " * Render data to the DOM node\n", + " */\n", + "function render(props, node) {\n", + " var div = document.createElement(\"div\");\n", + " var script = document.createElement(\"script\");\n", + " node.appendChild(div);\n", + " node.appendChild(script);\n", + "}\n", + "\n", + "/**\n", + " * Handle when a new output is added\n", + " */\n", + "function handle_add_output(event, handle) {\n", + " var output_area = handle.output_area;\n", + " var output = handle.output;\n", + " if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", + " return\n", + " }\n", + " var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", + " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", + " if (id !== undefined) {\n", + " var nchildren = toinsert.length;\n", + " toinsert[nchildren-1].children[0].innerHTML = output.data[HTML_MIME_TYPE];\n", + " toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n", + " output_area._hv_plot_id = id;\n", + " if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n", + " window.PyViz.plot_index[id] = Bokeh.index[id];\n", + " } else {\n", + " window.PyViz.plot_index[id] = null;\n", + " }\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle when an output is cleared or removed\n", + " */\n", + "function handle_clear_output(event, handle) {\n", + " var id = handle.cell.output_area._hv_plot_id;\n", + " if ((id === undefined) || !(id in PyViz.plot_index)) { return; }\n", + " var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n", + " if (comm !== null) {\n", + " comm.send({event_type: 'delete', 'id': id});\n", + " }\n", + " delete PyViz.plot_index[id];\n", + " if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n", + " var doc = window.Bokeh.index[id].model.document\n", + " doc.clear();\n", + " const i = window.Bokeh.documents.indexOf(doc);\n", + " if (i > -1) {\n", + " window.Bokeh.documents.splice(i, 1);\n", + " }\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle kernel restart event\n", + " */\n", + "function handle_kernel_cleanup(event, handle) {\n", + " delete PyViz.comms[\"hv-extension-comm\"];\n", + " window.PyViz.plot_index = {}\n", + "}\n", + "\n", + "/**\n", + " * Handle update_display_data messages\n", + " */\n", + "function handle_update_output(event, handle) {\n", + " handle_clear_output(event, {cell: {output_area: handle.output_area}})\n", + " handle_add_output(event, handle)\n", + "}\n", + "\n", + "function register_renderer(events, OutputArea) {\n", + " function append_mime(data, metadata, element) {\n", + " // create a DOM node to render to\n", + " var toinsert = this.create_output_subarea(\n", + " metadata,\n", + " CLASS_NAME,\n", + " EXEC_MIME_TYPE\n", + " );\n", + " this.keyboard_manager.register_events(toinsert);\n", + " // Render to node\n", + " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", + " render(props, toinsert[0]);\n", + " element.append(toinsert);\n", + " return toinsert\n", + " }\n", + "\n", + " events.on('output_added.OutputArea', handle_add_output);\n", + " events.on('output_updated.OutputArea', handle_update_output);\n", + " events.on('clear_output.CodeCell', handle_clear_output);\n", + " events.on('delete.Cell', handle_clear_output);\n", + " events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n", + "\n", + " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", + " safe: true,\n", + " index: 0\n", + " });\n", + "}\n", + "\n", + "if (window.Jupyter !== undefined) {\n", + " try {\n", + " var events = require('base/js/events');\n", + " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", + " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", + " register_renderer(events, OutputArea);\n", + " }\n", + " } catch(err) {\n", + " }\n", + "}\n" + ], + "application/vnd.holoviews_load.v0+json": "function HoloViewsWidget() {\n}\n\nHoloViewsWidget.prototype.init_slider = function(init_val){\n if(this.load_json) {\n this.from_json()\n } else {\n this.update_cache();\n }\n}\n\nHoloViewsWidget.prototype.populate_cache = function(idx){\n this.cache[idx].innerHTML = this.frames[idx];\n if (this.embed) {\n delete this.frames[idx];\n }\n}\n\nHoloViewsWidget.prototype.process_error = function(msg){\n}\n\nHoloViewsWidget.prototype.from_json = function() {\n var data_url = this.json_path + this.id + '.json';\n $.getJSON(data_url, $.proxy(function(json_data) {\n this.frames = json_data;\n this.update_cache();\n this.update(0);\n }, this));\n}\n\nHoloViewsWidget.prototype.dynamic_update = function(current){\n if (current === undefined) {\n return\n }\n this.current = current;\n if (this.comm) {\n var msg = {comm_id: this.id+'_client', content: current}\n this.comm.send(msg);\n }\n}\n\nHoloViewsWidget.prototype.update_cache = function(force){\n var frame_len = Object.keys(this.frames).length;\n for (var i=0; i 0) {\n that.time = Date.now();\n that.dynamic_update(that.queue[that.queue.length-1]);\n that.queue = [];\n } else {\n that.wait = false;\n }\n if ((msg.msg_type == \"Ready\") && msg.content) {\n console.log(\"Python callback returned following output:\", msg.content);\n } else if (msg.msg_type == \"Error\") {\n console.log(\"Python failed with the following traceback:\", msg.traceback)\n }\n }\n var comm = HoloViews.comm_manager.get_client_comm(this.plot_id, this.id+'_client', ack_callback);\n return comm\n }\n}\n\nHoloViewsWidget.prototype.msg_handler = function(msg) {\n var metadata = msg.metadata;\n if ((metadata.msg_type == \"Ready\")) {\n if (metadata.content) {\n console.log(\"Python callback returned following output:\", metadata.content);\n }\n\treturn;\n } else if (metadata.msg_type == \"Error\") {\n console.log(\"Python failed with the following traceback:\", metadata.traceback)\n return\n }\n this.process_msg(msg)\n}\n\nHoloViewsWidget.prototype.process_msg = function(msg) {\n}\n\nfunction SelectionWidget(frames, id, slider_ids, keyMap, dim_vals, notFound, load_json, mode, cached, json_path, dynamic, plot_id){\n this.frames = frames;\n this.id = id;\n this.plot_id = plot_id;\n this.slider_ids = slider_ids;\n this.keyMap = keyMap\n this.current_frame = 0;\n this.current_vals = dim_vals;\n this.load_json = load_json;\n this.mode = mode;\n this.notFound = notFound;\n this.cached = cached;\n this.dynamic = dynamic;\n this.cache = {};\n this.json_path = json_path;\n this.init_slider(this.current_vals[0]);\n this.queue = [];\n this.wait = false;\n if (!this.cached || this.dynamic) {\n this.comm = this.init_comms();\n }\n}\n\nSelectionWidget.prototype = new HoloViewsWidget;\n\n\nSelectionWidget.prototype.get_key = function(current_vals) {\n var key = \"(\";\n for (var i=0; i Date.now()))) {\n this.queue.push(key);\n return\n }\n this.queue = [];\n this.time = Date.now();\n this.current_frame = key;\n this.wait = true;\n this.dynamic_update(key)\n } else if (key !== undefined) {\n this.update(key)\n }\n}\n\n\n/* Define the ScrubberWidget class */\nfunction ScrubberWidget(frames, num_frames, id, interval, load_json, mode, cached, json_path, dynamic, plot_id){\n this.slider_id = \"_anim_slider\" + id;\n this.loop_select_id = \"_anim_loop_select\" + id;\n this.id = id;\n this.plot_id = plot_id;\n this.interval = interval;\n this.current_frame = 0;\n this.direction = 0;\n this.dynamic = dynamic;\n this.timer = null;\n this.load_json = load_json;\n this.mode = mode;\n this.cached = cached;\n this.frames = frames;\n this.cache = {};\n this.length = num_frames;\n this.json_path = json_path;\n document.getElementById(this.slider_id).max = this.length - 1;\n this.init_slider(0);\n this.wait = false;\n this.queue = [];\n if (!this.cached || this.dynamic) {\n this.comm = this.init_comms()\n }\n}\n\nScrubberWidget.prototype = new HoloViewsWidget;\n\nScrubberWidget.prototype.set_frame = function(frame){\n this.current_frame = frame;\n var widget = document.getElementById(this.slider_id);\n if (widget === null) {\n this.pause_animation();\n return\n }\n widget.value = this.current_frame;\n if (this.dynamic || !this.cached) {\n if ((this.time !== undefined) && ((this.wait) && ((this.time + 10000) > Date.now()))) {\n this.queue.push(frame);\n return\n }\n this.queue = [];\n this.time = Date.now();\n this.wait = true;\n this.dynamic_update(frame)\n } else {\n this.update(frame)\n }\n}\n\nScrubberWidget.prototype.get_loop_state = function(){\n var button_group = document[this.loop_select_id].state;\n for (var i = 0; i < button_group.length; i++) {\n var button = button_group[i];\n if (button.checked) {\n return button.value;\n }\n }\n return undefined;\n}\n\n\nScrubberWidget.prototype.next_frame = function() {\n this.set_frame(Math.min(this.length - 1, this.current_frame + 1));\n}\n\nScrubberWidget.prototype.previous_frame = function() {\n this.set_frame(Math.max(0, this.current_frame - 1));\n}\n\nScrubberWidget.prototype.first_frame = function() {\n this.set_frame(0);\n}\n\nScrubberWidget.prototype.last_frame = function() {\n this.set_frame(this.length - 1);\n}\n\nScrubberWidget.prototype.slower = function() {\n this.interval /= 0.7;\n if(this.direction > 0){this.play_animation();}\n else if(this.direction < 0){this.reverse_animation();}\n}\n\nScrubberWidget.prototype.faster = function() {\n this.interval *= 0.7;\n if(this.direction > 0){this.play_animation();}\n else if(this.direction < 0){this.reverse_animation();}\n}\n\nScrubberWidget.prototype.anim_step_forward = function() {\n if(this.current_frame < this.length - 1){\n this.next_frame();\n }else{\n var loop_state = this.get_loop_state();\n if(loop_state == \"loop\"){\n this.first_frame();\n }else if(loop_state == \"reflect\"){\n this.last_frame();\n this.reverse_animation();\n }else{\n this.pause_animation();\n this.last_frame();\n }\n }\n}\n\nScrubberWidget.prototype.anim_step_reverse = function() {\n if(this.current_frame > 0){\n this.previous_frame();\n } else {\n var loop_state = this.get_loop_state();\n if(loop_state == \"loop\"){\n this.last_frame();\n }else if(loop_state == \"reflect\"){\n this.first_frame();\n this.play_animation();\n }else{\n this.pause_animation();\n this.first_frame();\n }\n }\n}\n\nScrubberWidget.prototype.pause_animation = function() {\n this.direction = 0;\n if (this.timer){\n clearInterval(this.timer);\n this.timer = null;\n }\n}\n\nScrubberWidget.prototype.play_animation = function() {\n this.pause_animation();\n this.direction = 1;\n var t = this;\n if (!this.timer) this.timer = setInterval(function(){t.anim_step_forward();}, this.interval);\n}\n\nScrubberWidget.prototype.reverse_animation = function() {\n this.pause_animation();\n this.direction = -1;\n var t = this;\n if (!this.timer) this.timer = setInterval(function(){t.anim_step_reverse();}, this.interval);\n}\n\nfunction extend(destination, source) {\n for (var k in source) {\n if (source.hasOwnProperty(k)) {\n destination[k] = source[k];\n }\n }\n return destination;\n}\n\nfunction update_widget(widget, values) {\n if (widget.hasClass(\"ui-slider\")) {\n widget.slider('option', {\n min: 0,\n max: values.length-1,\n dim_vals: values,\n value: 0,\n dim_labels: values\n })\n widget.slider('option', 'slide').call(widget, event, {value: 0})\n } else {\n widget.empty();\n for (var i=0; i\", {\n value: i,\n text: values[i]\n }))\n };\n widget.data('values', values);\n widget.data('value', 0);\n widget.trigger(\"change\");\n };\n}\n\nfunction init_slider(id, plot_id, dim, values, next_vals, labels, dynamic, step, value, next_dim,\n dim_idx, delay, jQueryUI_CDN, UNDERSCORE_CDN) {\n // Slider JS Block START\n function loadcssfile(filename){\n var fileref=document.createElement(\"link\")\n fileref.setAttribute(\"rel\", \"stylesheet\")\n fileref.setAttribute(\"type\", \"text/css\")\n fileref.setAttribute(\"href\", filename)\n document.getElementsByTagName(\"head\")[0].appendChild(fileref)\n }\n loadcssfile(\"https://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css\");\n /* Check if jQuery and jQueryUI have been loaded\n otherwise load with require.js */\n var jQuery = window.jQuery,\n // check for old versions of jQuery\n oldjQuery = jQuery && !!jQuery.fn.jquery.match(/^1\\.[0-4](\\.|$)/),\n jquery_path = '',\n paths = {},\n noConflict;\n var jQueryUI = jQuery.ui;\n // check for jQuery\n if (!jQuery || oldjQuery) {\n // load if it's not available or doesn't meet min standards\n paths.jQuery = jQuery;\n noConflict = !!oldjQuery;\n } else {\n // register the current jQuery\n define('jquery', [], function() { return jQuery; });\n }\n if (!jQueryUI) {\n paths.jQueryUI = jQueryUI_CDN.slice(null, -3);\n } else {\n define('jQueryUI', [], function() { return jQuery.ui; });\n }\n paths.underscore = UNDERSCORE_CDN.slice(null, -3);\n var jquery_require = {\n paths: paths,\n shim: {\n \"jQueryUI\": {\n exports:\"$\",\n deps: ['jquery']\n },\n \"underscore\": {\n exports: '_'\n }\n }\n }\n require.config(jquery_require);\n require([\"jQueryUI\", \"underscore\"], function(jUI, _){\n if (noConflict) $.noConflict(true);\n var vals = values;\n if (dynamic && vals.constructor === Array) {\n var default_value = parseFloat(value);\n var min = parseFloat(vals[0]);\n var max = parseFloat(vals[vals.length-1]);\n var wstep = step;\n var wlabels = [default_value];\n var init_label = default_value;\n } else {\n var min = 0;\n if (dynamic) {\n var max = Object.keys(vals).length - 1;\n var init_label = labels[value];\n var default_value = values[value];\n } else {\n var max = vals.length - 1;\n var init_label = labels[value];\n var default_value = value;\n }\n var wstep = 1;\n var wlabels = labels;\n }\n function adjustFontSize(text) {\n var width_ratio = (text.parent().width()/8)/text.val().length;\n var size = Math.min(0.9, Math.max(0.6, width_ratio))+'em';\n text.css('font-size', size);\n }\n var slider = $('#_anim_widget'+id+'_'+dim);\n slider.slider({\n animate: \"fast\",\n min: min,\n max: max,\n step: wstep,\n value: default_value,\n dim_vals: vals,\n dim_labels: wlabels,\n next_vals: next_vals,\n slide: function(event, ui) {\n var vals = slider.slider(\"option\", \"dim_vals\");\n var next_vals = slider.slider(\"option\", \"next_vals\");\n var dlabels = slider.slider(\"option\", \"dim_labels\");\n if (dynamic) {\n var dim_val = ui.value;\n if (vals.constructor === Array) {\n var label = ui.value;\n } else {\n var label = dlabels[ui.value];\n }\n } else {\n var dim_val = vals[ui.value];\n var label = dlabels[ui.value];\n }\n var text = $('#textInput'+id+'_'+dim);\n text.val(label);\n adjustFontSize(text);\n HoloViews.index[plot_id].set_frame(dim_val, dim_idx);\n if (Object.keys(next_vals).length > 0) {\n var new_vals = next_vals[dim_val];\n var next_widget = $('#_anim_widget'+id+'_'+next_dim);\n update_widget(next_widget, new_vals);\n }\n }\n });\n slider.keypress(function(event) {\n if (event.which == 80 || event.which == 112) {\n var start = slider.slider(\"option\", \"value\");\n var stop = slider.slider(\"option\", \"max\");\n for (var i=start; i<=stop; i++) {\n var delay = i*delay;\n $.proxy(function doSetTimeout(i) { setTimeout($.proxy(function() {\n var val = {value:i};\n slider.slider('value',i);\n slider.slider(\"option\", \"slide\")(null, val);\n }, slider), delay);}, slider)(i);\n }\n }\n if (event.which == 82 || event.which == 114) {\n var start = slider.slider(\"option\", \"value\");\n var stop = slider.slider(\"option\", \"min\");\n var count = 0;\n for (var i=start; i>=stop; i--) {\n var delay = count*delay;\n count = count + 1;\n $.proxy(function doSetTimeout(i) { setTimeout($.proxy(function() {\n var val = {value:i};\n slider.slider('value',i);\n slider.slider(\"option\", \"slide\")(null, val);\n }, slider), delay);}, slider)(i);\n }\n }\n });\n var textInput = $('#textInput'+id+'_'+dim)\n textInput.val(init_label);\n adjustFontSize(textInput);\n });\n}\n\nfunction init_dropdown(id, plot_id, dim, vals, value, next_vals, labels, next_dim, dim_idx, dynamic) {\n var widget = $(\"#_anim_widget\"+id+'_'+dim);\n widget.data('values', vals)\n for (var i=0; i\", {\n value: val,\n text: labels[i]\n }));\n };\n widget.data(\"next_vals\", next_vals);\n widget.val(value);\n widget.on('change', function(event, ui) {\n if (dynamic) {\n var dim_val = parseInt(this.value);\n } else {\n var dim_val = $.data(this, 'values')[this.value];\n }\n var next_vals = $.data(this, \"next_vals\");\n if (Object.keys(next_vals).length > 0) {\n var new_vals = next_vals[dim_val];\n var next_widget = $('#_anim_widget'+id+'_'+next_dim);\n update_widget(next_widget, new_vals);\n }\n var widgets = HoloViews.index[plot_id]\n if (widgets) {\n widgets.set_frame(dim_val, dim_idx);\n }\n });\n}\n\n\nif (window.HoloViews === undefined) {\n window.HoloViews = {}\n window.PyViz = window.HoloViews\n} else if (window.PyViz === undefined) {\n window.PyViz = window.HoloViews\n}\n\n\nvar _namespace = {\n init_slider: init_slider,\n init_dropdown: init_dropdown,\n comms: {},\n comm_status: {},\n index: {},\n plot_index: {},\n kernels: {},\n receivers: {}\n}\n\nfor (var k in _namespace) {\n if (!(k in window.HoloViews)) {\n window.HoloViews[k] = _namespace[k];\n }\n}\n\n// Define Bokeh specific subclasses\nfunction BokehSelectionWidget() {\n SelectionWidget.apply(this, arguments);\n}\n\nfunction BokehScrubberWidget() {\n ScrubberWidget.apply(this, arguments);\n}\n\n// Let them inherit from the baseclasses\nBokehSelectionWidget.prototype = Object.create(SelectionWidget.prototype);\nBokehScrubberWidget.prototype = Object.create(ScrubberWidget.prototype);\n\n// Define methods to override on widgets\nvar BokehMethods = {\n update_cache : function(){\n for (var index in this.frames) {\n this.frames[index] = JSON.parse(this.frames[index]);\n }\n },\n update : function(current){\n if (current === undefined) {\n return;\n }\n var data = this.frames[current];\n if (data !== undefined) {\n if (data.root in HoloViews.plot_index) {\n var doc = HoloViews.plot_index[data.root].model.document;\n } else {\n var doc = Bokeh.index[data.root].model.document;\n }\n doc.apply_json_patch(data.content);\n }\n },\n init_comms: function() {\n if (Bokeh.protocol !== undefined) {\n this.receiver = new Bokeh.protocol.Receiver()\n } else {\n this.receiver = null;\n }\n return HoloViewsWidget.prototype.init_comms.call(this);\n },\n process_msg : function(msg) {\n if (this.plot_id in HoloViews.plot_index) {\n var doc = HoloViews.plot_index[this.plot_id].model.document;\n } else {\n var doc = Bokeh.index[this.plot_id].model.document;\n }\n if (this.receiver === null) { return }\n var receiver = this.receiver;\n if (msg.buffers.length > 0) {\n receiver.consume(msg.buffers[0].buffer)\n } else {\n receiver.consume(msg.content.data)\n }\n const comm_msg = receiver.message;\n if ((comm_msg != null) && (doc != null)) {\n doc.apply_json_patch(comm_msg.content, comm_msg.buffers)\n }\n }\n}\n\n// Extend Bokeh widgets with backend specific methods\nextend(BokehSelectionWidget.prototype, BokehMethods);\nextend(BokehScrubberWidget.prototype, BokehMethods);\n\nwindow.HoloViews.BokehSelectionWidget = BokehSelectionWidget\nwindow.HoloViews.BokehScrubberWidget = BokehScrubberWidget\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n }\n\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n toinsert[nchildren-1].children[0].innerHTML = output.data[HTML_MIME_TYPE];\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n if ((id === undefined) || !(id in PyViz.plot_index)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "scanpy==1.4+173.g5df6990 anndata==0.6.18+4.g62f5617 numpy==1.16.2 scipy==1.2.1 pandas==0.24.2 scikit-learn==0.20.3 statsmodels==0.9.0 python-igraph==0.7.1 louvain==0.6.1 \n" + ] + } + ], + "source": [ + "import scanpy as sc\n", + "\n", + "import seaborn as sns\n", + "import hvplot.pandas\n", + "\n", + "sc.logging.print_versions()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "DATAPTH = Path(\"./data/pbmc_1k_v3_filtered_feature_bc_matrix.h5\")\n", + "CACHEDIR = Path(\"./cache\")\n", + "\n", + "if not DATAPTH.parent.is_dir():\n", + " DATAPTH.parent.mkdir()\n", + "if not DATAPTH.is_file():\n", + " !wget -O {DATAPTH} http://cf.10xgenomics.com/samples/cell-exp/3.0.0/pbmc_1k_v3/pbmc_1k_v3_filtered_feature_bc_matrix.h5" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Variable names are not unique. To make them unique, call `.var_names_make_unique`.\n", + "Variable names are not unique. To make them unique, call `.var_names_make_unique`.\n", + "Variable names are not unique. To make them unique, call `.var_names_make_unique`.\n" + ] + } + ], + "source": [ + "pbmcs = sc.read_10x_h5(\"./data/pbmc_1k_v3_filtered_feature_bc_matrix.h5\")\n", + "\n", + "# Making var names unique\n", + "pbmcs.var[\"gene_symbols\"] = pbmcs.var.index\n", + "pbmcs.var.set_index(\"gene_ids\", inplace=True)\n", + "\n", + "# Filtering out boring var columns\n", + "boring_cols = pbmcs.var.apply(lambda x: len(x.unique()) == 1)\n", + "pbmcs.var.drop(pbmcs.var.columns[boring_cols], axis=1, inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AnnData object with n_obs × n_vars = 1222 × 33538 \n", + " var: 'gene_symbols'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pbmcs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## QC metrics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we'll calculate some qc metrics." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Mark mitochondrial genes\n", + "pbmcs.var[\"mito\"] = pbmcs.var[\"gene_symbols\"].str.startswith(\"MT-\")\n", + "\n", + "# Calculate qc metrics, can be slow for first run\n", + "sc.pp.calculate_qc_metrics(pbmcs, qc_vars=[\"mito\"], inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AnnData object with n_obs × n_vars = 1222 × 33538 \n", + " obs: 'n_genes_by_counts', 'log1p_n_genes_by_counts', 'total_counts', 'log1p_total_counts', 'pct_counts_in_top_50_genes', 'pct_counts_in_top_100_genes', 'pct_counts_in_top_200_genes', 'pct_counts_in_top_500_genes', 'total_counts_mito', 'log1p_total_counts_mito', 'pct_counts_mito'\n", + " var: 'gene_symbols', 'mito', 'n_cells_by_counts', 'mean_counts', 'log1p_mean_counts', 'pct_dropout_by_counts', 'total_counts', 'log1p_total_counts'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pbmcs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Static QC plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lets start taking a look at some of these metrics. We'll start with using `seaborn`. `seaborn` gives you access to a number of useful statistical plots for tidy data, which both the `obs` and `var` annotation dataframes are.\n", + "\n", + "To start, lets look at a single variable, the proportion of each cells expression that was from mitochondrial content:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.distplot(pbmcs.obs[\"pct_counts_mito\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Clearly, there're outliers we'd like to filter out. Now lets look at the relationship between total counts and unique genes per cell:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.jointplot(\n", + " x=\"log1p_n_genes_by_counts\", y=\"log1p_total_counts\", data=pbmcs.obs, kind=\"hex\"\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "**Note**\n", + " \n", + "These plots have a lot of options, and I'd highly recommend checking out the docs. Some common variants I use are log density to see outliers better, and alternate color schemes. Here are some example you can try:\n", + "\n", + "```python\n", + "import matplotlib as mpl\n", + "\n", + "# Log density\n", + "sns.jointplot(\n", + " x=\"log1p_n_genes_by_counts\", y=\"log1p_total_counts\", data=pbmcs.obs, kind=\"hex\",\n", + " norm=mpl.colors.LogNorm()\n", + ")\n", + "\n", + "# Alternate color scheme\n", + "sns.jointplot(\n", + " x=\"log1p_n_genes_by_counts\", y=\"log1p_total_counts\", data=pbmcs.obs, kind=\"hex\",\n", + " cmap=sns.cubehelix_palette(light=1, dark=0.1, as_cmap=True, reverse=True)\n", + ")\n", + "```\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Interactive QC plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similar plots can be made interactive (hover over) with `hvplot`:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "// Ugly hack - see HoloViews #2574 for more information\n", + "if (!(document.getElementById('1005')) && !(document.getElementById('_anim_imgNone'))) {\n", + " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", + " var htmlObject = document.createElement('div');\n", + " htmlObject.innerHTML = `
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
`;\n", + " var scriptTags = document.getElementsByTagName('script');\n", + " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", + " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", + " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", + " } else {\n", + " parentTag.append(htmlObject)\n", + " }\n", + "}\n", + "(function(root) {\n", + " function embed_document(root) {\n", + " \n", + " var docs_json = {\"73f4926c-6c8a-4a5c-aca4-ce326a8d8b26\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1013\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1018\",\"type\":\"LinearAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":400,\"plot_width\":500,\"renderers\":[{\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"id\":\"1017\",\"type\":\"Grid\"},{\"id\":\"1018\",\"type\":\"LinearAxis\"},{\"id\":\"1022\",\"type\":\"Grid\"},{\"id\":\"1032\",\"type\":\"BoxAnnotation\"},{\"id\":\"1043\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1004\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1028\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1001\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1009\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1002\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1011\",\"type\":\"LinearScale\"}},\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1037\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1040\",\"type\":\"Scatter\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1042\",\"type\":\"Scatter\"},\"nonselection_glyph\":{\"id\":\"1041\",\"type\":\"Scatter\"},\"selection_glyph\":null,\"view\":{\"id\":\"1044\",\"type\":\"CDSView\"}},\"id\":\"1043\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1004\",\"type\":\"Title\"},{\"attributes\":{\"source\":{\"id\":\"1037\",\"type\":\"ColumnDataSource\"}},\"id\":\"1044\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1014\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5.477225575051661},\"x\":{\"field\":\"log1p_n_genes_by_counts\"},\"y\":{\"field\":\"log1p_total_counts\"}},\"id\":\"1042\",\"type\":\"Scatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1032\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1048\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"end\":8.77786371462117,\"reset_end\":8.77786371462117,\"reset_start\":2.6390573296152584,\"start\":2.6390573296152584,\"tags\":[[[\"log1p_n_genes_by_counts\",\"log1p_n_genes_by_counts\",null]]]},\"id\":\"1001\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"1019\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1022\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1011\",\"type\":\"LinearScale\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1017\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"log1p_total_counts\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1048\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1018\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"data\":{\"log1p_n_genes_by_counts\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1222]},\"log1p_total_counts\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"shape\":[1222]}},\"selected\":{\"id\":\"1038\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1054\",\"type\":\"UnionRenderers\"}},\"id\":\"1037\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"end\":10.948786735534668,\"reset_end\":10.948786735534668,\"reset_start\":6.222576141357422,\"start\":6.222576141357422,\"tags\":[[[\"log1p_total_counts\",\"log1p_total_counts\",null]]]},\"id\":\"1002\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1043\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"log1p_n_genes_by_counts\",\"@{log1p_n_genes_by_counts}\"],[\"log1p_total_counts\",\"@{log1p_total_counts}\"]]},\"id\":\"1003\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1054\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1032\",\"type\":\"BoxAnnotation\"}},\"id\":\"1026\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1027\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"log1p_n_genes_by_counts\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1003\",\"type\":\"HoverTool\"},{\"id\":\"1023\",\"type\":\"SaveTool\"},{\"id\":\"1024\",\"type\":\"PanTool\"},{\"id\":\"1025\",\"type\":\"WheelZoomTool\"},{\"id\":\"1026\",\"type\":\"BoxZoomTool\"},{\"id\":\"1027\",\"type\":\"ResetTool\"}]},\"id\":\"1028\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5.477225575051661},\"x\":{\"field\":\"log1p_n_genes_by_counts\"},\"y\":{\"field\":\"log1p_total_counts\"}},\"id\":\"1040\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1038\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5.477225575051661},\"x\":{\"field\":\"log1p_n_genes_by_counts\"},\"y\":{\"field\":\"log1p_total_counts\"}},\"id\":\"1041\",\"type\":\"Scatter\"}],\"root_ids\":[\"1005\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", + " var render_items = [{\"docid\":\"73f4926c-6c8a-4a5c-aca4-ce326a8d8b26\",\"roots\":{\"1005\":\"6133b09a-cbce-481e-b9ef-72944eb76398\"}}];\n", + " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", + "\n", + " }\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " } else {\n", + " var attempts = 0;\n", + " var timer = setInterval(function(root) {\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " clearInterval(timer);\n", + " }\n", + " attempts++;\n", + " if (attempts > 100) {\n", + " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", + " clearInterval(timer);\n", + " }\n", + " }, 10, root)\n", + " }\n", + "})(window);" + ], + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
" + ], + "text/plain": [ + ":Scatter [log1p_n_genes_by_counts] (log1p_total_counts)" + ] + }, + "execution_count": 9, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "1005" + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "pbmcs.obs.hvplot.scatter(\"log1p_n_genes_by_counts\", \"log1p_total_counts\", width=500, height=400)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "// Ugly hack - see HoloViews #2574 for more information\n", + "if (!(document.getElementById('1117')) && !(document.getElementById('_anim_imgNone'))) {\n", + " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", + " var htmlObject = document.createElement('div');\n", + " htmlObject.innerHTML = `
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
`;\n", + " var scriptTags = document.getElementsByTagName('script');\n", + " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", + " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", + " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", + " } else {\n", + " parentTag.append(htmlObject)\n", + " }\n", + "}\n", + "(function(root) {\n", + " function embed_document(root) {\n", + " \n", + " var docs_json = {\"494b45ef-80c4-4360-9872-4a01cc3f1205\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1125\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1130\",\"type\":\"LinearAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":300,\"plot_width\":700,\"renderers\":[{\"id\":\"1125\",\"type\":\"LinearAxis\"},{\"id\":\"1129\",\"type\":\"Grid\"},{\"id\":\"1130\",\"type\":\"LinearAxis\"},{\"id\":\"1134\",\"type\":\"Grid\"},{\"id\":\"1144\",\"type\":\"BoxAnnotation\"},{\"id\":\"1155\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1116\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1140\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1113\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1121\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1114\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1123\",\"type\":\"LinearScale\"}},\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1136\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"pct_counts_mito\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1158\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1126\",\"type\":\"BasicTicker\"}},\"id\":\"1125\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1166\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1126\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1144\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1121\",\"type\":\"LinearScale\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1116\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1139\",\"type\":\"ResetTool\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1126\",\"type\":\"BasicTicker\"}},\"id\":\"1129\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1158\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1154\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1115\",\"type\":\"HoverTool\"},{\"id\":\"1135\",\"type\":\"SaveTool\"},{\"id\":\"1136\",\"type\":\"PanTool\"},{\"id\":\"1137\",\"type\":\"WheelZoomTool\"},{\"id\":\"1138\",\"type\":\"BoxZoomTool\"},{\"id\":\"1139\",\"type\":\"ResetTool\"}]},\"id\":\"1140\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1137\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"end\":526.0,\"reset_end\":526.0,\"reset_start\":0.0,\"tags\":[[[\"pct_counts_mito_count\",\"Count\",null]]]},\"id\":\"1114\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"1160\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1152\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1153\",\"type\":\"Quad\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1155\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"pct_counts_mito\",\"@{pct_counts_mito}\"],[\"Count\",\"@{pct_counts_mito_count}\"]]},\"id\":\"1115\",\"type\":\"HoverTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1144\",\"type\":\"BoxAnnotation\"}},\"id\":\"1138\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1123\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"end\":99.69696807861328,\"reset_end\":99.69696807861328,\"reset_start\":0.0,\"tags\":[[[\"pct_counts_mito\",\"pct_counts_mito\",null]]]},\"id\":\"1113\",\"type\":\"Range1d\"},{\"attributes\":{\"data_source\":{\"id\":\"1149\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1152\",\"type\":\"Quad\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1154\",\"type\":\"Quad\"},\"nonselection_glyph\":{\"id\":\"1153\",\"type\":\"Quad\"},\"selection_glyph\":null,\"view\":{\"id\":\"1156\",\"type\":\"CDSView\"}},\"id\":\"1155\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1131\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1131\",\"type\":\"BasicTicker\"}},\"id\":\"1134\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1160\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1131\",\"type\":\"BasicTicker\"}},\"id\":\"1130\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1149\",\"type\":\"ColumnDataSource\"}},\"id\":\"1156\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1135\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"left\":{\"__ndarray__\":\"AAAAAAAAAACamZkZfPATQJqZmRl88CNAZ2ZmJrroLUCamZkZfPAzQAAAACCb7DhAZ2ZmJrroPUBnZmaWbHJBQJqZmRl88ENAzczMnItuRkAAAAAgm+xIQDQzM6OqaktAZ2ZmJrroTUDNzMzUZDNQQGdmZpZsclFAAAAAWHSxUkCamZkZfPBTQDQzM9uDL1VAzczMnItuVkBnZmZek61XQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"pct_counts_mito\":{\"__ndarray__\":\"mpmZGXzwA0BnZmYmuugdQAAAACCb7ChAZ2ZmlmxyMUDNzMyci242QDQzM6OqajtAzczM1GQzQEAAAABYdLFCQDQzM9uDL0VAZmZmXpOtR0CamZnhoitKQM7MzGSyqUxAAAAA6MEnT0CamZm16NJQQDQzM3fwEVJAzczMOPhQU0BnZmb6/49UQAAAALwHz1VAmpmZfQ8OV0A0MzM/F01YQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"pct_counts_mito_count\":[22,526,509,57,18,7,11,6,3,6,1,5,4,0,3,5,1,2,4,32],\"right\":{\"__ndarray__\":\"mpmZGXzwE0CamZkZfPAjQGdmZia66C1AmpmZGXzwM0AAAAAgm+w4QGdmZia66D1AZ2ZmlmxyQUCamZkZfPBDQM3MzJyLbkZAAAAAIJvsSEA0MzOjqmpLQGdmZia66E1AzczM1GQzUEBnZmaWbHJRQAAAAFh0sVJAmpmZGXzwU0A0MzPbgy9VQM3MzJyLblZAZ2ZmXpOtV0AAAAAgm+xYQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"top\":[22,526,509,57,18,7,11,6,3,6,1,5,4,0,3,5,1,2,4,32]},\"selected\":{\"id\":\"1150\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1166\",\"type\":\"UnionRenderers\"}},\"id\":\"1149\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1150\",\"type\":\"Selection\"}],\"root_ids\":[\"1117\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", + " var render_items = [{\"docid\":\"494b45ef-80c4-4360-9872-4a01cc3f1205\",\"roots\":{\"1117\":\"79d02142-4d07-4cbc-9b71-1cef632bc392\"}}];\n", + " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", + "\n", + " }\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " } else {\n", + " var attempts = 0;\n", + " var timer = setInterval(function(root) {\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " clearInterval(timer);\n", + " }\n", + " attempts++;\n", + " if (attempts > 100) {\n", + " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", + " clearInterval(timer);\n", + " }\n", + " }, 10, root)\n", + " }\n", + "})(window);" + ], + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
" + ], + "text/plain": [ + ":Histogram [pct_counts_mito] (pct_counts_mito_count)" + ] + }, + "execution_count": 10, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "1117" + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "pbmcs.obs.hvplot.hist(\"pct_counts_mito\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "// Ugly hack - see HoloViews #2574 for more information\n", + "if (!(document.getElementById('1229')) && !(document.getElementById('_anim_imgNone'))) {\n", + " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", + " var htmlObject = document.createElement('div');\n", + " htmlObject.innerHTML = `
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
`;\n", + " var scriptTags = document.getElementsByTagName('script');\n", + " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", + " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", + " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", + " } else {\n", + " parentTag.append(htmlObject)\n", + " }\n", + "}\n", + "(function(root) {\n", + " function embed_document(root) {\n", + " \n", + " var docs_json = {\"a6ab7ce2-2154-497a-89c7-adcc8300d18d\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1237\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1242\",\"type\":\"LinearAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":300,\"plot_width\":700,\"renderers\":[{\"id\":\"1237\",\"type\":\"LinearAxis\"},{\"id\":\"1241\",\"type\":\"Grid\"},{\"id\":\"1242\",\"type\":\"LinearAxis\"},{\"id\":\"1246\",\"type\":\"Grid\"},{\"id\":\"1256\",\"type\":\"BoxAnnotation\"},{\"id\":\"1267\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1228\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1252\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1225\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1233\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1226\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1235\",\"type\":\"LinearScale\"}},\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"1261\",\"type\":\"ColumnDataSource\"}},\"id\":\"1268\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"total_counts\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1270\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1238\",\"type\":\"BasicTicker\"}},\"id\":\"1237\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"data\":{\"left\":{\"__ndarray__\":\"AAAAAABwf0CamZmZGfSpQJqZmZkZ/bdANDMzMxOAwUCamZmZmQHHQAAAAAAgg8xANDMzM1MC0UBnZmZmFsPTQJqZmZnZg9ZAzczMzJxE2UAAAAAAYAXcQDQzMzMjxt5ANDMzM3PD4EDNzMzM1CPiQGdmZmY2hONAAAAAAJjk5ECamZmZ+UTmQDQzMzNbpedAzczMzLwF6UBnZmZmHmbqQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"right\":{\"__ndarray__\":\"mpmZmRn0qUCamZmZGf23QDQzMzMTgMFAmpmZmZkBx0AAAAAAIIPMQDQzMzNTAtFAZ2ZmZhbD00CamZmZ2YPWQM3MzMycRNlAAAAAAGAF3EA0MzMzI8beQDQzMzNzw+BAzczMzNQj4kBnZmZmNoTjQAAAAACY5ORAmpmZmflE5kA0MzMzW6XnQM3MzMy8BelAZ2ZmZh5m6kAAAAAAgMbrQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"top\":[150,370,396,118,93,57,20,8,4,0,2,0,1,0,0,1,0,0,1,1],\"total_counts\":{\"__ndarray__\":\"mpmZmRninUA0MzMzk3uyQAEAAACgfr1AZ2ZmZtZAxEDNzMzMXMLJQDQzMzPjQ89AzszMzLRi0kAAAAAAeCPVQDQzMzM75NdAZmZmZv6k2kCamZmZwWXdQGdmZmZCE+BAAAAAAKRz4UCamZmZBdTiQDQzMzNnNORAzczMzMiU5UBnZmZmKvXmQAAAAACMVehAmpmZme216UA0MzMzTxbrQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"total_counts_count\":[150,370,396,118,93,57,20,8,4,0,2,0,1,0,0,1,0,0,1,1]},\"selected\":{\"id\":\"1262\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1278\",\"type\":\"UnionRenderers\"}},\"id\":\"1261\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1265\",\"type\":\"Quad\"},{\"attributes\":{\"callback\":null,\"end\":56884.0,\"reset_end\":56884.0,\"reset_start\":503.0,\"start\":503.0,\"tags\":[[[\"total_counts\",\"total_counts\",null]]]},\"id\":\"1225\",\"type\":\"Range1d\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1238\",\"type\":\"BasicTicker\"}},\"id\":\"1241\",\"type\":\"Grid\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1266\",\"type\":\"Quad\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1267\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"total_counts\",\"@{total_counts}\"],[\"Count\",\"@{total_counts_count}\"]]},\"id\":\"1227\",\"type\":\"HoverTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1261\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1264\",\"type\":\"Quad\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1266\",\"type\":\"Quad\"},\"nonselection_glyph\":{\"id\":\"1265\",\"type\":\"Quad\"},\"selection_glyph\":null,\"view\":{\"id\":\"1268\",\"type\":\"CDSView\"}},\"id\":\"1267\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1238\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1247\",\"type\":\"SaveTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1256\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1248\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1264\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1251\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1278\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1227\",\"type\":\"HoverTool\"},{\"id\":\"1247\",\"type\":\"SaveTool\"},{\"id\":\"1248\",\"type\":\"PanTool\"},{\"id\":\"1249\",\"type\":\"WheelZoomTool\"},{\"id\":\"1250\",\"type\":\"BoxZoomTool\"},{\"id\":\"1251\",\"type\":\"ResetTool\"}]},\"id\":\"1252\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1243\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1233\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1235\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1262\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1270\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1243\",\"type\":\"BasicTicker\"}},\"id\":\"1246\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"end\":396.0,\"reset_end\":396.0,\"reset_start\":0.0,\"tags\":[[[\"total_counts_count\",\"Count\",null]]]},\"id\":\"1226\",\"type\":\"Range1d\"},{\"attributes\":{\"axis_label\":\"\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1272\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1243\",\"type\":\"BasicTicker\"}},\"id\":\"1242\",\"type\":\"LinearAxis\"},{\"attributes\":{\"overlay\":{\"id\":\"1256\",\"type\":\"BoxAnnotation\"}},\"id\":\"1250\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1272\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1228\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1249\",\"type\":\"WheelZoomTool\"}],\"root_ids\":[\"1229\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", + " var render_items = [{\"docid\":\"a6ab7ce2-2154-497a-89c7-adcc8300d18d\",\"roots\":{\"1229\":\"286b7fac-6014-45cc-8a10-8ff231e54ab0\"}}];\n", + " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", + "\n", + " }\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " } else {\n", + " var attempts = 0;\n", + " var timer = setInterval(function(root) {\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " clearInterval(timer);\n", + " }\n", + " attempts++;\n", + " if (attempts > 100) {\n", + " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", + " clearInterval(timer);\n", + " }\n", + " }, 10, root)\n", + " }\n", + "})(window);" + ], + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
" + ], + "text/plain": [ + ":Histogram [total_counts] (total_counts_count)" + ] + }, + "execution_count": 11, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "1229" + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "pbmcs.obs.hvplot.hist(\"total_counts\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Filtering" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Based on our QC plots, we'll filter" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "pbmcs = pbmcs[pbmcs.obs[\"pct_counts_mito\"] < 30, :]\n", + "pbmcs = pbmcs[pbmcs.obs[\"log1p_n_genes_by_counts\"] > 6.5, :]\n", + "pbmcs = pbmcs[pbmcs.obs[\"log1p_total_counts\"] > 8, :].copy()\n", + "\n", + "sc.pp.filter_genes(pbmcs, min_counts=1) # Remove genes with no counts" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AnnData object with n_obs × n_vars = 1079 × 18296 \n", + " obs: 'n_genes_by_counts', 'log1p_n_genes_by_counts', 'total_counts', 'log1p_total_counts', 'pct_counts_in_top_50_genes', 'pct_counts_in_top_100_genes', 'pct_counts_in_top_200_genes', 'pct_counts_in_top_500_genes', 'total_counts_mito', 'log1p_total_counts_mito', 'pct_counts_mito'\n", + " var: 'gene_symbols', 'mito', 'n_cells_by_counts', 'mean_counts', 'log1p_mean_counts', 'pct_dropout_by_counts', 'total_counts', 'log1p_total_counts', 'n_counts'" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pbmcs" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "... storing 'gene_symbols' as categorical\n" + ] + } + ], + "source": [ + "pbmcs.write(CACHEDIR / \"pbmcs_1k_v3_filtered.h5ad\", compression=\"gzip\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "pbmcs = sc.read(CACHEDIR / \"pbmcs_1k_v3_filtered.h5ad\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Normalize and cluster:\n", + "\n", + "Here we'll just go through typical normalization and clustering for a single cell dataset:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Normalize\n", + "sc.pp.normalize_per_cell(pbmcs, counts_per_cell_after=1000)\n", + "sc.pp.log1p(pbmcs)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Dim reduce\n", + "sc.pp.pca(pbmcs)\n", + "sc.pp.neighbors(pbmcs, n_neighbors=30)\n", + "sc.tl.umap(pbmcs)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Cluster\n", + "sc.tl.leiden(pbmcs, resolution=.8)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Visualizing using `scanpy`'s plotting tools:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sc.pl.umap(pbmcs, color=[\"leiden\"], legend_loc=\"on data\")\n", + "sc.pl.umap(pbmcs, color=[\"CST3\", \"NKG7\", \"IL7R\", \"MS4A1\"], gene_symbols=\"gene_symbols\") # Some markers for quick validation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Interactive volcano plots:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now I'll demonstrate how we can look at differential expression to figure out what's different between groups `2` and `4` using `hvplot`." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "def rank_genes_groups_df(\n", + " adata, group: str, pval_cutoff: float = 0.05, logfc_cutoff: float = None, gene_symbols: str = None\n", + "):\n", + " \"\"\"Turn results of `rank_genes_groups` into a dataframe.\n", + " \"\"\"\n", + " d = pd.DataFrame()\n", + " for k in [\"scores\", \"names\", \"logfoldchanges\", \"pvals\", \"pvals_adj\"]:\n", + " d[k] = adata.uns[\"rank_genes_groups\"][k][group]\n", + " if pval_cutoff is not None:\n", + " d = d[d[\"pvals_adj\"] < pval_cutoff]\n", + " if logfc_cutoff is not None:\n", + " d = d[d[\"logfoldchanges\"].abs() > logfc_cutoff]\n", + " if gene_symbols is not None:\n", + " d = d.join(pbmcs.var[gene_symbols], on=\"names\")\n", + " return d" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "sc.tl.rank_genes_groups(pbmcs, groupby=\"leiden\", groups=[\"2\"], reference=\"4\", n_genes=pbmcs.shape[1])\n", + "de_df = rank_genes_groups_df(pbmcs, \"2\", gene_symbols=\"gene_symbols\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
scoresnameslogfoldchangespvalspvals_adjgene_symbols
017.903227ENSG000001117161.3211161.160698e-504.247224e-47LDHB
111.690188ENSG000001426760.2225511.143014e-261.608660e-23RPL11
211.527927ENSG000001331120.2247864.368914e-265.709546e-23TPT1
311.473563ENSG000001302550.3147827.216938e-268.802740e-23RPL36
410.887063ENSG000001455920.2133366.834991e-246.947389e-21RPL37
510.745726ENSG000000345100.4050682.399732e-232.310816e-20TMSB10
610.312718ENSG000001031871.7731211.041278e-218.283139e-19COTL1
710.243648ENSG000001643004.7149548.726118e-205.505278e-17SERINC5
810.111565ENSG000000820741.0913054.404174e-213.223151e-18FYB1
99.842817ENSG000001387954.3016339.687868e-194.387373e-16LEF1
\n", + "
" + ], + "text/plain": [ + " scores names logfoldchanges pvals pvals_adj \\\n", + "0 17.903227 ENSG00000111716 1.321116 1.160698e-50 4.247224e-47 \n", + "1 11.690188 ENSG00000142676 0.222551 1.143014e-26 1.608660e-23 \n", + "2 11.527927 ENSG00000133112 0.224786 4.368914e-26 5.709546e-23 \n", + "3 11.473563 ENSG00000130255 0.314782 7.216938e-26 8.802740e-23 \n", + "4 10.887063 ENSG00000145592 0.213336 6.834991e-24 6.947389e-21 \n", + "5 10.745726 ENSG00000034510 0.405068 2.399732e-23 2.310816e-20 \n", + "6 10.312718 ENSG00000103187 1.773121 1.041278e-21 8.283139e-19 \n", + "7 10.243648 ENSG00000164300 4.714954 8.726118e-20 5.505278e-17 \n", + "8 10.111565 ENSG00000082074 1.091305 4.404174e-21 3.223151e-18 \n", + "9 9.842817 ENSG00000138795 4.301633 9.687868e-19 4.387373e-16 \n", + "\n", + " gene_symbols \n", + "0 LDHB \n", + "1 RPL11 \n", + "2 TPT1 \n", + "3 RPL36 \n", + "4 RPL37 \n", + "5 TMSB10 \n", + "6 COTL1 \n", + "7 SERINC5 \n", + "8 FYB1 \n", + "9 LEF1 " + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "de_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "// Ugly hack - see HoloViews #2574 for more information\n", + "if (!(document.getElementById('1341')) && !(document.getElementById('_anim_imgNone'))) {\n", + " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", + " var htmlObject = document.createElement('div');\n", + " htmlObject.innerHTML = `
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
`;\n", + " var scriptTags = document.getElementsByTagName('script');\n", + " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", + " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", + " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", + " } else {\n", + " parentTag.append(htmlObject)\n", + " }\n", + "}\n", + "(function(root) {\n", + " function embed_document(root) {\n", + " \n", + " var docs_json = {\"cb9baba0-76ba-4e6d-b415-76e76a2b60f4\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1349\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1354\",\"type\":\"LogAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":300,\"plot_width\":700,\"renderers\":[{\"id\":\"1349\",\"type\":\"LinearAxis\"},{\"id\":\"1353\",\"type\":\"Grid\"},{\"id\":\"1354\",\"type\":\"LogAxis\"},{\"id\":\"1358\",\"type\":\"Grid\"},{\"id\":\"1368\",\"type\":\"BoxAnnotation\"},{\"id\":\"1379\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1340\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1364\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1337\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1345\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1338\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1347\",\"type\":\"LogScale\"}},\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1363\",\"type\":\"ResetTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1368\",\"type\":\"BoxAnnotation\"}},\"id\":\"1362\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1361\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1350\",\"type\":\"BasicTicker\"}},\"id\":\"1353\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1373\",\"type\":\"ColumnDataSource\"}},\"id\":\"1380\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1360\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"logfoldchanges\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1382\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1350\",\"type\":\"BasicTicker\"}},\"id\":\"1349\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1359\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1373\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1376\",\"type\":\"Scatter\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1378\",\"type\":\"Scatter\"},\"nonselection_glyph\":{\"id\":\"1377\",\"type\":\"Scatter\"},\"selection_glyph\":null,\"view\":{\"id\":\"1380\",\"type\":\"CDSView\"}},\"id\":\"1379\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"ticker\":null},\"id\":\"1384\",\"type\":\"LogTickFormatter\"},{\"attributes\":{},\"id\":\"1382\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1345\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1350\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"data\":{\"gene_symbols\":[\"LDHB\",\"RPL11\",\"TPT1\",\"RPL36\",\"RPL37\",\"TMSB10\",\"COTL1\",\"SERINC5\",\"FYB1\",\"LEF1\",\"RPS6\",\"RPS8\",\"RPS29\",\"RPL32\",\"RPL39\",\"RPS18\",\"RPL38\",\"MAL\",\"RPS3A\",\"LTB\",\"TMEM123\",\"RPL4\",\"SUSD3\",\"RPL22\",\"RPL18A\",\"CD4\",\"RPL9\",\"VIM\",\"RCAN3\",\"RPL12\",\"RPS15A\",\"RPS25\",\"PRKCA\",\"RPLP1\",\"RPS27\",\"RPS16\",\"RPS28\",\"PASK\",\"RPLP2\",\"ITGB1\",\"RPL13\",\"EEF2\",\"RPL29\",\"RPL30\",\"NOSIP\",\"FTH1\",\"RPS2\",\"PLP2\",\"RPL7\",\"RPL19\",\"RPL13A\",\"FXYD5\",\"TCF7\",\"RPL34\",\"RPL41\",\"CYLD\",\"RPL21\",\"CORO1B\",\"RPL35A\",\"RPS13\",\"RPL23\",\"THOC3\",\"RPS11\",\"PABPC1\",\"RPS5\",\"RPS15\",\"EEF1A1\",\"IL6R\",\"RPS10\",\"RPL18\",\"TRABD2A\",\"RPS21\",\"HAPLN3\",\"RPL37A\",\"PIK3IP1\",\"SEPT9\",\"RPL23A\",\"RPS12\",\"RPL28\",\"RPS4X\",\"RPL8\",\"RPL27\",\"HINT1\",\"RPS9\",\"SARAF\",\"BEX3\",\"RPS20\",\"TESPA1\",\"FOXP1\",\"RPL14\",\"EEF1B2\",\"IL6ST\",\"INPP4B\",\"LPAR6\",\"CCR7\",\"SELL\",\"RPS23\",\"TBC1D4\",\"PABPC4\",\"GSTK1\",\"RACK1\",\"UBA52\",\"BIRC3\",\"NPM1\",\"CTSB\",\"BTF3\",\"CAPG\",\"RPS14\",\"NACA\",\"TSHZ2\",\"ARMH1\",\"RNASET2\",\"RPL5\",\"LIMS1\",\"MAP3K1\",\"VSIG1\",\"C1orf162\",\"RPS27A\",\"ACTN1\",\"CLN5\",\"CD5\",\"MCUB\",\"CMTM8\",\"CRIP2\",\"NELL2\",\"RPSA\",\"ID3\",\"RPL24\",\"TRADD\",\"AL445686.2\",\"BCL11B\",\"UBL3\",\"RPL10A\",\"RPL27A\",\"SKI\",\"TNFSF10\",\"COX7C\",\"RIC3\",\"TRBC1\",\"EPB41\",\"TNFRSF4\",\"NAP1L1\",\"IL2RA\",\"PKIA\",\"MORC2\",\"EIF3E\",\"IL4R\",\"PNMA1\",\"RHOH\",\"TECPR1\",\"RGCC\",\"NOP53\",\"COMMD6\",\"PSIP1\",\"SNHG8\",\"GPR155\",\"CRBN\",\"SMAP2\",\"GPSM3\",\"TOMM7\",\"MAP4K2\",\"AP3M2\",\"ARHGAP15\",\"RPL6\",\"ZC3H12D\",\"FXYD1\",\"RGS10\",\"ATP8B2\",\"RPL10\",\"AP002884.1\",\"RPL7A\",\"C12orf57\",\"RPL31\",\"PPP1R2\",\"CSGALNACT1\",\"USP10\",\"EIF3F\",\"SLC40A1\",\"RPLP0\",\"BAG3\",\"TIAM1\",\"FRY\",\"UQCRB\",\"FAM102A\",\"YBX1\",\"ARID5B\",\"PAG1\",\"RPL35\",\"NEFL\",\"PDE4DIP\",\"AC133644.2\",\"EIF3A\",\"CD82\",\"DGKA\",\"GPX4\",\"AC058791.1\",\"AES\",\"ZYX\",\"AC114760.2\",\"TMEM116\",\"UGCG\",\"NCK2\",\"ITK\",\"C2orf69\",\"KLHL22\",\"IFNGR2\",\"ZNF439\",\"SGTB\",\"SFMBT1\",\"FAU\",\"HPCAL4\",\"JUNB\",\"EPHA1\",\"TCEA3\",\"NSD3\",\"EPHA1-AS1\",\"CREG1\",\"RALA\",\"AHR\",\"TTC39C-AS1\",\"PACS1\",\"VIPR1\",\"RPL15\",\"GCSAM\",\"ZFAS1\",\"TMEM173\",\"ZC3HAV1\",\"SLC16A10\",\"RPS3\",\"LY96\",\"EIF3L\",\"LINC00891\",\"STK17B\",\"EIF2S3\",\"PDCL\",\"SFXN1\",\"ANK3\",\"TMEM243\",\"AC013264.1\",\"ESD\",\"LINC00513\",\"IMPDH2\",\"NIPAL3\",\"LDHA\",\"TSC22D3\",\"AK5\",\"CAMK4\",\"FAM234A\",\"CDK11B\",\"RPL26\",\"FBXL16\",\"ERGIC3\",\"RPS19\",\"TUBA4A\",\"TMEM204\",\"S100A10\",\"MCF2L-AS1\",\"FBLN7\",\"STAT1\",\"TNFRSF25\",\"KCNQ1\",\"MTRR\",\"CTLA4\",\"ECE1\",\"CCDC180\",\"GMFG\",\"PLK3\",\"NDUFS5\",\"CHMP7\",\"STAT2\",\"RBL1\",\"CSTB\",\"EEPD1\",\"SRSF5\",\"DAPP1\",\"LGALS9\",\"AL109741.1\",\"GBP4\",\"PYROXD1\",\"ADAM19\",\"ISG20\",\"TACC3\",\"PCK2\",\"ATP5MPL\",\"JUND\",\"ADK\",\"ACOT13\",\"ERGIC2\",\"KPNA3\",\"NFAT5\",\"EDEM2\",\"PFN1\",\"STK17A\",\"RNF14\",\"RASGEF1A\",\"GCHFR\",\"TMEM184C\",\"ITGAL\",\"ZFPM1\",\"FCRL3\",\"TACC1\",\"SLC27A3\",\"FLNA\",\"PDZD4\",\"SPECC1L\",\"THOC7\",\"SYTL1\",\"RAB11FIP4\",\"AC245297.3\",\"FABP5\",\"MAZ\",\"PTPRE\",\"ARHGAP25\",\"C11orf21\",\"ARNT\",\"MICU2\",\"SKAP2\",\"FBXO6\",\"LAMP1\",\"RAI1\",\"TPD52\",\"PNKD\",\"GBA2\",\"GFPT1\",\"WIPF1\",\"PPP2R2B\",\"GTDC1\",\"TRRAP\",\"PEX2\",\"TESC\",\"HIST1H2BG\",\"CNOT1\",\"ABCF2\",\"CCDC18\",\"PSMC3\",\"MIR4435-2HG\",\"ASCC2\",\"SRSF9\",\"LMAN2L\",\"UCHL5\",\"RAB1B\",\"HLA-F\",\"RAB5C\",\"MSN\",\"HLA-DQA1\",\"APOBEC3C\",\"PET100\",\"ST3GAL5\",\"SEC61B\",\"PCID2\",\"CPNE2\",\"ATG12\",\"TNFSF14\",\"LINC01644\",\"DNAJB11\",\"PTPN22\",\"MMP25-AS1\",\"IL4I1\",\"LMO4\",\"DTD1\",\"INPP5D\",\"RGS2\",\"SATB1\",\"TMEM160\",\"C1orf61\",\"CA2\",\"RNF166\",\"HPS1\",\"GK5\",\"UBE2E3\",\"SPEF2\",\"C8orf82\",\"KDM4C\",\"IMPDH1\",\"CD8B\",\"RBM3\",\"AOAH\",\"VAMP5\",\"PDIA6\",\"MAP3K8\",\"ACOX1\",\"TP53I11\",\"PLCG1\",\"HENMT1\",\"CDC42EP3\",\"PRPF40A\",\"ZNF32\",\"TMEM179B\",\"ADGRE5\",\"PPIB\",\"BIN2\",\"ATXN1L\",\"ZNRD1\",\"MIB2\",\"DNAJC1\",\"IVD\",\"TAPBP\",\"ASCL2\",\"CLEC2B\",\"SMKR1\",\"TMEM273\",\"GNGT2\",\"HM13\",\"TRGV9\",\"SLC4A4\",\"BZW1\",\"PZP\",\"ZAP70\",\"SYNRG\",\"PDLIM1\",\"HSPA5\",\"FCGR3A\",\"CPQ\",\"ME1\",\"PLEKHF1\",\"RUNX3\",\"CHI3L2\",\"PLXND1\",\"RAB11B\",\"IGFBP4\",\"RNFT1\",\"GAB3\",\"METRN\",\"CCDC85B\",\"SSR4\",\"ACADVL\",\"ITGAM\",\"CSNK1E\",\"USP28\",\"GTF3A\",\"VPS37B\",\"SYNE1\",\"RPS24\",\"B2M\",\"DGKQ\",\"RAB29\",\"CTSD\",\"FAM49B\",\"DERL1\",\"ADGRG5\",\"FHL3\",\"MFSD10\",\"PYHIN1\",\"AC004865.2\",\"AKAP9\",\"GNPTAB\",\"MXRA7\",\"CX3CR1\",\"RARRES3\",\"DHRS7\",\"HLA-DPA1\",\"PPP2R5C\",\"CYC1\",\"B3GNT8\",\"NDUFB7\",\"PRR5L\",\"RPS6KA1\",\"SH3BGRL3\",\"CORO1A\",\"AGAP1\",\"CD7\",\"FEZ1\",\"CISD3\",\"GABARAPL2\",\"LINC002481\",\"PRELID1\",\"SYNE2\",\"HPGD\",\"RRAS2\",\"CD63\",\"TSC22D4\",\"TGFBR3\",\"TAF15\",\"TLE1\",\"TRDC\",\"SEPT7\",\"FYN\",\"IL23R\",\"BLK\",\"PECAM1\",\"IKZF3\",\"GZMB\",\"DUSP1\",\"TTC38\",\"CELF2\",\"RABAC1\",\"SCRN1\",\"GPR65\",\"TMIGD2\",\"CXCR6\",\"CYTH3\",\"CCR5\",\"LLGL2\",\"NRIP1\",\"PHACTR2\",\"RORC\",\"PATL2\",\"FKBP11\",\"TSPAN32\",\"IL18RAP\",\"SIPA1\",\"PRNP\",\"SLC15A4\",\"FTL\",\"CAPN12\",\"S100A4\",\"TSEN54\",\"ARAP2\",\"ABCA2\",\"MMP23B\",\"CARD16\",\"CRTAM\",\"FAM173A\",\"LYSMD2\",\"CASP4\",\"RGS3\",\"SH2D2A\",\"ZEB2\",\"ARHGAP26\",\"SPON2\",\"CXCR4\",\"TNFRSF1A\",\"ACAA2\",\"CBLB\",\"PIP4K2A\",\"UBB\",\"GBP5\",\"IKZF2\",\"ADGRG1\",\"PDIA3\",\"JAML\",\"ERN1\",\"LCP1\",\"C1orf21\",\"RASSF1\",\"STOM\",\"RHBDF2\",\"PARP8\",\"CLIC3\",\"SESN1\",\"TBX21\",\"TRG-AS1\",\"FCRL6\",\"AC004687.1\",\"UBC\",\"LINC00987\",\"SYTL2\",\"PTPN6\",\"LITAF\",\"KLRF1\",\"IL18R1\",\"CKLF\",\"LYST\",\"FGR\",\"CD244\",\"MT-ND4L\",\"FGFBP2\",\"TGFB1\",\"PLAC8\",\"ADRB2\",\"ADAP1\",\"CHST12\",\"RAP1B\",\"S100A6\",\"TPST2\",\"PGGHG\",\"SH2D1A\",\"LINC02084\",\"PLCB1\",\"LTK\",\"MT-ND2\",\"CD300A\",\"CD160\",\"ACTN4\",\"IFNGR1\",\"GUK1\",\"S100B\",\"CCDC107\",\"COL6A2\",\"CD247\",\"MT2A\",\"LPCAT1\",\"MT-CYB\",\"IL32\",\"XBP1\",\"SLAMF7\",\"LAG3\",\"PILRB\",\"DBN1\",\"PLA2G16\",\"HLA-A\",\"YWHAQ\",\"TRGC1\",\"GZMH\",\"PTPN4\",\"IL2RB\",\"C12orf75\",\"MYBL1\",\"TYROBP\",\"RAB27A\",\"CASP1\",\"SLC20A1\",\"ITGB2\",\"ARL4C\",\"GYG1\",\"ABI3\",\"CXXC5\",\"ZBTB16\",\"MT-ND3\",\"MT-ND1\",\"PAXX\",\"CMC1\",\"MT-ND4\",\"A2M-AS1\",\"S1PR5\",\"CCL4\",\"PTGDR\",\"SRGN\",\"RHOC\",\"GNLY\",\"MT-ATP6\",\"LINC01871\",\"ARPC5L\",\"MT-CO3\",\"KLRD1\",\"CLIC1\",\"PRR5\",\"DUSP2\",\"CYBA\",\"SLC4A10\",\"APMAP\",\"HOPX\",\"CTSC\",\"LYAR\",\"ID2\",\"SAMD3\",\"CEBPD\",\"ABHD17A\",\"MT-CO2\",\"CD81\",\"MT-CO1\",\"NCR3\",\"APOBEC3G\",\"EOMES\",\"CD8A\",\"HLA-B\",\"HLA-C\",\"KLRB1\",\"MYO1F\",\"MATK\",\"PLEK\",\"EFHD2\",\"TRGC2\",\"PRF1\",\"GZMK\",\"GZMM\",\"HCST\",\"CST7\",\"KLRG1\",\"CCL5\",\"CTSW\",\"GZMA\",\"NKG7\"],\"logfoldchanges\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"shape\":[663]},\"names\":[\"ENSG00000111716\",\"ENSG00000142676\",\"ENSG00000133112\",\"ENSG00000130255\",\"ENSG00000145592\",\"ENSG00000034510\",\"ENSG00000103187\",\"ENSG00000164300\",\"ENSG00000082074\",\"ENSG00000138795\",\"ENSG00000137154\",\"ENSG00000142937\",\"ENSG00000213741\",\"ENSG00000144713\",\"ENSG00000198918\",\"ENSG00000231500\",\"ENSG00000172809\",\"ENSG00000172005\",\"ENSG00000145425\",\"ENSG00000227507\",\"ENSG00000152558\",\"ENSG00000174444\",\"ENSG00000157303\",\"ENSG00000116251\",\"ENSG00000105640\",\"ENSG00000010610\",\"ENSG00000163682\",\"ENSG00000026025\",\"ENSG00000117602\",\"ENSG00000197958\",\"ENSG00000134419\",\"ENSG00000118181\",\"ENSG00000154229\",\"ENSG00000137818\",\"ENSG00000177954\",\"ENSG00000105193\",\"ENSG00000233927\",\"ENSG00000115687\",\"ENSG00000177600\",\"ENSG00000150093\",\"ENSG00000167526\",\"ENSG00000167658\",\"ENSG00000162244\",\"ENSG00000156482\",\"ENSG00000142546\",\"ENSG00000167996\",\"ENSG00000140988\",\"ENSG00000102007\",\"ENSG00000147604\",\"ENSG00000108298\",\"ENSG00000142541\",\"ENSG00000089327\",\"ENSG00000081059\",\"ENSG00000109475\",\"ENSG00000229117\",\"ENSG00000083799\",\"ENSG00000122026\",\"ENSG00000172725\",\"ENSG00000182899\",\"ENSG00000110700\",\"ENSG00000125691\",\"ENSG00000051596\",\"ENSG00000142534\",\"ENSG00000070756\",\"ENSG00000083845\",\"ENSG00000115268\",\"ENSG00000156508\",\"ENSG00000160712\",\"ENSG00000124614\",\"ENSG00000063177\",\"ENSG00000186854\",\"ENSG00000171858\",\"ENSG00000140511\",\"ENSG00000197756\",\"ENSG00000100100\",\"ENSG00000184640\",\"ENSG00000198242\",\"ENSG00000112306\",\"ENSG00000108107\",\"ENSG00000198034\",\"ENSG00000161016\",\"ENSG00000131469\",\"ENSG00000169567\",\"ENSG00000170889\",\"ENSG00000133872\",\"ENSG00000166681\",\"ENSG00000008988\",\"ENSG00000135426\",\"ENSG00000114861\",\"ENSG00000188846\",\"ENSG00000114942\",\"ENSG00000134352\",\"ENSG00000109452\",\"ENSG00000139679\",\"ENSG00000126353\",\"ENSG00000188404\",\"ENSG00000186468\",\"ENSG00000136111\",\"ENSG00000090621\",\"ENSG00000197448\",\"ENSG00000204628\",\"ENSG00000221983\",\"ENSG00000023445\",\"ENSG00000181163\",\"ENSG00000164733\",\"ENSG00000145741\",\"ENSG00000042493\",\"ENSG00000164587\",\"ENSG00000196531\",\"ENSG00000182463\",\"ENSG00000198520\",\"ENSG00000026297\",\"ENSG00000122406\",\"ENSG00000169756\",\"ENSG00000095015\",\"ENSG00000101842\",\"ENSG00000143110\",\"ENSG00000143947\",\"ENSG00000072110\",\"ENSG00000102805\",\"ENSG00000110448\",\"ENSG00000005059\",\"ENSG00000170293\",\"ENSG00000182809\",\"ENSG00000184613\",\"ENSG00000168028\",\"ENSG00000117318\",\"ENSG00000114391\",\"ENSG00000102871\",\"ENSG00000264443\",\"ENSG00000127152\",\"ENSG00000122042\",\"ENSG00000198755\",\"ENSG00000166441\",\"ENSG00000157933\",\"ENSG00000121858\",\"ENSG00000127184\",\"ENSG00000166405\",\"ENSG00000211751\",\"ENSG00000159023\",\"ENSG00000186827\",\"ENSG00000187109\",\"ENSG00000134460\",\"ENSG00000171033\",\"ENSG00000133422\",\"ENSG00000104408\",\"ENSG00000077238\",\"ENSG00000176903\",\"ENSG00000168421\",\"ENSG00000205356\",\"ENSG00000102760\",\"ENSG00000105373\",\"ENSG00000188243\",\"ENSG00000164985\",\"ENSG00000269893\",\"ENSG00000163328\",\"ENSG00000113851\",\"ENSG00000084070\",\"ENSG00000213654\",\"ENSG00000196683\",\"ENSG00000168067\",\"ENSG00000070718\",\"ENSG00000075884\",\"ENSG00000089009\",\"ENSG00000178199\",\"ENSG00000266964\",\"ENSG00000148908\",\"ENSG00000143515\",\"ENSG00000147403\",\"ENSG00000250303\",\"ENSG00000148303\",\"ENSG00000111678\",\"ENSG00000071082\",\"ENSG00000184203\",\"ENSG00000147408\",\"ENSG00000103194\",\"ENSG00000175390\",\"ENSG00000138449\",\"ENSG00000089157\",\"ENSG00000151929\",\"ENSG00000156299\",\"ENSG00000073910\",\"ENSG00000156467\",\"ENSG00000167106\",\"ENSG00000065978\",\"ENSG00000150347\",\"ENSG00000076641\",\"ENSG00000136942\",\"ENSG00000277586\",\"ENSG00000178104\",\"ENSG00000273445\",\"ENSG00000107581\",\"ENSG00000085117\",\"ENSG00000065357\",\"ENSG00000167468\",\"ENSG00000273319\",\"ENSG00000104964\",\"ENSG00000159840\",\"ENSG00000272211\",\"ENSG00000198270\",\"ENSG00000148154\",\"ENSG00000071051\",\"ENSG00000113263\",\"ENSG00000178074\",\"ENSG00000099910\",\"ENSG00000159128\",\"ENSG00000171291\",\"ENSG00000197860\",\"ENSG00000163935\",\"ENSG00000149806\",\"ENSG00000116983\",\"ENSG00000171223\",\"ENSG00000146904\",\"ENSG00000204219\",\"ENSG00000147548\",\"ENSG00000229153\",\"ENSG00000143162\",\"ENSG00000006451\",\"ENSG00000106546\",\"ENSG00000264745\",\"ENSG00000175115\",\"ENSG00000114812\",\"ENSG00000174748\",\"ENSG00000174500\",\"ENSG00000177410\",\"ENSG00000184584\",\"ENSG00000105939\",\"ENSG00000112394\",\"ENSG00000149273\",\"ENSG00000154589\",\"ENSG00000100129\",\"ENSG00000281852\",\"ENSG00000081320\",\"ENSG00000130741\",\"ENSG00000136940\",\"ENSG00000164466\",\"ENSG00000151150\",\"ENSG00000135185\",\"ENSG00000231621\",\"ENSG00000139684\",\"ENSG00000233559\",\"ENSG00000178035\",\"ENSG00000001461\",\"ENSG00000134333\",\"ENSG00000157514\",\"ENSG00000154027\",\"ENSG00000152495\",\"ENSG00000167930\",\"ENSG00000248333\",\"ENSG00000161970\",\"ENSG00000127585\",\"ENSG00000125991\",\"ENSG00000105372\",\"ENSG00000127824\",\"ENSG00000131634\",\"ENSG00000197747\",\"ENSG00000235280\",\"ENSG00000144152\",\"ENSG00000115415\",\"ENSG00000215788\",\"ENSG00000053918\",\"ENSG00000124275\",\"ENSG00000163599\",\"ENSG00000117298\",\"ENSG00000197816\",\"ENSG00000130755\",\"ENSG00000173846\",\"ENSG00000168653\",\"ENSG00000147457\",\"ENSG00000170581\",\"ENSG00000080839\",\"ENSG00000160213\",\"ENSG00000122547\",\"ENSG00000100650\",\"ENSG00000070190\",\"ENSG00000168961\",\"ENSG00000225938\",\"ENSG00000162654\",\"ENSG00000121350\",\"ENSG00000135074\",\"ENSG00000172183\",\"ENSG00000013810\",\"ENSG00000100889\",\"ENSG00000156411\",\"ENSG00000130522\",\"ENSG00000156110\",\"ENSG00000112304\",\"ENSG00000087502\",\"ENSG00000102753\",\"ENSG00000102908\",\"ENSG00000088298\",\"ENSG00000108518\",\"ENSG00000164543\",\"ENSG00000013561\",\"ENSG00000198915\",\"ENSG00000137880\",\"ENSG00000164168\",\"ENSG00000005844\",\"ENSG00000179588\",\"ENSG00000160856\",\"ENSG00000147526\",\"ENSG00000143554\",\"ENSG00000196924\",\"ENSG00000067840\",\"ENSG00000100014\",\"ENSG00000163634\",\"ENSG00000142765\",\"ENSG00000131242\",\"ENSG00000274265\",\"ENSG00000164687\",\"ENSG00000103495\",\"ENSG00000132334\",\"ENSG00000163219\",\"ENSG00000110665\",\"ENSG00000143437\",\"ENSG00000165487\",\"ENSG00000005020\",\"ENSG00000116663\",\"ENSG00000185896\",\"ENSG00000108557\",\"ENSG00000076554\",\"ENSG00000127838\",\"ENSG00000070610\",\"ENSG00000198380\",\"ENSG00000115935\",\"ENSG00000156475\",\"ENSG00000121964\",\"ENSG00000196367\",\"ENSG00000164751\",\"ENSG00000088992\",\"ENSG00000273802\",\"ENSG00000125107\",\"ENSG00000033050\",\"ENSG00000122483\",\"ENSG00000165916\",\"ENSG00000172965\",\"ENSG00000100325\",\"ENSG00000111786\",\"ENSG00000114988\",\"ENSG00000116750\",\"ENSG00000174903\",\"ENSG00000204642\",\"ENSG00000108774\",\"ENSG00000147065\",\"ENSG00000196735\",\"ENSG00000244509\",\"ENSG00000229833\",\"ENSG00000115525\",\"ENSG00000106803\",\"ENSG00000126226\",\"ENSG00000140848\",\"ENSG00000145782\",\"ENSG00000125735\",\"ENSG00000218357\",\"ENSG00000090520\",\"ENSG00000134242\",\"ENSG00000261971\",\"ENSG00000104951\",\"ENSG00000143013\",\"ENSG00000125821\",\"ENSG00000168918\",\"ENSG00000116741\",\"ENSG00000182568\",\"ENSG00000130748\",\"ENSG00000125462\",\"ENSG00000104267\",\"ENSG00000158717\",\"ENSG00000107521\",\"ENSG00000175066\",\"ENSG00000170035\",\"ENSG00000152582\",\"ENSG00000213563\",\"ENSG00000107077\",\"ENSG00000106348\",\"ENSG00000172116\",\"ENSG00000102317\",\"ENSG00000136250\",\"ENSG00000168899\",\"ENSG00000143870\",\"ENSG00000107968\",\"ENSG00000161533\",\"ENSG00000175274\",\"ENSG00000124181\",\"ENSG00000162639\",\"ENSG00000163171\",\"ENSG00000196504\",\"ENSG00000169740\",\"ENSG00000185475\",\"ENSG00000123146\",\"ENSG00000166794\",\"ENSG00000110934\",\"ENSG00000224470\",\"ENSG00000066379\",\"ENSG00000197530\",\"ENSG00000136770\",\"ENSG00000128928\",\"ENSG00000231925\",\"ENSG00000183734\",\"ENSG00000110852\",\"ENSG00000240204\",\"ENSG00000204161\",\"ENSG00000167083\",\"ENSG00000101294\",\"ENSG00000211695\",\"ENSG00000080493\",\"ENSG00000082153\",\"ENSG00000126838\",\"ENSG00000115085\",\"ENSG00000275066\",\"ENSG00000107438\",\"ENSG00000044574\",\"ENSG00000203747\",\"ENSG00000104324\",\"ENSG00000065833\",\"ENSG00000166289\",\"ENSG00000020633\",\"ENSG00000064886\",\"ENSG00000004399\",\"ENSG00000185236\",\"ENSG00000141753\",\"ENSG00000189050\",\"ENSG00000160219\",\"ENSG00000103260\",\"ENSG00000175602\",\"ENSG00000180879\",\"ENSG00000072778\",\"ENSG00000169896\",\"ENSG00000213923\",\"ENSG00000048028\",\"ENSG00000122034\",\"ENSG00000139722\",\"ENSG00000131018\",\"ENSG00000138326\",\"ENSG00000166710\",\"ENSG00000145214\",\"ENSG00000117280\",\"ENSG00000117984\",\"ENSG00000153310\",\"ENSG00000136986\",\"ENSG00000159618\",\"ENSG00000183386\",\"ENSG00000109736\",\"ENSG00000163564\",\"ENSG00000239636\",\"ENSG00000127914\",\"ENSG00000111670\",\"ENSG00000182534\",\"ENSG00000168329\",\"ENSG00000133321\",\"ENSG00000100612\",\"ENSG00000231389\",\"ENSG00000078304\",\"ENSG00000179091\",\"ENSG00000177191\",\"ENSG00000099795\",\"ENSG00000135362\",\"ENSG00000117676\",\"ENSG00000142669\",\"ENSG00000102879\",\"ENSG00000157985\",\"ENSG00000173762\",\"ENSG00000149557\",\"ENSG00000277972\",\"ENSG00000034713\",\"ENSG00000246526\",\"ENSG00000169230\",\"ENSG00000054654\",\"ENSG00000164120\",\"ENSG00000133818\",\"ENSG00000135404\",\"ENSG00000166925\",\"ENSG00000069702\",\"ENSG00000270647\",\"ENSG00000196781\",\"ENSG00000211829\",\"ENSG00000122545\",\"ENSG00000010810\",\"ENSG00000162594\",\"ENSG00000136573\",\"ENSG00000261371\",\"ENSG00000161405\",\"ENSG00000100453\",\"ENSG00000120129\",\"ENSG00000075234\",\"ENSG00000048740\",\"ENSG00000105404\",\"ENSG00000136193\",\"ENSG00000140030\",\"ENSG00000167664\",\"ENSG00000172215\",\"ENSG00000008256\",\"ENSG00000160791\",\"ENSG00000073350\",\"ENSG00000180530\",\"ENSG00000112419\",\"ENSG00000143365\",\"ENSG00000229474\",\"ENSG00000134285\",\"ENSG00000064201\",\"ENSG00000115607\",\"ENSG00000213445\",\"ENSG00000171867\",\"ENSG00000139370\",\"ENSG00000087086\",\"ENSG00000182472\",\"ENSG00000196154\",\"ENSG00000182173\",\"ENSG00000047365\",\"ENSG00000107331\",\"ENSG00000189409\",\"ENSG00000204397\",\"ENSG00000109943\",\"ENSG00000103254\",\"ENSG00000140280\",\"ENSG00000196954\",\"ENSG00000138835\",\"ENSG00000027869\",\"ENSG00000169554\",\"ENSG00000145819\",\"ENSG00000159674\",\"ENSG00000121966\",\"ENSG00000067182\",\"ENSG00000167315\",\"ENSG00000114423\",\"ENSG00000150867\",\"ENSG00000170315\",\"ENSG00000154451\",\"ENSG00000030419\",\"ENSG00000205336\",\"ENSG00000167004\",\"ENSG00000160593\",\"ENSG00000178607\",\"ENSG00000136167\",\"ENSG00000116667\",\"ENSG00000068028\",\"ENSG00000148175\",\"ENSG00000129667\",\"ENSG00000151883\",\"ENSG00000169583\",\"ENSG00000080546\",\"ENSG00000073861\",\"ENSG00000281103\",\"ENSG00000181036\",\"ENSG00000265206\",\"ENSG00000150991\",\"ENSG00000237248\",\"ENSG00000137501\",\"ENSG00000111679\",\"ENSG00000189067\",\"ENSG00000150045\",\"ENSG00000115604\",\"ENSG00000217555\",\"ENSG00000143669\",\"ENSG00000000938\",\"ENSG00000122223\",\"ENSG00000212907\",\"ENSG00000137441\",\"ENSG00000105329\",\"ENSG00000145287\",\"ENSG00000169252\",\"ENSG00000105963\",\"ENSG00000136213\",\"ENSG00000127314\",\"ENSG00000197956\",\"ENSG00000128294\",\"ENSG00000142102\",\"ENSG00000183918\",\"ENSG00000272282\",\"ENSG00000182621\",\"ENSG00000062524\",\"ENSG00000198763\",\"ENSG00000167851\",\"ENSG00000117281\",\"ENSG00000130402\",\"ENSG00000027697\",\"ENSG00000143774\",\"ENSG00000160307\",\"ENSG00000159884\",\"ENSG00000142173\",\"ENSG00000198821\",\"ENSG00000125148\",\"ENSG00000153395\",\"ENSG00000198727\",\"ENSG00000008517\",\"ENSG00000100219\",\"ENSG00000026751\",\"ENSG00000089692\",\"ENSG00000121716\",\"ENSG00000113758\",\"ENSG00000176485\",\"ENSG00000206503\",\"ENSG00000134308\",\"ENSG00000211689\",\"ENSG00000100450\",\"ENSG00000088179\",\"ENSG00000100385\",\"ENSG00000235162\",\"ENSG00000185697\",\"ENSG00000011600\",\"ENSG00000069974\",\"ENSG00000137752\",\"ENSG00000144136\",\"ENSG00000160255\",\"ENSG00000188042\",\"ENSG00000163754\",\"ENSG00000108798\",\"ENSG00000171604\",\"ENSG00000109906\",\"ENSG00000198840\",\"ENSG00000198888\",\"ENSG00000148362\",\"ENSG00000187118\",\"ENSG00000198886\",\"ENSG00000245105\",\"ENSG00000180739\",\"ENSG00000275302\",\"ENSG00000168229\",\"ENSG00000122862\",\"ENSG00000155366\",\"ENSG00000115523\",\"ENSG00000198899\",\"ENSG00000235576\",\"ENSG00000136950\",\"ENSG00000198938\",\"ENSG00000134539\",\"ENSG00000213719\",\"ENSG00000186654\",\"ENSG00000158050\",\"ENSG00000051523\",\"ENSG00000144290\",\"ENSG00000101474\",\"ENSG00000171476\",\"ENSG00000109861\",\"ENSG00000145220\",\"ENSG00000115738\",\"ENSG00000164483\",\"ENSG00000221869\",\"ENSG00000129968\",\"ENSG00000198712\",\"ENSG00000110651\",\"ENSG00000198804\",\"ENSG00000204475\",\"ENSG00000239713\",\"ENSG00000163508\",\"ENSG00000153563\",\"ENSG00000234745\",\"ENSG00000204525\",\"ENSG00000111796\",\"ENSG00000142347\",\"ENSG00000007264\",\"ENSG00000115956\",\"ENSG00000142634\",\"ENSG00000227191\",\"ENSG00000180644\",\"ENSG00000113088\",\"ENSG00000197540\",\"ENSG00000126264\",\"ENSG00000077984\",\"ENSG00000139187\",\"ENSG00000271503\",\"ENSG00000172543\",\"ENSG00000145649\",\"ENSG00000105374\"],\"pvals_adj\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[663]}},\"selected\":{\"id\":\"1374\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1390\",\"type\":\"UnionRenderers\"}},\"id\":\"1373\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3.1622776601683795},\"x\":{\"field\":\"logfoldchanges\"},\"y\":{\"field\":\"pvals_adj\"}},\"id\":\"1376\",\"type\":\"Scatter\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1379\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"logfoldchanges\",\"@{logfoldchanges}\"],[\"pvals_adj\",\"@{pvals_adj}\"],[\"gene_symbols\",\"@{gene_symbols}\"],[\"names\",\"@{names}\"]]},\"id\":\"1339\",\"type\":\"HoverTool\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1355\",\"type\":\"LogTicker\"}},\"id\":\"1358\",\"type\":\"Grid\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1340\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1390\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3.1622776601683795},\"x\":{\"field\":\"logfoldchanges\"},\"y\":{\"field\":\"pvals_adj\"}},\"id\":\"1378\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1374\",\"type\":\"Selection\"},{\"attributes\":{\"num_minor_ticks\":10},\"id\":\"1355\",\"type\":\"LogTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3.1622776601683795},\"x\":{\"field\":\"logfoldchanges\"},\"y\":{\"field\":\"pvals_adj\"}},\"id\":\"1377\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1347\",\"type\":\"LogScale\"},{\"attributes\":{\"callback\":null,\"end\":24.907384872436523,\"reset_end\":24.907384872436523,\"reset_start\":-26.272653579711914,\"start\":-26.272653579711914,\"tags\":[[[\"logfoldchanges\",\"logfoldchanges\",null]]]},\"id\":\"1337\",\"type\":\"Range1d\"},{\"attributes\":{\"axis_label\":\"pvals_adj\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1384\",\"type\":\"LogTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1355\",\"type\":\"LogTicker\"}},\"id\":\"1354\",\"type\":\"LogAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1339\",\"type\":\"HoverTool\"},{\"id\":\"1359\",\"type\":\"SaveTool\"},{\"id\":\"1360\",\"type\":\"PanTool\"},{\"id\":\"1361\",\"type\":\"WheelZoomTool\"},{\"id\":\"1362\",\"type\":\"BoxZoomTool\"},{\"id\":\"1363\",\"type\":\"ResetTool\"}]},\"id\":\"1364\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1368\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"callback\":null,\"end\":1.3369974746895399e-61,\"reset_end\":1.3369974746895399e-61,\"reset_start\":0.04947642060914833,\"start\":0.04947642060914833,\"tags\":[[[\"pvals_adj\",\"pvals_adj\",null]]]},\"id\":\"1338\",\"type\":\"Range1d\"}],\"root_ids\":[\"1341\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", + " var render_items = [{\"docid\":\"cb9baba0-76ba-4e6d-b415-76e76a2b60f4\",\"roots\":{\"1341\":\"51835a4c-3be0-4d67-9f65-123ac579f78d\"}}];\n", + " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", + "\n", + " }\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " } else {\n", + " var attempts = 0;\n", + " var timer = setInterval(function(root) {\n", + " if (root.Bokeh !== undefined) {\n", + " embed_document(root);\n", + " clearInterval(timer);\n", + " }\n", + " attempts++;\n", + " if (attempts > 100) {\n", + " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", + " clearInterval(timer);\n", + " }\n", + " }, 10, root)\n", + " }\n", + "})(window);" + ], + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
" + ], + "text/plain": [ + ":Scatter [logfoldchanges] (pvals_adj,gene_symbols,names)" + ] + }, + "execution_count": 23, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "1341" + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "# Simple interactive volcano plot with hover over\n", + "de_df.hvplot.scatter(\n", + " \"logfoldchanges\", \"pvals_adj\", \n", + " flip_yaxis=True, logy=True, \n", + " hover_cols=[\"gene_symbols\", \"names\"], # Adds variable to be shown in hover over\n", + " size=10\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.2" + }, + "toc": { + "colors": { + "hover_highlight": "#DAA520", + "navigate_num": "#000000", + "navigate_text": "#333333", + "running_highlight": "#FF0000", + "selected_highlight": "#FFD700", + "sidebar_border": "#EEEEEE", + "wrapper_background": "#FFFFFF" + }, + "moveMenuLeft": true, + "nav_menu": { + "height": "174px", + "width": "252px" + }, + "navigate_menu": true, + "number_sections": false, + "sideBar": false, + "threshold": 4, + "toc_cell": false, + "toc_section_display": "block", + "toc_window_display": false, + "widenNotebook": false + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From e0ffebe7d534f80e1f889302c9e772715664103f Mon Sep 17 00:00:00 2001 From: Isaac Virshup Date: Sat, 30 Mar 2019 20:46:37 +1100 Subject: [PATCH 2/4] Rename --- external_plotting_tools.ipynb => external-plotting-tools.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename external_plotting_tools.ipynb => external-plotting-tools.ipynb (100%) diff --git a/external_plotting_tools.ipynb b/external-plotting-tools.ipynb similarity index 100% rename from external_plotting_tools.ipynb rename to external-plotting-tools.ipynb From 915cc19679a8f8087bdad5d2dfd83eb45f1b9f43 Mon Sep 17 00:00:00 2001 From: Isaac Virshup Date: Mon, 1 Apr 2019 23:20:03 +1100 Subject: [PATCH 3/4] Added lasso example --- external-plotting-tools.ipynb | 694 +++++----------------------------- 1 file changed, 92 insertions(+), 602 deletions(-) diff --git a/external-plotting-tools.ipynb b/external-plotting-tools.ipynb index eb05f0f..7cbf151 100644 --- a/external-plotting-tools.ipynb +++ b/external-plotting-tools.ipynb @@ -576,7 +576,20 @@ "text/html": [ "\n", "\n", - "\n", "\n" ] @@ -1493,7 +1493,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "scanpy==1.4+173.g5df6990 anndata==0.6.18+4.g62f5617 numpy==1.16.2 scipy==1.2.1 pandas==0.24.2 scikit-learn==0.20.3 statsmodels==0.9.0 python-igraph==0.7.1 louvain==0.6.1 \n" + "scanpy==1.4+223.gc5cec58 anndata==0.6.19+4.g473413a numpy==1.16.2 scipy==1.2.1 pandas==0.24.2 scikit-learn==0.20.3 statsmodels==0.9.0 python-igraph==0.7.1 louvain==0.6.1 \n" ] } ], @@ -1586,7 +1586,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1599,22 +1599,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "AnnData object with n_obs × n_vars = 1222 × 33538 \n", - " obs: 'n_genes_by_counts', 'log1p_n_genes_by_counts', 'total_counts', 'log1p_total_counts', 'pct_counts_in_top_50_genes', 'pct_counts_in_top_100_genes', 'pct_counts_in_top_200_genes', 'pct_counts_in_top_500_genes', 'total_counts_mito', 'log1p_total_counts_mito', 'pct_counts_mito'\n", - " var: 'gene_symbols', 'mito', 'n_cells_by_counts', 'mean_counts', 'log1p_mean_counts', 'pct_dropout_by_counts', 'total_counts', 'log1p_total_counts'" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pbmcs" ] @@ -1637,32 +1624,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "sns.distplot(pbmcs.obs[\"pct_counts_mito\"])" ] @@ -1676,32 +1640,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "sns.jointplot(\n", " x=\"log1p_n_genes_by_counts\", y=\"log1p_total_counts\", data=pbmcs.obs, kind=\"hex\"\n", @@ -1753,249 +1694,27 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "\n", - "// Ugly hack - see HoloViews #2574 for more information\n", - "if (!(document.getElementById('1005')) && !(document.getElementById('_anim_imgNone'))) {\n", - " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", - " var htmlObject = document.createElement('div');\n", - " htmlObject.innerHTML = `
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
`;\n", - " var scriptTags = document.getElementsByTagName('script');\n", - " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", - " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", - " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", - " } else {\n", - " parentTag.append(htmlObject)\n", - " }\n", - "}\n", - "(function(root) {\n", - " function embed_document(root) {\n", - " \n", - " var docs_json = {\"73f4926c-6c8a-4a5c-aca4-ce326a8d8b26\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1013\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1018\",\"type\":\"LinearAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":400,\"plot_width\":500,\"renderers\":[{\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"id\":\"1017\",\"type\":\"Grid\"},{\"id\":\"1018\",\"type\":\"LinearAxis\"},{\"id\":\"1022\",\"type\":\"Grid\"},{\"id\":\"1032\",\"type\":\"BoxAnnotation\"},{\"id\":\"1043\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1004\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1028\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1001\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1009\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1002\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1011\",\"type\":\"LinearScale\"}},\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1037\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1040\",\"type\":\"Scatter\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1042\",\"type\":\"Scatter\"},\"nonselection_glyph\":{\"id\":\"1041\",\"type\":\"Scatter\"},\"selection_glyph\":null,\"view\":{\"id\":\"1044\",\"type\":\"CDSView\"}},\"id\":\"1043\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1004\",\"type\":\"Title\"},{\"attributes\":{\"source\":{\"id\":\"1037\",\"type\":\"ColumnDataSource\"}},\"id\":\"1044\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1014\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5.477225575051661},\"x\":{\"field\":\"log1p_n_genes_by_counts\"},\"y\":{\"field\":\"log1p_total_counts\"}},\"id\":\"1042\",\"type\":\"Scatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1032\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1048\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"end\":8.77786371462117,\"reset_end\":8.77786371462117,\"reset_start\":2.6390573296152584,\"start\":2.6390573296152584,\"tags\":[[[\"log1p_n_genes_by_counts\",\"log1p_n_genes_by_counts\",null]]]},\"id\":\"1001\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"1019\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1022\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1011\",\"type\":\"LinearScale\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1017\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"log1p_total_counts\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1048\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1018\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"data\":{\"log1p_n_genes_by_counts\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[1222]},\"log1p_total_counts\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"shape\":[1222]}},\"selected\":{\"id\":\"1038\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1054\",\"type\":\"UnionRenderers\"}},\"id\":\"1037\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"end\":10.948786735534668,\"reset_end\":10.948786735534668,\"reset_start\":6.222576141357422,\"start\":6.222576141357422,\"tags\":[[[\"log1p_total_counts\",\"log1p_total_counts\",null]]]},\"id\":\"1002\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1043\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"log1p_n_genes_by_counts\",\"@{log1p_n_genes_by_counts}\"],[\"log1p_total_counts\",\"@{log1p_total_counts}\"]]},\"id\":\"1003\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1054\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1032\",\"type\":\"BoxAnnotation\"}},\"id\":\"1026\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1027\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"log1p_n_genes_by_counts\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1005\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1003\",\"type\":\"HoverTool\"},{\"id\":\"1023\",\"type\":\"SaveTool\"},{\"id\":\"1024\",\"type\":\"PanTool\"},{\"id\":\"1025\",\"type\":\"WheelZoomTool\"},{\"id\":\"1026\",\"type\":\"BoxZoomTool\"},{\"id\":\"1027\",\"type\":\"ResetTool\"}]},\"id\":\"1028\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5.477225575051661},\"x\":{\"field\":\"log1p_n_genes_by_counts\"},\"y\":{\"field\":\"log1p_total_counts\"}},\"id\":\"1040\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1038\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5.477225575051661},\"x\":{\"field\":\"log1p_n_genes_by_counts\"},\"y\":{\"field\":\"log1p_total_counts\"}},\"id\":\"1041\",\"type\":\"Scatter\"}],\"root_ids\":[\"1005\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", - " var render_items = [{\"docid\":\"73f4926c-6c8a-4a5c-aca4-ce326a8d8b26\",\"roots\":{\"1005\":\"6133b09a-cbce-481e-b9ef-72944eb76398\"}}];\n", - " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", - "\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " } else {\n", - " var attempts = 0;\n", - " var timer = setInterval(function(root) {\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " clearInterval(timer);\n", - " }\n", - " attempts++;\n", - " if (attempts > 100) {\n", - " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", - " clearInterval(timer);\n", - " }\n", - " }, 10, root)\n", - " }\n", - "})(window);" - ], - "application/vnd.holoviews_exec.v0+json": "", - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
" - ], - "text/plain": [ - ":Scatter [log1p_n_genes_by_counts] (log1p_total_counts)" - ] - }, - "execution_count": 9, - "metadata": { - "application/vnd.holoviews_exec.v0+json": { - "id": "1005" - } - }, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pbmcs.obs.hvplot.scatter(\"log1p_n_genes_by_counts\", \"log1p_total_counts\", width=500, height=400)" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "\n", - "// Ugly hack - see HoloViews #2574 for more information\n", - "if (!(document.getElementById('1117')) && !(document.getElementById('_anim_imgNone'))) {\n", - " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", - " var htmlObject = document.createElement('div');\n", - " htmlObject.innerHTML = `
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
`;\n", - " var scriptTags = document.getElementsByTagName('script');\n", - " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", - " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", - " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", - " } else {\n", - " parentTag.append(htmlObject)\n", - " }\n", - "}\n", - "(function(root) {\n", - " function embed_document(root) {\n", - " \n", - " var docs_json = {\"494b45ef-80c4-4360-9872-4a01cc3f1205\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1125\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1130\",\"type\":\"LinearAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":300,\"plot_width\":700,\"renderers\":[{\"id\":\"1125\",\"type\":\"LinearAxis\"},{\"id\":\"1129\",\"type\":\"Grid\"},{\"id\":\"1130\",\"type\":\"LinearAxis\"},{\"id\":\"1134\",\"type\":\"Grid\"},{\"id\":\"1144\",\"type\":\"BoxAnnotation\"},{\"id\":\"1155\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1116\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1140\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1113\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1121\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1114\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1123\",\"type\":\"LinearScale\"}},\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1136\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"pct_counts_mito\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1158\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1126\",\"type\":\"BasicTicker\"}},\"id\":\"1125\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1166\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1126\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1144\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1121\",\"type\":\"LinearScale\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1116\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1139\",\"type\":\"ResetTool\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1126\",\"type\":\"BasicTicker\"}},\"id\":\"1129\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1158\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1154\",\"type\":\"Quad\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1115\",\"type\":\"HoverTool\"},{\"id\":\"1135\",\"type\":\"SaveTool\"},{\"id\":\"1136\",\"type\":\"PanTool\"},{\"id\":\"1137\",\"type\":\"WheelZoomTool\"},{\"id\":\"1138\",\"type\":\"BoxZoomTool\"},{\"id\":\"1139\",\"type\":\"ResetTool\"}]},\"id\":\"1140\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1137\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"end\":526.0,\"reset_end\":526.0,\"reset_start\":0.0,\"tags\":[[[\"pct_counts_mito_count\",\"Count\",null]]]},\"id\":\"1114\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"1160\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1152\",\"type\":\"Quad\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1153\",\"type\":\"Quad\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1155\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"pct_counts_mito\",\"@{pct_counts_mito}\"],[\"Count\",\"@{pct_counts_mito_count}\"]]},\"id\":\"1115\",\"type\":\"HoverTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1144\",\"type\":\"BoxAnnotation\"}},\"id\":\"1138\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1123\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"end\":99.69696807861328,\"reset_end\":99.69696807861328,\"reset_start\":0.0,\"tags\":[[[\"pct_counts_mito\",\"pct_counts_mito\",null]]]},\"id\":\"1113\",\"type\":\"Range1d\"},{\"attributes\":{\"data_source\":{\"id\":\"1149\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1152\",\"type\":\"Quad\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1154\",\"type\":\"Quad\"},\"nonselection_glyph\":{\"id\":\"1153\",\"type\":\"Quad\"},\"selection_glyph\":null,\"view\":{\"id\":\"1156\",\"type\":\"CDSView\"}},\"id\":\"1155\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1131\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1131\",\"type\":\"BasicTicker\"}},\"id\":\"1134\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1160\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1117\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1131\",\"type\":\"BasicTicker\"}},\"id\":\"1130\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1149\",\"type\":\"ColumnDataSource\"}},\"id\":\"1156\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1135\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"left\":{\"__ndarray__\":\"AAAAAAAAAACamZkZfPATQJqZmRl88CNAZ2ZmJrroLUCamZkZfPAzQAAAACCb7DhAZ2ZmJrroPUBnZmaWbHJBQJqZmRl88ENAzczMnItuRkAAAAAgm+xIQDQzM6OqaktAZ2ZmJrroTUDNzMzUZDNQQGdmZpZsclFAAAAAWHSxUkCamZkZfPBTQDQzM9uDL1VAzczMnItuVkBnZmZek61XQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"pct_counts_mito\":{\"__ndarray__\":\"mpmZGXzwA0BnZmYmuugdQAAAACCb7ChAZ2ZmlmxyMUDNzMyci242QDQzM6OqajtAzczM1GQzQEAAAABYdLFCQDQzM9uDL0VAZmZmXpOtR0CamZnhoitKQM7MzGSyqUxAAAAA6MEnT0CamZm16NJQQDQzM3fwEVJAzczMOPhQU0BnZmb6/49UQAAAALwHz1VAmpmZfQ8OV0A0MzM/F01YQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"pct_counts_mito_count\":[22,526,509,57,18,7,11,6,3,6,1,5,4,0,3,5,1,2,4,32],\"right\":{\"__ndarray__\":\"mpmZGXzwE0CamZkZfPAjQGdmZia66C1AmpmZGXzwM0AAAAAgm+w4QGdmZia66D1AZ2ZmlmxyQUCamZkZfPBDQM3MzJyLbkZAAAAAIJvsSEA0MzOjqmpLQGdmZia66E1AzczM1GQzUEBnZmaWbHJRQAAAAFh0sVJAmpmZGXzwU0A0MzPbgy9VQM3MzJyLblZAZ2ZmXpOtV0AAAAAgm+xYQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"top\":[22,526,509,57,18,7,11,6,3,6,1,5,4,0,3,5,1,2,4,32]},\"selected\":{\"id\":\"1150\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1166\",\"type\":\"UnionRenderers\"}},\"id\":\"1149\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1150\",\"type\":\"Selection\"}],\"root_ids\":[\"1117\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", - " var render_items = [{\"docid\":\"494b45ef-80c4-4360-9872-4a01cc3f1205\",\"roots\":{\"1117\":\"79d02142-4d07-4cbc-9b71-1cef632bc392\"}}];\n", - " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", - "\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " } else {\n", - " var attempts = 0;\n", - " var timer = setInterval(function(root) {\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " clearInterval(timer);\n", - " }\n", - " attempts++;\n", - " if (attempts > 100) {\n", - " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", - " clearInterval(timer);\n", - " }\n", - " }, 10, root)\n", - " }\n", - "})(window);" - ], - "application/vnd.holoviews_exec.v0+json": "", - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
" - ], - "text/plain": [ - ":Histogram [pct_counts_mito] (pct_counts_mito_count)" - ] - }, - "execution_count": 10, - "metadata": { - "application/vnd.holoviews_exec.v0+json": { - "id": "1117" - } - }, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pbmcs.obs.hvplot.hist(\"pct_counts_mito\")" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "\n", - "// Ugly hack - see HoloViews #2574 for more information\n", - "if (!(document.getElementById('1229')) && !(document.getElementById('_anim_imgNone'))) {\n", - " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", - " var htmlObject = document.createElement('div');\n", - " htmlObject.innerHTML = `
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
`;\n", - " var scriptTags = document.getElementsByTagName('script');\n", - " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", - " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", - " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", - " } else {\n", - " parentTag.append(htmlObject)\n", - " }\n", - "}\n", - "(function(root) {\n", - " function embed_document(root) {\n", - " \n", - " var docs_json = {\"a6ab7ce2-2154-497a-89c7-adcc8300d18d\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1237\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1242\",\"type\":\"LinearAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":300,\"plot_width\":700,\"renderers\":[{\"id\":\"1237\",\"type\":\"LinearAxis\"},{\"id\":\"1241\",\"type\":\"Grid\"},{\"id\":\"1242\",\"type\":\"LinearAxis\"},{\"id\":\"1246\",\"type\":\"Grid\"},{\"id\":\"1256\",\"type\":\"BoxAnnotation\"},{\"id\":\"1267\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1228\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1252\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1225\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1233\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1226\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1235\",\"type\":\"LinearScale\"}},\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"1261\",\"type\":\"ColumnDataSource\"}},\"id\":\"1268\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"total_counts\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1270\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1238\",\"type\":\"BasicTicker\"}},\"id\":\"1237\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null,\"data\":{\"left\":{\"__ndarray__\":\"AAAAAABwf0CamZmZGfSpQJqZmZkZ/bdANDMzMxOAwUCamZmZmQHHQAAAAAAgg8xANDMzM1MC0UBnZmZmFsPTQJqZmZnZg9ZAzczMzJxE2UAAAAAAYAXcQDQzMzMjxt5ANDMzM3PD4EDNzMzM1CPiQGdmZmY2hONAAAAAAJjk5ECamZmZ+UTmQDQzMzNbpedAzczMzLwF6UBnZmZmHmbqQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"right\":{\"__ndarray__\":\"mpmZmRn0qUCamZmZGf23QDQzMzMTgMFAmpmZmZkBx0AAAAAAIIPMQDQzMzNTAtFAZ2ZmZhbD00CamZmZ2YPWQM3MzMycRNlAAAAAAGAF3EA0MzMzI8beQDQzMzNzw+BAzczMzNQj4kBnZmZmNoTjQAAAAACY5ORAmpmZmflE5kA0MzMzW6XnQM3MzMy8BelAZ2ZmZh5m6kAAAAAAgMbrQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"top\":[150,370,396,118,93,57,20,8,4,0,2,0,1,0,0,1,0,0,1,1],\"total_counts\":{\"__ndarray__\":\"mpmZmRninUA0MzMzk3uyQAEAAACgfr1AZ2ZmZtZAxEDNzMzMXMLJQDQzMzPjQ89AzszMzLRi0kAAAAAAeCPVQDQzMzM75NdAZmZmZv6k2kCamZmZwWXdQGdmZmZCE+BAAAAAAKRz4UCamZmZBdTiQDQzMzNnNORAzczMzMiU5UBnZmZmKvXmQAAAAACMVehAmpmZme216UA0MzMzTxbrQA==\",\"dtype\":\"float64\",\"shape\":[20]},\"total_counts_count\":[150,370,396,118,93,57,20,8,4,0,2,0,1,0,0,1,0,0,1,1]},\"selected\":{\"id\":\"1262\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1278\",\"type\":\"UnionRenderers\"}},\"id\":\"1261\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1265\",\"type\":\"Quad\"},{\"attributes\":{\"callback\":null,\"end\":56884.0,\"reset_end\":56884.0,\"reset_start\":503.0,\"start\":503.0,\"tags\":[[[\"total_counts\",\"total_counts\",null]]]},\"id\":\"1225\",\"type\":\"Range1d\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1238\",\"type\":\"BasicTicker\"}},\"id\":\"1241\",\"type\":\"Grid\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"black\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1266\",\"type\":\"Quad\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1267\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"total_counts\",\"@{total_counts}\"],[\"Count\",\"@{total_counts_count}\"]]},\"id\":\"1227\",\"type\":\"HoverTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1261\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1264\",\"type\":\"Quad\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1266\",\"type\":\"Quad\"},\"nonselection_glyph\":{\"id\":\"1265\",\"type\":\"Quad\"},\"selection_glyph\":null,\"view\":{\"id\":\"1268\",\"type\":\"CDSView\"}},\"id\":\"1267\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1238\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1247\",\"type\":\"SaveTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1256\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1248\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"left\":{\"field\":\"left\"},\"right\":{\"field\":\"right\"},\"top\":{\"field\":\"top\"}},\"id\":\"1264\",\"type\":\"Quad\"},{\"attributes\":{},\"id\":\"1251\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1278\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1227\",\"type\":\"HoverTool\"},{\"id\":\"1247\",\"type\":\"SaveTool\"},{\"id\":\"1248\",\"type\":\"PanTool\"},{\"id\":\"1249\",\"type\":\"WheelZoomTool\"},{\"id\":\"1250\",\"type\":\"BoxZoomTool\"},{\"id\":\"1251\",\"type\":\"ResetTool\"}]},\"id\":\"1252\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1243\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1233\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1235\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1262\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1270\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1243\",\"type\":\"BasicTicker\"}},\"id\":\"1246\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"end\":396.0,\"reset_end\":396.0,\"reset_start\":0.0,\"tags\":[[[\"total_counts_count\",\"Count\",null]]]},\"id\":\"1226\",\"type\":\"Range1d\"},{\"attributes\":{\"axis_label\":\"\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1272\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1229\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1243\",\"type\":\"BasicTicker\"}},\"id\":\"1242\",\"type\":\"LinearAxis\"},{\"attributes\":{\"overlay\":{\"id\":\"1256\",\"type\":\"BoxAnnotation\"}},\"id\":\"1250\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1272\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1228\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1249\",\"type\":\"WheelZoomTool\"}],\"root_ids\":[\"1229\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", - " var render_items = [{\"docid\":\"a6ab7ce2-2154-497a-89c7-adcc8300d18d\",\"roots\":{\"1229\":\"286b7fac-6014-45cc-8a10-8ff231e54ab0\"}}];\n", - " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", - "\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " } else {\n", - " var attempts = 0;\n", - " var timer = setInterval(function(root) {\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " clearInterval(timer);\n", - " }\n", - " attempts++;\n", - " if (attempts > 100) {\n", - " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", - " clearInterval(timer);\n", - " }\n", - " }, 10, root)\n", - " }\n", - "})(window);" - ], - "application/vnd.holoviews_exec.v0+json": "", - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
" - ], - "text/plain": [ - ":Histogram [total_counts] (total_counts_count)" - ] - }, - "execution_count": 11, - "metadata": { - "application/vnd.holoviews_exec.v0+json": { - "id": "1229" - } - }, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pbmcs.obs.hvplot.hist(\"total_counts\")" ] @@ -2016,7 +1735,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2029,46 +1748,25 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "AnnData object with n_obs × n_vars = 1079 × 18296 \n", - " obs: 'n_genes_by_counts', 'log1p_n_genes_by_counts', 'total_counts', 'log1p_total_counts', 'pct_counts_in_top_50_genes', 'pct_counts_in_top_100_genes', 'pct_counts_in_top_200_genes', 'pct_counts_in_top_500_genes', 'total_counts_mito', 'log1p_total_counts_mito', 'pct_counts_mito'\n", - " var: 'gene_symbols', 'mito', 'n_cells_by_counts', 'mean_counts', 'log1p_mean_counts', 'pct_dropout_by_counts', 'total_counts', 'log1p_total_counts', 'n_counts'" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "pbmcs" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "... storing 'gene_symbols' as categorical\n" - ] - } - ], + "outputs": [], "source": [ "pbmcs.write(CACHEDIR / \"pbmcs_1k_v3_filtered.h5ad\", compression=\"gzip\")" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2086,7 +1784,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2097,7 +1795,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2109,7 +1807,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2126,35 +1824,12 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "sc.pl.umap(pbmcs, color=[\"leiden\"], legend_loc=\"on data\")\n", - "sc.pl.umap(pbmcs, color=[\"CST3\", \"NKG7\", \"IL7R\", \"MS4A1\"], gene_symbols=\"gene_symbols\") # Some markers for quick validation" + "sc.pl.umap(pbmcs, color=[\"CST3\", \"NKG7\", \"IL7R\", \"MS4A1\"], gene_symbols=\"gene_symbols\", use_raw=False) # Some markers for quick validation" ] }, { @@ -2173,7 +1848,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2198,7 +1873,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -2208,256 +1883,71 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
scoresnameslogfoldchangespvalspvals_adjgene_symbols
017.903227ENSG000001117161.3211161.160698e-504.247224e-47LDHB
111.690188ENSG000001426760.2225511.143014e-261.608660e-23RPL11
211.527927ENSG000001331120.2247864.368914e-265.709546e-23TPT1
311.473563ENSG000001302550.3147827.216938e-268.802740e-23RPL36
410.887063ENSG000001455920.2133366.834991e-246.947389e-21RPL37
510.745726ENSG000000345100.4050682.399732e-232.310816e-20TMSB10
610.312718ENSG000001031871.7731211.041278e-218.283139e-19COTL1
710.243648ENSG000001643004.7149548.726118e-205.505278e-17SERINC5
810.111565ENSG000000820741.0913054.404174e-213.223151e-18FYB1
99.842817ENSG000001387954.3016339.687868e-194.387373e-16LEF1
\n", - "
" - ], - "text/plain": [ - " scores names logfoldchanges pvals pvals_adj \\\n", - "0 17.903227 ENSG00000111716 1.321116 1.160698e-50 4.247224e-47 \n", - "1 11.690188 ENSG00000142676 0.222551 1.143014e-26 1.608660e-23 \n", - "2 11.527927 ENSG00000133112 0.224786 4.368914e-26 5.709546e-23 \n", - "3 11.473563 ENSG00000130255 0.314782 7.216938e-26 8.802740e-23 \n", - "4 10.887063 ENSG00000145592 0.213336 6.834991e-24 6.947389e-21 \n", - "5 10.745726 ENSG00000034510 0.405068 2.399732e-23 2.310816e-20 \n", - "6 10.312718 ENSG00000103187 1.773121 1.041278e-21 8.283139e-19 \n", - "7 10.243648 ENSG00000164300 4.714954 8.726118e-20 5.505278e-17 \n", - "8 10.111565 ENSG00000082074 1.091305 4.404174e-21 3.223151e-18 \n", - "9 9.842817 ENSG00000138795 4.301633 9.687868e-19 4.387373e-16 \n", - "\n", - " gene_symbols \n", - "0 LDHB \n", - "1 RPL11 \n", - "2 TPT1 \n", - "3 RPL36 \n", - "4 RPL37 \n", - "5 TMSB10 \n", - "6 COTL1 \n", - "7 SERINC5 \n", - "8 FYB1 \n", - "9 LEF1 " - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "de_df.head(10)" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "\n", - "// Ugly hack - see HoloViews #2574 for more information\n", - "if (!(document.getElementById('1341')) && !(document.getElementById('_anim_imgNone'))) {\n", - " console.log(\"Creating DOM nodes dynamically for assumed nbconvert export. To generate clean HTML output set HV_DOC_HTML as an environment variable.\")\n", - " var htmlObject = document.createElement('div');\n", - " htmlObject.innerHTML = `
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
`;\n", - " var scriptTags = document.getElementsByTagName('script');\n", - " var parentTag = scriptTags[scriptTags.length-1].parentNode;\n", - " if (parentTag.attributes.length && (parentTag.attributes[0].name == 'data-shell-mode')) {\n", - " alert('Displaying PyViz objects in JupyterLab requires the jupyterlab_pyviz extension to be installed, install it with:\\n\\n\\tjupyter labextension install @pyviz/jupyterlab_pyviz');\n", - " } else {\n", - " parentTag.append(htmlObject)\n", - " }\n", - "}\n", - "(function(root) {\n", - " function embed_document(root) {\n", - " \n", - " var docs_json = {\"cb9baba0-76ba-4e6d-b415-76e76a2b60f4\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1349\",\"type\":\"LinearAxis\"}],\"left\":[{\"id\":\"1354\",\"type\":\"LogAxis\"}],\"min_border_bottom\":10,\"min_border_left\":10,\"min_border_right\":10,\"min_border_top\":10,\"plot_height\":300,\"plot_width\":700,\"renderers\":[{\"id\":\"1349\",\"type\":\"LinearAxis\"},{\"id\":\"1353\",\"type\":\"Grid\"},{\"id\":\"1354\",\"type\":\"LogAxis\"},{\"id\":\"1358\",\"type\":\"Grid\"},{\"id\":\"1368\",\"type\":\"BoxAnnotation\"},{\"id\":\"1379\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1340\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1364\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1337\",\"type\":\"Range1d\"},\"x_scale\":{\"id\":\"1345\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1338\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"1347\",\"type\":\"LogScale\"}},\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1363\",\"type\":\"ResetTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1368\",\"type\":\"BoxAnnotation\"}},\"id\":\"1362\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1361\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1350\",\"type\":\"BasicTicker\"}},\"id\":\"1353\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1373\",\"type\":\"ColumnDataSource\"}},\"id\":\"1380\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1360\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"logfoldchanges\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1382\",\"type\":\"BasicTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1350\",\"type\":\"BasicTicker\"}},\"id\":\"1349\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1359\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1373\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1376\",\"type\":\"Scatter\"},\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1378\",\"type\":\"Scatter\"},\"nonselection_glyph\":{\"id\":\"1377\",\"type\":\"Scatter\"},\"selection_glyph\":null,\"view\":{\"id\":\"1380\",\"type\":\"CDSView\"}},\"id\":\"1379\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"ticker\":null},\"id\":\"1384\",\"type\":\"LogTickFormatter\"},{\"attributes\":{},\"id\":\"1382\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1345\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1350\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"data\":{\"gene_symbols\":[\"LDHB\",\"RPL11\",\"TPT1\",\"RPL36\",\"RPL37\",\"TMSB10\",\"COTL1\",\"SERINC5\",\"FYB1\",\"LEF1\",\"RPS6\",\"RPS8\",\"RPS29\",\"RPL32\",\"RPL39\",\"RPS18\",\"RPL38\",\"MAL\",\"RPS3A\",\"LTB\",\"TMEM123\",\"RPL4\",\"SUSD3\",\"RPL22\",\"RPL18A\",\"CD4\",\"RPL9\",\"VIM\",\"RCAN3\",\"RPL12\",\"RPS15A\",\"RPS25\",\"PRKCA\",\"RPLP1\",\"RPS27\",\"RPS16\",\"RPS28\",\"PASK\",\"RPLP2\",\"ITGB1\",\"RPL13\",\"EEF2\",\"RPL29\",\"RPL30\",\"NOSIP\",\"FTH1\",\"RPS2\",\"PLP2\",\"RPL7\",\"RPL19\",\"RPL13A\",\"FXYD5\",\"TCF7\",\"RPL34\",\"RPL41\",\"CYLD\",\"RPL21\",\"CORO1B\",\"RPL35A\",\"RPS13\",\"RPL23\",\"THOC3\",\"RPS11\",\"PABPC1\",\"RPS5\",\"RPS15\",\"EEF1A1\",\"IL6R\",\"RPS10\",\"RPL18\",\"TRABD2A\",\"RPS21\",\"HAPLN3\",\"RPL37A\",\"PIK3IP1\",\"SEPT9\",\"RPL23A\",\"RPS12\",\"RPL28\",\"RPS4X\",\"RPL8\",\"RPL27\",\"HINT1\",\"RPS9\",\"SARAF\",\"BEX3\",\"RPS20\",\"TESPA1\",\"FOXP1\",\"RPL14\",\"EEF1B2\",\"IL6ST\",\"INPP4B\",\"LPAR6\",\"CCR7\",\"SELL\",\"RPS23\",\"TBC1D4\",\"PABPC4\",\"GSTK1\",\"RACK1\",\"UBA52\",\"BIRC3\",\"NPM1\",\"CTSB\",\"BTF3\",\"CAPG\",\"RPS14\",\"NACA\",\"TSHZ2\",\"ARMH1\",\"RNASET2\",\"RPL5\",\"LIMS1\",\"MAP3K1\",\"VSIG1\",\"C1orf162\",\"RPS27A\",\"ACTN1\",\"CLN5\",\"CD5\",\"MCUB\",\"CMTM8\",\"CRIP2\",\"NELL2\",\"RPSA\",\"ID3\",\"RPL24\",\"TRADD\",\"AL445686.2\",\"BCL11B\",\"UBL3\",\"RPL10A\",\"RPL27A\",\"SKI\",\"TNFSF10\",\"COX7C\",\"RIC3\",\"TRBC1\",\"EPB41\",\"TNFRSF4\",\"NAP1L1\",\"IL2RA\",\"PKIA\",\"MORC2\",\"EIF3E\",\"IL4R\",\"PNMA1\",\"RHOH\",\"TECPR1\",\"RGCC\",\"NOP53\",\"COMMD6\",\"PSIP1\",\"SNHG8\",\"GPR155\",\"CRBN\",\"SMAP2\",\"GPSM3\",\"TOMM7\",\"MAP4K2\",\"AP3M2\",\"ARHGAP15\",\"RPL6\",\"ZC3H12D\",\"FXYD1\",\"RGS10\",\"ATP8B2\",\"RPL10\",\"AP002884.1\",\"RPL7A\",\"C12orf57\",\"RPL31\",\"PPP1R2\",\"CSGALNACT1\",\"USP10\",\"EIF3F\",\"SLC40A1\",\"RPLP0\",\"BAG3\",\"TIAM1\",\"FRY\",\"UQCRB\",\"FAM102A\",\"YBX1\",\"ARID5B\",\"PAG1\",\"RPL35\",\"NEFL\",\"PDE4DIP\",\"AC133644.2\",\"EIF3A\",\"CD82\",\"DGKA\",\"GPX4\",\"AC058791.1\",\"AES\",\"ZYX\",\"AC114760.2\",\"TMEM116\",\"UGCG\",\"NCK2\",\"ITK\",\"C2orf69\",\"KLHL22\",\"IFNGR2\",\"ZNF439\",\"SGTB\",\"SFMBT1\",\"FAU\",\"HPCAL4\",\"JUNB\",\"EPHA1\",\"TCEA3\",\"NSD3\",\"EPHA1-AS1\",\"CREG1\",\"RALA\",\"AHR\",\"TTC39C-AS1\",\"PACS1\",\"VIPR1\",\"RPL15\",\"GCSAM\",\"ZFAS1\",\"TMEM173\",\"ZC3HAV1\",\"SLC16A10\",\"RPS3\",\"LY96\",\"EIF3L\",\"LINC00891\",\"STK17B\",\"EIF2S3\",\"PDCL\",\"SFXN1\",\"ANK3\",\"TMEM243\",\"AC013264.1\",\"ESD\",\"LINC00513\",\"IMPDH2\",\"NIPAL3\",\"LDHA\",\"TSC22D3\",\"AK5\",\"CAMK4\",\"FAM234A\",\"CDK11B\",\"RPL26\",\"FBXL16\",\"ERGIC3\",\"RPS19\",\"TUBA4A\",\"TMEM204\",\"S100A10\",\"MCF2L-AS1\",\"FBLN7\",\"STAT1\",\"TNFRSF25\",\"KCNQ1\",\"MTRR\",\"CTLA4\",\"ECE1\",\"CCDC180\",\"GMFG\",\"PLK3\",\"NDUFS5\",\"CHMP7\",\"STAT2\",\"RBL1\",\"CSTB\",\"EEPD1\",\"SRSF5\",\"DAPP1\",\"LGALS9\",\"AL109741.1\",\"GBP4\",\"PYROXD1\",\"ADAM19\",\"ISG20\",\"TACC3\",\"PCK2\",\"ATP5MPL\",\"JUND\",\"ADK\",\"ACOT13\",\"ERGIC2\",\"KPNA3\",\"NFAT5\",\"EDEM2\",\"PFN1\",\"STK17A\",\"RNF14\",\"RASGEF1A\",\"GCHFR\",\"TMEM184C\",\"ITGAL\",\"ZFPM1\",\"FCRL3\",\"TACC1\",\"SLC27A3\",\"FLNA\",\"PDZD4\",\"SPECC1L\",\"THOC7\",\"SYTL1\",\"RAB11FIP4\",\"AC245297.3\",\"FABP5\",\"MAZ\",\"PTPRE\",\"ARHGAP25\",\"C11orf21\",\"ARNT\",\"MICU2\",\"SKAP2\",\"FBXO6\",\"LAMP1\",\"RAI1\",\"TPD52\",\"PNKD\",\"GBA2\",\"GFPT1\",\"WIPF1\",\"PPP2R2B\",\"GTDC1\",\"TRRAP\",\"PEX2\",\"TESC\",\"HIST1H2BG\",\"CNOT1\",\"ABCF2\",\"CCDC18\",\"PSMC3\",\"MIR4435-2HG\",\"ASCC2\",\"SRSF9\",\"LMAN2L\",\"UCHL5\",\"RAB1B\",\"HLA-F\",\"RAB5C\",\"MSN\",\"HLA-DQA1\",\"APOBEC3C\",\"PET100\",\"ST3GAL5\",\"SEC61B\",\"PCID2\",\"CPNE2\",\"ATG12\",\"TNFSF14\",\"LINC01644\",\"DNAJB11\",\"PTPN22\",\"MMP25-AS1\",\"IL4I1\",\"LMO4\",\"DTD1\",\"INPP5D\",\"RGS2\",\"SATB1\",\"TMEM160\",\"C1orf61\",\"CA2\",\"RNF166\",\"HPS1\",\"GK5\",\"UBE2E3\",\"SPEF2\",\"C8orf82\",\"KDM4C\",\"IMPDH1\",\"CD8B\",\"RBM3\",\"AOAH\",\"VAMP5\",\"PDIA6\",\"MAP3K8\",\"ACOX1\",\"TP53I11\",\"PLCG1\",\"HENMT1\",\"CDC42EP3\",\"PRPF40A\",\"ZNF32\",\"TMEM179B\",\"ADGRE5\",\"PPIB\",\"BIN2\",\"ATXN1L\",\"ZNRD1\",\"MIB2\",\"DNAJC1\",\"IVD\",\"TAPBP\",\"ASCL2\",\"CLEC2B\",\"SMKR1\",\"TMEM273\",\"GNGT2\",\"HM13\",\"TRGV9\",\"SLC4A4\",\"BZW1\",\"PZP\",\"ZAP70\",\"SYNRG\",\"PDLIM1\",\"HSPA5\",\"FCGR3A\",\"CPQ\",\"ME1\",\"PLEKHF1\",\"RUNX3\",\"CHI3L2\",\"PLXND1\",\"RAB11B\",\"IGFBP4\",\"RNFT1\",\"GAB3\",\"METRN\",\"CCDC85B\",\"SSR4\",\"ACADVL\",\"ITGAM\",\"CSNK1E\",\"USP28\",\"GTF3A\",\"VPS37B\",\"SYNE1\",\"RPS24\",\"B2M\",\"DGKQ\",\"RAB29\",\"CTSD\",\"FAM49B\",\"DERL1\",\"ADGRG5\",\"FHL3\",\"MFSD10\",\"PYHIN1\",\"AC004865.2\",\"AKAP9\",\"GNPTAB\",\"MXRA7\",\"CX3CR1\",\"RARRES3\",\"DHRS7\",\"HLA-DPA1\",\"PPP2R5C\",\"CYC1\",\"B3GNT8\",\"NDUFB7\",\"PRR5L\",\"RPS6KA1\",\"SH3BGRL3\",\"CORO1A\",\"AGAP1\",\"CD7\",\"FEZ1\",\"CISD3\",\"GABARAPL2\",\"LINC002481\",\"PRELID1\",\"SYNE2\",\"HPGD\",\"RRAS2\",\"CD63\",\"TSC22D4\",\"TGFBR3\",\"TAF15\",\"TLE1\",\"TRDC\",\"SEPT7\",\"FYN\",\"IL23R\",\"BLK\",\"PECAM1\",\"IKZF3\",\"GZMB\",\"DUSP1\",\"TTC38\",\"CELF2\",\"RABAC1\",\"SCRN1\",\"GPR65\",\"TMIGD2\",\"CXCR6\",\"CYTH3\",\"CCR5\",\"LLGL2\",\"NRIP1\",\"PHACTR2\",\"RORC\",\"PATL2\",\"FKBP11\",\"TSPAN32\",\"IL18RAP\",\"SIPA1\",\"PRNP\",\"SLC15A4\",\"FTL\",\"CAPN12\",\"S100A4\",\"TSEN54\",\"ARAP2\",\"ABCA2\",\"MMP23B\",\"CARD16\",\"CRTAM\",\"FAM173A\",\"LYSMD2\",\"CASP4\",\"RGS3\",\"SH2D2A\",\"ZEB2\",\"ARHGAP26\",\"SPON2\",\"CXCR4\",\"TNFRSF1A\",\"ACAA2\",\"CBLB\",\"PIP4K2A\",\"UBB\",\"GBP5\",\"IKZF2\",\"ADGRG1\",\"PDIA3\",\"JAML\",\"ERN1\",\"LCP1\",\"C1orf21\",\"RASSF1\",\"STOM\",\"RHBDF2\",\"PARP8\",\"CLIC3\",\"SESN1\",\"TBX21\",\"TRG-AS1\",\"FCRL6\",\"AC004687.1\",\"UBC\",\"LINC00987\",\"SYTL2\",\"PTPN6\",\"LITAF\",\"KLRF1\",\"IL18R1\",\"CKLF\",\"LYST\",\"FGR\",\"CD244\",\"MT-ND4L\",\"FGFBP2\",\"TGFB1\",\"PLAC8\",\"ADRB2\",\"ADAP1\",\"CHST12\",\"RAP1B\",\"S100A6\",\"TPST2\",\"PGGHG\",\"SH2D1A\",\"LINC02084\",\"PLCB1\",\"LTK\",\"MT-ND2\",\"CD300A\",\"CD160\",\"ACTN4\",\"IFNGR1\",\"GUK1\",\"S100B\",\"CCDC107\",\"COL6A2\",\"CD247\",\"MT2A\",\"LPCAT1\",\"MT-CYB\",\"IL32\",\"XBP1\",\"SLAMF7\",\"LAG3\",\"PILRB\",\"DBN1\",\"PLA2G16\",\"HLA-A\",\"YWHAQ\",\"TRGC1\",\"GZMH\",\"PTPN4\",\"IL2RB\",\"C12orf75\",\"MYBL1\",\"TYROBP\",\"RAB27A\",\"CASP1\",\"SLC20A1\",\"ITGB2\",\"ARL4C\",\"GYG1\",\"ABI3\",\"CXXC5\",\"ZBTB16\",\"MT-ND3\",\"MT-ND1\",\"PAXX\",\"CMC1\",\"MT-ND4\",\"A2M-AS1\",\"S1PR5\",\"CCL4\",\"PTGDR\",\"SRGN\",\"RHOC\",\"GNLY\",\"MT-ATP6\",\"LINC01871\",\"ARPC5L\",\"MT-CO3\",\"KLRD1\",\"CLIC1\",\"PRR5\",\"DUSP2\",\"CYBA\",\"SLC4A10\",\"APMAP\",\"HOPX\",\"CTSC\",\"LYAR\",\"ID2\",\"SAMD3\",\"CEBPD\",\"ABHD17A\",\"MT-CO2\",\"CD81\",\"MT-CO1\",\"NCR3\",\"APOBEC3G\",\"EOMES\",\"CD8A\",\"HLA-B\",\"HLA-C\",\"KLRB1\",\"MYO1F\",\"MATK\",\"PLEK\",\"EFHD2\",\"TRGC2\",\"PRF1\",\"GZMK\",\"GZMM\",\"HCST\",\"CST7\",\"KLRG1\",\"CCL5\",\"CTSW\",\"GZMA\",\"NKG7\"],\"logfoldchanges\":{\"__ndarray__\":\"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\",\"dtype\":\"float32\",\"shape\":[663]},\"names\":[\"ENSG00000111716\",\"ENSG00000142676\",\"ENSG00000133112\",\"ENSG00000130255\",\"ENSG00000145592\",\"ENSG00000034510\",\"ENSG00000103187\",\"ENSG00000164300\",\"ENSG00000082074\",\"ENSG00000138795\",\"ENSG00000137154\",\"ENSG00000142937\",\"ENSG00000213741\",\"ENSG00000144713\",\"ENSG00000198918\",\"ENSG00000231500\",\"ENSG00000172809\",\"ENSG00000172005\",\"ENSG00000145425\",\"ENSG00000227507\",\"ENSG00000152558\",\"ENSG00000174444\",\"ENSG00000157303\",\"ENSG00000116251\",\"ENSG00000105640\",\"ENSG00000010610\",\"ENSG00000163682\",\"ENSG00000026025\",\"ENSG00000117602\",\"ENSG00000197958\",\"ENSG00000134419\",\"ENSG00000118181\",\"ENSG00000154229\",\"ENSG00000137818\",\"ENSG00000177954\",\"ENSG00000105193\",\"ENSG00000233927\",\"ENSG00000115687\",\"ENSG00000177600\",\"ENSG00000150093\",\"ENSG00000167526\",\"ENSG00000167658\",\"ENSG00000162244\",\"ENSG00000156482\",\"ENSG00000142546\",\"ENSG00000167996\",\"ENSG00000140988\",\"ENSG00000102007\",\"ENSG00000147604\",\"ENSG00000108298\",\"ENSG00000142541\",\"ENSG00000089327\",\"ENSG00000081059\",\"ENSG00000109475\",\"ENSG00000229117\",\"ENSG00000083799\",\"ENSG00000122026\",\"ENSG00000172725\",\"ENSG00000182899\",\"ENSG00000110700\",\"ENSG00000125691\",\"ENSG00000051596\",\"ENSG00000142534\",\"ENSG00000070756\",\"ENSG00000083845\",\"ENSG00000115268\",\"ENSG00000156508\",\"ENSG00000160712\",\"ENSG00000124614\",\"ENSG00000063177\",\"ENSG00000186854\",\"ENSG00000171858\",\"ENSG00000140511\",\"ENSG00000197756\",\"ENSG00000100100\",\"ENSG00000184640\",\"ENSG00000198242\",\"ENSG00000112306\",\"ENSG00000108107\",\"ENSG00000198034\",\"ENSG00000161016\",\"ENSG00000131469\",\"ENSG00000169567\",\"ENSG00000170889\",\"ENSG00000133872\",\"ENSG00000166681\",\"ENSG00000008988\",\"ENSG00000135426\",\"ENSG00000114861\",\"ENSG00000188846\",\"ENSG00000114942\",\"ENSG00000134352\",\"ENSG00000109452\",\"ENSG00000139679\",\"ENSG00000126353\",\"ENSG00000188404\",\"ENSG00000186468\",\"ENSG00000136111\",\"ENSG00000090621\",\"ENSG00000197448\",\"ENSG00000204628\",\"ENSG00000221983\",\"ENSG00000023445\",\"ENSG00000181163\",\"ENSG00000164733\",\"ENSG00000145741\",\"ENSG00000042493\",\"ENSG00000164587\",\"ENSG00000196531\",\"ENSG00000182463\",\"ENSG00000198520\",\"ENSG00000026297\",\"ENSG00000122406\",\"ENSG00000169756\",\"ENSG00000095015\",\"ENSG00000101842\",\"ENSG00000143110\",\"ENSG00000143947\",\"ENSG00000072110\",\"ENSG00000102805\",\"ENSG00000110448\",\"ENSG00000005059\",\"ENSG00000170293\",\"ENSG00000182809\",\"ENSG00000184613\",\"ENSG00000168028\",\"ENSG00000117318\",\"ENSG00000114391\",\"ENSG00000102871\",\"ENSG00000264443\",\"ENSG00000127152\",\"ENSG00000122042\",\"ENSG00000198755\",\"ENSG00000166441\",\"ENSG00000157933\",\"ENSG00000121858\",\"ENSG00000127184\",\"ENSG00000166405\",\"ENSG00000211751\",\"ENSG00000159023\",\"ENSG00000186827\",\"ENSG00000187109\",\"ENSG00000134460\",\"ENSG00000171033\",\"ENSG00000133422\",\"ENSG00000104408\",\"ENSG00000077238\",\"ENSG00000176903\",\"ENSG00000168421\",\"ENSG00000205356\",\"ENSG00000102760\",\"ENSG00000105373\",\"ENSG00000188243\",\"ENSG00000164985\",\"ENSG00000269893\",\"ENSG00000163328\",\"ENSG00000113851\",\"ENSG00000084070\",\"ENSG00000213654\",\"ENSG00000196683\",\"ENSG00000168067\",\"ENSG00000070718\",\"ENSG00000075884\",\"ENSG00000089009\",\"ENSG00000178199\",\"ENSG00000266964\",\"ENSG00000148908\",\"ENSG00000143515\",\"ENSG00000147403\",\"ENSG00000250303\",\"ENSG00000148303\",\"ENSG00000111678\",\"ENSG00000071082\",\"ENSG00000184203\",\"ENSG00000147408\",\"ENSG00000103194\",\"ENSG00000175390\",\"ENSG00000138449\",\"ENSG00000089157\",\"ENSG00000151929\",\"ENSG00000156299\",\"ENSG00000073910\",\"ENSG00000156467\",\"ENSG00000167106\",\"ENSG00000065978\",\"ENSG00000150347\",\"ENSG00000076641\",\"ENSG00000136942\",\"ENSG00000277586\",\"ENSG00000178104\",\"ENSG00000273445\",\"ENSG00000107581\",\"ENSG00000085117\",\"ENSG00000065357\",\"ENSG00000167468\",\"ENSG00000273319\",\"ENSG00000104964\",\"ENSG00000159840\",\"ENSG00000272211\",\"ENSG00000198270\",\"ENSG00000148154\",\"ENSG00000071051\",\"ENSG00000113263\",\"ENSG00000178074\",\"ENSG00000099910\",\"ENSG00000159128\",\"ENSG00000171291\",\"ENSG00000197860\",\"ENSG00000163935\",\"ENSG00000149806\",\"ENSG00000116983\",\"ENSG00000171223\",\"ENSG00000146904\",\"ENSG00000204219\",\"ENSG00000147548\",\"ENSG00000229153\",\"ENSG00000143162\",\"ENSG00000006451\",\"ENSG00000106546\",\"ENSG00000264745\",\"ENSG00000175115\",\"ENSG00000114812\",\"ENSG00000174748\",\"ENSG00000174500\",\"ENSG00000177410\",\"ENSG00000184584\",\"ENSG00000105939\",\"ENSG00000112394\",\"ENSG00000149273\",\"ENSG00000154589\",\"ENSG00000100129\",\"ENSG00000281852\",\"ENSG00000081320\",\"ENSG00000130741\",\"ENSG00000136940\",\"ENSG00000164466\",\"ENSG00000151150\",\"ENSG00000135185\",\"ENSG00000231621\",\"ENSG00000139684\",\"ENSG00000233559\",\"ENSG00000178035\",\"ENSG00000001461\",\"ENSG00000134333\",\"ENSG00000157514\",\"ENSG00000154027\",\"ENSG00000152495\",\"ENSG00000167930\",\"ENSG00000248333\",\"ENSG00000161970\",\"ENSG00000127585\",\"ENSG00000125991\",\"ENSG00000105372\",\"ENSG00000127824\",\"ENSG00000131634\",\"ENSG00000197747\",\"ENSG00000235280\",\"ENSG00000144152\",\"ENSG00000115415\",\"ENSG00000215788\",\"ENSG00000053918\",\"ENSG00000124275\",\"ENSG00000163599\",\"ENSG00000117298\",\"ENSG00000197816\",\"ENSG00000130755\",\"ENSG00000173846\",\"ENSG00000168653\",\"ENSG00000147457\",\"ENSG00000170581\",\"ENSG00000080839\",\"ENSG00000160213\",\"ENSG00000122547\",\"ENSG00000100650\",\"ENSG00000070190\",\"ENSG00000168961\",\"ENSG00000225938\",\"ENSG00000162654\",\"ENSG00000121350\",\"ENSG00000135074\",\"ENSG00000172183\",\"ENSG00000013810\",\"ENSG00000100889\",\"ENSG00000156411\",\"ENSG00000130522\",\"ENSG00000156110\",\"ENSG00000112304\",\"ENSG00000087502\",\"ENSG00000102753\",\"ENSG00000102908\",\"ENSG00000088298\",\"ENSG00000108518\",\"ENSG00000164543\",\"ENSG00000013561\",\"ENSG00000198915\",\"ENSG00000137880\",\"ENSG00000164168\",\"ENSG00000005844\",\"ENSG00000179588\",\"ENSG00000160856\",\"ENSG00000147526\",\"ENSG00000143554\",\"ENSG00000196924\",\"ENSG00000067840\",\"ENSG00000100014\",\"ENSG00000163634\",\"ENSG00000142765\",\"ENSG00000131242\",\"ENSG00000274265\",\"ENSG00000164687\",\"ENSG00000103495\",\"ENSG00000132334\",\"ENSG00000163219\",\"ENSG00000110665\",\"ENSG00000143437\",\"ENSG00000165487\",\"ENSG00000005020\",\"ENSG00000116663\",\"ENSG00000185896\",\"ENSG00000108557\",\"ENSG00000076554\",\"ENSG00000127838\",\"ENSG00000070610\",\"ENSG00000198380\",\"ENSG00000115935\",\"ENSG00000156475\",\"ENSG00000121964\",\"ENSG00000196367\",\"ENSG00000164751\",\"ENSG00000088992\",\"ENSG00000273802\",\"ENSG00000125107\",\"ENSG00000033050\",\"ENSG00000122483\",\"ENSG00000165916\",\"ENSG00000172965\",\"ENSG00000100325\",\"ENSG00000111786\",\"ENSG00000114988\",\"ENSG00000116750\",\"ENSG00000174903\",\"ENSG00000204642\",\"ENSG00000108774\",\"ENSG00000147065\",\"ENSG00000196735\",\"ENSG00000244509\",\"ENSG00000229833\",\"ENSG00000115525\",\"ENSG00000106803\",\"ENSG00000126226\",\"ENSG00000140848\",\"ENSG00000145782\",\"ENSG00000125735\",\"ENSG00000218357\",\"ENSG00000090520\",\"ENSG00000134242\",\"ENSG00000261971\",\"ENSG00000104951\",\"ENSG00000143013\",\"ENSG00000125821\",\"ENSG00000168918\",\"ENSG00000116741\",\"ENSG00000182568\",\"ENSG00000130748\",\"ENSG00000125462\",\"ENSG00000104267\",\"ENSG00000158717\",\"ENSG00000107521\",\"ENSG00000175066\",\"ENSG00000170035\",\"ENSG00000152582\",\"ENSG00000213563\",\"ENSG00000107077\",\"ENSG00000106348\",\"ENSG00000172116\",\"ENSG00000102317\",\"ENSG00000136250\",\"ENSG00000168899\",\"ENSG00000143870\",\"ENSG00000107968\",\"ENSG00000161533\",\"ENSG00000175274\",\"ENSG00000124181\",\"ENSG00000162639\",\"ENSG00000163171\",\"ENSG00000196504\",\"ENSG00000169740\",\"ENSG00000185475\",\"ENSG00000123146\",\"ENSG00000166794\",\"ENSG00000110934\",\"ENSG00000224470\",\"ENSG00000066379\",\"ENSG00000197530\",\"ENSG00000136770\",\"ENSG00000128928\",\"ENSG00000231925\",\"ENSG00000183734\",\"ENSG00000110852\",\"ENSG00000240204\",\"ENSG00000204161\",\"ENSG00000167083\",\"ENSG00000101294\",\"ENSG00000211695\",\"ENSG00000080493\",\"ENSG00000082153\",\"ENSG00000126838\",\"ENSG00000115085\",\"ENSG00000275066\",\"ENSG00000107438\",\"ENSG00000044574\",\"ENSG00000203747\",\"ENSG00000104324\",\"ENSG00000065833\",\"ENSG00000166289\",\"ENSG00000020633\",\"ENSG00000064886\",\"ENSG00000004399\",\"ENSG00000185236\",\"ENSG00000141753\",\"ENSG00000189050\",\"ENSG00000160219\",\"ENSG00000103260\",\"ENSG00000175602\",\"ENSG00000180879\",\"ENSG00000072778\",\"ENSG00000169896\",\"ENSG00000213923\",\"ENSG00000048028\",\"ENSG00000122034\",\"ENSG00000139722\",\"ENSG00000131018\",\"ENSG00000138326\",\"ENSG00000166710\",\"ENSG00000145214\",\"ENSG00000117280\",\"ENSG00000117984\",\"ENSG00000153310\",\"ENSG00000136986\",\"ENSG00000159618\",\"ENSG00000183386\",\"ENSG00000109736\",\"ENSG00000163564\",\"ENSG00000239636\",\"ENSG00000127914\",\"ENSG00000111670\",\"ENSG00000182534\",\"ENSG00000168329\",\"ENSG00000133321\",\"ENSG00000100612\",\"ENSG00000231389\",\"ENSG00000078304\",\"ENSG00000179091\",\"ENSG00000177191\",\"ENSG00000099795\",\"ENSG00000135362\",\"ENSG00000117676\",\"ENSG00000142669\",\"ENSG00000102879\",\"ENSG00000157985\",\"ENSG00000173762\",\"ENSG00000149557\",\"ENSG00000277972\",\"ENSG00000034713\",\"ENSG00000246526\",\"ENSG00000169230\",\"ENSG00000054654\",\"ENSG00000164120\",\"ENSG00000133818\",\"ENSG00000135404\",\"ENSG00000166925\",\"ENSG00000069702\",\"ENSG00000270647\",\"ENSG00000196781\",\"ENSG00000211829\",\"ENSG00000122545\",\"ENSG00000010810\",\"ENSG00000162594\",\"ENSG00000136573\",\"ENSG00000261371\",\"ENSG00000161405\",\"ENSG00000100453\",\"ENSG00000120129\",\"ENSG00000075234\",\"ENSG00000048740\",\"ENSG00000105404\",\"ENSG00000136193\",\"ENSG00000140030\",\"ENSG00000167664\",\"ENSG00000172215\",\"ENSG00000008256\",\"ENSG00000160791\",\"ENSG00000073350\",\"ENSG00000180530\",\"ENSG00000112419\",\"ENSG00000143365\",\"ENSG00000229474\",\"ENSG00000134285\",\"ENSG00000064201\",\"ENSG00000115607\",\"ENSG00000213445\",\"ENSG00000171867\",\"ENSG00000139370\",\"ENSG00000087086\",\"ENSG00000182472\",\"ENSG00000196154\",\"ENSG00000182173\",\"ENSG00000047365\",\"ENSG00000107331\",\"ENSG00000189409\",\"ENSG00000204397\",\"ENSG00000109943\",\"ENSG00000103254\",\"ENSG00000140280\",\"ENSG00000196954\",\"ENSG00000138835\",\"ENSG00000027869\",\"ENSG00000169554\",\"ENSG00000145819\",\"ENSG00000159674\",\"ENSG00000121966\",\"ENSG00000067182\",\"ENSG00000167315\",\"ENSG00000114423\",\"ENSG00000150867\",\"ENSG00000170315\",\"ENSG00000154451\",\"ENSG00000030419\",\"ENSG00000205336\",\"ENSG00000167004\",\"ENSG00000160593\",\"ENSG00000178607\",\"ENSG00000136167\",\"ENSG00000116667\",\"ENSG00000068028\",\"ENSG00000148175\",\"ENSG00000129667\",\"ENSG00000151883\",\"ENSG00000169583\",\"ENSG00000080546\",\"ENSG00000073861\",\"ENSG00000281103\",\"ENSG00000181036\",\"ENSG00000265206\",\"ENSG00000150991\",\"ENSG00000237248\",\"ENSG00000137501\",\"ENSG00000111679\",\"ENSG00000189067\",\"ENSG00000150045\",\"ENSG00000115604\",\"ENSG00000217555\",\"ENSG00000143669\",\"ENSG00000000938\",\"ENSG00000122223\",\"ENSG00000212907\",\"ENSG00000137441\",\"ENSG00000105329\",\"ENSG00000145287\",\"ENSG00000169252\",\"ENSG00000105963\",\"ENSG00000136213\",\"ENSG00000127314\",\"ENSG00000197956\",\"ENSG00000128294\",\"ENSG00000142102\",\"ENSG00000183918\",\"ENSG00000272282\",\"ENSG00000182621\",\"ENSG00000062524\",\"ENSG00000198763\",\"ENSG00000167851\",\"ENSG00000117281\",\"ENSG00000130402\",\"ENSG00000027697\",\"ENSG00000143774\",\"ENSG00000160307\",\"ENSG00000159884\",\"ENSG00000142173\",\"ENSG00000198821\",\"ENSG00000125148\",\"ENSG00000153395\",\"ENSG00000198727\",\"ENSG00000008517\",\"ENSG00000100219\",\"ENSG00000026751\",\"ENSG00000089692\",\"ENSG00000121716\",\"ENSG00000113758\",\"ENSG00000176485\",\"ENSG00000206503\",\"ENSG00000134308\",\"ENSG00000211689\",\"ENSG00000100450\",\"ENSG00000088179\",\"ENSG00000100385\",\"ENSG00000235162\",\"ENSG00000185697\",\"ENSG00000011600\",\"ENSG00000069974\",\"ENSG00000137752\",\"ENSG00000144136\",\"ENSG00000160255\",\"ENSG00000188042\",\"ENSG00000163754\",\"ENSG00000108798\",\"ENSG00000171604\",\"ENSG00000109906\",\"ENSG00000198840\",\"ENSG00000198888\",\"ENSG00000148362\",\"ENSG00000187118\",\"ENSG00000198886\",\"ENSG00000245105\",\"ENSG00000180739\",\"ENSG00000275302\",\"ENSG00000168229\",\"ENSG00000122862\",\"ENSG00000155366\",\"ENSG00000115523\",\"ENSG00000198899\",\"ENSG00000235576\",\"ENSG00000136950\",\"ENSG00000198938\",\"ENSG00000134539\",\"ENSG00000213719\",\"ENSG00000186654\",\"ENSG00000158050\",\"ENSG00000051523\",\"ENSG00000144290\",\"ENSG00000101474\",\"ENSG00000171476\",\"ENSG00000109861\",\"ENSG00000145220\",\"ENSG00000115738\",\"ENSG00000164483\",\"ENSG00000221869\",\"ENSG00000129968\",\"ENSG00000198712\",\"ENSG00000110651\",\"ENSG00000198804\",\"ENSG00000204475\",\"ENSG00000239713\",\"ENSG00000163508\",\"ENSG00000153563\",\"ENSG00000234745\",\"ENSG00000204525\",\"ENSG00000111796\",\"ENSG00000142347\",\"ENSG00000007264\",\"ENSG00000115956\",\"ENSG00000142634\",\"ENSG00000227191\",\"ENSG00000180644\",\"ENSG00000113088\",\"ENSG00000197540\",\"ENSG00000126264\",\"ENSG00000077984\",\"ENSG00000139187\",\"ENSG00000271503\",\"ENSG00000172543\",\"ENSG00000145649\",\"ENSG00000105374\"],\"pvals_adj\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[663]}},\"selected\":{\"id\":\"1374\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1390\",\"type\":\"UnionRenderers\"}},\"id\":\"1373\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3.1622776601683795},\"x\":{\"field\":\"logfoldchanges\"},\"y\":{\"field\":\"pvals_adj\"}},\"id\":\"1376\",\"type\":\"Scatter\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1379\",\"type\":\"GlyphRenderer\"}],\"tooltips\":[[\"logfoldchanges\",\"@{logfoldchanges}\"],[\"pvals_adj\",\"@{pvals_adj}\"],[\"gene_symbols\",\"@{gene_symbols}\"],[\"names\",\"@{names}\"]]},\"id\":\"1339\",\"type\":\"HoverTool\"},{\"attributes\":{\"dimension\":1,\"grid_line_color\":{\"value\":null},\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1355\",\"type\":\"LogTicker\"}},\"id\":\"1358\",\"type\":\"Grid\"},{\"attributes\":{\"plot\":null,\"text\":\"\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"12pt\"}},\"id\":\"1340\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1390\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3.1622776601683795},\"x\":{\"field\":\"logfoldchanges\"},\"y\":{\"field\":\"pvals_adj\"}},\"id\":\"1378\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1374\",\"type\":\"Selection\"},{\"attributes\":{\"num_minor_ticks\":10},\"id\":\"1355\",\"type\":\"LogTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":3.1622776601683795},\"x\":{\"field\":\"logfoldchanges\"},\"y\":{\"field\":\"pvals_adj\"}},\"id\":\"1377\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1347\",\"type\":\"LogScale\"},{\"attributes\":{\"callback\":null,\"end\":24.907384872436523,\"reset_end\":24.907384872436523,\"reset_start\":-26.272653579711914,\"start\":-26.272653579711914,\"tags\":[[[\"logfoldchanges\",\"logfoldchanges\",null]]]},\"id\":\"1337\",\"type\":\"Range1d\"},{\"attributes\":{\"axis_label\":\"pvals_adj\",\"bounds\":\"auto\",\"formatter\":{\"id\":\"1384\",\"type\":\"LogTickFormatter\"},\"major_label_orientation\":\"horizontal\",\"plot\":{\"id\":\"1341\",\"subtype\":\"Figure\",\"type\":\"Plot\"},\"ticker\":{\"id\":\"1355\",\"type\":\"LogTicker\"}},\"id\":\"1354\",\"type\":\"LogAxis\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1339\",\"type\":\"HoverTool\"},{\"id\":\"1359\",\"type\":\"SaveTool\"},{\"id\":\"1360\",\"type\":\"PanTool\"},{\"id\":\"1361\",\"type\":\"WheelZoomTool\"},{\"id\":\"1362\",\"type\":\"BoxZoomTool\"},{\"id\":\"1363\",\"type\":\"ResetTool\"}]},\"id\":\"1364\",\"type\":\"Toolbar\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"plot\":null,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1368\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"callback\":null,\"end\":1.3369974746895399e-61,\"reset_end\":1.3369974746895399e-61,\"reset_start\":0.04947642060914833,\"start\":0.04947642060914833,\"tags\":[[[\"pvals_adj\",\"pvals_adj\",null]]]},\"id\":\"1338\",\"type\":\"Range1d\"}],\"root_ids\":[\"1341\"]},\"title\":\"Bokeh Application\",\"version\":\"1.0.4\"}};\n", - " var render_items = [{\"docid\":\"cb9baba0-76ba-4e6d-b415-76e76a2b60f4\",\"roots\":{\"1341\":\"51835a4c-3be0-4d67-9f65-123ac579f78d\"}}];\n", - " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", - "\n", - " }\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " } else {\n", - " var attempts = 0;\n", - " var timer = setInterval(function(root) {\n", - " if (root.Bokeh !== undefined) {\n", - " embed_document(root);\n", - " clearInterval(timer);\n", - " }\n", - " attempts++;\n", - " if (attempts > 100) {\n", - " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", - " clearInterval(timer);\n", - " }\n", - " }, 10, root)\n", - " }\n", - "})(window);" - ], - "application/vnd.holoviews_exec.v0+json": "", - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - "
" - ], - "text/plain": [ - ":Scatter [logfoldchanges] (pvals_adj,gene_symbols,names)" - ] - }, - "execution_count": 23, - "metadata": { - "application/vnd.holoviews_exec.v0+json": { - "id": "1341" - } - }, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Simple interactive volcano plot with hover over\n", "de_df.hvplot.scatter(\n", - " \"logfoldchanges\", \"pvals_adj\", \n", + " \"logfoldchanges\", \"pvals_adj\",\n", " flip_yaxis=True, logy=True, \n", " hover_cols=[\"gene_symbols\", \"names\"], # Adds variable to be shown in hover over\n", - " size=10\n", + " size=10, padding=(0.05,0.05)\n", ")" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But we can go beyond hover-over. You'll have to be actually running the notebook for this one to work. Try selecting some points with the lasso tool in the next plot, then running the following cell:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from holoviews.streams import Selection1D\n", + "\n", + "volcano = de_df.hvplot.scatter(\n", + " \"logfoldchanges\", \"pvals_adj\",\n", + " flip_yaxis=True, logy=True, \n", + " hover_cols=[\"gene_symbols\", \"names\"], # Adds variable to be shown in hover over\n", + " size=10, padding=(0.05,0.05),\n", + " tools=[\"lasso_select\"]\n", + ")\n", + "\n", + "sel = Selection1D(source=volcano)\n", + "\n", + "volcano" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "de_df.iloc[sel.index][\"gene_symbols\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From 1524fce6dc43c5b04206235688bfec52bfa4ad07 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 10:04:38 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- external-plotting-tools.ipynb | 51 ++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/external-plotting-tools.ipynb b/external-plotting-tools.ipynb index 7cbf151..cf968f0 100644 --- a/external-plotting-tools.ipynb +++ b/external-plotting-tools.ipynb @@ -1501,7 +1501,6 @@ "import scanpy as sc\n", "\n", "import seaborn as sns\n", - "import hvplot.pandas\n", "\n", "sc.logging.print_versions()" ] @@ -1513,6 +1512,7 @@ "outputs": [], "source": [ "from pathlib import Path\n", + "\n", "DATAPTH = Path(\"./data/pbmc_1k_v3_filtered_feature_bc_matrix.h5\")\n", "CACHEDIR = Path(\"./cache\")\n", "\n", @@ -1698,7 +1698,9 @@ "metadata": {}, "outputs": [], "source": [ - "pbmcs.obs.hvplot.scatter(\"log1p_n_genes_by_counts\", \"log1p_total_counts\", width=500, height=400)" + "pbmcs.obs.hvplot.scatter(\n", + " \"log1p_n_genes_by_counts\", \"log1p_total_counts\", width=500, height=400\n", + ")" ] }, { @@ -1743,7 +1745,7 @@ "pbmcs = pbmcs[pbmcs.obs[\"log1p_n_genes_by_counts\"] > 6.5, :]\n", "pbmcs = pbmcs[pbmcs.obs[\"log1p_total_counts\"] > 8, :].copy()\n", "\n", - "sc.pp.filter_genes(pbmcs, min_counts=1) # Remove genes with no counts" + "sc.pp.filter_genes(pbmcs, min_counts=1) # Remove genes with no counts" ] }, { @@ -1812,7 +1814,7 @@ "outputs": [], "source": [ "# Cluster\n", - "sc.tl.leiden(pbmcs, resolution=.8)" + "sc.tl.leiden(pbmcs, resolution=0.8)" ] }, { @@ -1829,7 +1831,12 @@ "outputs": [], "source": [ "sc.pl.umap(pbmcs, color=[\"leiden\"], legend_loc=\"on data\")\n", - "sc.pl.umap(pbmcs, color=[\"CST3\", \"NKG7\", \"IL7R\", \"MS4A1\"], gene_symbols=\"gene_symbols\", use_raw=False) # Some markers for quick validation" + "sc.pl.umap(\n", + " pbmcs,\n", + " color=[\"CST3\", \"NKG7\", \"IL7R\", \"MS4A1\"],\n", + " gene_symbols=\"gene_symbols\",\n", + " use_raw=False,\n", + ") # Some markers for quick validation" ] }, { @@ -1854,11 +1861,15 @@ "source": [ "import pandas as pd\n", "\n", + "\n", "def rank_genes_groups_df(\n", - " adata, group: str, pval_cutoff: float = 0.05, logfc_cutoff: float = None, gene_symbols: str = None\n", + " adata,\n", + " group: str,\n", + " pval_cutoff: float = 0.05,\n", + " logfc_cutoff: float = None,\n", + " gene_symbols: str = None,\n", "):\n", - " \"\"\"Turn results of `rank_genes_groups` into a dataframe.\n", - " \"\"\"\n", + " \"\"\"Turn results of `rank_genes_groups` into a dataframe.\"\"\"\n", " d = pd.DataFrame()\n", " for k in [\"scores\", \"names\", \"logfoldchanges\", \"pvals\", \"pvals_adj\"]:\n", " d[k] = adata.uns[\"rank_genes_groups\"][k][group]\n", @@ -1877,7 +1888,9 @@ "metadata": {}, "outputs": [], "source": [ - "sc.tl.rank_genes_groups(pbmcs, groupby=\"leiden\", groups=[\"2\"], reference=\"4\", n_genes=pbmcs.shape[1])\n", + "sc.tl.rank_genes_groups(\n", + " pbmcs, groupby=\"leiden\", groups=[\"2\"], reference=\"4\", n_genes=pbmcs.shape[1]\n", + ")\n", "de_df = rank_genes_groups_df(pbmcs, \"2\", gene_symbols=\"gene_symbols\")" ] }, @@ -1898,10 +1911,13 @@ "source": [ "# Simple interactive volcano plot with hover over\n", "de_df.hvplot.scatter(\n", - " \"logfoldchanges\", \"pvals_adj\",\n", - " flip_yaxis=True, logy=True, \n", + " \"logfoldchanges\",\n", + " \"pvals_adj\",\n", + " flip_yaxis=True,\n", + " logy=True,\n", " hover_cols=[\"gene_symbols\", \"names\"], # Adds variable to be shown in hover over\n", - " size=10, padding=(0.05,0.05)\n", + " size=10,\n", + " padding=(0.05, 0.05),\n", ")" ] }, @@ -1921,11 +1937,14 @@ "from holoviews.streams import Selection1D\n", "\n", "volcano = de_df.hvplot.scatter(\n", - " \"logfoldchanges\", \"pvals_adj\",\n", - " flip_yaxis=True, logy=True, \n", + " \"logfoldchanges\",\n", + " \"pvals_adj\",\n", + " flip_yaxis=True,\n", + " logy=True,\n", " hover_cols=[\"gene_symbols\", \"names\"], # Adds variable to be shown in hover over\n", - " size=10, padding=(0.05,0.05),\n", - " tools=[\"lasso_select\"]\n", + " size=10,\n", + " padding=(0.05, 0.05),\n", + " tools=[\"lasso_select\"],\n", ")\n", "\n", "sel = Selection1D(source=volcano)\n",