{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Breakpoint plotting" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/javascript": "(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n var py_version = '3.4.1'.replace('rc', '-rc.').replace('.dev', '-dev.');\n var reloading = false;\n var Bokeh = root.Bokeh;\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force) {\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, js_exports, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n if (js_exports == null) js_exports = {};\n\n root._bokeh_onload_callbacks.push(callback);\n\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 && Object.keys(js_exports).length === 0) {\n run_callbacks();\n return null;\n }\n if (!reloading) {\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n }\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 window._bokeh_on_load = on_load\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'packages': {}, 'paths': {}, 'shim': {}});\n root._bokeh_is_loading = css_urls.length + 0;\n } else {\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length + Object.keys(js_exports).length;\n }\n\n var existing_stylesheets = []\n var links = document.getElementsByTagName('link')\n for (var i = 0; i < links.length; i++) {\n var link = links[i]\n if (link.href != null) {\n\texisting_stylesheets.push(link.href)\n }\n }\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n if (existing_stylesheets.indexOf(url) !== -1) {\n\ton_load()\n\tcontinue;\n }\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 } var existing_scripts = []\n var scripts = document.getElementsByTagName('script')\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i]\n if (script.src != null) {\n\texisting_scripts.push(script.src)\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) !== -1 || existing_scripts.indexOf(url) !== -1) {\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) !== -1 || existing_scripts.indexOf(url) !== -1) {\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 for (const name in js_exports) {\n var url = js_exports[name];\n if (skip.indexOf(url) >= 0 || root[name] != null) {\n\tif (!window.requirejs) {\n\t on_load();\n\t}\n\tcontinue;\n }\n var element = document.createElement('script');\n element.onerror = on_error;\n element.async = false;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n element.textContent = `\n import ${name} from \"${url}\"\n window.${name} = ${name}\n window._bokeh_on_load()\n `\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-3.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.4.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.4.1.min.js\", \"https://cdn.holoviz.org/panel/1.4.2/dist/panel.min.js\"];\n var js_modules = [];\n var js_exports = {};\n var css_urls = [];\n var inline_js = [ 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\ttry {\n inline_js[i].call(root, root.Bokeh);\n\t} catch(e) {\n\t if (!reloading) {\n\t throw e;\n\t }\n\t}\n }\n // Cache old bokeh versions\n if (Bokeh != undefined && !reloading) {\n\tvar NewBokeh = root.Bokeh;\n\tif (Bokeh.versions === undefined) {\n\t Bokeh.versions = new Map();\n\t}\n\tif (NewBokeh.version !== Bokeh.version) {\n\t Bokeh.versions.set(NewBokeh.version, NewBokeh)\n\t}\n\troot.Bokeh = 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 root._bokeh_is_initializing = false\n }\n\n function load_or_wait() {\n // Implement a backoff loop that tries to ensure we do not load multiple\n // versions of Bokeh and its dependencies at the same time.\n // In recent versions we use the root._bokeh_is_initializing flag\n // to determine whether there is an ongoing attempt to initialize\n // bokeh, however for backward compatibility we also try to ensure\n // that we do not start loading a newer (Panel>=1.0 and Bokeh>3) version\n // before older versions are fully initialized.\n if (root._bokeh_is_initializing && Date.now() > root._bokeh_timeout) {\n root._bokeh_is_initializing = false;\n root._bokeh_onload_callbacks = undefined;\n console.log(\"Bokeh: BokehJS was loaded multiple times but one version failed to initialize.\");\n load_or_wait();\n } else if (root._bokeh_is_initializing || (typeof root._bokeh_is_initializing === \"undefined\" && root._bokeh_onload_callbacks !== undefined)) {\n setTimeout(load_or_wait, 100);\n } else {\n root._bokeh_is_initializing = true\n root._bokeh_onload_callbacks = []\n var bokeh_loaded = Bokeh != null && (Bokeh.version === py_version || (Bokeh.versions !== undefined && Bokeh.versions.has(py_version)));\n if (!reloading && !bokeh_loaded) {\n\troot.Bokeh = undefined;\n }\n load_libs(css_urls, js_urls, js_modules, js_exports, function() {\n\tconsole.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n\trun_inline_js();\n });\n }\n }\n // Give older versions of the autoload script a head-start to ensure\n // they initialize before we start loading newer version.\n setTimeout(load_or_wait, 100)\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" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
[07/15/24 10:40:44] DEBUG Load file base.py:36\n", " `/Users/bao/projects/pangenome/LAPurple/asm_classify/SoChr05C.fa.classifica \n", " tions.bed.gz` \n", "\n" ], "text/plain": [ "\u001b[2;36m[07/15/24 10:40:44]\u001b[0m\u001b[2;36m \u001b[0m\u001b[32mDEBUG \u001b[0m Load file \u001b]8;id=413145;file:///Users/bao/code/jcvi/jcvi/formats/base.py\u001b\\\u001b[2mbase.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=628983;file:///Users/bao/code/jcvi/jcvi/formats/base.py#36\u001b\\\u001b[2m36\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m `\u001b[35m/Users/bao/projects/pangenome/LAPurple/asm_classify/\u001b[0m\u001b[95mSoChr05C.fa.classifica\u001b[0m \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m \u001b[95mtions.bed.gz\u001b[0m` \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", " | ID | \n", "Length | \n", "Kmers | \n", "Classification | \n", "Chr01A.fa | \n", "Chr01B.fa | \n", "Chr01C.fa | \n", "Chr01D.fa | \n", "Chr01E.fa | \n", "Chr01F.fa | \n", "... | \n", "Chr09G.fa | \n", "Chr09H.fa | \n", "Chr10A.fa | \n", "Chr10B.fa | \n", "Chr10C.fa | \n", "Chr10D.fa | \n", "Chr10E.fa | \n", "Chr10F.fa | \n", "Chr10G.fa | \n", "Chr10H.fa | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "SoChr04_Alt4 | \n", "44440755 | \n", "4474468 | \n", "Chr04B.fa,Chr04H.fa:65,20 | \n", "162 | \n", "148 | \n", "499 | \n", "1479 | \n", "161 | \n", "393 | \n", "... | \n", "88 | \n", "59 | \n", "53 | \n", "148 | \n", "53 | \n", "68 | \n", "84 | \n", "57 | \n", "73 | \n", "75 | \n", "
0 | \n", "SsChr07C | \n", "83560916 | \n", "4139854 | \n", "Unclassified:11,6 | \n", "36116 | \n", "72043 | \n", "37169 | \n", "20498 | \n", "18372 | \n", "17359 | \n", "... | \n", "121967 | \n", "194662 | \n", "23367 | \n", "14486 | \n", "23752 | \n", "19529 | \n", "14939 | \n", "15313 | \n", "19159 | \n", "17737 | \n", "
0 | \n", "SoChr05_Alt3 | \n", "19313076 | \n", "2840088 | \n", "Chr05F.fa,Chr01C.fa:90,2 | \n", "3 | \n", "25242 | \n", "64248 | \n", "13 | \n", "94 | \n", "108 | \n", "... | \n", "11 | \n", "11 | \n", "6 | \n", "5 | \n", "10 | \n", "10 | \n", "10271 | \n", "37 | \n", "2 | \n", "15 | \n", "
0 | \n", "SsChr03D | \n", "82136013 | \n", "3769406 | \n", "Unclassified:9,8 | \n", "31968 | \n", "27294 | \n", "35459 | \n", "20105 | \n", "20391 | \n", "18781 | \n", "... | \n", "15234 | \n", "13800 | \n", "19954 | \n", "16621 | \n", "14336 | \n", "22837 | \n", "17484 | \n", "14615 | \n", "21177 | \n", "16329 | \n", "
0 | \n", "SoChr10A | \n", "79002434 | \n", "7840909 | \n", "Chr10A.fa,Chr10B.fa:48,43 | \n", "467 | \n", "1555 | \n", "275 | \n", "482 | \n", "155 | \n", "292 | \n", "... | \n", "297 | \n", "4486 | \n", "3773483 | \n", "3447717 | \n", "11598 | \n", "88758 | \n", "92901 | \n", "68253 | \n", "46281 | \n", "96729 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
0 | \n", "SoChr04D | \n", "86732939 | \n", "8135797 | \n", "Chr04A.fa,Chr04B.fa:52,26 | \n", "1120 | \n", "19732 | \n", "1162 | \n", "1370 | \n", "572 | \n", "16832 | \n", "... | \n", "304 | \n", "429 | \n", "419 | \n", "259 | \n", "200 | \n", "3117 | \n", "471 | \n", "126 | \n", "440 | \n", "218 | \n", "
0 | \n", "SoChr10B | \n", "68614291 | \n", "6345932 | \n", "Chr10C.fa,Chr10G.fa:58,29 | \n", "120 | \n", "3874 | \n", "1423 | \n", "270 | \n", "205 | \n", "136 | \n", "... | \n", "99 | \n", "45 | \n", "3851 | \n", "6751 | \n", "3707168 | \n", "339303 | \n", "65054 | \n", "30817 | \n", "1864797 | \n", "102505 | \n", "
0 | \n", "SsChr02A | \n", "108629900 | \n", "5492184 | \n", "Unclassified:15,6 | \n", "44087 | \n", "51710 | \n", "35212 | \n", "23831 | \n", "27812 | \n", "26845 | \n", "... | \n", "16063 | \n", "16700 | \n", "28180 | \n", "19197 | \n", "22710 | \n", "23412 | \n", "24430 | \n", "19644 | \n", "31711 | \n", "21546 | \n", "
0 | \n", "SoChr01_Alt5 | \n", "9328298 | \n", "944170 | \n", "Chr01B.fa,Chr01H.fa:88,4 | \n", "858 | \n", "835543 | \n", "787 | \n", "21451 | \n", "207 | \n", "14362 | \n", "... | \n", "4 | \n", "1 | \n", "8 | \n", "26 | \n", "1 | \n", "0 | \n", "16 | \n", "27 | \n", "31 | \n", "40 | \n", "
0 | \n", "SoChr05B | \n", "84959030 | \n", "8496201 | \n", "Chr05E.fa,Chr05A.fa:68,18 | \n", "1060 | \n", "2107 | \n", "47029 | \n", "1253 | \n", "6180 | \n", "4835 | \n", "... | \n", "1096 | \n", "2472 | \n", "1269 | \n", "712 | \n", "337 | \n", "427 | \n", "691 | \n", "5013 | \n", "456 | \n", "71898 | \n", "
124 rows × 84 columns
\n", "\n", " | ID | \n", "Length | \n", "Kmers | \n", "Classification | \n", "SoChr01A.fa | \n", "SoChr01B.fa | \n", "SoChr01C.fa | \n", "SoChr01D.fa | \n", "SoChr01E.fa | \n", "SoChr01F.fa | \n", "... | \n", "SsChr08A.fa | \n", "SsChr08B.fa | \n", "SsChr08C.fa | \n", "SsChr08D.fa | \n", "SsChr08E.fa | \n", "SsChr08F.fa | \n", "SsChr08G.fa | \n", "SsChr08H.fa | \n", "SsChr08I.fa | \n", "SsChr08J.fa | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "SoChr01A | \n", "114156061 | \n", "5174640 | \n", "SoChr01G.fa,SoChr01H.fa:51,39 | \n", "18542 | \n", "13981 | \n", "30147 | \n", "190653 | \n", "86112 | \n", "56928 | \n", "... | \n", "40 | \n", "33 | \n", "26 | \n", "28 | \n", "27 | \n", "66 | \n", "22 | \n", "16 | \n", "34 | \n", "33 | \n", "
1 | \n", "SoChr01B | \n", "98682420 | \n", "6533561 | \n", "SoChr01B.fa,SoChr01F.fa:78,13 | \n", "13770 | \n", "5141485 | \n", "19571 | \n", "70123 | \n", "122928 | \n", "867975 | \n", "... | \n", "28 | \n", "24 | \n", "30 | \n", "13 | \n", "94 | \n", "47 | \n", "48 | \n", "59 | \n", "0 | \n", "29 | \n", "
2 | \n", "SoChr01C | \n", "116633000 | \n", "7966860 | \n", "SoChr01A.fa,SoChr01D.fa:58,35 | \n", "4628757 | \n", "61057 | \n", "36572 | \n", "2848880 | \n", "159990 | \n", "24324 | \n", "... | \n", "28 | \n", "75 | \n", "9 | \n", "36 | \n", "57 | \n", "62 | \n", "22 | \n", "32 | \n", "29 | \n", "107 | \n", "
3 | \n", "SoChr01D | \n", "100488407 | \n", "6769347 | \n", "SoChr01C.fa,SoChr01E.fa:73,14 | \n", "47583 | \n", "48092 | \n", "4980037 | \n", "50821 | \n", "960126 | \n", "406807 | \n", "... | \n", "91 | \n", "78 | \n", "69 | \n", "116 | \n", "312 | \n", "76 | \n", "55 | \n", "64 | \n", "53 | \n", "81 | \n", "
4 | \n", "SoChr01_Alt1 | \n", "13337632 | \n", "1130850 | \n", "SoChr01H.fa,SoChr01D.fa:94,3 | \n", "7768 | \n", "356 | \n", "2084 | \n", "34183 | \n", "1721 | \n", "2492 | \n", "... | \n", "9 | \n", "2 | \n", "15 | \n", "16 | \n", "7 | \n", "3 | \n", "5 | \n", "14 | \n", "8 | \n", "1 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
119 | \n", "SsChr08A | \n", "65989349 | \n", "7067773 | \n", "SsChr08A.fa,SsChr01D.fa:98,1 | \n", "43 | \n", "22 | \n", "33 | \n", "4 | \n", "11 | \n", "16 | \n", "... | \n", "6954045 | \n", "1155 | \n", "1373 | \n", "4127 | \n", "12446 | \n", "6270 | \n", "55 | \n", "2556 | \n", "43 | \n", "734 | \n", "
120 | \n", "SsChr08B | \n", "68264707 | \n", "6136026 | \n", "SsChr08F.fa,SsChr08H.fa:63,30 | \n", "122 | \n", "183 | \n", "516 | \n", "127 | \n", "49 | \n", "77 | \n", "... | \n", "6670 | \n", "267907 | \n", "775 | \n", "12414 | \n", "4953 | \n", "3908330 | \n", "12836 | \n", "1877699 | \n", "1791 | \n", "352 | \n", "
121 | \n", "SsChr08C | \n", "64674156 | \n", "3399027 | \n", "SsChr08I.fa,SsChr08A.fa:95,1 | \n", "149 | \n", "59 | \n", "73 | \n", "118 | \n", "74 | \n", "58 | \n", "... | \n", "40570 | \n", "3338 | \n", "215 | \n", "4075 | \n", "25252 | \n", "12827 | \n", "12695 | \n", "4144 | \n", "3255558 | \n", "210 | \n", "
122 | \n", "SsChr08D | \n", "67158216 | \n", "5177749 | \n", "SsChr08B.fa,SsChr08A.fa:96,0 | \n", "112 | \n", "41 | \n", "50 | \n", "44 | \n", "57 | \n", "42 | \n", "... | \n", "37180 | \n", "4984519 | \n", "814 | \n", "7261 | \n", "25344 | \n", "3914 | \n", "30361 | \n", "10005 | \n", "8074 | \n", "419 | \n", "
123 | \n", "SsChr08E | \n", "59714107 | \n", "3017317 | \n", "SsChr08G.fa,SsChr08D.fa:91,1 | \n", "141 | \n", "85 | \n", "106 | \n", "166 | \n", "161 | \n", "100 | \n", "... | \n", "37379 | \n", "7800 | \n", "41185 | \n", "53340 | \n", "31425 | \n", "9470 | \n", "2758847 | \n", "2130 | \n", "721 | \n", "704 | \n", "
124 rows × 164 columns
\n", "\n", " | ID | \n", "Length | \n", "Kmers | \n", "Classification | \n", "Chr01A.fa | \n", "Chr01B.fa | \n", "Chr01C.fa | \n", "Chr01D.fa | \n", "Chr01E.fa | \n", "Chr01F.fa | \n", "... | \n", "Chr09G.fa | \n", "Chr09H.fa | \n", "Chr10A.fa | \n", "Chr10B.fa | \n", "Chr10C.fa | \n", "Chr10D.fa | \n", "Chr10E.fa | \n", "Chr10F.fa | \n", "Chr10G.fa | \n", "Chr10H.fa | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "edca1324-667e-4118-8507-4856b6d22b05 | \n", "88 | \n", "4 | \n", "Chr02B.fa,Chr02F.fa:75,25 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
1 | \n", "902e0f53-3693-4a6f-ba95-06756383b32f | \n", "1015 | \n", "28 | \n", "Chr04H.fa,Chr01A.fa:100,0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
2 | \n", "a7007a10-28c9-43db-bd50-81d323e70415 | \n", "1097 | \n", "2 | \n", "Chr04B.fa,Chr01A.fa:100,0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
3 | \n", "0f633f29-01ef-492d-8f33-ea12ccb4f7bc | \n", "808 | \n", "37 | \n", "Chr02A.fa,Chr09G.fa:78,18 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "7 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
4 | \n", "4758da69-16e4-4162-a365-0b36796a935e | \n", "1116 | \n", "35 | \n", "Chr09G.fa,Chr05C.fa:68,28 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "24 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
1560475 | \n", "7ff5a8b5-66ed-49c6-9ae8-db6746d2e698 | \n", "2426 | \n", "262 | \n", "Chr09F.fa,Chr10G.fa:91,3 | \n", "0 | \n", "0 | \n", "0 | \n", "7 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "9 | \n", "0 | \n", "
1560476 | \n", "f1acf7d9-c8d8-4e7c-be1c-5b34c4280924 | \n", "9247 | \n", "168 | \n", "Unclassified:12,8 | \n", "0 | \n", "2 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "8 | \n", "0 | \n", "0 | \n", "0 | \n", "2 | \n", "0 | \n", "1 | \n", "0 | \n", "
1560477 | \n", "5c692a35-c7e7-4a77-b142-d0bf8ba77be8 | \n", "3376 | \n", "107 | \n", "Chr08D.fa,Chr05F.fa:84,4 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "2 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
1560478 | \n", "3cf800c1-91e5-4f2d-aa56-30f8094d996e | \n", "1707 | \n", "0 | \n", "Unclassified:0,0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
1560479 | \n", "cb34dcc6-7d79-4b92-b7dd-95b834d2f6ed | \n", "2373 | \n", "133 | \n", "Chr07E.fa,Chr07G.fa:74,25 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "
1560480 rows × 84 columns
\n", "\n", " | ID | \n", "Length | \n", "Kmers | \n", "Classification | \n", "Chr01A.fa | \n", "Chr01B.fa | \n", "Chr01C.fa | \n", "Chr01D.fa | \n", "Chr01E.fa | \n", "Chr01F.fa | \n", "... | \n", "Chr09H.fa | \n", "Chr10A.fa | \n", "Chr10B.fa | \n", "Chr10C.fa | \n", "Chr10D.fa | \n", "Chr10E.fa | \n", "Chr10F.fa | \n", "Chr10G.fa | \n", "Chr10H.fa | \n", "Label | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
878 | \n", "2f307dc3-9b72-4bb1-9aa1-16b870948c1d | \n", "3846 | \n", "249 | \n", "Chr03F.fa,Chr03D.fa:72,16 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr03D_Chr03F | \n", "
2445 | \n", "fdcd00a1-ae98-42f4-a5a6-5e07cf13c552 | \n", "1172 | \n", "145 | \n", "Chr05F.fa,Chr05B.fa:57,36 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr05B_Chr05F | \n", "
2675 | \n", "92ccfe6b-0cde-439d-b069-7b6b9580ffb1 | \n", "3096 | \n", "117 | \n", "Chr10F.fa,Chr10E.fa:76,13 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "16 | \n", "90 | \n", "0 | \n", "0 | \n", "Chr10E_Chr10F | \n", "
4226 | \n", "444d1dff-2091-4bc3-a218-41e2ce32ce31 | \n", "1342 | \n", "108 | \n", "Chr08G.fa,Chr08F.fa:77,21 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr08F_Chr08G | \n", "
4595 | \n", "89199b8c-60e9-43c8-9955-cbcb5d5646ab | \n", "3098 | \n", "133 | \n", "Chr01A.fa,Chr01D.fa:64,20 | \n", "86 | \n", "0 | \n", "0 | \n", "27 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr01A_Chr01D | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
1558765 | \n", "2e0ec991-df9a-4a30-8c83-86f6c358009a | \n", "33051 | \n", "2697 | \n", "Chr06H.fa,Chr06A.fa:50,47 | \n", "0 | \n", "1 | \n", "2 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "3 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr06A_Chr06H | \n", "
1558837 | \n", "84755fad-4ed7-41b6-8261-b918a70d9305 | \n", "14314 | \n", "3187 | \n", "Chr06A.fa,Chr06H.fa:73,22 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr06A_Chr06H | \n", "
1559406 | \n", "fdba59c8-43db-4c5e-bfbd-25186e8da8e7 | \n", "9128 | \n", "1067 | \n", "Chr10F.fa,Chr10E.fa:81,12 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "24 | \n", "135 | \n", "873 | \n", "1 | \n", "0 | \n", "Chr10E_Chr10F | \n", "
1560275 | \n", "78cd832a-6e56-4c96-a5b0-6a92e5dc5c2f | \n", "8519 | \n", "670 | \n", "Chr04A.fa,Chr04B.fa:66,16 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr04A_Chr04B | \n", "
1560278 | \n", "b3a07e53-d87e-478a-846a-3645ede0a39b | \n", "3467 | \n", "113 | \n", "Chr06H.fa,Chr06C.fa:80,18 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "Chr06C_Chr06H | \n", "
3861 rows × 85 columns
\n", "[08/17/24 11:41:58] DEBUG Load file base.py:36\n", " `/Users/bao/projects/female-restitution/SoSs-filter/roi/9208.roi.csv.extrac \n", " ted.fasta.gz.classifications.bed.gz` \n", "\n" ], "text/plain": [ "\u001b[2;36m[08/17/24 11:41:58]\u001b[0m\u001b[2;36m \u001b[0m\u001b[32mDEBUG \u001b[0m Load file \u001b]8;id=244501;file:///Users/bao/code/jcvi/jcvi/formats/base.py\u001b\\\u001b[2mbase.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=742779;file:///Users/bao/code/jcvi/jcvi/formats/base.py#36\u001b\\\u001b[2m36\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m `\u001b[35m/Users/bao/projects/female-restitution/SoSs-filter/roi/\u001b[0m\u001b[95m9208.roi.csv.extrac\u001b[0m \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m \u001b[95mted.fasta.gz.classifications.bed.gz\u001b[0m` \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from jcvi.formats.bed import Bed\n", "\n", "bed = Bed(\n", " \"/Users/bao/projects/female-restitution/SoSs-filter/roi/9208.roi.csv.extracted.fasta.gz.classifications.bed.gz\"\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "sub_beds = list(bed.sub_beds())\n", "sub_beds" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SoChr01A_SoChr01D_m84072_230515_100731_s2/51056073/ccs'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "read, sb = sub_beds[0]\n", "read" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('SoChr01A', 'SoChr01D')" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ra, rb = read.split(\"_\", 2)[:2]\n", "ra, rb" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01E',\n", " 'SoChr01E',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01A',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr10F',\n", " 'SoChr10F',\n", " 'SoChr10F',\n", " 'SoChr10F',\n", " 'SoChr10F',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr07G',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr06F',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SsChr06E',\n", " 'SsChr06E',\n", " 'SsChr06E',\n", " 'SsChr06E',\n", " 'SsChr06E',\n", " 'SsChr06E',\n", " 'SsChr06E',\n", " 'SsChr06E',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D',\n", " 'SoChr01D']" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sids = [b.accn.split(\":\", 1)[0] for b in sb]\n", "sids" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "n = len(sids)\n", "prefix_a = np.zeros(n, dtype=\"int\")\n", "prefix_b = np.zeros(n, dtype=\"int\")\n", "for i in range(n):\n", " if i == 0:\n", " prefix_a[i] = sids[i] == ra\n", " prefix_b[i] = sids[i] == rb\n", " else:\n", " prefix_a[i] = prefix_a[i - 1] + (sids[i] == ra)\n", " prefix_b[i] = prefix_b[i - 1] + (sids[i] == rb)\n", "suffix_a = [0] * n\n", "suffix_b = [0] * n\n", "for i in range(n - 1, 0, -1):\n", " suffix_a[i - 1] = suffix_a[i] + (sids[i] == ra)\n", " suffix_b[i - 1] = suffix_b[i] + (sids[i] == rb)\n", "ab = prefix_a + suffix_b\n", "ba = prefix_b + suffix_a" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[