{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "937ac162", "metadata": {}, "source": [ "# Batch Effect" ] }, { "attachments": {}, "cell_type": "markdown", "id": "35707318", "metadata": {}, "source": [ "This part shows how to integrate data of different batches. As integration works by adjusting the principal components, this function should be performed after PCA." ] }, { "attachments": {}, "cell_type": "markdown", "id": "fee5a4e2", "metadata": {}, "source": [ "## Integration" ] }, { "attachments": {}, "cell_type": "markdown", "id": "6737256d", "metadata": {}, "source": [ "### Reading data" ] }, { "attachments": {}, "cell_type": "markdown", "id": "e8d6432c", "metadata": {}, "source": [ "Two batches of experiment data stored in GEM files are uesd here, which are lasso results from their original GEF file.\n", "\n", "Please download our [example data](http://upload.dcs.cloud:8090/share/bb6fab82-2c16-46b2-a95e-6931338f31bf)." ] }, { "cell_type": "code", "execution_count": 1, "id": "3461a894-fee1-4d67-b426-c797f2e748e2", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:10:50.924405Z", "start_time": "2023-02-13T09:06:28.613395Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:01:03.801480Z", "iopub.status.busy": "2024-05-08T08:01:03.800457Z", "iopub.status.idle": "2024-05-08T08:01:14.776362Z", "shell.execute_reply": "2024-05-08T08:01:14.775496Z", "shell.execute_reply.started": "2024-05-08T08:01:03.801393Z" } }, "outputs": [ { "data": { "application/javascript": "(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 if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {'gridstack': 'https://cdn.jsdelivr.net/npm/gridstack@4.2.5/dist/gridstack-h5', 'notyf': 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min'}, 'shim': {'gridstack': {'exports': 'GridStack'}}});\n require([\"gridstack\"], function(GridStack) {\n\twindow.GridStack = GridStack\n\ton_load()\n })\n require([\"notyf\"], function() {\n\ton_load()\n })\n root._bokeh_is_loading = css_urls.length + 2;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n } if (((window['GridStack'] !== undefined) && (!(window['GridStack'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/gridstack/gridstack@4.2.5/dist/gridstack-h5.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } if (((window['Notyf'] !== undefined) && (!(window['Notyf'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.holoviz.org/panel/0.14.4/dist/bundled/notificationarea/notyf@3/notyf.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n } for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) >= 0) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js\", \"https://unpkg.com/@holoviz/panel@0.14.4/dist/panel.min.js\"];\n var js_modules = [];\n var css_urls = [\"https://cdn.holoviz.org/panel/0.14.4/dist/css/card.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/loading.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/debugger.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/dataframe.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/widgets.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/json.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/markdown.css\", \"https://cdn.holoviz.org/panel/0.14.4/dist/css/alerts.css\"];\n var inline_js = [ function(Bokeh) {\n inject_raw_css(\"\\n .bk.pn-loading.arc:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\\\");\\n background-size: auto calc(min(50%, 400px));\\n }\\n \");\n }, function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, js_modules, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));", "application/vnd.holoviews_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\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 } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\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 } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \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 var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\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 } else 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].childNodes[1].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/**\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 var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else 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", "application/vnd.holoviews_load.v0+json": "" }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import stereo as st\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 2, "id": "1cffc9b8-8182-483e-9735-cf1cd68ab2cf", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:10:50.924405Z", "start_time": "2023-02-13T09:06:28.613395Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:01:14.777884Z", "iopub.status.busy": "2024-05-08T08:01:14.777285Z", "iopub.status.idle": "2024-05-08T08:03:23.659780Z", "shell.execute_reply": "2024-05-08T08:03:23.658813Z", "shell.execute_reply.started": "2024-05-08T08:01:14.777858Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:02:18][Stereo][244929][MainThread][140462125991744][reader][159][INFO]: the martrix has 10762 cells, and 24687 genes.\n", "[2024-05-08 04:03:22][Stereo][244929][MainThread][140462125991744][reader][159][INFO]: the martrix has 10464 cells, and 24966 genes.\n" ] } ], "source": [ "input_file_1 = '../data/SS200000132BR_A1.bin1.Lasso.gem.gz'\n", "input_file_2 = '../data/SS200000132BR_A2.bin1.Lasso.gem.gz'\n", "\n", "data1 = st.io.read_gem(input_file_1)\n", "data2 = st.io.read_gem(input_file_2)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "292d687b", "metadata": {}, "source": [ "### Preprocessing" ] }, { "attachments": {}, "cell_type": "markdown", "id": "577590c1", "metadata": {}, "source": [ "Before integrating batches, we need to do basic preprocessing for each batch, including quality control and filtering." ] }, { "cell_type": "code", "execution_count": 3, "id": "f5d289d6", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:10:51.527836Z", "start_time": "2023-02-13T09:10:50.928855Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:03:23.661607Z", "iopub.status.busy": "2024-05-08T08:03:23.661354Z", "iopub.status.idle": "2024-05-08T08:03:24.720340Z", "shell.execute_reply": "2024-05-08T08:03:24.719616Z", "shell.execute_reply.started": "2024-05-08T08:03:23.661585Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:03:23][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run cal_qc...\n", "[2024-05-08 04:03:24][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: cal_qc end, consume time 0.5445s.\n", "[2024-05-08 04:03:24][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run cal_qc...\n", "[2024-05-08 04:03:24][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: cal_qc end, consume time 0.5038s.\n" ] } ], "source": [ "data1.tl.cal_qc()\n", "data2.tl.cal_qc()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "8d29bd61", "metadata": {}, "source": [ "Draw scatter plots to observe the distribution, and set appropriate parameters. Filter cells or genes by `st.tl.filter_cells` or `st.tl.filter_genes`." ] }, { "cell_type": "code", "execution_count": 4, "id": "782f27e0", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:11:02.416339Z", "start_time": "2023-02-13T09:10:51.530537Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:03:24.721538Z", "iopub.status.busy": "2024-05-08T08:03:24.721342Z", "iopub.status.idle": "2024-05-08T08:03:25.410451Z", "shell.execute_reply": "2024-05-08T08:03:25.409693Z", "shell.execute_reply.started": "2024-05-08T08:03:24.721520Z" } }, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ "Column\n", " [0] Markdown(str)\n", " [1] Row\n", " [0] TextInput(name='file name', placeholder='Enter a file name...', width=200)\n", " [1] Select(name='file format', options=['png', 'pdf'], value='png', width=60)\n", " [2] IntInput(name='dpi', placeholder='Enter the dip...', start=0, value=100, width=200)\n", " [2] Row\n", " [0] Button(button_type='primary', name='export', width=100)\n", " [1] StaticText(width=800)" ] }, "execution_count": 4, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1002" } }, "output_type": "execute_result" }, { "data": { "image/png": "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AHwUl+F4DgEJAAAAAABewOgQ38JdbAAAAC7w4osvymazafz48fZlZ86c0dixY1WrVi1VrVpVgwcPVnp6usPzUlNTNWDAAFWuXFl169bVo48+qvPnzzu0Wbt2rTp06KCgoCBddtllmjt3rgf2CADgK2JjY0s0IoQAxbMISAAAAP6/7777Tm+//bbatGnjsHzChAn6/PPPtWjRIn3zzTc6fPiwbr75Zvv6nJwcDRgwQGfPntXGjRs1b948zZ07V88884y9zf79+zVgwAD16NFD27Zt0/jx43X33Xfryy+/9Nj+AQCAghGQAAAASMrKytLQoUM1a9Ys1ahRw748IyND7733nqZNm6aePXsqKipKc+bM0caNG7Vp0yZJ0ldffaWffvpJH374odq1a6f+/fvr2Wef1YwZM3T27FlJ0syZM9W4cWO98soratGihcaNG6dbbrlF06dP98r+AgAARwQkAAAAksaOHasBAwaod+/eDstTUlJ07tw5h+XNmzdXw4YNlZSUJElKSkpS69atFRoaam/Tt29fZWZmaufOnfY2F2+7b9++9m04k52drczMTIcfAIB3xMXFOfzAfJikFQAAWN7ChQv1/fff67vvvsu3Li0tTYGBgapevbrD8tDQUKWlpdnbXBiO5K3PW1dYm8zMTP3999+qVKlSvteOj4/nJBwATODi93Ju3+ubCEgAAIClHTx4UA899JASEhJUsWJFb5fjYOLEiYqJibE/zszMVEREhBcrAgAUxlnoUdxJWbmdr/cRkAAAAEtLSUnR0aNH1aFDB/uynJwcrVu3Tm+++aa+/PJLnT17VidOnHAYRZKenq6wsDBJUlhYmLZs2eKw3by73FzY5uI736Snpys4ONjp6BFJCgoKUlBQUJn3EQDgPQWNFCEQ8T0EJAAAwNJ69eql7du3Oyy766671Lx5cz3++OOKiIhQhQoVlJiYqMGDB0uSdu3apdTUVEVHR0uSoqOj9fzzz+vo0aOqW7euJCkhIUHBwcFq2bKlvc3KlSsdXichIcG+DQCA/yrp5TJ57QlJfAsBCQAAsLRq1aqpVatWDsuqVKmiWrVq2ZePGTNGMTExqlmzpoKDg/Xggw8qOjpanTp1kiT16dNHLVu21PDhwzVlyhSlpaXpqaee0tixY+0jQO6//369+eabeuyxxzR69GitWbNGn3zyiVasWOHZHQYA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Xtt3oLTi4uKcniMWFdxwXgnAV5lyktaVK1eqWbNmeuWVV/KFI5JUoUIFTZ06Vc2aNdPy5cu9UCEAACiJ06dPKzU1VadOnXJYfvz4cT3xxBO6/vrr9a9//Uv79u0r1fbfeustZWRkqHv37qpXr5795+OPP7a3mT59uq6//noNHjxYXbt2VVhYmJYsWWJfX65cOS1fvlzlypVTdHS0hg0bphEjRmjy5Mn2No0bN9aKFSuUkJCgtm3b6pVXXtG7777LLX4BAPABphxBcuTIEfvw14LYbDZ16NBB//3vfz1UFQAAKK1nn31WU6ZM0ZYtWxQVFSXpn1vgdurUSXv37rXPNbZ48WL98MMPJb58Nu/5halYsaJmzJihGTNmFNgmMjIy3yU0F+vevbu2bt1aovoAyfuX1ACA2ZlyBElwcLAOHjxYZLuDBw8qODjYLTXkzXly8c/YsWOdtp87d26+thUrVnRLbQAA+Js1a9bo0ksvtYcjkvThhx9qz5496tGjh7788kv93//9n44dO6bp06d7sVIAAOCvTDmCJDo6WsuXL9eKFSs0YMAAp21Wrlypb7/9VgMHDnRLDd99951ycnLsj3fs2KFrr71Wt956a4HPCQ4O1q5du+yP8+6442lcFwoA8DWpqanq0KGDw7LPPvtMNptNc+bMUUREhK699lqtWrVKX3zxhaZMmeKlSgEAgL8yZUDyxBNPaOXKlbrpppt0++23684771SjRo0kSb/99psWLFighQsXKiAgQE888YRbaqhTp47D4xdffFGXXnqpunXrVuBzbDab/TaAAADgf44fP+5we13DMLRhwwa1adNGERER9uVt27bVl19+6YUKAffyxctrSvKlGl/AAfAHpgxIoqOjNWfOHN1333366KOPNH/+fIf1hmGoUqVKevvtt+0zz7vT2bNn9eGHHyomJqbQUSFZWVmKjIxUbm6uOnTooBdeeEGXX355ge2zs7OVnZ1tf5yZmenSugEA8BVhYWHav3+//XFKSoqOHz+u4cOHO7Tz1uhLwOp8McABgJIyZUAiScOGDVP37t01a9YsbdiwQYcPH5YkhYeH65prrtGYMWMcvnFyp2XLlunEiRMaNWpUgW2aNWum2bNnq02bNsrIyNDLL7+szp07a+fOnWrQoIHT58THx7utM7p4u6T+AABvateunZYvX65ly5apV69eevbZ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hwAAiyIggaVxnbH/seqlWwDca926dZo6dapSUlJ05MgRLV26VIMGDbKvNwxDsbGxmjVrlk6cOKGrr75ab731lpo0aWJv89dff+nBBx/U559/roCAAA0ePFivvfaaqlatam/z448/auzYsfruu+9Up04dPfjgg3rsscc8uasopoLOC+h3AMC8uMQGHuOLAURcXJz9BwBgXadOnVLbtm01Y8YMp+unTJmi119/XTNnztTmzZtVpUoV9e3bV2fOnLG3GTp0qHbu3KmEhAQtX75c69at07333mtfn5mZqT59+igyMlIpKSmaOnWqJk2apHfeecft+2d2nurHCUcAwNwYQQLLsXIYcuG+F3SSxwgNAFbUv39/9e/f3+k6wzD06quv6qmnntKNN94oSXr//fcVGhqqZcuW6Y477tDPP/+sVatW6bvvvtMVV1whSXrjjTd03XXX6eWXX1Z4eLg++ugjnT17VrNnz1ZgYKAuv/xybdu2TdOmTXMIUlAyVu7XAQCuRUCCUivsw7a7blsL1/HWvC3MFwPA3+zfv19paWnq3bu3fVlISIg6duyopKQk3XHHHUpKSlL16tXt4Ygk9e7dWwEBAdq8ebNuuukmJSUlqWvXrgoMDLS36du3r1566SUdP35cNWrUyPfa2dnZys7Otj/OzMx0014iD30SAFgXAQmKJe9koaDQI295cU8qXP0hmUDGNTiGAJBfWlqaJCk0NNRheWhoqH1dWlqa6tat67C+fPnyqlmzpkObxo0b59tG3jpnAUl8fDzvzYVwx7EpzmhLAIA5EZDANDiJsQb+PwOwkokTJyomJsb+ODMzUxEREV6sCAAA8yIggdv40gdZvn3zLo4/AH8WFhYmSUpPT1e9evXsy9PT09WuXTt7m6NHjzo87/z58/rrr7/szw8LC1N6erpDm7zHeW0uFhQUpKCgIJfsBwAAKBwBCdzGW5N98mG8aMW9JKk47XwpCAMAd2jcuLHCwsKUmJhoD0QyMzO1efNmPfDAA5Kk6OhonThxQikpKYqKipIkrVmzRrm5uerYsaO9zb///W+dO3dOFSpUkCQlJCSoWbNmTi+vQeHo7wEArkZAAo/hRMazCgs34uLiHIINb/y/IVgB4EuysrK0d+9e++P9+/dr27Ztqlmzpho2bKjx48frueeeU5MmTdS4cWM9/fTTCg8P16BBgyRJLVq0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lkdAAqdmzJihRo0aqWLFiurYsaO2bNni7ZJcJj4+XldeeaWqVaumunXratCgQdq1a5dDmzNnzmjs2LGqVauWqlatqsGDBys9Pd2hTWpqqgYMGKDKlSurbt26evTRR3X+/HmHNmvXrlWHDh0UFBSkyy67THPnznX37rnMiy++KJvNpvHjx9uXWfm4HDp0SMOGDVOtWrVUqVIltW7dWsnJyfb1hmHomWeeUb169VSpUiX17t1be/bscdjGX3/9paFDhyo4OFjVq1fXmDFjlJWV5dDmxx9/1DXXXKOKFSsqIiJCU6ZM8cj+lUZOTo6efvppNW7cWJUqVdKll16qZ599VhfO/W2V47Ju3ToNHDhQ4eHhstlsWrZsmcN6Tx6HRYsWqXnz5qpYsaJat26tlStXunx/YQ709dbt0y5Ef/8/9PXO0d//g77eIgzgIgsXLjQCAwON2bNnGzt37jTuueceo3r16kZ6erq3S3OJvn37GnPmzDF27NhhbNu2zbjuuuuMhg0bGllZWfY2999/vxEREWEkJiYaycnJRqdOnYzOnTvb158/f95o1aqV0bt3b2Pr1q3GypUrjdq1axsTJ060t/n111+NypUrGzExMcZPP/1kvPHGG0a5cuWMVatWeXR/S2PLli1Go0aNjDZt2hgPPfSQfblVj8tff/1lREZGGqNGjTI2b95s/Prrr8aXX35p7N27197mxRdfNEJCQoxly5YZP/zwg3HDDTcYjRs3Nv7++297m379+hlt27Y1Nm3aZKxfv9647LLLjCFDhtjXZ2RkGKGhocbQoUONHTt2GAsWLDAqVapkvP322x7d3+J6/vnnjVq1ahnLly839u/fbyxatMioWrWq8dprr9nbWOW4rFy50vj3v/9tLFmyxJBkLF261GG9p47Dt99+a5QrV86YMmWK8dNPPxlPPfWUUaFCBWP79u1uPwbwL/T11u3TLkR//z/09QWjv/8Hfb01EJAgn6uuusoYO3as/XFOTo4RHh5uxMfHe7Eq9zl69Kghyfjmm28MwzCMEydOGBUqVDAWLVpkb/Pzzz8bkoykpCTDMP55gwwICDDS0tLsbd566y0jODjYyM7ONgzDMB577DHj8ssvd3it22+/3ejbt6+7d6lMTp48aTRp0sRISEgwunXrZj9hsvJxefzxx40uXboUuD43N9cICwszpk6dal924sQJ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xYoVbttv+Df6euv2aRejv/8Hfb1z9Pf/oK+3BpthGIbnxqsAAAAAAAD4HuYgAQAAAAAAlkdAAgAAAAAALI+ABAAAAAAAWB4BCQAAAAAAsDwCEgAAAAAAYHkEJAAAAAAAwPIISAAAAAAAgOURkAAAAAAAAMsjIAFgKmvXrpXNZtOoUaO8XQoAAHAD+noA7kJAAqBYDhw4IJvNpu7du7tsm5zguNbcuXNls9k0adIkb5cCAPBD9PW+j74ecC8CEgAAAAAAYHkEJAAAAAAAwPIISAAUadKkSWrcuLEk6ZtvvpHNZrP/XDxk9qefftLQoUNVr149BQYGqn79+hoxYoR27drl0G7UqFHq0aOHJGnevHkO27xw2OiKFSs0evRotWjRQsHBwapSpYratm2rF154QdnZ2S7bx1OnTumll17SFVdcYX+d5s2ba+zYsdq9e3e+9h988IG6dOmi4OBgVa5cWW3atFF8fLzOnDmTr2337t1ls9l04MCBfOsKGs48adIk2Ww2zZ07V9u3b9cNN9ygGjVqqEqVKurWrZs2btyY7zXuuusuSVJcXJzD8Zw7d6693caNGzVo0CBFRkYqKChIYWFhuuqqq/TEE08oKyur5AcOAGAK9PX09QCk8t4uAIDva9eunQYPHqz//ve/Cg0NVb9+/ezrunTpYv93YmKiBg4cqL///lvt27dX9+7d9csvv+iDDz7Q0qVLtXLlSl1zzTX256WlpenLL7/UpZde6rCddu3a2f89ZswY/f3332rVqpXatGmjjIwMbdmyRf/+97+VmJior776SuXKlSvT/h05ckTXXnutdu7cqRo1aqh79+4KCgrSr7/+qpkzZ6pJkyZq2rSpvf19992nd955RxUrVlTPnj1VuXJlrV27Vk8++aQ+//xzrV69WpUrVy5TTXmSk5M1duxYXXrpperbt69++eUXrVu3Tr169dJ3332nVq1aSZL69eun8+fP69tvv1Xbtm0djuFll10mSfr88881aNAgGYahq666Sp07d9aJEye0Z88evfTSS7r//vtVtWpVl9QNAPAv9PX09QAkGQBQDPv37zckGd26dXO6PisrywgNDTUkGW+++abDumnTphmSjAYNGhh///23ffnXX39tSDJGjhxZ4OsuW7bMOH36tMOyzMxM4/rrrzckGfPmzXNYV5xtXqxXr16GJOO2224zTp486bBu//79xg8//GB/vHjxYkOSER4ebuzevdu+/MSJE0aXLl0MScbDDz/ssI1u3boZkoz9+/fne+2CjmtsbKwhyZBkvPbaaw7rxo8fb0gyhg8f7rB8zpw5hiQjNjbW6X527drVkGQsXrw437otW7YYmZmZTp8HALAG+vp/0NcD1sUlNgBc4pNPPlF6erqio6M1duxYh3UTJkxQVFSUfv/9d/33v/8t0XZvvPFGVapUyWFZtWrVNH36dEnSp59+Wqa6t2zZosTERNWtW1fvvvtuvm9VGjVqpDZt2tgfv/7665Kk2NhYNWnSxL48JCREM2bMkM1m09tvv+10+G1pXH311fq///s/h2VPPfWUJGndunUl2tYff/whSerdu3e+dVdeeaWqVatWyioBAFZAX09fD5gdl9gAcIn169dLkoYOHep0/bBhw5SSkqL169cX2KYge/bs0cqVK7V3716dOnVKubm5MgzDvq4sVq9eLUkaMmRIkScN586d06ZNmyQ53882bdqoTZs2+uGHH7Rt2zZ16tSpTLVJUp8+ffItq1WrlmrWrKkjR46UaFtRUVH6+eefNXz4cD399NOKiopSQAA5OQCgeOjr6esBsyMgAeAShw8flvTPtzDO5C0/dOhQsbdpGIYeeeQRTZ8+3X6SdLGTJ0+WqM6LHTx4UJJ06aWXFtn2zz//1NmzZ1W7dm1VqVLFaZtGjRrphx9+KNF+FqZBgwZOl1erVk1//fVXibb1wgsvaPv27fr888/1+eefq0aNGurSpYtuuOEGDRs2TBUrVnRFyQAAk6Kv/wd9PWBexIkAPMJms5X4OR9//LGmTZumBg0aaPHixTp06JDOnj0rwzDss9oXdDLlLSXdz9zc3ELXu/Jbn4iICCUnJ+vLL7/Ugw8+qIiICH3++ee655571KZNG/35558uey0AgPXQ1ztHXw/4DwISAC4RHh4uSfrtt9+crs+77V39+vWLvc2lS5dKkt566y0NHjxY4eHhqlChgiTp119/LUO1/xMRESFJ2rdvX5Fta9WqpcDAQB07dkynTp1y2sbZfgYGBkqS01vr5X2r5Snly5dXnz599Prrr+uHH37QgQMH1LNnT/vs9gAAFIS+/h/09YB5EZAAKJa8jv/8+fNO1+fd0m/BggVO13/44YcO7YqzzePHj0tyPvT0k08+KU7ZRcqbxGzBggVOT2ouVKFCBfu1xgsXLsy3fseOHfrhhx9UtWpVh1vv1atXT5K0e/fufM9JSEgoben5FHU8nYmMjNTjjz8u6Z/6AQDWRV9PXw9YHQEJgGKpXbu2KlSooH379iknJyff+ttuu02hoaHasGGD3nnnHYd1r7/+upKTk1W/fn0NHjzYvjzvm6hdu3Y5fc2mTZtKkt555x2H4bXr16/X1KlTy7xPknTVVVepR48eOnr0qO6999583xYdOHBA27dvtz9+8MEHJUmTJk1y+Gbr5MmTGjdunAzD0H333edwjW+3bt0kSa+88opOnz5tX75mzRq9+uqrLtkPqejjOX36dKWlpeVbvnLlSkn/+4YNAGBN9PX/oK8HLMwb9xYG4J8GDhxoSDIuv/xyY/jw4caYMWOM2bNn29evXr3aqFSpkiHJiIqKMoYMGWK0b9/ekGRUrVrVWLduXb5ttmnTxpBkXHnllcaoUaOMMWPGGJ9++qlhGIaxa9cuo0qVKoYko2XLlsYdd9xhXHPNNYbNZjMeeeQRQ5IRGRnpsL2vv/7akGSMHDmy2Pv1+++/G82aNTMkGTVr1jRuuOEG49ZbbzU6dOhgBAQEGNOnT3dof++99xqSjEqVKhkDBgwwbr31VqNOnTqGJKNTp07GqVOnHNqfPn3avv2GDRsagwcPNjp27GgEBATY96Nbt24Oz4mNjTUkGXPmzHFac2RkpHHxW/jff/9t1K1b1769u+66yxgzZozx7bffGoZhGCEhIUZAQIDRvn1747bbbjNuvfVWo2nTpvb93r17d7GPGQDAnOjr/0FfD1gTAQmAYktPTzeGDx9uhIWFGeXKlXN6crJjxw5jyJAhRmhoqFGhQgWjXr16xrBhw4xffvnF6Tb37NljDBo0yKhVq5YREBBgSDJiY2Pt63/++Wdj4MCBRt26dY3KlSsb7du3N9555x3DMAyXnTQZhmFkZmYakydPNtq0aWNUqlTJqFq1qtG8eXNj3Lhxxp49e/K1f//9943OnTsbVatWNSpWrGhcfvnlxvPPP2+cPn3a6fZ///13Y8iQIUaNGjWMSpUqGVdccYWxaNEiY//+/S47aTIMw/juu++Ma6+91ggJCTFsNpvDNt5//33jzjvvNJo1a2ZUq1bNqFatmtGyZUsjJibG+P3330t0vAAA5kRf/z/09YD12AzDx6aFBgAAAAAA8DDmIAEAAAAAAJZHQAIAAAAAACyPgAQAAAAAAFgeAQkAAAAAALA8AhIAAAAAAGB5BCQAAAAAAMDyCEgAAAAAAIDlEZAAAAAAAADLIyABAAAAAACWR0ACAAAAAAAsj4AEAAAAAABYHgEJAAAAAACwPAISAAAAAABgeQQkAAAAAADA8ghIAAAAAACA5RGQAAAAAAAAyyMgAQAAAAAAlkdAAgAAAAAALI+ABAAAAAAAWB4BCQAAAAAAsDwCEgAAAAAAYHkEJAAAAAAAwPIISAAAAAAAgOURkAAAAAAAAMsjIAEAAAAAAJZHQAIAAAAAACyPgAQAAAAAAFgeAQkAAAAAALA8AhIAAAAAAGB5BCQAAAAAAMDyCEgAAAAAAIDlEZAAAAAAAADLIyABAAAAAACWR0ACAAAAAAAsj4AEAAAAAABYHgEJAAAAAACwPAISAAAAAABgeQQkAAAAAADA8ghIAAAAAACA5RGQAAAAAAAAyyMgAQAAAAAAlkdAAgAAAAAALI+ABAAAAAAAWB4BCQAAAAAAsDwCEgAAAAAAYHkEJAAAAAAAwPIISAAAAAAAgOURkAAAAAAAAMsjIAEAAAAAAJZHQAIAAAAAACyPgAQAAAAAAFgeAQkAAAAAALC8/wc0TdHa2rTJZQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot before filtering\n", "\n", "data1.plt.genes_count()" ] }, { "cell_type": "code", "execution_count": 5, "id": "ea50aa45", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:11:03.195407Z", "start_time": "2023-02-13T09:11:02.420407Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:03:25.411608Z", "iopub.status.busy": "2024-05-08T08:03:25.411414Z", "iopub.status.idle": "2024-05-08T08:03:25.947483Z", "shell.execute_reply": "2024-05-08T08:03:25.946753Z", "shell.execute_reply.started": "2024-05-08T08:03:25.411590Z" } }, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ "Column\n", " [0] Markdown(str)\n", " [1] Row\n", " [0] TextInput(name='file name', placeholder='Enter a file name...', width=200)\n", " [1] Select(name='file format', options=['png', 'pdf'], value='png', width=60)\n", " [2] IntInput(name='dpi', placeholder='Enter the dip...', start=0, value=100, width=200)\n", " [2] Row\n", " [0] Button(button_type='primary', name='export', width=100)\n", " [1] StaticText(width=800)" ] }, "execution_count": 5, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1013" } }, "output_type": "execute_result" }, { "data": { "image/png": "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NWvWVNWqVXXllVdmOimpw+G47IxMQQ0fPlypqamqWbOmChUqpAsXLuill15S165ds3wNM7EDAPA/W7du1ddff60qVark+bVHjhxRjx49dPjwYYWFhalu3br68ssvdcstt0iSJkyYoKCgIHXu3FlpaWlq166d/vvf/zpfX6hQIS1atEiPPfaYoqOjVaJECfXs2VOjRo1ytqlWrZoWL16swYMHa9KkSapUqZLefvtttWvXruAbD8CjGMEB2J/DGGOsLsLdDh06pJiYGO3Zs0c5bZ7D4dCFCxfc+v7z5s3TU089pXHjxum6667Ttm3bNGjQII0fP149e/bM9DUjR47MdKImf79/MQDAPlJTUxUWFlbgvuniwOBSJ0+e1J49e/TFF1/o/PnzGjdunMsEnnbirs8T8Ae+NCEpQQeQNbv0TbYMOu6//37Nnz9fMTExGjBggK666iqVLFkyy/b5OVuUnaioKA0fPlyxsbHO51588UXNnj1bP/74Y6avyWxER1RUlN//ggEA7MNdOz9BQUFyOBzZnowoXry4nnzySect4+3ILjuTQG5YGXQQbAC5Z5e+yZaXrixfvlw1atTQF198oUKFCnn9/U+fPn3ZZTKFChVSenp6lq/x9kzsmXU2dAIAAG+YMWNGlsuCg4NVsWJF3XjjjSpRooQXqwLgbr4wioP9WyAw2TLoSE9PV8OGDS0JOSTpzjvv1EsvvaTKlSvruuuu09atWzV+/Hj16dPHknoAAPAlWV3GCQAA4A62DDqaNm1qyd1WMrzxxht67rnn9Pjjj+vIkSOKjIzUo48+queff96ymgAAAABv8IWRHBKjOYBAZsug46WXXlLz5s01bdo0Pfzww15//1KlSmnixImaOHGi19/bXS7toOgoAADudvbsWX300Udas2aNDh06JEm68sorddNNN6lz584KDg62uEIAueUr4QYASDYNOnbu3KnevXurX79+mjNnjm655ZYsby8rST169PByhb4po4Mi1AAAeNq6dev04IMP6tdff71sUtI333xTw4cP19y5c9WsWTOLKgTgr9iXBWDLoKNXr17O2dxXr16tNWvWZNrOGCOHwxGQQUdGB0D6DgDwtj179uj222/XyZMn1ahRI3Xr1k1Vq1aVw+HQgQMH9N5772nLli3617/+pU2bNqlGjRpWlwwAAPyILYOO559/Xg6Hw+oyAABAJl566SWdPHlSEyZM0MCBAy9b/sQTT+j111/XoEGD9NJLL2nmzJneLxJAjjhhBsBX2TLoGDlypNUlAACALCQkJKhBgwaZhhwZnnjiCc2aNUvLly/3YmUA/B2XrQCQbBp0IPey6gzoJAAAnvL777+rVatWObarWbOmdu3a5YWKAPgz9lsBXIqgIwBkNqyQDgEAYJVy5cpp9+7dObbbs2ePypYt64WKAACAnWR+GxIAAAAPufnmm7V161ZNnTo1yzbTpk3Tli1b1KZNGy9WBiC3fGV+Dk7eAcgMIzoAAIBXPfvss/rkk08UGxurOXPm6MEHH1TVqlUlSb/88ovmzp2rtWvXqnjx4nrmmWesLRaAT8sIXAg8AFyMoCNA0SkAAKxSq1YtffbZZ+ratavWrVun9evXuyw3xig8PFxz5sxRrVq1LKoSQGZ8ZSQHAGSHoAMAAHhd27ZttW/fPn344Ydas2aNfvvtN0lSZGSkbrrpJt13330qXry4xVUCAAB/RNARADJGbZDAAwB8SfHixdWrVy/16tXL6lIAAICNEHQAAAAAyJIvnSyLi4vzqXoA+CZbBh179+5VYmKibrrpJlWrVs35/DfffKNBgwZp586dqly5sl588UXdfffdFlYKAEDg+fjjj/Xiiy9q3Lhxatu2baZtli9frqFDhyouLk4dO3b0coUAJN8KOC7GHHMAcmLLoOO1117T22+/rQMHDjifS0lJUbt27XTixAk5HA79+OOPuv/++7VhwwY1bNjQumK9iE4BAOALZsyYoV9++UUtWrTIss1NN92kAwcOaPr06QQdAAAgT2wZdKxdu1b169dXpUqVnM9Nnz5dJ06c0JAhQzR69GgtWbJEnTt31vjx4zV79mwLqwUAILBs375d9erVU0hISJZtQkJCVL9+fW3bts17hQHwOZyoA5AfQVYX4AmHDx9WlSpVXJ5bunSpQkJCNHLkSAUHB6tTp05q0qSJNmzYYFGVAAAEpiNHjigyMjLHdhUrVtSRI0e8UBEAALATW47oOHPmjAoVKuR8nJaWpk2bNqlJkyYqWbKk8/lq1app+/btVpQIAEDAKl26tA4ePJhju6SkJJd+G4B3+OrcHACQW7YMOipVqqTvvvvO+Xj58uU6c+aM2rRp49Lu77//VokSJbxdns/LrHNj2CAAwF0aN26sL774Qjt27ND111+faZsdO3YoMTFRt9xyi5erA+BL4uPj2Q8FkGe2DDratGmjt956S4MGDVLbtm01YsQIORyOyyYz27Fjh6Kioiyq0r9cGn7Q4QAA8uvxxx/XokWL1L59e40fP1733HOPy/IFCxZoyJAhSk9P1+OPP25RlUBg8YVRHNw6FoC72HKOjhEjRqh06dJ644031KlTJ33//fe67777VK9ePWebXbt26eeff1bz5s0trBQAgMBz2223afDgwfr11191//33q1y5crrxxht14403qly5crr//vv166+/asCAAbrjjjusLhcAAPgZW47oqFy5srZv3663335bv//+uxo1aqRevXq5tNm6das6duyo++67z5oiAQAIYK+99poaNGig0aNH68cff9SWLVucy2rVqqXhw4ere/fuFlYIwNsYzQHAXRzGGGN1EbhcamqqwsLCdPz4cYWGhnrlPfPSuXDpCgAEHk/1TYcPH1ZSUpIkKSoqShUrVnTbun2ZFX09cDF/CRbY7wS8xy59ky1HdPTp00ctWrRQnz59sm03c+ZMrV69WtOnT/dSZf4lo1Pxl04QAOCfKlasGDDhBoDs5+Ig1ADgDrYMOmbOnClJOQYd69at06xZswg6ckCHAwAAAADwF7acjDS3zp49q0KFClldBgAAAOA18fHxlo3YzTiBxok0AJ5kyxEduWGM0bfffqsrrrjC6lIAAACAgBAfH0/YAcDjbBN0tGnTxuXx0qVLL3suw/nz5/Xzzz8rOTmZGd0vQmcDAAAAAPB3tgk6Vq1a5fy3w+FQcnKykpOTs2xfpEgR3XHHHXr11Ve9UB0AAAAAAPAG2wQd+/fvl/TPJSlXXXWV7rnnHo0bNy7TtsHBwSpfvryKFCnizRIBAACAgHfx5SsA4Am2CTqqVKni/HdcXJwaNGjg8hwAAPANBw4cUNWqVa0uAwAA2JQt77oSFxenDh06WF0GAADIRPXq1XXbbbfpo48+0vnz560uBwAA2IxtRnRk5eDBgzp8+LDS0tKybNOyZUsvVgQAQGC7+uqr9dVXX2nZsmW64oor1KtXL/Xt21c1atSwujTAlqy6laz0zwlIK98fQGCybdAxffp0vfDCCzp48GCObS9cuOCFigAAgCTt3r1bX3/9taZNm6aPP/5YY8eO1bhx49SqVSs98sgjuvvuuxUcHGx1mQA8iHk6AHiSLYOOGTNm6KGHHpIk1alTR9dcc41KlSplcVUAACBDq1at1KpVKx07dkzvvfee3n77ba1atUpff/21ypQpox49eujhhx9WrVq1rC4VQAExqgOAt9ky6Bg/frwKFy6sBQsWMFcHAAA+rHTp0howYIAGDBigjRs3atq0afrggw80adIkTZo0Sc2aNdMjjzyi++67TyEhIVaXC/g8AgUAsGnQsXfvXrVs2ZKQ4yI5dXoMHQQAWK1x48YKCwuTw+HQ22+/LUlat26d1q9fryeffFLPPfec+vfvb3GVAADA19ky6ChbtqzKly9vdRkAACAXzpw5o/nz52vatGlat26djDGKiIhQnz591KZNG33wwQeaPXu2Bg4cqKNHj+q5556zumQAecRJNQDeZMugo2PHjlq0aJHOnTunIkWKWF2OX2BCKACAt3333XeaNm2a5syZo+PHj0uSbr75ZvXr10+dOnVS4cL/7Ka0adNGTz/9tJo2baq33nqLoAP4f/50mcqltbLfCcCTgqwuwBNGjx6tEiVKqHfv3jp69KjV5QAAgIu8/fbbatKkiRo0aKDJkyerUKFCGjx4sH788UctX75c99xzjzPkyFClShXdcsst+u233yyqGgAA+Atbjuj497//rdq1a2vu3LlavHixGjVqpEqVKiko6PJcx+Fw6J133rGgSgAAAtMjjzwiSWrWrJn69eune++9N1cTjdatW1dJSUmeLg9AATBSA4AvsGXQMXPmTOe/jx8/rhUrVmTZNlCCjsw6HX8a7ggAsI/Y2Fg9+uijqlOnTp5e9+STT+rJJ5/0UFUAAMAubBl0rFy50uoS/AKJOwDACm+88YbVJQDwgLi4uExPpMXFxbHfCcCrbBl0tGrVyuoSfBYTQQEAfMmhQ4e0du1a59wbkZGRat68uSpVqmRxZYBvY2QuAGTNlkEHci+r1B0AAE/67bff1L9/f3322WcyxrgsczgcuvPOO/XGG28QeAB+gv1HAL6EoAMAAHjVb7/9pujoaCUlJal48eK69dZbVbVqVUnSL7/8oq+++kqffvqptmzZom+++UaRkZHWFgwgSwQcAHyRLYOOQoUK5bqtw+HQ+fPnPVgNAAC42NNPP62kpCR17dpVkyZNUtmyZV2WHz16VIMGDdJ7772nZ555RjNmzLCoUsC3+OLlKhfXROgBwFfYMuiIioqSw+G47Pn09HQlJyfr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Rdu3b1eXLl2sKhMAAPipIKsL8IQVK1bo7rvv1po1a7Jss3r1at19991avXq1FysDAADNmjXTwoUL1aJFC9WsWVPdunXTZ599pqCg/+2WzJ07V6VKldJtt91mYaUAAMAf2XJEx5tvvqlly5Zp1qxZWbapX7++vvrqKxUtWlQtW7b0YnW+jUt9AADecOedd2Z7i/dBgwZp0KBB3isIAADYhi2Djo0bN6pBgwYqVapUlm1CQ0PVsGFDbdiwwYuV+beLQxB/uEwku9DGH+oHAABwN/aBAAQCWwYdycnJatasWY7toqKitHnzZi9U5N/i4uK8MtLDXyb59HRNl34OvvgZAIA7/Pnnn5o9e7Y2btyoP/74Q23bttXQoUMlSbt27dLPP/+smJgYFS9e3OJKgYJhxCwAeJct5+goUaKEUlJScmx35MgRFS1a1AsV+b74+PgsO2E6ZwCAu82fP19XXXWVhgwZorlz52r58uX68ccfncsPHTqku+66Sx9//HGe1jtmzBjdeOONKlWqlCpUqKBOnTpp9+7dLm3OnDmj2NhYlStXTiVLllTnzp0v2284ePCg2rdvr+LFi6tChQp66qmndP78eZc2q1atUsOGDRUSEqLq1atr5syZefsQAACAR9hyREeDBg20du1aHTx4UJUrV860zcGDB7VmzRpFR0d7uTrr+MuICQCAvSUmJurBBx9UaGioXnvtNbVo0UKNGzd2adO2bVuFhYXp448/Vrdu3XK97q+//lqxsbG68cYbdf78eT399NO69dZb9f3336tEiRKSpMGDB2vx4sWaP3++wsLC1L9/f919991at26dJOnChQtq3769IiIitH79eh0+fFg9evRQkSJFNHr0aEnS/v371b59e/Xr109z5sxRQkKCHnroIVWsWFHt2rVz0ycFf8aJIgCwji2Djj59+ighIUF33HGHpk+frhtuuMFl+ebNm9W3b1+dO3dOffr0sahK/5JTIBIIIQqXlACAe4wePVpBQUFatmyZGjZsmGmbQoUKqWHDhtq5c2ee1r106VKXxzNnzlSFChW0ZcsWtWzZUsePH9c777yj999/33k72xkzZqhWrVr65ptv1LRpU3311Vf6/vvvtXz5coWHh6t+/fp64YUXNGzYMI0cOVLBwcGaOnWqqlWrptdee02SVKtWLa1du1YTJkwg6AhQBBsA4DtsGXR06dJFCxcu1IIFC9SkSRPVq1dPV199tSTp559/1vbt22WM0V133aXu3btbXC0yuDs4IIgAAN+0fv16RUdHZxlyZIiIiCjwpOHHjx+XJJUtW1aStGXLFp07d04xMTHONjVr1lTlypWVmJiopk2bKjExUddff73Cw8Odbdq1a6fHHntMu3btUoMGDZSYmOiyjow22d0pJi0tTWlpac7HqampBdo2ICfsCwEIVLYMOiRp3rx5Gj16tMaPH69t27Zp27ZtzmWlS5fW4MGD9fTTT1tXoI+5tCPkrIR12CkBYHenT5/WFVdckWO7o0ePFuh90tPTNWjQIDVv3lx16tSR9M+E5cHBwSpdurRL2/DwcCUnJzvbXBxyZCzPWJZdm9TUVP39998qVqzYZfWMGTOG/hU+LRBG6AIIDLYNOoKCgvTss89q2LBh2rx5s5KSkiT9c6eVRo0aKTg42OIKfRMdHADA06688krt2rUr2zbGGO3cuVPVqlXL9/vExsZq586dWrt2bb7X4U4jRozQkCFDnI9TU1MVFRVlYUUAANiTbYOODEWKFFF0dHRATTqaFXcEFgQhAICCuu222zRlyhTNmzdPDzzwQKZt3n77bSUlJenBBx/M13v0799fixYt0urVq1WpUiXn8xERETp79qyOHTvmMqojJSVFERERzjYbN250WV/GXVkubnPpnVpSUlIUGhqa6WgOSQoJCVFISEi+tge+7+L9IV8YucP+GYBAZvugA6481fH6UmfqqTDm0h0YJicFgPwZPny43n//ffXo0UNbt27VXXfdJUk6deqUtm7dqoULF2rs2LG64oorNHjw4Dyt2xijAQMGaOHChVq1atVlI0IaNWqkIkWKKCEhQZ07d5Yk7d69WwcPHnSeFImOjtZLL72kI0eOqEKFCpKkZcuWKTQ0VLVr13a2WbJkicu6ly1bxomVAOULwQYA4H8IOgAAgFdVqlRJixcvVufOnTVu3Di9+uqrcjgcWrBggRYsWCBjjCpUqKBPP/3UGTTkVmxsrN5//319+umnKlWqlHNOjbCwMBUrVkxhYWHq27evhgwZorJlyyo0NFQDBgxQdHS0mjZtKkm69dZbVbt2bXXv3l1jx45VcnKynn32WcXGxjpHZPTr10//+c9/NHToUPXp00crVqzQhx9+qMWLF7v3wwIKiNG4AAIRQQeyFRcXx1kKAIDb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8OHDzp/Tp0872/Tr189UrlzZrFixwmzevNlER0eb6Oho5/KM27DdeuutZtu2bWbp0qXmiiuuyPQ2bE899ZT54YcfzOTJky295ZwxxmUWdmPstZ0bN240hQsXNi+99JLZu3evmTNnjilevLiZPXu2s83LL79sSpcubT799FPz3XffmY4dO2Z6u7IGDRqYDRs2mLVr15oaNWq43MLr2LFjJjw83HTv3t3s3LnTzJs3zxQvXtxrt5zr2bOnufLKK523m/v4449N+fLlzdChQ22xnSdOnDBbt241W7duNZLM+PHjzdatW52zj3tr29atW2cKFy5sXn31VfPDDz+YuLg4t96GLbvtPHv2rOnQoYOpVKmS2bZtm8v31MUzqvvDdsIe6Ot9vw+8lF37+0Dp642xd38fKH19TttKf+//CDps7o033jCVK1c2wcHBpnHjxuabb76xuqRsScr0Z8aMGc42f//9t3n88cdNmTJlTPHixc1dd91lDh8+7LKeAwcOmNtvv90UK1bMlC9f3vz73/82586dc2mzcuVKU79+fRMcHGyuuuoql/ewwqU7Pnbbzs8//9zUqVPHhISEmJo1a5q33nrLZXl6erp57rnnTHh4uAkJCTFt27Y1u3fvdmnz559/mi5dupiSJUua0NBQ07t3b3PixAmXNtu3bzctWrQwISEh5sorrzQvv/yyx7ctQ2pqqhk4cKCpXLmyKVq0qLnqqqvMM88849Ih+vN2rly5MtO/z549e3p92z788ENzzTXXmODgYHPdddeZxYsXe2U79+/fn+X31MqVK/1qO2Ef9PW+3wdezM79fSD09cbYu78PlL4+p22lv/d/DmOMcf84EQAAAAAAAO9jjg4AAAAAAGAbBB0AAAAAAMA2CDoAAAAAAIBtEHQAAAAAAADbIOgAAAAAAAC2QdABAAAAAABsg6ADAAAAAADYBkEHAJ+0atUqORwO9erVy+pSAACAh9DfA/AEgg4gwBw4cEAOh0OtW7d22zrZSXGvmTNnyuFwaOTIkVaXAgDwU/T3vo/+HvAcgg4AAAAAAGAbBB0AAAAAAMA2CDqAADJy5EhVq1ZNkvT111/L4XA4fy4dhvr999+ra9euqlixooKDg3XllVeqR48e2r17t0u7Xr166eabb5YkzZo1y2WdFw/FXLx4sfr06aNatWopNDRUJUqUUL169TR69Gil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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot before filtering\n", "\n", "data2.plt.genes_count()" ] }, { "cell_type": "code", "execution_count": 6, "id": "f85dce23", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:11:03.920800Z", "start_time": "2023-02-13T09:11:03.198636Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:03:25.950474Z", "iopub.status.busy": "2024-05-08T08:03:25.950275Z", "iopub.status.idle": "2024-05-08T08:03:26.685799Z", "shell.execute_reply": "2024-05-08T08:03:26.683750Z", "shell.execute_reply.started": "2024-05-08T08:03:25.950456Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:03:25][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run filter_cells...\n", "[2024-05-08 04:03:26][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: filter_cells end, consume time 0.3405s.\n", "[2024-05-08 04:03:26][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run filter_cells...\n", "[2024-05-08 04:03:26][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: filter_cells end, consume time 0.3792s.\n" ] }, { "data": { "text/plain": [ "StereoExpData object with n_cells X n_genes = 10448 X 24966\n", "bin_type: bins\n", "bin_size: 100\n", "offset_x = 3975\n", "offset_y = 8625\n", "cells: ['cell_name', 'total_counts', 'n_genes_by_counts', 'pct_counts_mt']\n", "genes: ['gene_name', 'n_cells', 'n_counts', 'mean_umi']\n", "result: []" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filter cells \n", "\n", "data1.tl.filter_cells(max_n_genes_by_counts=4000, pct_counts_mt=5, inplace=True)\n", "data2.tl.filter_cells(max_n_genes_by_counts=4500, pct_counts_mt=7, inplace=True)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "1e001d8f", "metadata": {}, "source": [ "### Processing on MSData\n", "\n", "Using Multi-sample data structure to process." ] }, { "cell_type": "code", "execution_count": 7, "id": "7e46c03e", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:11:05.125743Z", "start_time": "2023-02-13T09:11:03.924081Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:03:26.689093Z", "iopub.status.busy": "2024-05-08T08:03:26.688287Z", "iopub.status.idle": "2024-05-08T08:03:26.715737Z", "shell.execute_reply": "2024-05-08T08:03:26.713749Z", "shell.execute_reply.started": "2024-05-08T08:03:26.689019Z" } }, "outputs": [ { "data": { "text/plain": [ "ms_data: {'0': (10739, 24687), '1': (10448, 24966)}\n", "num_slice: 2\n", "names: ['0', '1']\n", "obs: []\n", "var: []\n", "relationship: other\n", "var_type: intersect to 0\n", "mss: []" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from stereo.core.ms_data import MSData\n", "from stereo.core.ms_pipeline import slice_generator\n", "\n", "ms_data = MSData(_data_list=[data1, data2])\n", "# you can also create ms_data by `data1 + data2`\n", "ms_data" ] }, { "attachments": {}, "cell_type": "markdown", "id": "57ff4022", "metadata": {}, "source": [ "### Normalization" ] }, { "attachments": {}, "cell_type": "markdown", "id": "74a8f2f9", "metadata": {}, "source": [ "Normalization should be finished before PCA. We usually run a combination of `normalize_total` and `log1p`." ] }, { "cell_type": "code", "execution_count": 8, "id": "8295ac1e", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:11:06.957648Z", "start_time": "2023-02-13T09:11:05.128492Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:03:26.718930Z", "iopub.status.busy": "2024-05-08T08:03:26.718185Z", "iopub.status.idle": "2024-05-08T08:03:28.497374Z", "shell.execute_reply": "2024-05-08T08:03:28.496619Z", "shell.execute_reply.started": "2024-05-08T08:03:26.718858Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:03:27][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run normalize_total\n", "[2024-05-08 04:03:27][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run normalize_total...\n", "[2024-05-08 04:03:28][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: normalize_total end, consume time 0.5252s.\n", "[2024-05-08 04:03:28][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run log1p\n", "[2024-05-08 04:03:28][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run log1p...\n", "[2024-05-08 04:03:28][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: log1p end, consume time 0.3146s.\n" ] } ], "source": [ "# Since normalization will change the expression matrix, save raw data beforehand.\n", "# data.tl.raw_checkpoint()\n", "\n", "ms_data.tl.normalize_total(scope=slice_generator[:], mode='integrate')\n", "ms_data.tl.log1p(scope=slice_generator[:], mode='integrate')" ] }, { "attachments": {}, "cell_type": "markdown", "id": "8af02406", "metadata": {}, "source": [ "### PCA" ] }, { "cell_type": "code", "execution_count": 9, "id": "abc5479e", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:14:37.809622Z", "start_time": "2023-02-13T09:11:06.960956Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:03:28.498461Z", "iopub.status.busy": "2024-05-08T08:03:28.498269Z", "iopub.status.idle": "2024-05-08T08:06:08.473220Z", "shell.execute_reply": "2024-05-08T08:06:08.472123Z", "shell.execute_reply.started": "2024-05-08T08:03:28.498442Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:03:28][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run pca\n", "[2024-05-08 04:03:28][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run pca...\n", "[2024-05-08 04:03:28][Stereo][244929][MainThread][140462125991744][dim_reduce][78][WARNING]: svd_solver: auto can not be used with sparse input.\n", "Use \"arpack\" (the default) instead.\n", "[2024-05-08 04:06:08][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: pca end, consume time 159.9640s.\n" ] } ], "source": [ "ms_data.tl.pca(scope=slice_generator[:], mode='integrate', use_highly_genes=False, n_pcs=50, res_key='pca')" ] }, { "attachments": {}, "cell_type": "markdown", "id": "32371fe0", "metadata": {}, "source": [ "### Integrating" ] }, { "attachments": {}, "cell_type": "markdown", "id": "9a7eec68", "metadata": {}, "source": [ "Integrate data from different batches, through adjusting PCA result specified by `pca_res_key`, and rememer to label composite PCA result stored into `res_key`." ] }, { "cell_type": "code", "execution_count": 10, "id": "1ffa65f8", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:15:18.840296Z", "start_time": "2023-02-13T09:14:37.812446Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:06:08.476050Z", "iopub.status.busy": "2024-05-08T08:06:08.475345Z", "iopub.status.idle": "2024-05-08T08:06:32.111192Z", "shell.execute_reply": "2024-05-08T08:06:32.109954Z", "shell.execute_reply.started": "2024-05-08T08:06:08.476002Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:06:08][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run batches_integrate\n", "[2024-05-08 04:06:08][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run batches_integrate...\n", "2024-05-08 04:06:13,954 - harmonypy - INFO - Iteration 1 of 10\n", "INFO:harmonypy:Iteration 1 of 10\n", "2024-05-08 04:06:20,052 - harmonypy - INFO - Iteration 2 of 10\n", "INFO:harmonypy:Iteration 2 of 10\n", "2024-05-08 04:06:26,252 - harmonypy - INFO - Iteration 3 of 10\n", "INFO:harmonypy:Iteration 3 of 10\n", "2024-05-08 04:06:32,093 - harmonypy - INFO - Converged after 3 iterations\n", "INFO:harmonypy:Converged after 3 iterations\n", "[2024-05-08 04:06:32][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: batches_integrate end, consume time 23.6217s.\n" ] } ], "source": [ "ms_data.tl.batches_integrate(scope=slice_generator[:], mode='integrate', pca_res_key='pca', res_key='pca_integrated')" ] }, { "attachments": {}, "cell_type": "markdown", "id": "a9640688", "metadata": {}, "source": [ "### UMAP" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d68aefb0", "metadata": {}, "source": [ "After integrating, we can perform UMAP base on the composite PCA result." ] }, { "cell_type": "code", "execution_count": 11, "id": "ce2cfc14", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:16:08.472472Z", "start_time": "2023-02-13T09:15:18.855325Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:06:32.113651Z", "iopub.status.busy": "2024-05-08T08:06:32.113067Z", "iopub.status.idle": "2024-05-08T08:07:07.207145Z", "shell.execute_reply": "2024-05-08T08:07:07.206324Z", "shell.execute_reply.started": "2024-05-08T08:06:32.113601Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:06:32][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run neighbors\n", "[2024-05-08 04:06:32][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run neighbors...\n", "[2024-05-08 04:06:50][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: neighbors end, consume time 18.1904s.\n", "[2024-05-08 04:06:50][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run umap\n", "[2024-05-08 04:06:50][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run umap...\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tcompleted 0 / 200 epochs\n", "\tcompleted 20 / 200 epochs\n", "\tcompleted 40 / 200 epochs\n", "\tcompleted 60 / 200 epochs\n", "\tcompleted 80 / 200 epochs\n", "\tcompleted 100 / 200 epochs\n", "\tcompleted 120 / 200 epochs\n", "\tcompleted 140 / 200 epochs\n", "\tcompleted 160 / 200 epochs\n", "\tcompleted 180 / 200 epochs\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:07:06][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: umap end, consume time 16.4866s.\n", "[2024-05-08 04:07:06][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run batches_umap\n" ] }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ "Column\n", " [0] Markdown(str)\n", " [1] Row\n", " [0] Column\n", " [0] Bokeh(Figure)\n", " [1] Column\n", " [0] Row\n", " [0] Bokeh(Figure)\n", " [1] Bokeh(Figure)" ] }, "execution_count": 11, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1139" } }, "output_type": "execute_result" } ], "source": [ "ms_data.tl.neighbors(scope=slice_generator[:], mode='integrate', pca_res_key='pca_integrated', n_pcs=50, res_key='neighbors_integrated')\n", "ms_data.tl.umap(scope=slice_generator[:], mode='integrate', pca_res_key='pca_integrated', neighbors_res_key='neighbors_integrated', res_key='umap_integrated')\n", "ms_data.plt.batches_umap(scope=slice_generator[:], mode='integrate', res_key='umap_integrated')" ] }, { "attachments": {}, "cell_type": "markdown", "id": "5a73935e", "metadata": {}, "source": [ "### Clustering" ] }, { "cell_type": "code", "execution_count": 12, "id": "adbdfab1-3bc7-40bc-bddd-fdeb57a0a310", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:16:12.949434Z", "start_time": "2023-02-13T09:16:08.475454Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:07:07.209208Z", "iopub.status.busy": "2024-05-08T08:07:07.208676Z", "iopub.status.idle": "2024-05-08T08:07:13.886230Z", "shell.execute_reply": "2024-05-08T08:07:13.883936Z", "shell.execute_reply.started": "2024-05-08T08:07:07.209187Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:07:07][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run leiden\n", "[2024-05-08 04:07:07][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run leiden...\n", "[2024-05-08 04:07:13][Stereo][244929][MainThread][140462125991744][pipeline_utils][27][INFO]: Can not find raw data, the data which may have been normalized will be used.\n", "[2024-05-08 04:07:13][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: leiden end, consume time 6.6618s.\n" ] } ], "source": [ "ms_data.tl.leiden(scope=slice_generator[:], mode='integrate', neighbors_res_key='neighbors_integrated', res_key='leiden')" ] }, { "cell_type": "code", "execution_count": 13, "id": "f727406e-dafa-45e3-b5a2-f782ad9ce699", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:16:12.949434Z", "start_time": "2023-02-13T09:16:08.475454Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:07:13.890515Z", "iopub.status.busy": "2024-05-08T08:07:13.889707Z", "iopub.status.idle": "2024-05-08T08:07:14.862849Z", "shell.execute_reply": "2024-05-08T08:07:14.862010Z", "shell.execute_reply.started": "2024-05-08T08:07:13.890434Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:07:13][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run cluster_scatter\n" ] }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ "Column\n", " [0] Markdown(str)\n", " [1] Row\n", " [0] TextInput(name='file name', placeholder='Enter a file name...', width=200)\n", " [1] Select(name='file format', options=['png', 'pdf'], value='png', width=60)\n", " [2] IntInput(name='dpi', placeholder='Enter the dip...', start=0, value=100, width=200)\n", " [2] Row\n", " [0] Button(button_type='primary', name='export', width=100)\n", " [1] StaticText(width=800)" ] }, "execution_count": 13, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1416" } }, "output_type": "execute_result" }, { "data": { "image/png": "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fpXALViwQCNHjlRJSYkikYhefvnlRtcsX75cF154oYqKitSmTRsNGjRI69evz/zLZhhBAgAAQBPxr3/9S48//rj69esX9KuEQm1trfr3769p06bFPf+f//xHZ599tnr16qXy8nJ9/PHHuvPOO5WXl5fhN828FkG/AAAAAKRoXVSr5q/Vp2+t1q5ttSo4vo16faO7Tjm3myLNIq7vX1NToyuvvFK///3vdffdd3vwxpkRjUa1pXKXNm2s1r69B9Q6r6VKOhWqfccCRSLufi6lpaUqLS1NeP7222/XN7/5TT3wwAMNx04++WRXz8wWZBIAAAACFq2L6u1f/kPzHnlPlf/eqpqttar891bNe+Q9vf2rfyhaF3X9jLKyMl1wwQUaOnSoB2+cGdFoVP/+eLOW/3uLqnbu0d69B1W1c4+W/3uL/r10s6JR9z+XROrq6vTaa6+pR48eOv/889WuXTt99atfjTslKRcRJAAAAARs1fy1WvNe/Hnua95dr1Xz17q6/5/+9CctWbJE9957r6v7ZNqWyl3atrUm7rltW2q0pXKXb8/eunWrampqdN9992n48OF68803dfHFF2v06NGaP3++b88NC6YbAQAABOzTt1anPN9jyEmO7r1hwwb98Ic/1FtvvZV1c+k3baxOeb5DSaEvz66rq5MkXXTRRbrpppskSV/60pf03nvv6bHHHtO5557ry3PDgkwCAABAwHZtq016vibF+WQWL16srVu36stf/rJatGihFi1aaP78+frNb36jFi1a6NChQ47v7bd9ew+4Ou/GcccdpxYtWqhPnz6W4717924S1Y3IJAAAAASs4Pg2qtmaOBA4+vg2ju993nnnaenSpZZjV111lXr16qUf//jHat68ueN7+611Xkvt3Xsw6Xm/tGrVSoMGDdKKFSssx1euXKmuXbv69tywIEgAAAAIWK9vdFflv7cmPe9UQUGBTjvtNMuxNm3aqG3bto2Oh01Jp0JV7dyT9LwbNTU1Wr36yFSvtWvXqqKiQsXFxerSpYtuvvlmXXHFFTrnnHM0ZMgQzZ07V6+++qrKy8tdPTcbMN0IAAAgYKec200nndUl7rmTzuqiU87tluE3Cof2HQt0fPuj4547vv3Rat+xwNX9Fy1apAEDBmjAgAGSpMmTJ2vAgAG66667JEkXX3yxHnvsMT3wwAPq27ev/vCHP+iv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7ft7AgCAMJjt8rw9Tz75pEpLS1VSUuLJ/fwW/WK3q/NutGzZUi+99JJWrlyp4uJiHXXUUZo3b55KS0vVrFnud6Fz/zsMSLKFMPGsXbtWF1xwgYYMGaKKigpNmjRJ11xzjd544w2f3xQAAAQv1cj0ZtdPWLdund5+++3smku//5C78y4NHDhQFRUV2rlzpyorKzV37lx98cUXOumkk3x9bhgQJPiktLRUd999ty6++GJb1z/22GPq1q2bHnzwQfXu3VsTJkzQpZdeqocffrjhmsGDB2vixImaNGmSjj32WLVv316///3vVVtbq6uuukoFBQXq3r27Xn/9SEqyvLxckUhEb7zxhgYMGKD8/Hx9/etf19atW/X666+rd+/eKiws1Le//W3t3u1fNA4AAJLpmOJ8B9dPmDFjhtq1a6cLLrjA9b0yplVzd+c9UlRUpOOPP16rVq3SokWLdNFFF2XkuUEiSAiJ999/X0OHDrUcO//88/X+++9bjj3zzDM67rjj9M9//lMTJ07U97//fV122WU688wztWTJEg0bNkxjx45t1OGfMmWKfvvb3+q9997Thg0bdPnll+uRRx7R888/r9dee01vvvmmHn30Ud+/TwAAEE+qTqe7TmldXZ1mzJihcePGqUWL7CluGWl7lKvzqdTU1KiiokIVFRWS6md2VFRUaP369ZKkv/zlLyovL28og/qNb3xDo0aN0rBhw1w9NxsQJITE5s2b1b59e8ux9u3bq7q6Wnv2HFmU079/f91xxx065ZRTdOuttyovL0/HHXecrr32Wp1yyim666679MUXX+jjjz+23Ovuu+/WWWedpQEDBuh73/ue5s+fr+nTp2vAgAH62te+pksvvVTz5s3LyPcKAABilUoamuDc0MPnnXv77be1fv16XX311a7uk2mR4nxFjsmLf+6YPEWK813df9GiRRowYIAGDBggSZo8ebIGDBigu+66S5JUWVmpsWPHqlevXrrxxhs1duxYzZw509Uzs0X2hJKQJPXr16/h4+bNm6tt27bq27dvwzEj0Ni6dWvCr2vfvr2OOuooy3y69u3b65///Kdfrw0AAJJqJukeSV9T/SLlzaqfYuR+nwRJGjZsmK/lQv0SiUSkbsdKPu2TMHjw4KQ/lxtvvFE33nijq2dkK4KEkOjQoYO2bNliObZlyxYVFhYqP/9IlNyyZUvLNZFIxHLMaCx1ddZ6yrHXxLtP7NcAAIBMaibpgsP/wRCJROqnFbmcWoT0MN0oJM444wy98461PvJbb72lM844I6A3AgAAQFNFkOCTVAthbr31Vn33u99tuP6GG27QmjVrdMstt+jTTz/V7373O/35z3/WTTfdFMTrAwAAoAkjSPCJnYUwRsAgSd26ddNrr72mt956S/3799eDDz6oP/zhDzr//PMDeX8AAAA0XZFoNq5iiVFdXa2ioiJVVVWpsLAw6NcBAAA5jr4Hch2ZBAAAAAAWBAkAAAAALCiB6rOHHnpI1dXVKiws1OTJk4N+HUnhfCcAAACEB2sSfNa5c2dt3LhRnTp10meffRb060gK5zsBAJBNwtz3ALzAdCMAAAAAFkw3ypDKykp17tw56NeQVP8uAACgaTh06JCmTJmi5557Tps3b1ZJSYnGjx+vO+64Q5FIJOjXC8y9996rl156SZ9++qny8/N15pln6v7771fPnj0brtm7d69+9KMf6U9/+pP27dun888/X7/73e/Uvn37AN88MwgSMqSurk4bN24M+jUAAEATc//992v69Ol65plndOqpp2rRokW66qqrVFRUpBtvvDHo1wvM/PnzVVZWpkGDBungwYO67bbbNGzYMC1btkxt2rSRJN1000167bXX9Je//EVFRUWaMGGCRo8erXfffTfgt/cfaxJ89pWvfEWbN28O+jXi6tChgxYtWhT0awAAkHX86HtEo1HVLd2ig0sqFa3aq0hRnlp8uaOa9W3vasR/xIgRat++vZ588smGY5dccony8/P13HPPefHqvopGo9r88WZt+qhSe3fuVd4xeSoZ0FEd+nXwNBOybds2tWvXTvPnz9c555yjqqoqHX/88Xr++ed16aWXSpI+/fRT9e7dW++//75OP/10z54dRmQSfEYnHAAApBKNRnXgxWWqW77tyLGqfTqwvkrNVn6hlpf0cdwhPvPMM/XEE09o5cqV6tGjh/7v//5PCxcu1EMPPeTV6/smGo3qkxc/0dZlR34ue6v2aue6nfp85Rc67dJTPQsUqqqqJEnFxcWSpMWLF+vAgQMaOnRowzW9evVSly5dCBIAAADgv7qlWywBguXcsm2q67FFzft1cHTvn/zkJ6qurlavXr3UvHlzHTp0SFOnTtWVV17p5pUzYvPHmy0BgtnWZVu1+eO26ti/o+vn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AADSRN8DuY5MAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGDRIugX8EI0GpUkVVdXB/wmAACgKTD6HEYfBMg1OREk7Nq1S5J0wgknBPwmAACgKdm1a5eKioqCfg3Ac5FoDoTAdXV12rRpkwoKChSJRIJ+HQAAkOOi0ah27dqlkpISNWvG7G3knpwIEgAAAAB4h9AXAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGBBkAAAAADAgiABAAAAgAVBAgAAAAALggQAAAAAFgQJAAAAACwIEgAAAABYECQAAAAAsCBIAAAAAGDx/wGcejLVgIUXqwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ms_data.plt.cluster_scatter(scope=slice_generator[:], mode='integrate', res_key='leiden', reorganize_coordinate=2)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d0e3e8a5", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T08:58:54.162368Z", "start_time": "2023-02-13T08:58:54.155388Z" } }, "source": [ "
\n", "\n", "**Note**\n", "\n", "The following part will intentionally show you the significant difference between results of after integrating and without itegrating.\n", "\n", "
" ] }, { "attachments": {}, "cell_type": "markdown", "id": "9baf8832", "metadata": {}, "source": [ "## Without integration" ] }, { "attachments": {}, "cell_type": "markdown", "id": "ac37c524", "metadata": {}, "source": [ "Compare the UMAP result with before for inspecting the effect of integration." ] }, { "attachments": {}, "cell_type": "markdown", "id": "f9a986d0", "metadata": {}, "source": [ "### Embedding" ] }, { "cell_type": "code", "execution_count": 14, "id": "019f3d48", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:16:30.538765Z", "start_time": "2023-02-13T09:16:12.951411Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:07:14.864305Z", "iopub.status.busy": "2024-05-08T08:07:14.864094Z", "iopub.status.idle": "2024-05-08T08:07:33.077660Z", "shell.execute_reply": "2024-05-08T08:07:33.076593Z", "shell.execute_reply.started": "2024-05-08T08:07:14.864287Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:07:14][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run neighbors\n", "[2024-05-08 04:07:14][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run neighbors...\n", "[2024-05-08 04:07:16][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: neighbors end, consume time 2.0416s.\n", "[2024-05-08 04:07:16][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run umap\n", "[2024-05-08 04:07:16][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run umap...\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tcompleted 0 / 200 epochs\n", "\tcompleted 20 / 200 epochs\n", "\tcompleted 40 / 200 epochs\n", "\tcompleted 60 / 200 epochs\n", "\tcompleted 80 / 200 epochs\n", "\tcompleted 100 / 200 epochs\n", "\tcompleted 120 / 200 epochs\n", "\tcompleted 140 / 200 epochs\n", "\tcompleted 160 / 200 epochs\n", "\tcompleted 180 / 200 epochs\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:07:32][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: umap end, consume time 15.7857s.\n", "[2024-05-08 04:07:32][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run batches_umap\n" ] }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ "Column\n", " [0] Markdown(str)\n", " [1] Row\n", " [0] Column\n", " [0] Bokeh(Figure)\n", " [1] Column\n", " [0] Row\n", " [0] Bokeh(Figure)\n", " [1] Bokeh(Figure)" ] }, "execution_count": 14, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1542" } }, "output_type": "execute_result" } ], "source": [ "ms_data.tl.neighbors(scope=slice_generator[:], mode='integrate', pca_res_key='pca', n_pcs=50, res_key='neighbors', n_jobs=-1)\n", "ms_data.tl.umap(scope=slice_generator[:], mode='integrate', pca_res_key='pca', neighbors_res_key='neighbors', res_key='umap')\n", "ms_data.plt.batches_umap(scope=slice_generator[:], mode='integrate', res_key='umap')" ] }, { "attachments": {}, "cell_type": "markdown", "id": "748f91ec", "metadata": {}, "source": [ "Datasets of two batches are distributed differently on UMAP space, which can be separated from each other obviously." ] }, { "attachments": {}, "cell_type": "markdown", "id": "328ecb28", "metadata": {}, "source": [ "### Clustering" ] }, { "attachments": {}, "cell_type": "markdown", "id": "1f03e4b8", "metadata": {}, "source": [ "We can also perform a clustering for a further comparation." ] }, { "cell_type": "code", "execution_count": 15, "id": "0c813673", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:16:32.938659Z", "start_time": "2023-02-13T09:16:30.541200Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:07:33.079010Z", "iopub.status.busy": "2024-05-08T08:07:33.078810Z", "iopub.status.idle": "2024-05-08T08:07:42.543281Z", "shell.execute_reply": "2024-05-08T08:07:42.542397Z", "shell.execute_reply.started": "2024-05-08T08:07:33.078992Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:07:33][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run leiden\n", "[2024-05-08 04:07:33][Stereo][244929][MainThread][140462125991744][st_pipeline][41][INFO]: start to run leiden...\n", "[2024-05-08 04:07:42][Stereo][244929][MainThread][140462125991744][pipeline_utils][27][INFO]: Can not find raw data, the data which may have been normalized will be used.\n", "[2024-05-08 04:07:42][Stereo][244929][MainThread][140462125991744][st_pipeline][44][INFO]: leiden end, consume time 9.4558s.\n" ] } ], "source": [ "ms_data.tl.leiden(scope=slice_generator[:], mode='integrate', neighbors_res_key='neighbors', res_key='leiden')" ] }, { "cell_type": "code", "execution_count": 16, "id": "a86b1ef5", "metadata": { "ExecuteTime": { "end_time": "2023-02-13T09:16:33.959934Z", "start_time": "2023-02-13T09:16:32.941924Z" }, "execution": { "iopub.execute_input": "2024-05-08T08:07:42.544801Z", "iopub.status.busy": "2024-05-08T08:07:42.544567Z", "iopub.status.idle": "2024-05-08T08:07:43.594370Z", "shell.execute_reply": "2024-05-08T08:07:43.593591Z", "shell.execute_reply.started": "2024-05-08T08:07:42.544779Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2024-05-08 04:07:42][Stereo][244929][MainThread][140462125991744][ms_pipeline][173][INFO]: data_obj(idx=0) in ms_data start to run cluster_scatter\n" ] }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "
\n", "
\n", "" ], "text/plain": [ "Column\n", " [0] Markdown(str)\n", " [1] Row\n", " [0] TextInput(name='file name', placeholder='Enter a file name...', width=200)\n", " [1] Select(name='file format', options=['png', 'pdf'], value='png', width=60)\n", " [2] IntInput(name='dpi', placeholder='Enter the dip...', start=0, value=100, width=200)\n", " [2] Row\n", " [0] Button(button_type='primary', name='export', width=100)\n", " [1] StaticText(width=800)" ] }, "execution_count": 16, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1819" } }, "output_type": "execute_result" }, { "data": { "image/png": "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AUvO43a7NXnyZA0aNEi9evUK+J59+/bpkUce0R133GHJOZ2OkJAgS5cu1ahRo1RUVCSXy6W33nor7NcsWbJEffv2VfPmzdWlSxfNnDkz4dcJAACc4O04xyPz0ksvaeTIkSoqKrLkeIm2dtPeuMYjVVJSonXr1ulvf/tbwPHq6mpdeeWV6tmzpx5++GFLzul0hIQEqa2tVe/evfXCCy9E9P5t27bpyiuv1NChQ1VWVqbJkyfr9ttv14IFCxJ8pQAAwH4VYcYr4z7DV199pffff1+333573MdKlsM1x0OP14Yej8TEiRM1b948LV68WJ06dWp4jsOHdcUVVyg7O1tz5sxR06ZN4z5nKiAkJMjIkSP16KOP6nvf+15E73/xxRfVuXNnPfXUUzrnnHM0ceJEXXvttXrmmWe87xkyZIgmTZqkyZMnq02bNmrfvr3++Mc/qra2Vj/84Q+VnZ2tLl266L33TpUklyxZIpfLpQULFqhPnz7KzMzUpZdeqj179ui9997TOeeco5ycHN144406cuSI5d8HAAAQicIw4x3iPsOMGTNUUFCgK6+8Mu5jJUt2q2ahx7NCj4fi8Xg0ceJEzZkzR4sWLVLnzp0bvKe6ulojRoxQs2bNNHfuXLVo0SLm86UaQoJDLF++XMOHDze9dvnll2v58uWm12bNmqW2bdvqX//6lyZNmqQf//jHuu666zRw4ECtXr1aI0aM0M0339zghv/hhx/W888/r48//ljbt2/X9ddfr2effVazZ8/Wu+++q3/+85967rnnEv7nBAAAgVwT53hobrdbM2bM0Pjx41Oq6fa8ru3iGg+lpKREL7/8smbPnq3s7GxVVlaqsrJSR48elXQqINTW1uqll15SdXW19z0nT56M+bypgpDgEJWVlWrfvr3ptfbt26u6utr7H6sk9e7dWw888IC6du2q++67Ty1atFDbtm31ox/9SF27dtVDDz2k/fv36/PPPzcd69FHH9WgQYPUp08f3XbbbSotLdW0adPUp08ffec739G1116rxYsXJ+XPCgAA/I2UNDzI2PBvxmP3/vvvq7y8XLfeemtcx0m2c87KU7cz2gQc63ZGG51zVvCViMKZNm2aqqqqNGTIEBUWFnp/vfrqq5Kk1atX65NPPtHatWvVpUsX03u2b98e83lTRepESUiSzj//fO/HTZo0UX5+vs477zzva0bQ2LNnT9Cva9++vVq2bKmzzjrL9Nq//vWvRF02AAAIKUP1y5x+R/VNypWqn2JkzT4JI0aMUCpujeVyuXTlJWfpLGOfhNrjys6yZp+EcN+PIUOGpOT3zCqEBIfo0KGDdu/ebXpt9+7dysnJUWZmpvc1/2YZl8tles34YXG73ab3+b8n0HH8vwYAACRThqQrv/kFg8vlUs+z89Xz7Hy7L6VRYbqRQwwYMEAffGBeH3nhwoUaMGCATVcEAACAxoqQkCA1NTUqKytTWVmZpPolTsvKylReXi5Juu+++3TLLbd433/XXXdp69at+tnPfqYvvvhCv//97/Xaa6/p7rvvtuPyAQAA0IgREhJk5cqV6tOnj/r06SNJmjJlivr06aOHHnpIklRRUeENDJLUuXNnvfvuu1q4cKF69+6tp556Sn/60590+eWX23L9AAAAaLxcnjToyKiurlZubq6qqqqUk5Nj9+UAAIA0x70H0h2VBAAAAAAmhAQAAAAAJiyBmmBPP/20qqurlZOToylTpth9OZKceU0AAABwDnoSEqxTp07auXOnOnbsqB07dth9OZKceU0AAKQSJ997AFZguhEAAAAAE6YbJUlFRYU6depk92VIqr8WAADQOJw8eVIPP/ywXn75ZVVWVqqoqEgTJkzQAw88IJfLZffl2Wbq1Kl688039cUXXygzM1MDBw7Uk08+qe7du3vfc+edd+r999/Xrl271KpVK+97evToYeOVJwchIUncbrd27txp92UAAIBG5sknn9S0adM0a9YsnXvuuVq5cqV++MMfKjc3Vz/5yU/svjzblJaWqqSkRP3799fXX3+t+++/XyNGjND69euVlZUlSerXr59uuukmFRcX68CBA3r44Yc1YsQIbdu2TU2aNLH5T5BY9CQk2AUXXKDKykq7LyOgDh06aOXKlXZfBgAAKScR9x4ej0futbv19eoKearq5MptodP6FirjvPZxPfG/6qqr1L59e7300kve18aOHavMzEy9/PLLVlx6Qnk8HtWt36sjn1fqZPUxNclprpbnd1CLnu0srYTs3btXBQUFKi0t1eDBgwO+5/PPP1fv3r21efNmnX322Zad24moJCQYN+EAACAcj8ejE2+sl/s/e0+9VnVMJ8qrlLFxv5qO7RnzDfHAgQM1ffp0bdy4Ud26ddNnn32mZcuW6emnn7bq8hPG4/Ho0NwvdGzjfu9r7upjqtpRrWNbDih3VHfLgkJVVZUkKS8vL+B4bW2tZsyYoc6dO+v000+35JxORuMyAACAzdxrd5sCgmls/V651+6O+dj33nuvvv/976tHjx5q2rSp+vTpo8mTJ+umm26K+ZjJUrd+rykgmMY27FPd+sDfs2i53W5NnjxZgwYNUq9evUxjv//979WqVSu1atVK7733nhYuXKhmzZpZcl4nIyQAAADY7OvVoRcVCTceymuvvaa//vWvmj17tlavXq1Zs2bpt7/9rWbNmhXzMZPlyOehp2yHG49USUmJ1q1bp7/97W8Nxm666SatWbNGpaWl6tatm66//nrV1dVZcl4nY7oRAACAzTxVYW46q4/FfOx77rnHW02QpPPOO09fffWVpk6dqvHjx8d83GQ4GebP7T4c+/fFMHHiRM2bN09Lly4NuBJlbm6ucnNz1bVrV1100UVq06aN5syZo3HjxsV9bicjJPioq6vTc889p8WLF2vPnj1yu92m8dWrV3s/fvrppxvM5aMROH1c9IsFEb93xS8vT+CVAAjG9+f073+6PeR7Kz971fR5v7YDE3JNQKxcuS3kqQpxw5vTPOZjHzlyRBkZ5skjTZo0aXCf40RNcprLHSIoZGTH/n3xeDyaNGmS5syZoyVLlqhz584RfY3H49GxY/GHE6cjJPi47bbb9M9//lPXXnutvv3tb4dshKmurmZJUwAAYInT+hbqRHlVyPFYjRo1So899piKi4t17rnnas2aNXr66ad16623xnzMZGl5fgdV7agOOR6rkpISzZ49W2+//bays7O9q1Hm5uYqMzNTW7du1auvvqoRI0aoXbt22rFjh5544gllZmbqu9/9bsznTRWEBB/z5s3TP/7xDw0aNCjse3NyctSxY0dJ9ZuTpUIat9KqfR97Py557rCWfftIzMe6+F8tvR/7H8d3zKmiqTpIVB6Qmnx/5n116H2D92P/p/W+Ywlx+59i/tKdHYOvTNJx5/aYjwvEKuO89srYuF/uAI24GT3bKeO89jEf+7nnntODDz6o//qv/9KePXtUVFSkO++8Uw899FA8l5wULXq207EtB1S3YV/Dse5t1aJnu5iPPW3aNEnSkCFDTK/PmDFDEyZMUIsWLfThhx/q2Wef1cGDB9W+fXsNHjxYH3/8sQoKCmI+b6ogJPjo2LGjsrOz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AABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMCAkAAAAATAgJAAAAAEwICQAAAABMTrP7Aqzg8XgkSdXV1TZfCQAAaAyMew7jHgRIN2kREg4fPixJOv30022+EgAA0JgcPnxYubm5dl8GYDmXJw0isNvt1q5du5SdnS2Xy2X35QAAgDTn8Xh0+PBhFRUVKSOD2dtIP2kREgAAAABYh+gLAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMCEkAAAAADAhJAAAAAAwISQAAAAAMDk/wOg4dOSyb2L/QAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ms_data.plt.cluster_scatter(scope=slice_generator[:], mode='integrate', res_key='leiden', reorganize_coordinate=2)" ] } ], "metadata": { "kernelspec": { "display_name": "stereopy", "language": "python", "name": "stereopy" }, "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.8.19" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false }, "vscode": { "interpreter": { "hash": "70dbeb2a90198859cd91b6ea0f3adc73d66939fe301617b631d99dfc954c0323" } } }, "nbformat": 4, "nbformat_minor": 5 }