{ "cells": [ { "cell_type": "markdown", "id": "e14673fa", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# Supervised annotation in DeepOF - search for pre-established patterns" ] }, { "cell_type": "markdown", "id": "e3044fb9", "metadata": {}, "source": [ "[](https://colab.research.google.com/github/lucasmiranda42/deepof/blob/master/docs/source/tutorial_notebooks/deepof_supervised_tutorial.ipynb)" ] }, { "cell_type": "markdown", "id": "8a0170cc", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "##### What we'll cover:\n", " \n", "* Run the supervised annotation pipeline.\n", "* Generate Gantt plots with all traits.\n", "* Explore trait enrichment across conditions.\n", "* Visualize global embeddings using the retrieved traits." ] }, { "cell_type": "code", "execution_count": 1, "id": "764990b0", "metadata": {}, "outputs": [], "source": [ "# If using Google colab, uncomment and run this cell and the one below to set up the environment\n", "# Note: because of how colab handles the installation of local packages, this cell will kill your runtime.\n", "# This is not an error! Just continue with the cells below.\n", "# import os\n", "# !git clone -q https://github.com/mlfpm/deepof.git\n", "# !pip install -q -e deepof --progress-bar off\n", "# os.chdir(\"deepof\")\n", "# !curl --output tutorial_files.zip https://datashare.mpcdf.mpg.de/s/Hu1XjZkY9zml0mm/download\n", "# !unzip tutorial_files.zip" ] }, { "cell_type": "code", "execution_count": 2, "id": "50799c68", "metadata": {}, "outputs": [], "source": [ "# import os\n", "# os.chdir(\"deepof\")\n", "# import os, warnings\n", "# warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "id": "6048415d", "metadata": {}, "source": [ "Let's start by importing some packages. We'll use python's os library to handle paths, pickle to load saved objects, and the data entry API within DeepOF, located in deepof.data" ] }, { "cell_type": "code", "execution_count": 3, "id": "d64823a2", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "import os\n", "import pickle\n", "import deepof.data" ] }, { "cell_type": "markdown", "id": "ffdcefa1", "metadata": {}, "source": [ "We'll also need some plotting gear:" ] }, { "cell_type": "code", "execution_count": 4, "id": "e438d39f", "metadata": {}, "outputs": [], "source": [ "import deepof.visuals\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "markdown", "id": "60b9158e", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "### Loading a previously initiated project" ] }, { "cell_type": "markdown", "id": "5d73cb96", "metadata": {}, "source": [ "As last time, we'll load the already created tutorial dataset for further processing:" ] }, { "cell_type": "code", "execution_count": 5, "id": "6382da27", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# Load a previously saved project\n", "my_deepof_project = deepof.data.load_project(\"./tutorial_files/tutorial_project\")" ] }, { "cell_type": "markdown", "id": "f47b171a", "metadata": {}, "source": [ "**NOTE** to better show how DeepOF deals with statistics, all results shown in the documentation version of this tutorial were obtained using the full SI dataset, containing a total of 53 animals. If you'd like to gain access to this dataset, check out the code availability statement of the main DeepOF paper." ] }, { "cell_type": "markdown", "id": "10776701", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "### Running the supervised annotation pipeline" ] }, { "cell_type": "markdown", "id": "2fdb66e9", "metadata": {}, "source": [ "The supervised pipeline within DeepOF aims at providing simple but generalizable annotators for a variety of single and dyadic traits (as depicted in the figure below). Each of these traits is tagged independently, which means that more than one label can be applied per time point!" ] }, { "cell_type": "markdown", "id": "3c20a0d5", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "b6c3b1c9", "metadata": {}, "source": [ "Running the pipeline is as simple as executing the `.supervised_annotation()` method in your Coordinates object. A progress bar will indicate how many videos have been processed already. Let's run it and see what happens:" ] }, { "cell_type": "code", "execution_count": 6, "id": "d368119b", "metadata": { "pycharm": { "name": "#%%\n" }, "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "data preprocessing : 100%|██████████| 4/4 [00:54<00:00, 13.58s/step, step=Loading kinematics]\n", "supervised annotations : 100%|██████████| 53/53 [01:31<00:00, 1.73s/table, step=post processing] \n" ] } ], "source": [ "supervised_annotation = my_deepof_project.supervised_annotation()" ] }, { "cell_type": "markdown", "id": "7cc204fc", "metadata": {}, "source": [ "It worked! Upon inspection, we see that supervised annotations contains a dictionary-like object with experiment IDs as keys, and data frames with annotations as values:" ] }, { "cell_type": "code", "execution_count": 7, "id": "4f5ee54f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | B_W_nose2nose | \n", "B_W_sidebyside | \n", "B_W_sidereside | \n", "B_W_nose2tail | \n", "W_B_nose2tail | \n", "B_W_nose2body | \n", "W_B_nose2body | \n", "B_W_following | \n", "W_B_following | \n", "B_climb-arena | \n", "... | \n", "W_stat-lookaround | \n", "W_stat-active | \n", "W_stat-passive | \n", "W_moving | \n", "W_sniffing | \n", "W_distance | \n", "W_cum-distance | \n", "W_speed | \n", "B_missing | \n", "W_missing | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00:00:00 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000 | \n", "0.0000 | \n", "0.00000 | \n", "0 | \n", "0 | \n", "
| 00:00:00.040002666 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000 | \n", "0.0000 | \n", "0.00000 | \n", "0 | \n", "0 | \n", "
| 00:00:00.080005333 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000 | \n", "0.0000 | \n", "0.00000 | \n", "0 | \n", "0 | \n", "
| 00:00:00.120008 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.000 | \n", "0.0000 | \n", "0.00000 | \n", "0 | \n", "0 | \n", "
| 00:00:00.160010667 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "1.0 | \n", "0.0 | \n", "4.140 | \n", "4.1400 | \n", "103.45860 | \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", "
| 00:09:59.799986665 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "1.0 | \n", "0.0 | \n", "0.0 | \n", "0.070 | \n", "42787.8236 | \n", "1.74930 | \n", "0 | \n", "0 | \n", "
| 00:09:59.839989332 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "1.0 | \n", "0.0 | \n", "0.0 | \n", "0.067 | \n", "42787.8906 | \n", "1.67433 | \n", "0 | \n", "0 | \n", "
| 00:09:59.879991999 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "1.0 | \n", "0.0 | \n", "0.0 | \n", "0.051 | \n", "42787.9416 | \n", "1.27449 | \n", "0 | \n", "0 | \n", "
| 00:09:59.919994666 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "1.0 | \n", "0.0 | \n", "0.0 | \n", "0.037 | \n", "42787.9786 | \n", "0.92463 | \n", "0 | \n", "0 | \n", "
| 00:09:59.959997333 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "1.0 | \n", "0.0 | \n", "0.0 | \n", "0.025 | \n", "42788.0036 | \n", "0.62475 | \n", "0 | \n", "0 | \n", "
14999 rows × 33 columns
\n", "| \n", " | B_W_nose2nose | \n", "B_W_sidebyside | \n", "B_W_sidereside | \n", "B_W_nose2tail | \n", "W_B_nose2tail | \n", "B_W_nose2body | \n", "W_B_nose2body | \n", "B_W_following | \n", "W_B_following | \n", "B_climb-arena | \n", "... | \n", "W_stat-lookaround | \n", "W_stat-active | \n", "W_stat-passive | \n", "W_moving | \n", "W_sniffing | \n", "W_distance | \n", "W_cum-distance | \n", "W_speed | \n", "B_missing | \n", "W_missing | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 00:00:00 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.00 | \n", "0.00 | \n", "0.0000 | \n", "0.0 | \n", "0.0 | \n", "
| 00:00:00.040002666 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.00 | \n", "0.00 | \n", "0.0000 | \n", "0.0 | \n", "0.0 | \n", "
| 00:00:00.080005333 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.00 | \n", "0.00 | \n", "0.0000 | \n", "0.0 | \n", "0.0 | \n", "
| 00:00:00.120008 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.00 | \n", "0.00 | \n", "0.0000 | \n", "0.0 | \n", "0.0 | \n", "
| 00:00:00.160010667 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "... | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "1.0 | \n", "0.0 | \n", "4.14 | \n", "4.14 | \n", "103.4586 | \n", "0.0 | \n", "0.0 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 00:09:59.799986665 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 00:09:59.839989332 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 00:09:59.879991999 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 00:09:59.919994666 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
| 00:09:59.959997333 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
14999 rows × 33 columns
\n", "| \n", " | B_W_nose2nose | \n", "B_W_sidebyside | \n", "B_W_sidereside | \n", "B_W_nose2tail | \n", "W_B_nose2tail | \n", "B_W_nose2body | \n", "W_B_nose2body | \n", "B_W_following | \n", "W_B_following | \n", "B_climb-arena | \n", "... | \n", "W_climb-arena | \n", "W_sniff-arena | \n", "W_immobility | \n", "W_stat-lookaround | \n", "W_stat-active | \n", "W_stat-passive | \n", "W_moving | \n", "W_sniffing | \n", "B_missing | \n", "W_missing | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20191203_Day1_SI_JB08_Test_5 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "4 | \n", "15 | \n", "3 | \n", "5 | \n", "25 | \n", "4 | \n", "29 | \n", "81 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_6 | \n", "4 | \n", "0 | \n", "1 | \n", "0 | \n", "3 | \n", "4 | \n", "8 | \n", "0 | \n", "10 | \n", "0 | \n", "... | \n", "4 | \n", "3 | \n", "3 | \n", "4 | \n", "28 | \n", "2 | \n", "30 | \n", "82 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_7 | \n", "4 | \n", "1 | \n", "1 | \n", "10 | \n", "2 | \n", "15 | \n", "4 | \n", "9 | \n", "4 | \n", "0 | \n", "... | \n", "3 | \n", "7 | \n", "1 | \n", "3 | \n", "23 | \n", "1 | \n", "23 | \n", "74 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_8 | \n", "10 | \n", "8 | \n", "2 | \n", "12 | \n", "2 | \n", "24 | \n", "10 | \n", "15 | \n", "4 | \n", "0 | \n", "... | \n", "7 | \n", "10 | \n", "1 | \n", "4 | \n", "33 | \n", "1 | \n", "32 | \n", "83 | \n", "6 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_13 | \n", "7 | \n", "0 | \n", "3 | \n", "4 | \n", "2 | \n", "13 | \n", "8 | \n", "9 | \n", "1 | \n", "0 | \n", "... | \n", "2 | \n", "9 | \n", "3 | \n", "4 | \n", "34 | \n", "4 | \n", "36 | \n", "82 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_14 | \n", "9 | \n", "2 | \n", "0 | \n", "6 | \n", "0 | \n", "19 | \n", "5 | \n", "9 | \n", "1 | \n", "0 | \n", "... | \n", "5 | \n", "11 | \n", "3 | \n", "11 | \n", "40 | \n", "3 | \n", "40 | \n", "101 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_15 | \n", "11 | \n", "0 | \n", "0 | \n", "0 | \n", "2 | \n", "10 | \n", "9 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "3 | \n", "13 | \n", "3 | \n", "4 | \n", "30 | \n", "3 | \n", "31 | \n", "81 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_16 | \n", "5 | \n", "0 | \n", "0 | \n", "0 | \n", "2 | \n", "5 | \n", "4 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "10 | \n", "8 | \n", "3 | \n", "11 | \n", "34 | \n", "4 | \n", "36 | \n", "91 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_22 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "3 | \n", "0 | \n", "... | \n", "0 | \n", "13 | \n", "2 | \n", "9 | \n", "44 | \n", "3 | \n", "48 | \n", "94 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_23 | \n", "2 | \n", "0 | \n", "2 | \n", "20 | \n", "2 | \n", "27 | \n", "3 | \n", "18 | \n", "3 | \n", "0 | \n", "... | \n", "9 | \n", "11 | \n", "1 | \n", "3 | \n", "26 | \n", "4 | \n", "29 | \n", "75 | \n", "2 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_24 | \n", "5 | \n", "0 | \n", "3 | \n", "19 | \n", "1 | \n", "19 | \n", "5 | \n", "17 | \n", "3 | \n", "0 | \n", "... | \n", "4 | \n", "5 | \n", "1 | \n", "2 | \n", "26 | \n", "1 | \n", "26 | \n", "75 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_29 | \n", "9 | \n", "2 | \n", "2 | \n", "12 | \n", "8 | \n", "21 | \n", "13 | \n", "13 | \n", "10 | \n", "0 | \n", "... | \n", "4 | \n", "12 | \n", "2 | \n", "2 | \n", "24 | \n", "4 | \n", "22 | \n", "75 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_30 | \n", "2 | \n", "0 | \n", "1 | \n", "24 | \n", "1 | \n", "19 | \n", "4 | \n", "20 | \n", "5 | \n", "0 | \n", "... | \n", "11 | \n", "3 | \n", "1 | \n", "6 | \n", "24 | \n", "1 | \n", "27 | \n", "69 | \n", "0 | \n", "1 | \n", "
| 20191203_Day1_SI_JB08_Test_31 | \n", "12 | \n", "0 | \n", "0 | \n", "0 | \n", "2 | \n", "4 | \n", "8 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "0 | \n", "6 | \n", "5 | \n", "7 | \n", "36 | \n", "7 | \n", "38 | \n", "107 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_32 | \n", "8 | \n", "0 | \n", "0 | \n", "2 | \n", "2 | \n", "11 | \n", "8 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "3 | \n", "13 | \n", "2 | \n", "7 | \n", "38 | \n", "2 | \n", "39 | \n", "99 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_37 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "7 | \n", "8 | \n", "0 | \n", "7 | \n", "30 | \n", "0 | \n", "31 | \n", "77 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_38 | \n", "3 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "2 | \n", "0 | \n", "4 | \n", "0 | \n", "... | \n", "8 | \n", "9 | \n", "0 | \n", "10 | \n", "26 | \n", "0 | \n", "27 | \n", "86 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_39 | \n", "2 | \n", "0 | \n", "5 | \n", "15 | \n", "6 | \n", "15 | \n", "5 | \n", "14 | \n", "8 | \n", "0 | \n", "... | \n", "3 | \n", "6 | \n", "1 | \n", "9 | \n", "38 | \n", "4 | \n", "39 | \n", "110 | \n", "1 | \n", "1 | \n", "
| 20191203_Day1_SI_JB08_Test_40 | \n", "8 | \n", "2 | \n", "3 | \n", "7 | \n", "6 | \n", "13 | \n", "9 | \n", "11 | \n", "7 | \n", "0 | \n", "... | \n", "3 | \n", "7 | \n", "0 | \n", "5 | \n", "40 | \n", "0 | \n", "41 | \n", "102 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_45 | \n", "9 | \n", "2 | \n", "2 | \n", "26 | \n", "1 | \n", "23 | \n", "3 | \n", "25 | \n", "1 | \n", "0 | \n", "... | \n", "5 | \n", "10 | \n", "1 | \n", "2 | \n", "20 | \n", "3 | \n", "21 | \n", "64 | \n", "3 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_46 | \n", "2 | \n", "0 | \n", "1 | \n", "10 | \n", "1 | \n", "13 | \n", "2 | \n", "18 | \n", "2 | \n", "0 | \n", "... | \n", "13 | \n", "4 | \n", "2 | \n", "5 | \n", "31 | \n", "3 | \n", "31 | \n", "77 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_47 | \n", "4 | \n", "1 | \n", "0 | \n", "0 | \n", "2 | \n", "5 | \n", "5 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "10 | \n", "6 | \n", "2 | \n", "8 | \n", "37 | \n", "2 | \n", "38 | \n", "85 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_53 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "1 | \n", "11 | \n", "1 | \n", "4 | \n", "36 | \n", "5 | \n", "41 | \n", "80 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_54 | \n", "5 | \n", "2 | \n", "1 | \n", "10 | \n", "1 | \n", "11 | \n", "3 | \n", "8 | \n", "4 | \n", "0 | \n", "... | \n", "3 | \n", "12 | \n", "2 | \n", "8 | \n", "32 | \n", "6 | \n", "35 | \n", "79 | \n", "2 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_55 | \n", "0 | \n", "0 | \n", "0 | \n", "16 | \n", "0 | \n", "13 | \n", "0 | \n", "16 | \n", "0 | \n", "0 | \n", "... | \n", "8 | \n", "13 | \n", "1 | \n", "8 | \n", "29 | \n", "1 | \n", "30 | \n", "74 | \n", "0 | \n", "0 | \n", "
| 20191203_Day1_SI_JB08_Test_56 | \n", "6 | \n", "0 | \n", "3 | \n", "9 | \n", "2 | \n", "12 | \n", "6 | \n", "6 | \n", "2 | \n", "0 | \n", "... | \n", "7 | \n", "11 | \n", "1 | \n", "4 | \n", "22 | \n", "2 | \n", "22 | \n", "81 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_6 | \n", "0 | \n", "0 | \n", "0 | \n", "10 | \n", "1 | \n", "7 | \n", "0 | \n", "11 | \n", "2 | \n", "0 | \n", "... | \n", "6 | \n", "11 | \n", "1 | \n", "6 | \n", "29 | \n", "0 | \n", "30 | \n", "87 | \n", "0 | \n", "1 | \n", "
| 20191204_Day2_SI_JB08_Test_7 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "2 | \n", "2 | \n", "1 | \n", "2 | \n", "0 | \n", "... | \n", "7 | \n", "6 | \n", "1 | \n", "5 | \n", "27 | \n", "4 | \n", "29 | \n", "68 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_8 | \n", "7 | \n", "0 | \n", "2 | \n", "0 | \n", "4 | \n", "8 | \n", "3 | \n", "0 | \n", "8 | \n", "0 | \n", "... | \n", "9 | \n", "6 | \n", "6 | \n", "5 | \n", "27 | \n", "7 | \n", "24 | \n", "77 | \n", "3 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_13 | \n", "4 | \n", "0 | \n", "2 | \n", "0 | \n", "1 | \n", "3 | \n", "4 | \n", "0 | \n", "4 | \n", "0 | \n", "... | \n", "8 | \n", "11 | \n", "1 | \n", "12 | \n", "31 | \n", "2 | \n", "32 | \n", "68 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_14 | \n", "2 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "3 | \n", "2 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "2 | \n", "9 | \n", "2 | \n", "6 | \n", "29 | \n", "3 | \n", "32 | \n", "83 | \n", "0 | \n", "2 | \n", "
| 20191204_Day2_SI_JB08_Test_15 | \n", "5 | \n", "0 | \n", "1 | \n", "11 | \n", "1 | \n", "15 | \n", "3 | \n", "20 | \n", "4 | \n", "0 | \n", "... | \n", "8 | \n", "8 | \n", "1 | \n", "5 | \n", "29 | \n", "1 | \n", "31 | \n", "82 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_16 | \n", "4 | \n", "0 | \n", "4 | \n", "9 | \n", "3 | \n", "15 | \n", "7 | \n", "9 | \n", "4 | \n", "0 | \n", "... | \n", "5 | \n", "7 | \n", "0 | \n", "4 | \n", "19 | \n", "1 | \n", "21 | \n", "62 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_21 | \n", "4 | \n", "1 | \n", "3 | \n", "16 | \n", "3 | \n", "20 | \n", "7 | \n", "18 | \n", "5 | \n", "0 | \n", "... | \n", "6 | \n", "12 | \n", "1 | \n", "11 | \n", "33 | \n", "3 | \n", "32 | \n", "89 | \n", "5 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_22 | \n", "7 | \n", "6 | \n", "1 | \n", "17 | \n", "0 | \n", "21 | \n", "4 | \n", "21 | \n", "2 | \n", "0 | \n", "... | \n", "2 | \n", "13 | \n", "0 | \n", "2 | \n", "32 | \n", "1 | \n", "33 | \n", "93 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_23 | \n", "7 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "4 | \n", "6 | \n", "1 | \n", "2 | \n", "0 | \n", "... | \n", "7 | \n", "9 | \n", "1 | \n", "7 | \n", "24 | \n", "1 | \n", "24 | \n", "67 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_24 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "3 | \n", "0 | \n", "4 | \n", "0 | \n", "... | \n", "4 | \n", "19 | \n", "1 | \n", "12 | \n", "43 | \n", "1 | \n", "44 | \n", "92 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_30 | \n", "7 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "3 | \n", "8 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "0 | \n", "7 | \n", "7 | \n", "3 | \n", "36 | \n", "8 | \n", "38 | \n", "89 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_37 | \n", "4 | \n", "0 | \n", "3 | \n", "9 | \n", "4 | \n", "15 | \n", "7 | \n", "12 | \n", "5 | \n", "0 | \n", "... | \n", "1 | \n", "13 | \n", "2 | \n", "8 | \n", "43 | \n", "1 | \n", "44 | \n", "100 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_38 | \n", "4 | \n", "2 | \n", "2 | \n", "17 | \n", "1 | \n", "17 | \n", "6 | \n", "14 | \n", "3 | \n", "0 | \n", "... | \n", "4 | \n", "10 | \n", "0 | \n", "10 | \n", "29 | \n", "3 | \n", "31 | \n", "75 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_39 | \n", "5 | \n", "1 | \n", "1 | \n", "14 | \n", "1 | \n", "26 | \n", "4 | \n", "15 | \n", "2 | \n", "0 | \n", "... | \n", "4 | \n", "5 | \n", "2 | \n", "4 | \n", "20 | \n", "2 | \n", "22 | \n", "69 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_40 | \n", "4 | \n", "0 | \n", "1 | \n", "0 | \n", "10 | \n", "5 | \n", "6 | \n", "0 | \n", "5 | \n", "0 | \n", "... | \n", "4 | \n", "4 | \n", "4 | \n", "3 | \n", "18 | \n", "5 | \n", "21 | \n", "71 | \n", "1 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_45 | \n", "7 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "4 | \n", "7 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "1 | \n", "9 | \n", "4 | \n", "0 | \n", "34 | \n", "3 | \n", "37 | \n", "72 | \n", "1 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_46 | \n", "7 | \n", "0 | \n", "1 | \n", "0 | \n", "3 | \n", "9 | \n", "5 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "0 | \n", "11 | \n", "3 | \n", "5 | \n", "27 | \n", "9 | \n", "27 | \n", "83 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_47 | \n", "4 | \n", "0 | \n", "1 | \n", "5 | \n", "1 | \n", "7 | \n", "4 | \n", "6 | \n", "3 | \n", "0 | \n", "... | \n", "10 | \n", "5 | \n", "1 | \n", "14 | \n", "27 | \n", "1 | \n", "28 | \n", "74 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_53 | \n", "3 | \n", "1 | \n", "4 | \n", "5 | \n", "1 | \n", "12 | \n", "4 | \n", "7 | \n", "2 | \n", "0 | \n", "... | \n", "9 | \n", "12 | \n", "1 | \n", "7 | \n", "33 | \n", "4 | \n", "34 | \n", "88 | \n", "1 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_54 | \n", "4 | \n", "1 | \n", "0 | \n", "13 | \n", "0 | \n", "18 | \n", "2 | \n", "16 | \n", "0 | \n", "0 | \n", "... | \n", "10 | \n", "4 | \n", "3 | \n", "6 | \n", "30 | \n", "3 | \n", "31 | \n", "90 | \n", "1 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_55 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "2 | \n", "0 | \n", "15 | \n", "0 | \n", "... | \n", "3 | \n", "8 | \n", "4 | \n", "7 | \n", "17 | \n", "5 | \n", "19 | \n", "63 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_56 | \n", "2 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "... | \n", "7 | \n", "7 | \n", "0 | \n", "3 | \n", "39 | \n", "6 | \n", "43 | \n", "100 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_61 | \n", "9 | \n", "0 | \n", "1 | \n", "1 | \n", "1 | \n", "10 | \n", "11 | \n", "0 | \n", "1 | \n", "0 | \n", "... | \n", "7 | \n", "11 | \n", "0 | \n", "6 | \n", "36 | \n", "2 | \n", "37 | \n", "92 | \n", "2 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_62 | \n", "5 | \n", "0 | \n", "3 | \n", "2 | \n", "2 | \n", "6 | \n", "7 | \n", "1 | \n", "1 | \n", "0 | \n", "... | \n", "12 | \n", "13 | \n", "0 | \n", "11 | \n", "44 | \n", "1 | \n", "45 | \n", "104 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_63 | \n", "6 | \n", "1 | \n", "1 | \n", "13 | \n", "0 | \n", "19 | \n", "8 | \n", "16 | \n", "3 | \n", "0 | \n", "... | \n", "5 | \n", "7 | \n", "0 | \n", "6 | \n", "29 | \n", "1 | \n", "29 | \n", "96 | \n", "0 | \n", "0 | \n", "
| 20191204_Day2_SI_JB08_Test_64 | \n", "3 | \n", "1 | \n", "3 | \n", "7 | \n", "6 | \n", "11 | \n", "5 | \n", "8 | \n", "3 | \n", "0 | \n", "... | \n", "7 | \n", "14 | \n", "0 | \n", "5 | \n", "37 | \n", "4 | \n", "41 | \n", "92 | \n", "0 | \n", "0 | \n", "
53 rows × 27 columns
\n", "