From 2da865ea49fdb9ca44846e8cadd93813ef395b17 Mon Sep 17 00:00:00 2001 From: AlexEMG Date: Tue, 11 Jun 2019 21:40:59 -0400 Subject: [PATCH] Example notebook for loading data and roi analysis --- Demo_loadandanalyzeDLCdata.ipynb | 5288 +++++++++++++++++ ...t_resnet50_openfieldOct30shuffle1_15001.h5 | Bin 0 -> 282371 bytes time_in_each_roi.py | 6 +- 3 files changed, 5291 insertions(+), 3 deletions(-) create mode 100644 Demo_loadandanalyzeDLCdata.ipynb create mode 100755 m3v1mp4DeepCut_resnet50_openfieldOct30shuffle1_15001.h5 diff --git a/Demo_loadandanalyzeDLCdata.ipynb b/Demo_loadandanalyzeDLCdata.ipynb new file mode 100644 index 0000000..751c37e --- /dev/null +++ b/Demo_loadandanalyzeDLCdata.ipynb @@ -0,0 +1,5288 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "N0gDJMy1ywm8" + }, + "source": [ + "# DeepLabCut Toolbox - demo for post processing\n", + "\n", + "https://github.com/AlexEMG/DeepLabCut" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "hTtJxcQ7ywnB" + }, + "outputs": [], + "source": [ + "# Importing the toolbox (takes several seconds)\n", + "import pandas as pd\n", + "from pathlib import Path\n", + "import numpy as np\n", + "import os\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "WOEHc0MeywnJ" + }, + "outputs": [], + "source": [ + "# this is example data from the public project: https://github.com/AlexEMG/DeepLabCut/tree/master/examples/openfield-Pranav-2018-10-30\n", + "video='m3v1mp4.mp4'\n", + "DLCscorer='DeepCut_resnet50_openfieldOct30shuffle1_15001'\n", + "\n", + "dataname = str(Path(video).stem) + DLCscorer + '.h5'\n", + "\n", + "#loading output of DLC\n", + "Dataframe = pd.read_hdf(os.path.join(dataname))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
scorerDeepCut_resnet50_openfieldOct30shuffle1_15001
bodypartssnoutleftearrighteartailbase
coordsxylikelihoodxylikelihoodxylikelihoodxylikelihood
075.86107288.5070020.99863572.025992102.7499170.99963885.85531390.1997040.999799142.480108180.3720460.999833
174.64714886.4391780.99941470.35006899.6213880.99983685.88981987.0618890.999841141.605256179.3654150.999991
273.19410384.0195960.99893270.25904197.2084030.99971184.49419584.3643510.999868144.028973175.5096240.999990
373.43876080.5111570.99791569.01925694.7772820.99972383.49111481.9676550.999787147.907935174.8481150.999971
472.88661878.1187250.99879368.07669591.4361650.99983981.37581378.2915110.999795150.296287170.7332740.999970
\n", + "
" + ], + "text/plain": [ + "scorer DeepCut_resnet50_openfieldOct30shuffle1_15001 \\\n", + "bodyparts snout \n", + "coords x y likelihood \n", + "0 75.861072 88.507002 0.998635 \n", + "1 74.647148 86.439178 0.999414 \n", + "2 73.194103 84.019596 0.998932 \n", + "3 73.438760 80.511157 0.997915 \n", + "4 72.886618 78.118725 0.998793 \n", + "\n", + "scorer \\\n", + "bodyparts leftear rightear \n", + "coords x y likelihood x y likelihood \n", + "0 72.025992 102.749917 0.999638 85.855313 90.199704 0.999799 \n", + "1 70.350068 99.621388 0.999836 85.889819 87.061889 0.999841 \n", + "2 70.259041 97.208403 0.999711 84.494195 84.364351 0.999868 \n", + "3 69.019256 94.777282 0.999723 83.491114 81.967655 0.999787 \n", + "4 68.076695 91.436165 0.999839 81.375813 78.291511 0.999795 \n", + "\n", + "scorer \n", + "bodyparts tailbase \n", + "coords x y likelihood \n", + "0 142.480108 180.372046 0.999833 \n", + "1 141.605256 179.365415 0.999991 \n", + "2 144.028973 175.509624 0.999990 \n", + "3 147.907935 174.848115 0.999971 \n", + "4 150.296287 170.733274 0.999970 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Let's have a look at the data:\n", + "\n", + "#these structures are awesome to manipulate, how -->> see pandas https://pandas.pydata.org/pandas-docs/stable/index.html\n", + "Dataframe.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "ROlflqQLywnP" + }, + "outputs": [], + "source": [ + "# The plotting functions below are put here for simplicity and so that the user can edit them. Note that they \n", + "# (or variants thereof) are in fact in standard DLC and accessible via:\n", + "\n", + "import deeplabcut\n", + "deeplabcut.utils.plotting.PlottingResults?" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def get_cmap(n, name='hsv'):\n", + " return plt.cm.get_cmap(name, n)\n", + "\n", + "def Histogram(vector,color,bins):\n", + " dvector=np.diff(vector)\n", + " dvector=dvector[np.isfinite(dvector)]\n", + " plt.hist(dvector,color=color,histtype='step',bins=bins)\n", + "\n", + "def PlottingResults(Dataframe,bodyparts2plot,alphavalue=.2,pcutoff=.5,colormap='jet',fs=(4,3)):\n", + " ''' Plots poses vs time; pose x vs pose y; histogram of differences and likelihoods.'''\n", + " plt.figure(figsize=fs)\n", + " colors = get_cmap(len(bodyparts2plot),name = colormap)\n", + " scorer=Dataframe.columns.get_level_values(0)[0] #you can read out the header to get the scorer name!\n", + "\n", + " for bpindex, bp in enumerate(bodyparts2plot):\n", + " Index=Dataframe[scorer][bp]['likelihood'].values > pcutoff\n", + " plt.plot(Dataframe[scorer][bp]['x'].values[Index],Dataframe[scorer][bp]['y'].values[Index],'.',color=colors(bpindex),alpha=alphavalue)\n", + "\n", + " plt.gca().invert_yaxis()\n", + "\n", + " sm = plt.cm.ScalarMappable(cmap=plt.get_cmap(colormap), norm=plt.Normalize(vmin=0, vmax=len(bodyparts2plot)-1))\n", + " sm._A = []\n", + " cbar = plt.colorbar(sm,ticks=range(len(bodyparts2plot)))\n", + " cbar.set_ticklabels(bodyparts2plot)\n", + " #plt.savefig(os.path.join(tmpfolder,\"trajectory\"+suffix))\n", + " plt.figure(figsize=fs)\n", + " Time=np.arange(np.size(Dataframe[scorer][bodyparts2plot[0]]['x'].values))\n", + "\n", + " for bpindex, bp in enumerate(bodyparts2plot):\n", + " Index=Dataframe[scorer][bp]['likelihood'].values > pcutoff\n", + " plt.plot(Time[Index],Dataframe[scorer][bp]['x'].values[Index],'--',color=colors(bpindex),alpha=alphavalue)\n", + " plt.plot(Time[Index],Dataframe[scorer][bp]['y'].values[Index],'-',color=colors(bpindex),alpha=alphavalue)\n", + "\n", + " sm = plt.cm.ScalarMappable(cmap=plt.get_cmap(colormap), norm=plt.Normalize(vmin=0, vmax=len(bodyparts2plot)-1))\n", + " sm._A = []\n", + " cbar = plt.colorbar(sm,ticks=range(len(bodyparts2plot)))\n", + " cbar.set_ticklabels(bodyparts2plot)\n", + " plt.xlabel('Frame index')\n", + " plt.ylabel('X and y-position in pixels')\n", + " #plt.savefig(os.path.join(tmpfolder,\"plot\"+suffix))\n", + "\n", + " plt.figure(figsize=fs)\n", + " for bpindex, bp in enumerate(bodyparts2plot):\n", + " Index=Dataframe[scorer][bp]['likelihood'].values > pcutoff\n", + " plt.plot(Time,Dataframe[scorer][bp]['likelihood'].values,'-',color=colors(bpindex),alpha=alphavalue)\n", + "\n", + " sm = plt.cm.ScalarMappable(cmap=plt.get_cmap(colormap), norm=plt.Normalize(vmin=0, vmax=len(bodyparts2plot)-1))\n", + " sm._A = []\n", + " cbar = plt.colorbar(sm,ticks=range(len(bodyparts2plot)))\n", + " cbar.set_ticklabels(bodyparts2plot)\n", + " plt.xlabel('Frame index')\n", + " plt.ylabel('likelihood')\n", + "\n", + " #plt.savefig(os.path.join(tmpfolder,\"plot-likelihood\"+suffix))\n", + "\n", + " plt.figure(figsize=fs)\n", + " bins=np.linspace(0,np.amax(Dataframe.max()),100)\n", + "\n", + " for bpindex, bp in enumerate(bodyparts2plot):\n", + " Index=Dataframe[scorer][bp]['likelihood'].values < pcutoff\n", + " X=Dataframe[scorer][bp]['x'].values\n", + " X[Index]=np.nan\n", + " Histogram(X,colors(bpindex),bins)\n", + " Y=Dataframe[scorer][bp]['x'].values\n", + " Y[Index]=np.nan\n", + " Histogram(Y,colors(bpindex),bins)\n", + "\n", + " sm = plt.cm.ScalarMappable(cmap=plt.get_cmap(colormap), norm=plt.Normalize(vmin=0, vmax=len(bodyparts2plot)-1))\n", + " sm._A = []\n", + " cbar = plt.colorbar(sm,ticks=range(len(bodyparts2plot)))\n", + " cbar.set_ticklabels(bodyparts2plot)\n", + " plt.ylabel('Count')\n", + " plt.xlabel('DeltaX and DeltaY')\n", + " \n", + " #plt.savefig(os.path.join(tmpfolder,\"hist\"+suffix))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bodyparts=Dataframe.columns.get_level_values(1) #you can read out the header to get body part names!\n", + "\n", + "bodyparts2plot=bodyparts #you could also take a subset, i.e. =['snout']\n", + "\n", + "%matplotlib notebook\n", + "PlottingResults(Dataframe,bodyparts2plot,alphavalue=.2,pcutoff=.5,fs=(8,4))\n", + "\n", + "# These plots can are interactive and can be customized (see https://matplotlib.org/) [in the code above]\n", + "# note that the snout and other bpts jitter in this example that was not trained for long." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "h9H7eqDLywnV" + }, + "source": [ + "## Great so let's use Federico's code for ROI analysis\n", + "\n", + "Functions to extract time spent by the mouse in each of a list of user defined ROIS!\n", + "\n", + "https://github.com/AlexEMG/DLCutils/blob/master/time_in_each_roi.py" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "jg96O2acywnW", + "scrolled": false + }, + "outputs": [], + "source": [ + "import time_in_each_roi #the function needs to be in the same folder as the notebook\n", + "\n", + "#let's calculate velocity of the snout\n", + "bpt='snout'\n", + "vel = time_in_each_roi.calc_distance_between_points_in_a_vector_2d(np.vstack([Dataframe[DLCscorer][bpt]['x'].values.flatten(), Dataframe[DLCscorer][bpt]['y'].values.flatten()]).T)\n", + "\n", + "fps=30 # frame rate of camera in those experiments\n", + "time=np.arange(len(vel))*1./fps\n", + "vel=vel #notice the units of vel are relative pixel distance [per time step]\n", + "\n", + "# store in other variables:\n", + "xsnout=Dataframe[DLCscorer][bpt]['x'].values\n", + "ysnout=Dataframe[DLCscorer][bpt]['y'].values\n", + "vsnout=vel" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.patches as patches\n", + "fig,ax = plt.subplots(1)\n", + "\n", + "#plot snout + bounding boxes for rois\n", + "plt.plot(xsnout,ysnout,'.-')\n", + "\n", + "rect = patches.Rectangle(rois['rightside'].topleft,rois['rightside'].bottomright[0]-rois['rightside'].topleft[0],rois['rightside'].bottomright[1]-rois['rightside'].topleft[1],linewidth=1,edgecolor='purple',facecolor='none')\n", + "ax.add_patch(rect)\n", + "rect = patches.Rectangle(rois['leftside'].topleft,rois['leftside'].bottomright[0]-rois['leftside'].topleft[0],rois['leftside'].bottomright[1]-rois['leftside'].topleft[1],linewidth=1,edgecolor='orange',facecolor='none')\n", + "ax.add_patch(rect)\n", + "plt.ylim(-11,491)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'avg_time_in_roi': {'leftside': 176.8, 'rightside': 56.2},\n", + " 'avg_time_in_roi_sec': {'leftside': 5.8933333333333335,\n", + " 'rightside': 1.8733333333333335},\n", + " 'avg_vel_in_roi': {'leftside': 4.798367612314975,\n", + " 'rightside': 7.978920763420923},\n", + " 'cumulative_time_in_roi': {'leftside': 1768, 'rightside': 562},\n", + " 'cumulative_time_in_roi_sec': {'leftside': 58.93333333333333,\n", + " 'rightside': 18.733333333333334},\n", + " 'transitions_per_roi': {'leftside': 10, 'rightside': 10}}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import time_in_each_roi #the function needs to be in the same folder as the notebook\n", + "\n", + "res = time_in_each_roi.get_timeinrois_stats(bp_tracking.T, rois, fps=30)\n", + "\n", + "#print results:\n", + "res" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "name": "Demo-labeledexample-MouseReaching.ipynb", + "provenance": [], + "version": "0.3.2" + }, + "kernelspec": { + "display_name": "Python [conda env:DLC2]", + "language": "python", + "name": "conda-env-DLC2-py" + }, + "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.6.6" + }, + "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 + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/m3v1mp4DeepCut_resnet50_openfieldOct30shuffle1_15001.h5 b/m3v1mp4DeepCut_resnet50_openfieldOct30shuffle1_15001.h5 new file mode 100755 index 0000000000000000000000000000000000000000..ad4a2475af3dca9a0590d8ad83cfa16989f8da0a GIT binary patch literal 282371 zcmeFad00;0`}e(wkSQWFmoj8ZLNe7hhbR;o;wq&g6`{zmWS%}UXZ&0!W9E6@<|$;J z!bS*9=9zn~_jz^o`F-#E`~05!uje_A-*+7cdtc{X>wK;AT<040*etj99gAC3v|ut7 zF3burOYG+U_s5vbJPJUR`#blz-nf&`xSeU-Zpu$P`ItGA$I2V!mPY+LGZJVq;vA)|r^4G)Qo z3<(QD?8#$FZifHMZ7E~C{%c$pV>)P(@hy9eS7$GG5x~q!bRQY-qFSg~F=qFVe1%y% z_cpzH8S@ns+uVNBsi%jxG%zoJVWGD$>)oMeug)Ibp;va9-29E~9mFr0-x=F{qKC=+ zo_)RAv~};$Yfwjzp55Ab4f=QG9qk(#%awx8Tz}^FPcalA>0~8E`tSOua|z1#pZ-aH z_@DOwzxGd^(E-86aXZ%^qx}3s1I3R)A%k*vaVR&gDVlS0|M%No-96gp6A^5RJDR3U z{lw1r+wEWK@!xCypOqtbocmXQ{r_*AD~53{!Y?eqFLKbRu@N$wXxuF-wz+XMWTfBl zz<-2TF-GHMK34Ld<;Mh$j0_16qw+FDa?3l|H)?9{_|NgRD9Ryd^RO6~#gK0*=NAzX zC~78xd=RQojJb)U@;H?b2@42}9yB;SG!kNFB{mgtoPOJdMmSj5xjVR9^hQ>Th(;Ep zA{;IJ?CE%(KJvpDztGWvk$DRLkNSEWbNPpc4<0tiLF&xY7Xg!V{Sp=)Hi+uz7ab_- zDD|}wIdc7CtY0H{3$fS8!mfAwz`%%hqel%I85kKBII5|`pm5=UAt8aG0Um=#HFk&$ z9zA48Xkep3jhZ?*G_nwu^o|S*A3e$=ENNg#_hYHTb! zG9)P2Sh$I?aBdwM2>}W_L)z z9}zy0gTqG#ikN6(;n&+gJYZ~u-^fwouxQ-ggTuo|28eypu93avuwfyhtarE3p`$`N z%RVWiD>5>-(=~^F2a8B!w-bCTs)Mm2x$7ieQr42O6yy1f8Pg+QEwTCw7IO3@#Ecd|FrJ(~Ex+QB3@ksg%yugnP z0)CV>YLR(-I-DPn7e{ja`tR4JSWQ9$wK{gie>CsrH=Qjim1v@s`eh0>{+?Ndvoy);F3bbnM*0z5O7ELEYPQ z>mU{V>$s2`$9d-)G;UG3M*pQ;2~j>b4*oUH|5;v+E4kc`o!#9f_uq{#@|aA;n1XFS zR-BbFm2WgCxBS2BFS+$WVd%-V|DW^nFkvR;koFf6ySe2;!bSxK1&$PaJw*9HFUb1NXGQ!0zOQ3f*J_{z?eH_VIh!(<=lyRj?M)Bji2STf`*cQmM7Y|e(r7@u=C=qEXKEg zX{UhPh2y`r^N`SRzfn$2L_6okhq>4<%)0mV=+jGZ{#|_L_FH+LoKIX2$nC$m+nhhB z?*H~5uSBBU<8sjcXNssqmgOGLFrLrk=FwN80=dWiWzha3c~&w`7)Dv{aXB~rC;i6* z|M9?oJn$b6{Ko_T@xcG*9!ReArKcilad4!rx7=#iKW4j%ZR+NHkgxl_qpy@Jg?~Xl z^4J(}`TNuPxs<=(Z^(=KUh@-jE&0`)A@aDoR>*VLM~v|&LpMX;_)4o#o;Ch~a#Mqr z_7M5`%`>ljWI478`grpDXyp6-=`^;=9^$kaxJPny<8}=LhiCrDcKyflrBSH6MIQn(4M|p0jCiC%`J<1X14e@<4nZL|`w|h>Y+$wJc=O3$@ zgfatQ&!zo3FL_*hn+n#nvDICG-`KZa zL%?BuRujh;oQQ@EKY?Qx?@0M)L#}t87$!OF!2CpPRfCY{URMzE`_0!P|LIw0q1TW} zobhfu@!LDdK<#~t;$Ud|h2Rdmy&uPQ)4)+4@7uP<)({Rm3%^SFAvxNq&t=K4ji_Gtv`pC1 zreKonuS`u79C@vrk}i5x8TjG7e!PbwWNP8Bs9#nivZG6}QsA%zvL~m5f%?FKTrkyxU%cOF>v@t zG5dHOIZQrbv#qV)<<1tQ8!2ZNr%Qy$_Z3<33hRyNfO3K^d?o@n{M- z1(e$0Xt!t_FIn|(jNdcU3WB4p0iSnU+z{iy!0Il<$uBs@%Zd_}{_G_Du=eUCF<&V-$YU60Y;S`xLJ&136+qCR}dq2M${(IF^z?Y0*a} z{lNG2=!$as7M~xoK&aJ;PmvbL!1qQ zQ%YnoCi^Nk;J59AY7^(-2gy18zQ-SMCQo?}4o{~zc+sysIQPD#fx}OcKcik(l=BY% zJngz(Y#F;GIHlzdrOKYs@Z0BGYsn8Cp2Kf_Z4BU~&8dL)(Z3*jPOnRr?c>m6>L=nv z!=FlLLx0IpT0Phbj`~1wtc(yLFL%@#oSp;pXjjAXTi_V_#e#FI=ugi02g;J5yldXe8=2u@iOhaJ2VBK4_-W?n@9<{c1khVD+! zqN>%xmdE)N6adb03ty`DH}rdM@n(yZ z@2u!h9QNj(7pyif1$&lV?m%()9vpT#pDH=Jma~SE-+~24m&d6ysUzw=r|AiBlm_Sz ztbfiP$gLmt2S;Cv>{*xk3H@hJiDlrhM(`Ui+~TR^C=2{MlHX?8k~&DtHI&RFwgUT@9KmI4m;AgByp+=j!hn?^vM3u zH}h~mYKKL)X7m^VPOWWc2T7h5C-U3o zaV$3ffgb+>gTXP(hds)~j}O7ghS>?un9q;16=;OI}Jl0Bt~Gk!MKA#CBT%HSBX5ufZ$+qaTa zesJUO1I3mxUy;A2+@X}5-V|s|fYVJCWZmk7K|41oTAjvj9hRAiot383#^*!iR}d zkT`7pA#iF;yF;9w7_S|))CkF0wZDEoaM*W|zfK;febq0}b0y><`j7qwajYk-1}AmW zJRH~0ptznL`vRQMM_a&AgJ_(3efy&jhDI9>=Fo zMafYPrZ%T_$RV1ydw=}eq>&d%Tv3paSlb?I=6dG>rvx* z_{v{zB}ZFrmjMow>v#tvL~JhX-HrIj=-Ck*ewOSR)ien5_S$J`w_x&*OQTPc!<$U) z434st;>~O6FUe8Q9IF9;b9sHIQ69&p&oKDm@xYz5j(tew_QrezXUwn-;IKQ?-saWT z$#I3-9GZdi672}hiw}|-4-;~>ZfLrzYpowgWt?a z4-Q{P9PNjKao>L6d3ULoRiyYR<<$xt{{srzL3dgBxv`1EuT=I1=lR;Ztl2^H%gVRl=wB1(>4?*kV_7%&3pj>_qFzl*9M-DmVX05;anlYQ z)|SfYf-Zv7;HNh@hA7y>3j8sEvnnNr?6IZ%smXg_PqEU7AEurc`J3i(4sZ0vI9~kP z7&;Hkq4tUIR2=ekiQUPbU+|}{jq?c1|6Y|^Aitp#@lS8Q4$i`1AJDEiZ*($oxYOug z&}aB-DwWH5DgC3IT$T;Fzl$F@%1atw+`GR5CoZ)e#X%JLdE~I7p~5ekORHCCS5;nz zZD!)I@E49Kw{X`+l+z8S__=j<5B#$vpdUE=7jZUQhU2__&V!-IuU4h}(<>;F!%8)u z4S#bv?l_w`N;`dfluHPmOdPXE(jIm6y}96@i*Nx)zl-Lxan0NMOMTAUV~}58ko@xQ^%D4(lc!?b)6@9}zq5Rs%zv-` zfFIy6JM!D7`stFRENN66eo)#AP79%s5M+`?BN|MtM??&3Hzgpohb+k_1lzZGSO6F97eh{Kj5gE6(Rsfg=8U&D8FQH0EJ z6>-4cuHFSZPn>Ip@kl92=Xv{1+(-WLqq~zmQz$-XFimpU+Q(zS;oXEit%Sgsrui3> z=gBE|V?K5kTgC@t9@a$`nu>adrNz_v?im{Q-sR-rygK=FLD-{ir0YA%BKt5|K0U*M z{B}WbS_^?O1^u{(a=ZV!@1_Wut^vkt*70Ol)ceiUA#}d$l7@J{y>BYc53^$GgQK7K z265wZaS%8zd(*(dJm->2VeF^Jaam5?lTU*^$_dn)C)KDd`JQHHsJ#u>z}Fu>Hea3> zuo^XIfun0l>(Q#|Tge{R7vwh?Zz6DwNq4dO5R{u#H3l4gBbv9(Hl2f=b8CNwKE9av zG2ITWJ>BNBfDm;#X~Ff^%!*eDHPV z#OOxG3HDbz~?hao;XZe4|WR^Nl#ZREUt z$RAy85ja{b?z6GgpFV-p-4c|uI8ht+aCgKt+Yt5u_FTR}>l%F< z_=mSXS|?Q2r@qt8u5zp2h4D@IcU9XF^0#dRD{7xNg5xFx#x&Oc6ga&*O{Vsl4?nQV z*J{9@BYlnieiHhxIxJ}|IP7A3aMU=Q|LkXdI6^6An)F1Qq?1*$7S-6UX7m z*LmOsT(km5H=Fu*)pliIXM0BdL{IZY+$V=<$zeIC4}zndg8eItO*{ckQgAu4XNKT( zHF4O0xieAj%tjl;0eg2t#+y>Q{1$LpmH7>O)F_%4GJd#Vyu4xOLGrzr7x?qmw#NoPkdr;1;Y<<|H&3%lx&S~fcI}6VbbQk5BvYf8d2bHtIIOaLN7&z<< zU9a<9@C)`B!py)?o(fJk6NilosEBgKs(6?%n4jPcZ z-1_tIo8A-GcXV||+m4jwQ})sL#^iZPcc~DGuZ=gucu{SS6a2Wj}{d$Msc;sT3_NK=jl(X~s3BMU!CrFNB z9g+xteyr&Pzv&Y;O1WXou&c=5{)#!|eDQTD*B2NvP;&UeLe1be-7&Ea@icLG`^Lr5 zetjD(hdt`~WN^~^t%HB&HyZ_ec-urNXVp8DLpxm3{|1NIZAX4fuXW%gSA9;Ln_|7! z!^A0Hrg>{{x|O>Mj+Q`*?%Se@F*$InLepGI0dfpZsNGO(c4?f)wr}( z@SFFbqFDFwF(Tf3$_z-nYpW$FckA_W>OYosvP3!0FFBpzAGg@<#`ukdzP9^UBfrx6 z4aHmhk4%x@r&7cbaFSkF5oewlk9y@|n4$2hS~$MJg8ZgrU6%TEyuo8|F1_mmdzkg# zQqEp^S|Y#O@(lRRuw)DPyQ>z9R2Xv`o;ej9{c^GH_A+t!{?s^>8>EhcKAl!Zma8-< z)D`uf5d4$c=c^0!9lNvw`S+Hv0Y|;FTH3FBJgI@?@XFpV!C@1`JnL=Zumz25aeP75 z+2APi&PaW{OkgTF-IcHKr+)GhDQBIQyaOk>^$2j3M#H6iQ}ms7QV(-k;OH;6%6PHf z>MeFCaqpiKaJ;T{Z}QL8)!^8aC<=Y+($-VF=l79vef6K6kzeV07;&IK`cT^AFyjcx z(^Fmj6`@-lD>!`!BK}vFWR(~t*u_LC=P^shf-~*OLvVD_;yj|S%s^?&{R6U`^33cW{HCt7 z&yeLVZyzkn@nF@F?D0C5F62t({;R;bS-}q+CHnF!ng7j{Mc{m_{2m<* zw*jq33w_M(>|)aAUrpMhUJjfs%iSt@@)!7;%|+CE=3i#WZ{C(ThOTBZKM$Jp7dQuJ z6!4e&SZguv^p`tGJgEOnlsow?%x;sbniOdfIMmEK**V@%J{h9dG;jisXwNTztpGh7aU))Ly6a(I2D|?v8}-2 zWoJJV<+O8^w?W^TL7C8}|N8QVtaqIURgga;;Yd$K{N~9XvVF9~H!0x!xz*HP%C&KV zGf?bMQbrBw7^R5)*V$3v=!Ydf5aoD6!3E&Veel>r9#=MhzAog-uu^g0a6@%)^cx?f zN&Z5|_wbu<-TMAAzrKUu3=%uW6!>K#I01u5AN!I|wl~|IJsSFUmRtsVwAIfq2|0J( z{uT1=RStrq94~?RD7>pY+H*@`Jf9|R1PP8lm%^C2=T>kEPsv8T_2UNL6Z(A0ygv$k zTmGbjqa0iYJLhijM*blm62MWDW=nf?u8}psS<__#^-~McfBf<|)-}VT74b7*CS89M z6V7vK&;5A3{$tG(p#nlDO94sSDVCG}Hp!SNT0 zC~?+r1vuaOltBAvr8hm5`ifd^MY+^X$>1nOi=|3_iLaHBKmLPxFGc+3jtykJ47IH4 z$oz`c_qO2hJz||YSY)8YbzcULRm6Vzne)KW1>TV5`0^R?vYg&5{x5LYs@BqP>a{5| zz;P->&vEIlM9cVO8+^OT{OrW#j^L;T#5fut1jcmRV;MLeRvQW$G>V=dWJaX-a@ zOVituQ)%KI=sVc?KJ_2RgcQm7l;wr|sr^I2VR2Jrer8v+tCXvg%hjX&tHiuK#Kht2 zK1>-WjZ2UrEPtK20)MyKS!kfFhtlKfMIl$lC7UCE z@VF*q&yfa?CEq2f0_0=Y_osH&U&wY1HgO{6wmXaClh4+`as8}RIbQB8_UjVr*Xmwz z^b^g-=cbVJw26bkXDvc~C7<;zDC2|WJRJf(-c2jP9`*HK*{&fn1CrX|Saggcc27O- z3J$yJBI8GC5K&i-J2`jne8zQ1yEvxHbbtvI# zN@lwb6^f0ideS0r_)dDRg|h+}|2-FlOODd9-v#L7oomQ;^K4h-GVB>?{RDC~|18P*0%b%{YzN+Pq=ispE+p=9lg(72e37IX+@iG^v-mG^W%-bIy z+ySRY=R0Ii?`u-7Pun#RoL2g-kn7!aa@*N9S7IhdwQErL;%2{PH*Q?`$|9au#w$j@N3$xg+4rU$xLn z>e21Gp5+=Q6;dkvZT)yf?Dk5igyZVb`&d`Z-Zvc_zjQtHDV{sA4hgN94o>fUk04h& z>M%~dUQq;kK6dX1JxYO~Y}arjL~PQmVxX_NBi*;)1wy5N+)lqfDCO$nZI7W(zwDQ^ zN5A|_JLJ##)PeZ7ugU(VeaWZ|4lA$>9Okicaz2(+0&RouO%2Xdu$+6|EF6YfzcL~{82lfmGq`Rir6Mj9ysTP0)*$~oD^(shio39{Z={-24m94iw! zqmSHbuUeu1wlA;|`9D6d>?`HEb#0|wiJ4bh)|b8CFa#X^jBi=4qlCbiJ~pc)$AA8^ zbT~NL?nxNO&bM&GyioUyJ;qV~_XlYYf7x@e)W@sOKLz`FCxe{NnT=lnIFoKn21hyC zJea_sP#Nz{IQyJNmDQk;Xcz11*ql&MvvovcEIt>8R7^a>pP+@YtW zJWOXH^(c4kov3|o{mgJ3BMwl~{XUxreWT{=gg&j)KJ@P?jju!A*E!l(5qS+s{bc_! zRIa=M^60d`Dc+X$lI;O<>k?T`=4D1`*SwnxjClxn{!KY?pVBpJb(NZ^4k%Xs}^(oXHpyVA)2a?BQr&)*j%$ME}zwUqPf z>*;xIUC7F8*Ri4?CACG-d#HDjgpSas|2{(#<@n&s?=a7qJ>CR+)TO&*`{dl|e+qKT zvpSL=7$f6@EnMDIa@19Z7Suk?T4uS9Gg3tTu9+W3{YFjb0ekq|VsadfKb+hg^JCh~ z=H#~lo21_y&R!?`H#)5*|7=<&$G7+|W`VHhUEP<6C&jLNrfZCe!@o>E1Wvt*w0_Y4 zYA!iEC1W@^y^dU=dSB`z+uJ#3=yK$*=u;hjV}}(ves~70TuAlxPD6ba+Xq>$R>|#03@|W#4 zgJV^+CG262;{8Q~CDGoNz$9nx?kw4H^zd!|W44W^?^DOP=j`Pr0 zI%^L6#{PVf`O{NYK9F*rP;&$I!!e;*t`kihp2a$WGjr|+a11LSA+8+ayfJTmkK2TL ztJzDWo$BH6tKf7Vd(+_g|Q2ff3r23A01U>rm-LhRLnKow_lnJ?3IvXLVE(4*1?9M5mngX*y*Nw!1IwZ$IeB|qUpYCo}M+NM|19>an0 zJEWZ5s%;0q8Cs-X5pwPF$G@Pb(!g}+5syb?yT*!)l$7cF!clHjk8ALc(&yZHQI3z_ zxefBM9c{>OS!d;XUHiU&1NiF~41?U@JxQ+bExTMulpH=_9`X4j&urHzxfsS4+VI{}cAYK?P*OS;v61r@D|qw;%IQ|l z!+Ge`{9cfUwWfZm6x=TRmBIWw&Ck~5vk`}Eg_n#Q{`tO3tkA=U9#4WjO5G7}U1tcz z#`K`tXz1Hibrm>VTaNMi`~VL5!Hd-1y5P1_u9hxK^Yixv1N9%Tcaoz&)^AR%BI;4( zZ5lZGBd4=mXXa8^+@;-npl{yJW5gMrPmWh?Z>677&R1+6N&ZPIF5`eds(Dq)a|SOh z2sul1l6LNF(|AR!kh8Xi>F^u-8kg-lO9+hV*t<{QG~4}~^o@Cd_*Hgv!2I~K`FGNH zd6SF-Hq_S)@}O08SmCv?ia4HZlLU^oPCUOlTL>r_+VporxtOpF(&tc2 z)=wSu$Pe-%kMBUPw_hgh)Lm-s2)RqWbMTw~$`#1lEPE8I2%Yy&`}oMMcJf8G>m0FT zObz?fddJ@GkFL6pQ~o8uHy;S5O@E36b{b7DQ#nD&qKV z-_GFZ8;JW~bA^D?*E!Elqui?MfD3?=ghp*(Q zbv`7Ba;*I!T5nx?twEpqthMe0kp1o)^X+_$6P+-nzNsE9Lw}m>hRi z`y0;Sq+ZVlzv&)|>#%Vm1Erm@25;zF-+dQ2hI}@1UCxubkCk$r{fwvJu*%J3d#eqG zv_pPnpg(a&R=_&Z$)g!Kmp1-JTpMZ%dluwk#5{bXEy~q-bf4@oe<|lvrQeAWke~hR z4mlg_A;*K9iv9XfejWk2u52lcZ|C2UJzxA@)A&|Wa2A?4x@oJLpl6bROr*kw*4F{xlR7~!QTd(Xn7qr?nqKUcwBu7`kNChxxNgQ)V!qd2L|u^_b@qPa zb>fUv_^m{bn#ix~(H#2JT9z{2*@Lc4AW!ny06FizHQRMX9;f?<`Z#`Za}m0pYiW*QJ7cKd1zK!I$ZJkuJWcJYO-4 z+vEs&&(r(JZ(Yh{x~>umDDmlCEaY*$dsr#*Tf#}n@tj(FO{|c!5A}`rUk2fRlK%Ue zve1`Ns6Fg49Jqk<=2BJ;kmuh+*Fy|z|ITz>Efi2v&KU~J<4V8vuW_EmtJReE8?~5@ z3u1-ba5M2e*%Nt1@_9&!?^4dvs%GH)gKgiPA>}oW*8(R!a|+pGzB={ASw0f$Bv!r|y%(d^y9R%rId>lU<9`>2J^JTOvRqmD)=SKF;9OX> z1^v|EtG;smTPUWaT&}w`RuTI%clm&$e#dhLys*|t%K7p)rzt)H!FPM`d!v*qQ+GEd zd!FGwwPN9x4;*FiaoD4~m-N!rz;aVgd{R)XB7POV6i4=~#d8bn+m!rL&Iebo1%29Y zaot8jhG}vF~Kmqcb_eR*mgO)vYT`MwD(w&>=603;)CaZ10QT9HO z<@EI&{$TyzCFO5$)b@DpD$b>D2=bpRdjcF)TP5@7bW=QKem+HeJ6P(|`xnz(*NGiU zh1>3_603;)*^_L+;kD%RY`o>|9-1s?d3ZX-fo6v1)pVov-I3p>kPaMvXS3w&4IE47 zbLaPY2S|N7-_M%sda*-E8z21z^?viK2yxbm^_|F8bs-+`EN0wNDQ8X*2rHgWT(B zf8yBSIVyeQD+MKo6?!wC`gLth)=RCYPDK8TZP&tYhP9Jlx+aQ@lnmu3FO_d3^! z^9cIX&J*Z-Gj!%9Y9F~C6U}&i_;ct>T}Jzc95cxKFK7ssdse8!JYvH*b7B_SoR;FVAw`nCtu$2_cd66;v;-t?5mLm>AJdI*mG`bGFH*|%)0)RUO~n)+!a z5w}}~z?fdQdMr6SYJ4Y(-;qycIb}{sx-PV4;vC{sM7*()PuoilFP^j!9Hpo5k9bV% zMs&kiA!j4%Tn0z2Bm9{p1eEyJqPU*LE-6Eav-qwo$Li?Jpf50gA~?DLaCqNU%^| zh?9%VMQ`;QsR9 z=njZD*eL{*__6qrQlHxGPYrOiVQ2?Cvu+!}DfOx@`OO=CQ(BHrhkXB$@8~~TBE~oV zWBG|#p@&t9`{ggU`shp9uDiqzC3Uestz#G2mmyBLSVxL4TYen73i>)twgrbxfVl@7!H;+DPvg#8j1%0s%{<6Iv`(P*aYP*I-nx5$ zv&_{K9A&VuXJ0Nxd>_g0$0WgFD_iU%Kgj2=L^Gc1-AL-=wMWza99LTE`jwL_pr9NgZ^z4^Al-^%^1kRf;6Ddv=a4fH1tdDyC^!gk2DDpf| zj7RTY`bxQ4WPmH#lPs>Uh;>NYDMKYErKC#~I0i1p-2+C5*gVQU3QoVp{uFNoFrVlg zUCM%EpY#VD!!sJkOFGl}`O}c&;ONF-UeGeFd%|xS*N+SmJjO-~za5l2NUDFwVc-;Z zxeJc|E;!1(x^E$mQ&)ncRsu&~(iPV!*sF~Pz)^iMUnv{^b^|BaD<3$9qQag-xft=i zrGS3W_cAS&IJeQ>n&0^AkY_~|MO^DQBHqR~+fyBO?tXI_9Q_GVZ{g22OFM!y`$aum z*HAYL&S4YBv)R3-(0A|WEpT`Xw1e*6w!M(=oK^@N-5kjETbh*tXW-%;;3)EZS3GWZ zBbC;qq{KL#%Erz^riEr>5Ukp19-3uff+iAdL1=!+Mao!P87$vwr?%11J=RcOHW>C1J1McW@Hb& zr_Hx5T>|+ZjlL75%fP%CH#CE;^My~D>MMEthZuK{nK)eQGF5Wek|2r$cAVZTurZW{ zzNz`iZ+scWo8`#(%@diw~q+Y2!!dyF5R}3HBq5?vvVlilFv64!+uT{PtLppC^1d1dfs_;^qWF z#Q)syL>1^OP@JA)(h{h>!{@IB|NaUOitFYSA3K*fggu>R(E6G;NBhKO{8%A5>|@jC z;AmbV-c%tlrpv1iOi;wWWp#Q#Sm%UwQd*ZLtt7`#^3hYYn|>(bnwkIjOUk)di}hG1 z>r>!2hsos^#0t45Uq;X2=;jE{NtT&f14{q4jtg_0!?=$4L&GFw1f8J{bBHf zE7AASbZ^mao61{v1pi~`I}fQ>83udUud`vX^7o5rG2o~zMI4?M0!sXq-S_c|Sa&pX z{fzqYH)sc~_RnVERIYG?#))I_8^5W~hP<l& z_btwd43yM6QEMcJtumwU*XhPl{g%$QgFc@_HK~1Opx>)4JNiTZ@#YI~m^HoEkhr*R ztkiS!*Dl-fF(pPnic!RVQp+{OS&jK#-C*Mm&eOxT;28EG z4p{QTg^*vhEe=1kmttKbPS+ntrA?N43?FR3;iW~tIxhs2_<=FzU@u zRk4!#c)+uLWY0dthoaUR29D>%dx!%=2=(hPllDjsKhR@hU$GT;+{HM0LGB=_qdqnS z=WLc8IC=}TLsIM8C#9SZNSF=|r}vucyB2K?j(e$X;4o_%kIZbx!5;rImas=J*MS#} z6rtxxUwY0iVH|z0g*V3fTK8)!-FI&BGJ^cp4*JB2_zcv`bpbuMr!ByB1--+NzTkxS zC`9d3K&-;Tg<#g_bjig|W*)3=B>^@phM)jZA+>xtkTw{l1SQ47*| z+4S5C$S0OHqc~`Z@iND9p%XaOORh#gRW_m@D9dygBu9DFn7%)w$nSGpGjWu8nN^|h zQf&{^&rk>TR$ssHlX9K;+p@GiF}`;{BK?Py^OE)AyNN9`(0h9E<$mEjh8L*2%ty+V zM}m_gc8sa^+mvWU?B{$wO5^Wcv^QILx}nskeyL~;4l5+e32yDaN#Hm>m;#Q{5Pmka z@tO|5HLP5OIEO|4>qdyEm-2BlIQAb~lRXQu{^xW}aE8X0 zSFLJ-v*s|p$D$?CdC}IN^`t%gT>NFMk9e%G=cb9H&AM6#obSnd(5`$i>dh;*9u0Y! zZPjQznt=0nwZ5S|IIRK#;5S`EoGn#&UJyyG{)OSXFU>+Pb z7#zly`GB+Va|0SD>cAe|-UIg__ixe5U6d0Kw1UrLefNP=dP@sh@0knEZJB}6&2Tf6 z`|CV?|A75Q9PA93*%@-TX|`m~8Td!N5ta=3-dDZBQD0#GQ9RmBkR0CL>Ja%&zTbE! zm%>=(Q$M4`aW!?nHS96$k{rYG1C|Q(ty<9y9A!Q@JayMa$j5&>3yxBT=BotjAlOs4 zRf9f4ALCiVp1URvU*mFDa+tnfWyG6q9L6iP`G#szAGZr?i+I!G5g(rGGIl~f%fCGN zx#nZU`?8O8-cj{NQy;01$?yE!lRHS<)qMpx>E+C+-jxv7x^vfSq27mYIAT1|rBHm# zdmICKQcx+>OKXSmL#;C%_x-uonI3%=p_*2!&l#GY zzbWO)`IEFxG*l3N5U1-0`g8*4=%lsO-zLJ&d#j?`!*73<-T_CwEI1EL9OaR%CG08Y zM$gq7ud}hUSJy#)YBt@M&>a9@@0_EPoRo;IB`_WuKEZyymq-w>ac;vgmxyPzm$z&Pr8UfU_{Q zHaJ{<4>HvVVa#t=Wd)p;(~`kaQW4i*t+$_reCQ>-_Ny>KkY*2rz(R#*^Y0sz_FbBzK_h$<#%VEiXBR7zgnZf z`P3x~9JYemp@Cgt=yNW{z|mfT6Fsnliin9P{DbYixHQ5 z5`RUCa_rm{`YxGvjp`k6b}jhpBj|hDh6!kg$8#E;g#1lIT2HX{SRd%J`fkQL^=Qxz zaM&Ngf1bzDf;WM4>Jfc!NpZmVrfXcx8Tz7r7@v1+f%Z`omJgS5zQv2|(Je>4Qs$q< z^MCB&3VN=F$?q1WnK;VtzsG~)TZYc-`4jX9K4x!WaJo*)@fLcSM&D~zsu#lhjeN=y z8zG|mt!wEEdpykP zJ7zi$=+k*GNP)b^kk@2SXV|Iu&ZsXrynE%b;OJ=G&lU|XB01b@%_g$vvEaNmanxIG z4EhWW?cg`*#xk ze5&BQF>(0W=5t2K{FR!k@SAQ1UFYgt`5WYIOBld0^n#t1mc!h^nO~8<|D)>2pUabi z!TG-1oa~X`rG9JTu))s@OMS|P?X8GY8ga^O*BQWRn7;}6%^P;6lwX`I<$QZD`u?}# zjq3o)NBKe6!?{X(S3JD-*s14H(otf>glCfAZ~a`VP~cgP~t0`27%KnnZEO{p9ep%nn&J4 zzRG7QIBI8b)Ujqwz-baW4(nvKCh}{4Zr1^4(_?xLh20bRvvM(P=iN#U(06LwAlRcE zC%+wZnGgA*g^j^sXGy-bN)F`Z6S~lPZw{>!gQ5;aE5e_jSM-ISc>%%6HgQ;q8#Tkl zaq;1rvgEfusGsNkiA|vI&c+>RH`N;UIK2PSMamVcBDUZtWiY-*6uH<&a`c^C=_`A3n#nCh;r0FL)jx<08}PI3LE zOd9MwxTFsHgIXE-*q+qplH*x(K%pLD%Xm}BRjV?qBu6=M=sE0H;)MK@$UsTiUkBfX z;Tvt}?`tS0seKZgZ3BOO+w0)yZxg?d|1t2(rhNiOv4NcH8xD{h?pw^*uX6u%G=Z6pZ#{n=tOg)n4x;Ifjnj znPkr=q34T!nTurxAVQ0gQ!!iD1z8B9~H+Go{`QAzA zXxydm`YMHbSW6D;J1dmzc`rEMOq`gdQ#kDT8AH!!>q5X$JO-|UzNaCFz`^%kMX}5$ z{*Z4TL*J`r$6%+jyKxb44hEG4hs*0B-%T8K{nc=Af}7CaAyDmU-fY`ymehB8@<2xG zDyPTJpAU_nyzCh^!;FcU9+pOr{_;+aMXCg`IW~xzS$CS zP_Xetii3D?cy{BOQlIJ(UK)Pm*NAhl!XMbbZl8|gsuSdK1548R#r}5qyENi~Q6c}G z#~IM8ILhrRz6KmM1b*XZk5z%+d=J$j&Mo3h?EMP)_m1!&PDPS0@u2gl6NS8JoJbS$ zKPC>J5|%Fgru2xR_bAyp#1HGa#8PsU!UsweE$@)S9qi}#bJIgFM1l%b0o zfy10A4u4;E1mF5Y95~uRaP+$~27%Km@)$Twe(%Z5#Nk6WyMfcN&P=o`li#}&yr>U7 zq0e*iZ1|JaMSN&ZCx=5mJ1r6V4D%po9(($N6W^M?Gr=|rJq1i0X8Y=6h_s`7`Smo< z`Gdn(pDqf0J71TicAHN6Zie)ia{bxx518jPd7VwXCtlReLvp^lO*V%fWtGrVFpqP* z)MIcWQ;pAU(0YTF+>`}7+l4=eKh?byR~FZNC5Okyq=KXOhy2stmI~~#dQ+a_Jza3j z^Ef>%cT0}qHpuwC`WBQ^oXZ~tr;xgsIJIFX+Y;;!J2!NpbuW|Si{Li%tPW1d+_vO@ z`Te&-d7O7yYhaJnW-qj>LgOeq-EL&wwmm&#wnso$~*I9oTbBzxrd&KYA*$Nd>4 z>MLHT`2xSOBO-rc6GsWT;|_gIer=?9l

5-E5Nzd8N6HP(R)ra)-#A5#VIDXW*zc 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 z

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 z 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 literal 0 HcmV?d00001 diff --git a/time_in_each_roi.py b/time_in_each_roi.py index e1ab240..d5562e1 100644 --- a/time_in_each_roi.py +++ b/time_in_each_roi.py @@ -127,7 +127,7 @@ def get_roi_at_each_frame(bp_data, rois): def get_timeinrois_stats(data, rois, fps=None): """ - Quantify number of times the animal enters a roi, comulative number of frames spend there, comulative time in seconds + Quantify number of times the animal enters a roi, cumulative number of frames spend there, cumulative time in seconds spent in the roi and average velocity while in the roi. In which roi the mouse is at a given frame is determined with --> get_roi_at_each_frame() Quantify the ammount of time in each roi and the avg stay in each roi @@ -176,8 +176,8 @@ def get_indexes(lst, match): avg_vel_per_roi[name] = np.average(np.asarray(vels)) results = dict(transitions_per_roi=transitions_count, - comulative_time_in_roi=data_time_inrois, - comulative_time_in_roi_sec=data_time_inrois_sec, + cumulative_time_in_roi=data_time_inrois, + cumulative_time_in_roi_sec=data_time_inrois_sec, avg_time_in_roi=avg_time_in_roi, avg_time_in_roi_sec=avg_time_in_roi_sec, avg_vel_in_roi=avg_vel_per_roi)