From 4fcc401f717e79a59b3973f26307f468268e2b8c Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Sat, 24 Feb 2024 23:34:39 +0000 Subject: [PATCH 1/4] Setting up GitHub Classroom Feedback From a39beb6ff1674e8df158fbb6de69323f52af364f Mon Sep 17 00:00:00 2001 From: CostanzoJa <161173618+CostanzoJa@users.noreply.github.com> Date: Sat, 24 Feb 2024 17:52:56 -0600 Subject: [PATCH 2/4] Update editme.md --- editme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editme.md b/editme.md index f8fa35c..6cea76b 100644 --- a/editme.md +++ b/editme.md @@ -1,3 +1,3 @@ _Write a question for your teacher below._ -Q: +Q: What is the color of the sky? From dfe002ac8f47fc9c3b4778f9b39ee227f00348c6 Mon Sep 17 00:00:00 2001 From: CostanzoJa <161173618+CostanzoJa@users.noreply.github.com> Date: Sat, 24 Feb 2024 18:00:42 -0600 Subject: [PATCH 3/4] Update quiz.md --- quiz.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/quiz.md b/quiz.md index 430c2d8..d168f91 100644 --- a/quiz.md +++ b/quiz.md @@ -15,7 +15,7 @@ Q1. Which statement about GitHub Classroom is true? 3. GitHub Classroom is a website that provides online courses to learn about GitHub. 4. GitHub Classroom is developed by 3rd party developers but uses the GitHub API to integrate into GitHub. -Answer: +Answer: 2 ------ @@ -26,7 +26,7 @@ Q2. What does the command `git add` do? 3. Adds a file to the .git directory 4. Adds a file to the working directory -Answer: +Answer: 2 ------ @@ -37,7 +37,7 @@ Q3 . What Git commands can be used to correct mistakes? 3. `git reset` and `git revert` 4. `git revert` and `git remove` -Answer: +Answer: 3 ------ @@ -48,7 +48,7 @@ Q4. Which GitHub feature provides task automation and workflow functionality, wh 3. Pull Requests 4. Actions -Answer: +Answer: 4 ------ @@ -59,4 +59,4 @@ Q5. Pull requests provide a mechanism to request which git action? 3. merge 4. push -Answer: +Answer: 3 From b282fda154672db8b358c02f5035ac56b743572c Mon Sep 17 00:00:00 2001 From: CostanzoJa <161173618+CostanzoJa@users.noreply.github.com> Date: Mon, 25 Mar 2024 14:24:56 -0500 Subject: [PATCH 4/4] Created using Colaboratory --- doseResponse_Assignment.ipynb | 4740 +++++++++++++++++++++++++++++++++ 1 file changed, 4740 insertions(+) create mode 100644 doseResponse_Assignment.ipynb diff --git a/doseResponse_Assignment.ipynb b/doseResponse_Assignment.ipynb new file mode 100644 index 0000000..bc3c9be --- /dev/null +++ b/doseResponse_Assignment.ipynb @@ -0,0 +1,4740 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mPYU3pRE6j5s" + }, + "source": [ + "# Dose–Response Relationships \n", + "\n", + "You will need to edit the file Quiz.md to get autograded for this assignment. \n", + "\n", + "The first part of the assignment will have you performing analysis on Vanderbilt's Thunor instance. \n", + "\n", + "You can access the plots for afatinib treatment using DIP rate or viability at 72 h by following [this link](https://thunor.app.vanderbilt.edu/plots?dataset=13&colsLg=3&colsMd=2&plotdata=plotType%3Ddrc%26datasetId%3D13%26dataset2Id%3D%26useCellLineTags%3Doff%26c%3D8%26c%3D9%26c%3D10%26c%3D11%26c%3D12%26c%3D17%26c%3D18%26useDrugTags%3Doff%26d%3D5%26colorBy%3Doff%26drMetric%3Ddip%26drcType%3Drel&plotdata=plotType%3Ddrc%26datasetId%3D13%26dataset2Id%3D%26useCellLineTags%3Doff%26c%3D8%26c%3D9%26c%3D10%26c%3D11%26c%3D12%26c%3D17%26c%3D18%26useDrugTags%3Doff%26d%3D5%26colorBy%3Doff%26drMetric%3Dviability%26drcType%3Drel) \n", + "\n", + "Then you can add new plots as needed to answer the questions in the Quiz.md. You must modify the Quiz.md file to get your grade (either modify the file directly on GitHub or upload to your assignment repository.) \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "--7S3yToJ858" + }, + "source": [ + "You can learn more about Thunor web and how to use it in [this tutorial](https://youtu.be/q4LQCjuBnmg). \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rk7tOb4O6j5t" + }, + "source": [ + "## Assignment\n", + "\n", + "Task 1)\n", + "Got to [thunor.app.vanderbilt.edu](https://thunor.app.vanderbilt.edu/plots?dataset=13&colsLg=3&colsMd=2&plotdata=plotType%3Ddrc%26datasetId%3D13%26dataset2Id%3D%26useCellLineTags%3Doff%26c%3D8%26c%3D9%26c%3D10%26c%3D11%26c%3D12%26c%3D17%26c%3D18%26useDrugTags%3Doff%26d%3D5%26colorBy%3Doff%26drMetric%3Ddip%26drcType%3Drel&plotdata=plotType%3Ddrc%26datasetId%3D13%26dataset2Id%3D%26useCellLineTags%3Doff%26c%3D8%26c%3D9%26c%3D10%26c%3D11%26c%3D12%26c%3D17%26c%3D18%26useDrugTags%3Doff%26d%3D5%26colorBy%3Doff%26drMetric%3Dviability%26drcType%3Drel) and compare the responses of all cell lines to afatinib using DIP rate or 72 h viability as the effect metric.\n", + "\n", + "Task 2) Complete all tasks within this notebook \n", + "\n", + "Task 3) Edit and submit the Quiz.md file in your assigment repository (you will need to refer to thunor@VU and this notebook). " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "khJP1y9J-PFx", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "14659d5e-b3d2-4f1d-fa6f-444098a9356f" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Collecting thunor\n", + " Downloading thunor-0.1.30-py3-none-any.whl (58 kB)\n", + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/58.9 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[91m╸\u001b[0m\u001b[90m━━━━━\u001b[0m \u001b[32m51.2/58.9 kB\u001b[0m \u001b[31m2.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.9/58.9 kB\u001b[0m \u001b[31m1.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from thunor) (1.25.2)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from thunor) (1.11.4)\n", + "Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from thunor) (1.5.3)\n", + "Requirement already satisfied: plotly in /usr/local/lib/python3.10/dist-packages (from thunor) (5.15.0)\n", + "Requirement already satisfied: seaborn in /usr/local/lib/python3.10/dist-packages (from thunor) (0.13.1)\n", + "Requirement already satisfied: tables in /usr/local/lib/python3.10/dist-packages (from thunor) (3.8.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.10/dist-packages (from pandas->thunor) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->thunor) (2023.4)\n", + "Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly->thunor) (8.2.3)\n", + "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from plotly->thunor) (24.0)\n", + "Requirement already satisfied: matplotlib!=3.6.1,>=3.4 in /usr/local/lib/python3.10/dist-packages (from seaborn->thunor) (3.7.1)\n", + "Requirement already satisfied: cython>=0.29.21 in /usr/local/lib/python3.10/dist-packages (from tables->thunor) (3.0.9)\n", + "Requirement already satisfied: numexpr>=2.6.2 in /usr/local/lib/python3.10/dist-packages (from tables->thunor) (2.9.0)\n", + "Requirement already satisfied: blosc2~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from tables->thunor) (2.0.0)\n", + "Requirement already satisfied: py-cpuinfo in /usr/local/lib/python3.10/dist-packages (from tables->thunor) (9.0.0)\n", + "Requirement already satisfied: msgpack in /usr/local/lib/python3.10/dist-packages (from blosc2~=2.0.0->tables->thunor) (1.0.8)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn->thunor) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn->thunor) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn->thunor) (4.50.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn->thunor) (1.4.5)\n", + "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn->thunor) (9.4.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib!=3.6.1,>=3.4->seaborn->thunor) (3.1.2)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.1->pandas->thunor) (1.16.0)\n", + "Installing collected packages: thunor\n", + "Successfully installed thunor-0.1.30\n" + ] + } + ], + "source": [ + "try:\n", + " import google.colab\n", + " IN_COLAB = True\n", + "except:\n", + " IN_COLAB = False\n", + "\n", + "if IN_COLAB:\n", + " try:\n", + " import thunor\n", + " except:\n", + " !pip install thunor" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "S7arIb5p6j5v" + }, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "import numpy as np\n", + "import scipy.optimize as opt\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import thunor\n", + "from thunor.io import read_hdf\n", + "from thunor.dip import dip_rates\n", + "from thunor.curve_fit import fit_params\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OEqLRV9i6j5v" + }, + "source": [ + "#### Define model functions" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "xLwsKFPX6j5v" + }, + "outputs": [], + "source": [ + "def ll4(x,h,E0,Emax,EC50):\n", + " '''\n", + " Reformulation of the LL4 function\n", + " - h: Hill coefficient\n", + " - E0: no-drug effect\n", + " - Emax: max effect\n", + " - EC50: Concentration at midpoint between E0 and Emax\n", + " '''\n", + " return(Emax + (E0-Emax) / (1+np.exp(h*(np.log(x/EC50)))) )\n", + "\n", + "def ll3(x,b,d,e):\n", + " '''\n", + " 3-parameter log-logistic function with no/minimal effect set to a value of 1\n", + " - b: Hill coefficient\n", + " - d: Emax\n", + " - e: EC50\n", + " '''\n", + " return(d + (1-d) / ( 1+np.exp( b*np.log(x/e)) ) )" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rsr7s8lF6j5w" + }, + "source": [ + "#### Load all PC9 data using Thunor" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "XNV4lefh6j5w", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "9fa30be8-e239-4e02-82de-59bb03f386b3" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--2024-03-25 18:49:27-- https://github.com/VU-CSP/quantbio-assignments/raw/main/data/HTS001.h5\n", + "Resolving github.com (github.com)... 140.82.121.3\n", + "Connecting to github.com (github.com)|140.82.121.3|:443... connected.\n", + "HTTP request sent, awaiting response... 302 Found\n", + "Location: https://raw.githubusercontent.com/VU-CSP/quantbio-assignments/main/data/HTS001.h5 [following]\n", + "--2024-03-25 18:49:28-- https://raw.githubusercontent.com/VU-CSP/quantbio-assignments/main/data/HTS001.h5\n", + "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.109.133, ...\n", + "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 1285259 (1.2M) [application/octet-stream]\n", + "Saving to: ‘./data/HTS001.h5’\n", + "\n", + "./data/HTS001.h5 100%[===================>] 1.23M --.-KB/s in 0.02s \n", + "\n", + "2024-03-25 18:49:28 (56.2 MB/s) - ‘./data/HTS001.h5’ saved [1285259/1285259]\n", + "\n" + ] + } + ], + "source": [ + "if IN_COLAB and not os.path.exists(\"./data/HTS001.h5\"):\n", + " if not os.path.exists(\"./data\"):\n", + " !mkdir data\n", + " !wget -O ./data/HTS001.h5 https://github.com/VU-CSP/quantbio-assignments/raw/main/data/HTS001.h5\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4vfqV7ej_u4G" + }, + "source": [ + "#### Description of HTS001.h5 dataset \n", + "\n", + "* PC9 lung adenocarcinoma cell line and six PC9 variants, each treated with 14 different drugs\n", + "* All cell lines were genetically modified to express a nuclear-localized fluorescent protein (H2BmRFP) and assessed by live-cell fluorescence microscopy in multiwell plates\n", + "* No cell death indicator was used in these experiments (i.e., some of the cell counts may be of dead cells that retained fluorescent nuclear signal)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "AGPMg7hx_veF", + "outputId": "605aa977-4eb7-4a7c-d996-796495a9f440" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "HTS Dataset (14 drugs/combos, 7 cell lines)" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], + "source": [ + "hts001 = read_hdf(\"./data/HTS001.h5\")\n", + "hts001" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lD-ZAmZG6j5x" + }, + "source": [ + "### Calculate DIP rates and fit parameters for all conditions using Thunor" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Pg6FhXEpu3R9", + "outputId": "3b9cde74-d4aa-4442-e3c5-caab4e458d80" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.10/dist-packages/thunor/curve_fit.py:157: RuntimeWarning: invalid value encountered in log\n", + " return c + (d - c) / (1 + np.exp(b * (np.log(x) - np.log(e))))\n", + "/usr/local/lib/python3.10/dist-packages/thunor/curve_fit.py:224: RuntimeWarning: invalid value encountered in scalar power\n", + " icN = self.ec50 * (ic_frac / (1 - ic_frac - (emax / e0))) ** (\n" + ] + } + ], + "source": [ + "ctrl_diprates, expt_diprates = dip_rates(hts001)\n", + "fit_p = fit_params(ctrl_diprates, expt_diprates)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uplmof9Tv0ck" + }, + "source": [ + "### Examine the fit parameters using `head()`" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 605 + }, + "id": "JUbfwkyCv2bV", + "outputId": "7e7ccf6c-bdcf-4bba-df7f-94a553c6ed92" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " dip_ctrl \\\n", + "dataset_id cell_line drug \n", + "13 BR1 afatinib dose well_id\n", + "1.868750e-12 54148 ... \n", + " DS3 afatinib dose well_id\n", + "1.868750e-12 54456 ... \n", + " DS7 afatinib dose well_id\n", + "1.868750e-12 54764 ... \n", + " DS8 afatinib dose well_id\n", + "1.868750e-12 55072 ... \n", + " DS9 afatinib dose well_id\n", + "1.868750e-12 55380 ... \n", + "\n", + " dip_expt \\\n", + "dataset_id cell_line drug \n", + "13 BR1 afatinib dose well_id\n", + "1.868750e-11 53868 ... \n", + " DS3 afatinib dose well_id\n", + "1.868750e-11 54176 ... \n", + " DS7 afatinib dose well_id\n", + "1.868750e-11 54484 ... \n", + " DS8 afatinib dose well_id\n", + "1.868750e-11 54792 ... \n", + " DS9 afatinib dose well_id\n", + "1.868750e-11 55100 ... \n", + "\n", + " fit_obj \\\n", + "dataset_id cell_line drug \n", + "13 BR1 afatinib \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", + " \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", + "
dip_ctrldip_exptfit_objmin_dose_measuredmax_dose_measuredemax_obsaa_obslabelic50ec50emaxeinfemax_relemax_obs_relaaauchill
dataset_idcell_linedrug
13BR1afatinibdose well_id\n", + "1.868750e-12 54148 ...dose well_id\n", + "1.868750e-11 53868 ...<thunor.curve_fit.HillCurveLL4 object at 0x7f0...1.868750e-120.000004-0.0165771.512939BR1\\nafatinib3.006719e-073.968750e-06-0.007034-22.244175-0.221182-0.5212501.52215010006.9263030.346485
DS3afatinibdose well_id\n", + "1.868750e-12 54456 ...dose well_id\n", + "1.868750e-11 54176 ...<thunor.curve_fit.HillCurveLL4 object at 0x7f0...1.868750e-120.000004-0.0118575.548105DS3\\nafatinib3.034130e-113.630411e-11-0.004809-0.004809-0.139991-0.3451165.7380451.4747941.375790
DS7afatinibdose well_id\n", + "1.868750e-12 54764 ...dose well_id\n", + "1.868750e-11 54484 ...<thunor.curve_fit.HillCurveLL4 object at 0x7f0...1.868750e-120.000004-0.0155824.355910DS7\\nafatinib5.993042e-115.188016e-110.0046150.0046150.118395-0.3997534.3050491.2729561.873320
DS8afatinibdose well_id\n", + "1.868750e-12 55072 ...dose well_id\n", + "1.868750e-11 54792 ...<thunor.curve_fit.HillCurveLL4 object at 0x7f0...1.868750e-120.000004-0.0112723.708655DS8\\nafatinib9.443298e-117.862445e-110.0061910.0061910.154127-0.2806023.9781231.3738022.011579
DS9afatinibdose well_id\n", + "1.868750e-12 55380 ...dose well_id\n", + "1.868750e-11 55100 ...<thunor.curve_fit.HillCurveLL4 object at 0x7f0...1.868750e-120.000004-0.0112574.820104DS9\\nafatinib4.533335e-114.868199e-11-0.002011-0.002011-0.055564-0.3110755.1816841.4969751.478611
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + " \n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "fit_p", + "summary": "{\n \"name\": \"fit_p\",\n \"rows\": 98,\n \"fields\": [\n {\n \"column\": \"dip_ctrl\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_expt\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"fit_obj\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 83,\n \"samples\": [\n \"\",\n \"\",\n \"\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"min_dose_measured\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 6.13224588828129e-13,\n \"min\": 1.86875e-13,\n \"max\": 1.86875e-12,\n \"num_unique_values\": 3,\n \"samples\": [\n 1.86875e-12,\n 1.86875e-13,\n 9.34375e-13\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"max_dose_measured\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.3023331568757925e-06,\n \"min\": 3.96875e-07,\n \"max\": 3.96875e-06,\n \"num_unique_values\": 3,\n \"samples\": [\n 3.96875e-06,\n 3.96875e-07,\n 1.984375e-06\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emax_obs\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.01566417331180773,\n \"min\": -0.03570696964608489,\n \"max\": 0.04254358309093761,\n \"num_unique_values\": 98,\n \"samples\": [\n -0.013330471767314623,\n 0.010960912432053164,\n 0.008795784897088585\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"aa_obs\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.1729430890782155,\n \"min\": 0.01664755323390161,\n \"max\": 5.548105274875427,\n \"num_unique_values\": 98,\n \"samples\": [\n 3.88826639298782,\n 0.63002649412734,\n 0.8908370777238129\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"label\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 98,\n \"samples\": [\n \"PC9\\npaclitaxel\",\n \"MGH\\nlapatinib\",\n \"DS8\\ntrametinib\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ic50\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.897166682213857e-07,\n \"min\": 3.0341304510090875e-11,\n \"max\": 1.0208864987355376e-06,\n \"num_unique_values\": 70,\n \"samples\": [\n 2.1033218046819952e-08,\n 3.0067188743620965e-07,\n 8.326249440747168e-09\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"ec50\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8.425195935576258e-07,\n \"min\": 3.559696855555902e-11,\n \"max\": 3.96875e-06,\n \"num_unique_values\": 76,\n \"samples\": [\n 4.8681988593328133e-11,\n 2.8539289155148197e-07,\n 7.944671077636375e-09\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emax\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.012706732764218315,\n \"min\": -0.012624118056806018,\n \"max\": 0.04630499475260278,\n \"num_unique_values\": 83,\n \"samples\": [\n 0.011611297875329774,\n -0.007034182826007651,\n 0.008491989704703246\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"einf\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.795832578252673,\n \"min\": -33.788183477543285,\n \"max\": 0.04630499475260278,\n \"num_unique_values\": 83,\n \"samples\": [\n 0.011611297564579442,\n -22.244174752423355,\n 0.00849191031792347\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emax_rel\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.33846635603598324,\n \"min\": -0.3934884243412534,\n \"max\": 1.0,\n \"num_unique_values\": 79,\n \"samples\": [\n 0.24708681775191946,\n -0.2211819278227472,\n 0.21127878438139966\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"emax_obs_rel\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.38378013190083216,\n \"min\": -1.112971152583923,\n \"max\": 0.9187687703721477,\n \"num_unique_values\": 83,\n \"samples\": [\n 0.16507944367221383,\n -0.5212496628238175,\n 0.12161589028504526\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"aa\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.1197018156659857,\n \"min\": 0.0,\n \"max\": 5.738044892181261,\n \"num_unique_values\": 79,\n \"samples\": [\n 1.9073647054942695,\n 1.5221502805733436,\n 1.8747573148770844\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"auc\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2877.7491568629152,\n \"min\": 0.0,\n \"max\": 22245.7264020393,\n \"num_unique_values\": 79,\n \"samples\": [\n 2.8563942427663087,\n 10006.926302850005,\n 3.1155755502489333\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"hill\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 4.948177243952091,\n \"min\": 0.18657282052086446,\n \"max\": 22.18647378035175,\n \"num_unique_values\": 78,\n \"samples\": [\n 12.131800274753287,\n 0.34648546195652563,\n 10.96177888796202\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 7 + } + ], + "source": [ + "fit_p.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "E0_0fUk_X_9X" + }, + "source": [ + "### Download DIP rate data (automatically fit to time course data by Thunor)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 403 + }, + "id": "92FYfjGFP9ev", + "outputId": "fa528e79-062a-4f65-8f2a-6754a36b80b6" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--2024-03-25 18:49:57-- https://thunor.app.vanderbilt.edu/dataset/13/download/dip_rates\n", + "Resolving thunor.app.vanderbilt.edu (thunor.app.vanderbilt.edu)... 52.202.96.219, 3.219.141.193, 3.224.136.119, ...\n", + "Connecting to thunor.app.vanderbilt.edu (thunor.app.vanderbilt.edu)|52.202.96.219|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 173629 (170K) [text/tab-separated-values]\n", + "Saving to: ‘./data/hts001_diprates.tsv’\n", + "\n", + "./data/hts001_dipra 100%[===================>] 169.56K 861KB/s in 0.2s \n", + "\n", + "2024-03-25 18:49:58 (861 KB/s) - ‘./data/hts001_diprates.tsv’ saved [173629/173629]\n", + "\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " plate well cell_line drug conc dip_rate \\\n", + "0 HTS001_BR1-2 B2 BR1 NaN NaN 0.033001 \n", + "1 HTS001_BR1-2 B3 BR1 erlotinib 3.968750e-06 0.024479 \n", + "2 HTS001_BR1-2 B4 BR1 erlotinib 9.921250e-07 0.028890 \n", + "3 HTS001_BR1-2 B5 BR1 erlotinib 2.480000e-07 0.029436 \n", + "4 HTS001_BR1-2 B6 BR1 erlotinib 6.201250e-08 0.024072 \n", + "\n", + " dip_fit_std_err \n", + "0 0.001192 \n", + "1 0.000853 \n", + "2 0.001007 \n", + "3 0.001091 \n", + "4 0.000832 " + ], + "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", + "
platewellcell_linedrugconcdip_ratedip_fit_std_err
0HTS001_BR1-2B2BR1NaNNaN0.0330010.001192
1HTS001_BR1-2B3BR1erlotinib3.968750e-060.0244790.000853
2HTS001_BR1-2B4BR1erlotinib9.921250e-070.0288900.001007
3HTS001_BR1-2B5BR1erlotinib2.480000e-070.0294360.001091
4HTS001_BR1-2B6BR1erlotinib6.201250e-080.0240720.000832
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "hts001_diprates", + "summary": "{\n \"name\": \"hts001_diprates\",\n \"rows\": 2156,\n \"fields\": [\n {\n \"column\": \"plate\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"HTS001_BR1-2\",\n \"HTS001_DS3-2\",\n \"HTS001_MGH-2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"well\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 308,\n \"samples\": [\n \"O4\",\n \"B11\",\n \"D15\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cell_line\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"BR1\",\n \"DS3\",\n \"MGH\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"drug\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 14,\n \"samples\": [\n \"dactolisib\",\n \"paclitaxel\",\n \"erlotinib\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"conc\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.0758656609662284e-06,\n \"min\": 1.86875e-12,\n \"max\": 3.96875e-06,\n \"num_unique_values\": 30,\n \"samples\": [\n 1.52625e-10,\n 3.72e-10,\n 3.100625e-08\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.01602631166571511,\n \"min\": -0.0357069696460849,\n \"max\": 0.0561220180132467,\n \"num_unique_values\": 2156,\n \"samples\": [\n 0.0125726426927411,\n 0.0359265856833508,\n 0.0080518821198872\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_fit_std_err\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0005985166638877234,\n \"min\": 0.000202023565259,\n \"max\": 0.0087252198583607,\n \"num_unique_values\": 2156,\n \"samples\": [\n 0.0005080237318882,\n 0.0004023821310002,\n 0.001055365859999\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 8 + } + ], + "source": [ + "if not os.path.exists(\"./data/hts001_diprates.tsv\"):\n", + " !wget -O \"./data/hts001_diprates.tsv\" https://thunor.app.vanderbilt.edu/dataset/13/download/dip_rates\n", + "\n", + "hts001_diprates = pd.read_csv(\"./data/hts001_diprates.tsv\", sep='\\t')\n", + "hts001_diprates.rename(columns={'cell.line': 'cell_line', 'drug1':'drug', 'drug1.conc':'conc'}, inplace=True)\n", + "hts001_diprates.head()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cxSLbyxaPyIP" + }, + "source": [ + "### Extract only cell count data from afatinib treatment\n", + "Start from full dataset (`hts001`)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "IoZn209SQEdI", + "outputId": "9e01b17f-424d-464d-83ad-77e2b0754f19" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "HTS Dataset (1 drugs/combos, 7 cell lines)" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ], + "source": [ + "afat = hts001.filter(drugs=['afatinib'])\n", + "afat" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BVr5Fnj-Y2J_" + }, + "source": [ + "### Load thunor plotting functions" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "id": "2Jh8ZomUQtDb" + }, + "outputs": [], + "source": [ + "from thunor.plots import plot_drc, plot_drc_params, plot_time_course, plot_ctrl_dip_by_plate, plot_plate_map\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bN48jA7dYcDY" + }, + "source": [ + "### Filter fit parameters for all cell lines treated with afatinib, and plot dose–response curves" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 417 + }, + "id": "rci_WQEttrZd", + "outputId": "21ea8be5-8521-4736-dafc-99d04ef34bf6" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "fit_p_afat = fit_p[fit_p.index.isin(['afatinib'], level='drug')]\n", + "fig = plot_drc(fit_p_afat)\n", + "fig.update_layout(\n", + " autosize=False,\n", + " width=400,\n", + " height=400,)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-dmfJorfZD3N" + }, + "source": [ + "### Filter fit parameters by cell line (`BR1`) and drug (`paclitaxel`)\n", + "and display result" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 202 + }, + "id": "exubzfztuLpd", + "outputId": "ad5afaa8-65be-49f6-843f-1cb805eca4c8" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " dip_ctrl \\\n", + "dataset_id cell_line drug \n", + "13 BR1 paclitaxel dose well_id\n", + "1.868750e-12 54148 ... \n", + "\n", + " dip_expt \\\n", + "dataset_id cell_line drug \n", + "13 BR1 paclitaxel dose well_id\n", + "1.868750e-11 54028 ... \n", + "\n", + " fit_obj min_dose_measured max_dose_measured \\\n", + "dataset_id cell_line drug \n", + "13 BR1 paclitaxel None 1.868750e-12 0.000004 \n", + "\n", + " emax_obs aa_obs label ic50 \\\n", + "dataset_id cell_line drug \n", + "13 BR1 paclitaxel -0.025586 4.509109 BR1\\npaclitaxel NaN \n", + "\n", + " ec50 emax einf emax_rel emax_obs_rel aa \\\n", + "dataset_id cell_line drug \n", + "13 BR1 paclitaxel NaN NaN NaN NaN NaN NaN \n", + "\n", + " auc hill \n", + "dataset_id cell_line drug \n", + "13 BR1 paclitaxel NaN NaN " + ], + "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", + "
dip_ctrldip_exptfit_objmin_dose_measuredmax_dose_measuredemax_obsaa_obslabelic50ec50emaxeinfemax_relemax_obs_relaaauchill
dataset_idcell_linedrug
13BR1paclitaxeldose well_id\n", + "1.868750e-12 54148 ...dose well_id\n", + "1.868750e-11 54028 ...None1.868750e-120.000004-0.0255864.509109BR1\\npaclitaxelNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "fp_br1_pacl", + "repr_error": "0" + } + }, + "metadata": {}, + "execution_count": 12 + } + ], + "source": [ + "fp_br1_pacl = fit_p[fit_p.index.isin(['BR1'], level='cell_line') & \\\n", + " fit_p.index.isin(['paclitaxel'], level='drug')]\n", + "fp_br1_pacl" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FFJq-8AtO4E1" + }, + "source": [ + "### Show the result of Thunor-fit DIP rates\n", + "Saved in `expt_diprates`" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 455 + }, + "id": "EliKZH68CE1Y", + "outputId": "00ea7cbf-6e80-4f18-8420-2f1937d489ad" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " well_num \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 93 \n", + " 53869 261 \n", + " (7.47625e-11,) 53870 92 \n", + " 53871 260 \n", + " (3.0525e-10,) 53872 91 \n", + "... ... \n", + " (trametinib,) PC9 (2.48e-08,) 55991 278 \n", + " (9.92125e-08,) 55992 109 \n", + " 55993 277 \n", + " (3.96875e-07,) 55994 108 \n", + " 55995 276 \n", + "\n", + " plate \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 HTS001_BR1-2 \n", + " 53869 HTS001_BR1-2 \n", + " (7.47625e-11,) 53870 HTS001_BR1-2 \n", + " 53871 HTS001_BR1-2 \n", + " (3.0525e-10,) 53872 HTS001_BR1-2 \n", + "... ... \n", + " (trametinib,) PC9 (2.48e-08,) 55991 HTS001_PC9-2 \n", + " (9.92125e-08,) 55992 HTS001_PC9-2 \n", + " 55993 HTS001_PC9-2 \n", + " (3.96875e-07,) 55994 HTS001_PC9-2 \n", + " 55995 HTS001_PC9-2 \n", + "\n", + " dip_rate \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 0.029535 \n", + " 53869 0.028068 \n", + " (7.47625e-11,) 53870 0.028230 \n", + " 53871 0.029678 \n", + " (3.0525e-10,) 53872 0.029814 \n", + "... ... \n", + " (trametinib,) PC9 (2.48e-08,) 55991 0.031916 \n", + " (9.92125e-08,) 55992 0.012482 \n", + " 55993 0.010134 \n", + " (3.96875e-07,) 55994 0.013977 \n", + " 55995 0.012052 \n", + "\n", + " dip_fit_std_err \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 0.000915 \n", + " 53869 0.000787 \n", + " (7.47625e-11,) 53870 0.000882 \n", + " 53871 0.000935 \n", + " (3.0525e-10,) 53872 0.001067 \n", + "... ... \n", + " (trametinib,) PC9 (2.48e-08,) 55991 0.000954 \n", + " (9.92125e-08,) 55992 0.001204 \n", + " 55993 0.001333 \n", + " (3.96875e-07,) 55994 0.002074 \n", + " 55995 0.001336 \n", + "\n", + " dip_first_timepoint \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 31.1 \n", + " 53869 48.5 \n", + " (7.47625e-11,) 53870 48.5 \n", + " 53871 48.5 \n", + " (3.0525e-10,) 53872 51.8 \n", + "... ... \n", + " (trametinib,) PC9 (2.48e-08,) 55991 3.3 \n", + " (9.92125e-08,) 55992 46.4 \n", + " 55993 59.4 \n", + " (3.96875e-07,) 55994 19.0 \n", + " 55995 19.0 \n", + "\n", + " dip_y_intercept \n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 6.269507 \n", + " 53869 5.714175 \n", + " (7.47625e-11,) 53870 6.518346 \n", + " 53871 5.931319 \n", + " (3.0525e-10,) 53872 6.501894 \n", + "... ... \n", + " (trametinib,) PC9 (2.48e-08,) 55991 5.130884 \n", + " (9.92125e-08,) 55992 6.244496 \n", + " 55993 6.356689 \n", + " (3.96875e-07,) 55994 5.819961 \n", + " 55995 5.663721 \n", + "\n", + "[1960 rows x 6 columns]" + ], + "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", + " \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", + "
well_numplatedip_ratedip_fit_std_errdip_first_timepointdip_y_intercept
datasetdrugcell_linedosewell_id
13(afatinib,)BR1(1.86875e-11,)5386893HTS001_BR1-20.0295350.00091531.16.269507
53869261HTS001_BR1-20.0280680.00078748.55.714175
(7.47625e-11,)5387092HTS001_BR1-20.0282300.00088248.56.518346
53871260HTS001_BR1-20.0296780.00093548.55.931319
(3.0525e-10,)5387291HTS001_BR1-20.0298140.00106751.86.501894
..............................
(trametinib,)PC9(2.48e-08,)55991278HTS001_PC9-20.0319160.0009543.35.130884
(9.92125e-08,)55992109HTS001_PC9-20.0124820.00120446.46.244496
55993277HTS001_PC9-20.0101340.00133359.46.356689
(3.96875e-07,)55994108HTS001_PC9-20.0139770.00207419.05.819961
55995276HTS001_PC9-20.0120520.00133619.05.663721
\n", + "

1960 rows × 6 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "expt_diprates", + "summary": "{\n \"name\": \"expt_diprates\",\n \"rows\": 1960,\n \"fields\": [\n {\n \"column\": \"well_num\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 96,\n \"min\": 26,\n \"max\": 357,\n \"num_unique_values\": 280,\n \"samples\": [\n 351,\n 79,\n 155\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"plate\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"HTS001_BR1-2\",\n \"HTS001_DS3-2\",\n \"HTS001_MGH-2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.016234317409122602,\n \"min\": -0.03570696964608489,\n \"max\": 0.05612201801324669,\n \"num_unique_values\": 1960,\n \"samples\": [\n 0.01210473517595195,\n 0.027183989749331488,\n 0.007200230724481578\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_fit_std_err\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0006034935065403423,\n \"min\": 0.00020202356525905992,\n \"max\": 0.008725219858360715,\n \"num_unique_values\": 1960,\n \"samples\": [\n 0.002036401957890734,\n 0.0009771864402129038,\n 0.0006784174836285448\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_first_timepoint\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 24.266790853243254,\n \"min\": 0.5,\n \"max\": 108.3,\n \"num_unique_values\": 117,\n \"samples\": [\n 74.1,\n 73.7,\n 93.1\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_y_intercept\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.8591871395889485,\n \"min\": 2.385729022680922,\n \"max\": 9.827597182648367,\n \"num_unique_values\": 1960,\n \"samples\": [\n 5.305195015027132,\n 6.555440354596206,\n 7.932192414302392\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 13 + } + ], + "source": [ + "expt_diprates" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0TaML9g5PHgY" + }, + "source": [ + "### Filter DIP rates by cell line (`BR1`) and drug (`paclitaxel`)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 455 + }, + "id": "Xur3lXkaCcmw", + "outputId": "0f0c5a07-4fdf-4eae-a013-471e22d4d661" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " well_num \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 93 \n", + " 53869 261 \n", + " (7.47625e-11,) 53870 92 \n", + " 53871 260 \n", + " (3.0525e-10,) 53872 91 \n", + "... ... \n", + " (trametinib,) BR1 (2.48e-08,) 54143 278 \n", + " (9.92125e-08,) 54144 109 \n", + " 54145 277 \n", + " (3.96875e-07,) 54146 108 \n", + " 54147 276 \n", + "\n", + " plate \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 HTS001_BR1-2 \n", + " 53869 HTS001_BR1-2 \n", + " (7.47625e-11,) 53870 HTS001_BR1-2 \n", + " 53871 HTS001_BR1-2 \n", + " (3.0525e-10,) 53872 HTS001_BR1-2 \n", + "... ... \n", + " (trametinib,) BR1 (2.48e-08,) 54143 HTS001_BR1-2 \n", + " (9.92125e-08,) 54144 HTS001_BR1-2 \n", + " 54145 HTS001_BR1-2 \n", + " (3.96875e-07,) 54146 HTS001_BR1-2 \n", + " 54147 HTS001_BR1-2 \n", + "\n", + " dip_rate \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 0.029535 \n", + " 53869 0.028068 \n", + " (7.47625e-11,) 53870 0.028230 \n", + " 53871 0.029678 \n", + " (3.0525e-10,) 53872 0.029814 \n", + "... ... \n", + " (trametinib,) BR1 (2.48e-08,) 54143 0.022501 \n", + " (9.92125e-08,) 54144 0.011880 \n", + " 54145 0.016449 \n", + " (3.96875e-07,) 54146 0.006953 \n", + " 54147 0.010494 \n", + "\n", + " dip_fit_std_err \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 0.000915 \n", + " 53869 0.000787 \n", + " (7.47625e-11,) 53870 0.000882 \n", + " 53871 0.000935 \n", + " (3.0525e-10,) 53872 0.001067 \n", + "... ... \n", + " (trametinib,) BR1 (2.48e-08,) 54143 0.000752 \n", + " (9.92125e-08,) 54144 0.001022 \n", + " 54145 0.001056 \n", + " (3.96875e-07,) 54146 0.001200 \n", + " 54147 0.001388 \n", + "\n", + " dip_first_timepoint \\\n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 31.1 \n", + " 53869 48.5 \n", + " (7.47625e-11,) 53870 48.5 \n", + " 53871 48.5 \n", + " (3.0525e-10,) 53872 51.8 \n", + "... ... \n", + " (trametinib,) BR1 (2.48e-08,) 54143 55.1 \n", + " (9.92125e-08,) 54144 55.1 \n", + " 54145 48.5 \n", + " (3.96875e-07,) 54146 51.8 \n", + " 54147 48.5 \n", + "\n", + " dip_y_intercept \n", + "dataset drug cell_line dose well_id \n", + "13 (afatinib,) BR1 (1.86875e-11,) 53868 6.269507 \n", + " 53869 5.714175 \n", + " (7.47625e-11,) 53870 6.518346 \n", + " 53871 5.931319 \n", + " (3.0525e-10,) 53872 6.501894 \n", + "... ... \n", + " (trametinib,) BR1 (2.48e-08,) 54143 6.505787 \n", + " (9.92125e-08,) 54144 7.732698 \n", + " 54145 6.951063 \n", + " (3.96875e-07,) 54146 7.678181 \n", + " 54147 6.785053 \n", + "\n", + "[280 rows x 6 columns]" + ], + "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", + " \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", + "
well_numplatedip_ratedip_fit_std_errdip_first_timepointdip_y_intercept
datasetdrugcell_linedosewell_id
13(afatinib,)BR1(1.86875e-11,)5386893HTS001_BR1-20.0295350.00091531.16.269507
53869261HTS001_BR1-20.0280680.00078748.55.714175
(7.47625e-11,)5387092HTS001_BR1-20.0282300.00088248.56.518346
53871260HTS001_BR1-20.0296780.00093548.55.931319
(3.0525e-10,)5387291HTS001_BR1-20.0298140.00106751.86.501894
..............................
(trametinib,)BR1(2.48e-08,)54143278HTS001_BR1-20.0225010.00075255.16.505787
(9.92125e-08,)54144109HTS001_BR1-20.0118800.00102255.17.732698
54145277HTS001_BR1-20.0164490.00105648.56.951063
(3.96875e-07,)54146108HTS001_BR1-20.0069530.00120051.87.678181
54147276HTS001_BR1-20.0104940.00138848.56.785053
\n", + "

280 rows × 6 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"expt_diprates[expt_diprates\",\n \"rows\": 280,\n \"fields\": [\n {\n \"column\": \"well_num\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 97,\n \"min\": 26,\n \"max\": 357,\n \"num_unique_values\": 280,\n \"samples\": [\n 351,\n 79,\n 155\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"plate\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"HTS001_BR1-2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.012155640277855975,\n \"min\": -0.025586330800129703,\n \"max\": 0.03664018208696803,\n \"num_unique_values\": 280,\n \"samples\": [\n -0.012379989240099852\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_fit_std_err\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.000714178704949969,\n \"min\": 0.00026565664853839174,\n \"max\": 0.008725219858360715,\n \"num_unique_values\": 280,\n \"samples\": [\n 0.0009729437158239546\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_first_timepoint\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 18.403438559661954,\n \"min\": 5.7,\n \"max\": 108.3,\n \"num_unique_values\": 14,\n \"samples\": [\n 5.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_y_intercept\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.5269932523295303,\n \"min\": 2.385729022680922,\n \"max\": 7.825645696563136,\n \"num_unique_values\": 280,\n \"samples\": [\n 6.064589351056325\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 14 + } + ], + "source": [ + "expt_diprates[expt_diprates.index.isin(['BR1'], level='cell_line')]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "pPWd7RcSqi-U" + }, + "outputs": [], + "source": [ + "br1_afat = afat.filter(cell_lines=['BR1'])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QT0ntlpeTACo" + }, + "source": [ + "### Plot the time course data of afatinib on BR1 cells\n", + "Use `log_yaxis=True` to plot population doublings." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 417 + }, + "id": "r8cpivoutCVg", + "outputId": "d4568a02-f626-4e70-96cd-bcc01845363a" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "fig = plot_time_course(br1_afat, log_yaxis=True)\n", + "fig.update_layout(\n", + " autosize=False,\n", + " width=400,\n", + " height=400,)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9qEn2v8uSPOH" + }, + "source": [ + "### Writing and reading cell count data using Vanderbilt's HTS format\n", + "To faciltate executing Python code, we will replace the `.` in column names with `_`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "GOasPqwO6j5y", + "outputId": "ec01905c-e835-4582-fd97-0c6ec920d254" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " drug1 cell_line drug1_conc well upid time cell_count \\\n", + "0 afatinib BR1 1.868750e-11 D22 HTS001_BR1-2 5.7 49.0 \n", + "1 afatinib BR1 1.868750e-11 D22 HTS001_BR1-2 9.0 59.0 \n", + "2 afatinib BR1 1.868750e-11 D22 HTS001_BR1-2 21.1 93.0 \n", + "3 afatinib BR1 1.868750e-11 D22 HTS001_BR1-2 24.4 100.0 \n", + "4 afatinib BR1 1.868750e-11 D22 HTS001_BR1-2 27.8 115.0 \n", + "\n", + " drug1_units \n", + "0 M \n", + "1 M \n", + "2 M \n", + "3 M \n", + "4 M " + ], + "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", + "
drug1cell_linedrug1_concwellupidtimecell_countdrug1_units
0afatinibBR11.868750e-11D22HTS001_BR1-25.749.0M
1afatinibBR11.868750e-11D22HTS001_BR1-29.059.0M
2afatinibBR11.868750e-11D22HTS001_BR1-221.193.0M
3afatinibBR11.868750e-11D22HTS001_BR1-224.4100.0M
4afatinibBR11.868750e-11D22HTS001_BR1-227.8115.0M
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "a", + "summary": "{\n \"name\": \"a\",\n \"rows\": 7584,\n \"fields\": [\n {\n \"column\": \"drug1\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"control\",\n \"afatinib\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cell_line\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"BR1\",\n \"DS3\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"drug1_conc\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 8.071601162409352e-07,\n \"min\": 0.0,\n \"max\": 3.96875e-06,\n \"num_unique_values\": 11,\n \"samples\": [\n 1.55e-08,\n 1.86875e-11\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"well\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 48,\n \"samples\": [\n \"L2\",\n \"G2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"upid\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"HTS001_BR1-2\",\n \"HTS001_DS3-2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"time\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 36.272506728557374,\n \"min\": 0.5,\n \"max\": 118.1,\n \"num_unique_values\": 158,\n \"samples\": [\n 58.8,\n 113.2\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cell_count\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 407.1850762346451,\n \"min\": 13.0,\n \"max\": 2540.0,\n \"num_unique_values\": 1351,\n \"samples\": [\n 185.0,\n 355.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"drug1_units\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"M\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 17 + } + ], + "source": [ + "from pandas.io.parsers.readers import read_csv\n", + "if not os.path.exists(\"./data/afatinib.csv\"):\n", + " thunor.io.write_vanderbilt_hts(afat, filename=\"./data/afatinib.csv\")\n", + "a = read_csv(\"./data/afatinib.csv\")\n", + "a.rename(columns={'cell.line': 'cell_line', 'cell.count': 'cell_count', 'drug1.conc': 'drug1_conc', 'drug1.units': 'drug1_units'}, inplace=True)\n", + "a.head()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2cPtbROeRY57" + }, + "source": [ + "### Assemble basic DataFrame of DIP rates of control and paclitaxel-treated BR1 cells\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hff1tpp6Mcw6", + "outputId": "2d278ce4-e8ad-44c4-c7d2-33c03ca113cd" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + ":5: FutureWarning:\n", + "\n", + "The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.\n", + "\n" + ] + } + ], + "source": [ + "diprates_br1_pacl = hts001_diprates[np.isin(hts001_diprates['drug'], ['paclitaxel']) ]\n", + "diprates_br1_pacl = diprates_br1_pacl[diprates_br1_pacl['cell_line'] == 'BR1']\n", + "# add control diprates\n", + "br1_diprates_ctrl = hts001_diprates[np.logical_and(hts001_diprates['conc'].isna(), hts001_diprates['cell_line']=='BR1')]\n", + "diprates_br1_pacl = diprates_br1_pacl.append(br1_diprates_ctrl)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HPnIPXBsTalD" + }, + "source": [ + "### Add log10([drug]) values to facilitate manual plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "KJNJPynIVlsz", + "outputId": "9f8cfecc-0dc6-4cda-bfc0-340a9ffaa7c0" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " plate well cell_line drug conc dip_rate \\\n", + "121 HTS001_BR1-2 G13 BR1 paclitaxel 3.968750e-06 -0.006813 \n", + "122 HTS001_BR1-2 G14 BR1 paclitaxel 9.921250e-07 -0.005648 \n", + "123 HTS001_BR1-2 G15 BR1 paclitaxel 2.480000e-07 -0.025586 \n", + "124 HTS001_BR1-2 G16 BR1 paclitaxel 6.201250e-08 0.029093 \n", + "125 HTS001_BR1-2 G17 BR1 paclitaxel 1.550000e-08 -0.007844 \n", + "\n", + " dip_fit_std_err l10_conc \n", + "121 0.000790 -5.401346 \n", + "122 0.001530 -6.003434 \n", + "123 0.002220 -6.605548 \n", + "124 0.000726 -7.207521 \n", + "125 0.001042 -7.809668 " + ], + "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", + "
platewellcell_linedrugconcdip_ratedip_fit_std_errl10_conc
121HTS001_BR1-2G13BR1paclitaxel3.968750e-06-0.0068130.000790-5.401346
122HTS001_BR1-2G14BR1paclitaxel9.921250e-07-0.0056480.001530-6.003434
123HTS001_BR1-2G15BR1paclitaxel2.480000e-07-0.0255860.002220-6.605548
124HTS001_BR1-2G16BR1paclitaxel6.201250e-080.0290930.000726-7.207521
125HTS001_BR1-2G17BR1paclitaxel1.550000e-08-0.0078440.001042-7.809668
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "diprates_br1_pacl", + "summary": "{\n \"name\": \"diprates_br1_pacl\",\n \"rows\": 48,\n \"fields\": [\n {\n \"column\": \"plate\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"HTS001_BR1-2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"well\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 48,\n \"samples\": [\n \"E23\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cell_line\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"BR1\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"drug\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"paclitaxel\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"conc\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.213981259444919e-06,\n \"min\": 1.86875e-11,\n \"max\": 3.96875e-06,\n \"num_unique_values\": 10,\n \"samples\": [\n 7.47625e-11\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.017577502405059058,\n \"min\": -0.0255863308001297,\n \"max\": 0.036349421359956,\n \"num_unique_values\": 48,\n \"samples\": [\n 0.0355824141677683\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_fit_std_err\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.00028605136994977036,\n \"min\": 0.0005026613546363,\n \"max\": 0.0022195623350899,\n \"num_unique_values\": 48,\n \"samples\": [\n 0.0010395076275443\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"l10_conc\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2.128820024585955,\n \"min\": -11.728448794331495,\n \"max\": -5.401346257363949,\n \"num_unique_values\": 11,\n \"samples\": [\n -8.429457060118102\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 19 + } + ], + "source": [ + "l10_conc = np.log10(diprates_br1_pacl['conc'][diprates_br1_pacl['conc'].notna()])\n", + "min_conc = min(l10_conc)-1\n", + "n_ctrl_wells = len( diprates_br1_pacl['conc'][diprates_br1_pacl['conc'].isna()])\n", + "l10_conc = np.append(l10_conc,np.repeat(min_conc,n_ctrl_wells))\n", + "diprates_br1_pacl['l10_conc'] = l10_conc\n", + "diprates_br1_pacl.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1dnCbIvOTutf" + }, + "source": [ + "### Calculate response ratio of DIP rates\n", + "Divide all DIP rate values by the mean of the control values" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "id": "iLGN0Ki3cnUA" + }, + "outputs": [], + "source": [ + "diprates_br1_pacl[\"resp_ratio\"] = diprates_br1_pacl[\"dip_rate\"] / diprates_br1_pacl[diprates_br1_pacl[\"conc\"].isnull()][\"dip_rate\"].mean()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Xh3_KSQ3e9ru" + }, + "source": [ + "### Show the structure of the DataFrame" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "AZTZEtvPdAqI", + "outputId": "e2b46a32-35b5-4caf-bcd8-9ab652c307a0" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " plate well cell_line drug conc dip_rate \\\n", + "121 HTS001_BR1-2 G13 BR1 paclitaxel 3.968750e-06 -0.006813 \n", + "122 HTS001_BR1-2 G14 BR1 paclitaxel 9.921250e-07 -0.005648 \n", + "123 HTS001_BR1-2 G15 BR1 paclitaxel 2.480000e-07 -0.025586 \n", + "124 HTS001_BR1-2 G16 BR1 paclitaxel 6.201250e-08 0.029093 \n", + "125 HTS001_BR1-2 G17 BR1 paclitaxel 1.550000e-08 -0.007844 \n", + "126 HTS001_BR1-2 G18 BR1 paclitaxel 3.720000e-09 -0.005186 \n", + "127 HTS001_BR1-2 G19 BR1 paclitaxel 1.246000e-09 0.015638 \n", + "128 HTS001_BR1-2 G20 BR1 paclitaxel 3.052500e-10 0.004428 \n", + "129 HTS001_BR1-2 G21 BR1 paclitaxel 7.476250e-11 0.026220 \n", + "130 HTS001_BR1-2 G22 BR1 paclitaxel 1.868750e-11 0.027360 \n", + "275 HTS001_BR1-2 N13 BR1 paclitaxel 3.968750e-06 -0.012822 \n", + "276 HTS001_BR1-2 N14 BR1 paclitaxel 9.921250e-07 -0.007132 \n", + "277 HTS001_BR1-2 N15 BR1 paclitaxel 2.480000e-07 -0.005049 \n", + "278 HTS001_BR1-2 N16 BR1 paclitaxel 6.201250e-08 0.025072 \n", + "279 HTS001_BR1-2 N17 BR1 paclitaxel 1.550000e-08 -0.009993 \n", + "280 HTS001_BR1-2 N18 BR1 paclitaxel 3.720000e-09 -0.002775 \n", + "281 HTS001_BR1-2 N19 BR1 paclitaxel 1.246000e-09 0.015146 \n", + "282 HTS001_BR1-2 N20 BR1 paclitaxel 3.052500e-10 -0.004723 \n", + "283 HTS001_BR1-2 N21 BR1 paclitaxel 7.476250e-11 0.028929 \n", + "284 HTS001_BR1-2 N22 BR1 paclitaxel 1.868750e-11 0.027242 \n", + "0 HTS001_BR1-2 B2 BR1 NaN NaN 0.033001 \n", + "21 HTS001_BR1-2 B23 BR1 NaN NaN 0.030042 \n", + "22 HTS001_BR1-2 C2 BR1 NaN NaN 0.032687 \n", + "43 HTS001_BR1-2 C23 BR1 NaN NaN 0.033225 \n", + "44 HTS001_BR1-2 D2 BR1 NaN NaN 0.035573 \n", + "65 HTS001_BR1-2 D23 BR1 NaN NaN 0.031708 \n", + "66 HTS001_BR1-2 E2 BR1 NaN NaN 0.027436 \n", + "87 HTS001_BR1-2 E23 BR1 NaN NaN 0.035582 \n", + "88 HTS001_BR1-2 F2 BR1 NaN NaN 0.034431 \n", + "109 HTS001_BR1-2 F23 BR1 NaN NaN 0.036349 \n", + "110 HTS001_BR1-2 G2 BR1 NaN NaN 0.032397 \n", + "131 HTS001_BR1-2 G23 BR1 NaN NaN 0.032519 \n", + "132 HTS001_BR1-2 H2 BR1 NaN NaN 0.034271 \n", + "153 HTS001_BR1-2 H23 BR1 NaN NaN 0.033809 \n", + "154 HTS001_BR1-2 I2 BR1 NaN NaN 0.027382 \n", + "175 HTS001_BR1-2 I23 BR1 NaN NaN 0.035187 \n", + "176 HTS001_BR1-2 J2 BR1 NaN NaN 0.031205 \n", + "197 HTS001_BR1-2 J23 BR1 NaN NaN 0.035118 \n", + "198 HTS001_BR1-2 K2 BR1 NaN NaN 0.030545 \n", + "219 HTS001_BR1-2 K23 BR1 NaN NaN 0.034301 \n", + "220 HTS001_BR1-2 L2 BR1 NaN NaN 0.035195 \n", + "241 HTS001_BR1-2 L23 BR1 NaN NaN 0.031155 \n", + "242 HTS001_BR1-2 M2 BR1 NaN NaN 0.034813 \n", + "263 HTS001_BR1-2 M23 BR1 NaN NaN 0.030340 \n", + "264 HTS001_BR1-2 N2 BR1 NaN NaN 0.031966 \n", + "285 HTS001_BR1-2 N23 BR1 NaN NaN 0.034938 \n", + "286 HTS001_BR1-2 O2 BR1 NaN NaN 0.028940 \n", + "307 HTS001_BR1-2 O23 BR1 NaN NaN 0.029751 \n", + "\n", + " dip_fit_std_err l10_conc resp_ratio \n", + "121 0.000790 -5.401346 -0.208729 \n", + "122 0.001530 -6.003434 -0.173044 \n", + "123 0.002220 -6.605548 -0.783940 \n", + "124 0.000726 -7.207521 0.891395 \n", + "125 0.001042 -7.809668 -0.240335 \n", + "126 0.000742 -8.429457 -0.158888 \n", + "127 0.000616 -8.904482 0.479145 \n", + "128 0.001103 -9.515344 0.135681 \n", + "129 0.000946 -10.126316 0.803353 \n", + "130 0.000709 -10.728449 0.838293 \n", + "275 0.001204 -5.401346 -0.392861 \n", + "276 0.000678 -6.003434 -0.218516 \n", + "277 0.001077 -6.605548 -0.154684 \n", + "278 0.000853 -7.207521 0.768178 \n", + "279 0.000750 -7.809668 -0.306173 \n", + "280 0.000718 -8.429457 -0.085035 \n", + "281 0.000503 -8.904482 0.464053 \n", + "282 0.000753 -9.515344 -0.144700 \n", + "283 0.001043 -10.126316 0.886361 \n", + "284 0.000910 -10.728449 0.834670 \n", + "0 0.001192 -11.728449 1.011128 \n", + "21 0.001095 -11.728449 0.920465 \n", + "22 0.000875 -11.728449 1.001501 \n", + "43 0.000673 -11.728449 1.017994 \n", + "44 0.001224 -11.728449 1.089917 \n", + "65 0.001096 -11.728449 0.971499 \n", + "66 0.000689 -11.728449 0.840612 \n", + "87 0.001040 -11.728449 1.090210 \n", + "88 0.001310 -11.728449 1.054923 \n", + "109 0.001164 -11.728449 1.113710 \n", + "110 0.000938 -11.728449 0.992599 \n", + "131 0.001027 -11.728449 0.996342 \n", + "132 0.001215 -11.728449 1.050026 \n", + "153 0.000782 -11.728449 1.035880 \n", + "154 0.000795 -11.728449 0.838952 \n", + "175 0.001015 -11.728449 1.078092 \n", + "176 0.001214 -11.728449 0.956079 \n", + "197 0.001112 -11.728449 1.075994 \n", + "198 0.000884 -11.728449 0.935853 \n", + "219 0.000901 -11.728449 1.050963 \n", + "220 0.001343 -11.728449 1.078353 \n", + "241 0.001227 -11.728449 0.954570 \n", + "242 0.001014 -11.728449 1.066627 \n", + "263 0.001009 -11.728449 0.929589 \n", + "264 0.001306 -11.728449 0.979409 \n", + "285 0.001046 -11.728449 1.070477 \n", + "286 0.000770 -11.728449 0.886694 \n", + "307 0.001153 -11.728449 0.911542 " + ], + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
platewellcell_linedrugconcdip_ratedip_fit_std_errl10_concresp_ratio
121HTS001_BR1-2G13BR1paclitaxel3.968750e-06-0.0068130.000790-5.401346-0.208729
122HTS001_BR1-2G14BR1paclitaxel9.921250e-07-0.0056480.001530-6.003434-0.173044
123HTS001_BR1-2G15BR1paclitaxel2.480000e-07-0.0255860.002220-6.605548-0.783940
124HTS001_BR1-2G16BR1paclitaxel6.201250e-080.0290930.000726-7.2075210.891395
125HTS001_BR1-2G17BR1paclitaxel1.550000e-08-0.0078440.001042-7.809668-0.240335
126HTS001_BR1-2G18BR1paclitaxel3.720000e-09-0.0051860.000742-8.429457-0.158888
127HTS001_BR1-2G19BR1paclitaxel1.246000e-090.0156380.000616-8.9044820.479145
128HTS001_BR1-2G20BR1paclitaxel3.052500e-100.0044280.001103-9.5153440.135681
129HTS001_BR1-2G21BR1paclitaxel7.476250e-110.0262200.000946-10.1263160.803353
130HTS001_BR1-2G22BR1paclitaxel1.868750e-110.0273600.000709-10.7284490.838293
275HTS001_BR1-2N13BR1paclitaxel3.968750e-06-0.0128220.001204-5.401346-0.392861
276HTS001_BR1-2N14BR1paclitaxel9.921250e-07-0.0071320.000678-6.003434-0.218516
277HTS001_BR1-2N15BR1paclitaxel2.480000e-07-0.0050490.001077-6.605548-0.154684
278HTS001_BR1-2N16BR1paclitaxel6.201250e-080.0250720.000853-7.2075210.768178
279HTS001_BR1-2N17BR1paclitaxel1.550000e-08-0.0099930.000750-7.809668-0.306173
280HTS001_BR1-2N18BR1paclitaxel3.720000e-09-0.0027750.000718-8.429457-0.085035
281HTS001_BR1-2N19BR1paclitaxel1.246000e-090.0151460.000503-8.9044820.464053
282HTS001_BR1-2N20BR1paclitaxel3.052500e-10-0.0047230.000753-9.515344-0.144700
283HTS001_BR1-2N21BR1paclitaxel7.476250e-110.0289290.001043-10.1263160.886361
284HTS001_BR1-2N22BR1paclitaxel1.868750e-110.0272420.000910-10.7284490.834670
0HTS001_BR1-2B2BR1NaNNaN0.0330010.001192-11.7284491.011128
21HTS001_BR1-2B23BR1NaNNaN0.0300420.001095-11.7284490.920465
22HTS001_BR1-2C2BR1NaNNaN0.0326870.000875-11.7284491.001501
43HTS001_BR1-2C23BR1NaNNaN0.0332250.000673-11.7284491.017994
44HTS001_BR1-2D2BR1NaNNaN0.0355730.001224-11.7284491.089917
65HTS001_BR1-2D23BR1NaNNaN0.0317080.001096-11.7284490.971499
66HTS001_BR1-2E2BR1NaNNaN0.0274360.000689-11.7284490.840612
87HTS001_BR1-2E23BR1NaNNaN0.0355820.001040-11.7284491.090210
88HTS001_BR1-2F2BR1NaNNaN0.0344310.001310-11.7284491.054923
109HTS001_BR1-2F23BR1NaNNaN0.0363490.001164-11.7284491.113710
110HTS001_BR1-2G2BR1NaNNaN0.0323970.000938-11.7284490.992599
131HTS001_BR1-2G23BR1NaNNaN0.0325190.001027-11.7284490.996342
132HTS001_BR1-2H2BR1NaNNaN0.0342710.001215-11.7284491.050026
153HTS001_BR1-2H23BR1NaNNaN0.0338090.000782-11.7284491.035880
154HTS001_BR1-2I2BR1NaNNaN0.0273820.000795-11.7284490.838952
175HTS001_BR1-2I23BR1NaNNaN0.0351870.001015-11.7284491.078092
176HTS001_BR1-2J2BR1NaNNaN0.0312050.001214-11.7284490.956079
197HTS001_BR1-2J23BR1NaNNaN0.0351180.001112-11.7284491.075994
198HTS001_BR1-2K2BR1NaNNaN0.0305450.000884-11.7284490.935853
219HTS001_BR1-2K23BR1NaNNaN0.0343010.000901-11.7284491.050963
220HTS001_BR1-2L2BR1NaNNaN0.0351950.001343-11.7284491.078353
241HTS001_BR1-2L23BR1NaNNaN0.0311550.001227-11.7284490.954570
242HTS001_BR1-2M2BR1NaNNaN0.0348130.001014-11.7284491.066627
263HTS001_BR1-2M23BR1NaNNaN0.0303400.001009-11.7284490.929589
264HTS001_BR1-2N2BR1NaNNaN0.0319660.001306-11.7284490.979409
285HTS001_BR1-2N23BR1NaNNaN0.0349380.001046-11.7284491.070477
286HTS001_BR1-2O2BR1NaNNaN0.0289400.000770-11.7284490.886694
307HTS001_BR1-2O23BR1NaNNaN0.0297510.001153-11.7284490.911542
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "diprates_br1_pacl", + "summary": "{\n \"name\": \"diprates_br1_pacl\",\n \"rows\": 48,\n \"fields\": [\n {\n \"column\": \"plate\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"HTS001_BR1-2\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"well\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 48,\n \"samples\": [\n \"E23\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"cell_line\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"BR1\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"drug\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"paclitaxel\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"conc\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1.213981259444919e-06,\n \"min\": 1.86875e-11,\n \"max\": 3.96875e-06,\n \"num_unique_values\": 10,\n \"samples\": [\n 7.47625e-11\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_rate\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.017577502405059058,\n \"min\": -0.0255863308001297,\n \"max\": 0.036349421359956,\n \"num_unique_values\": 48,\n \"samples\": [\n 0.0355824141677683\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"dip_fit_std_err\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.00028605136994977036,\n \"min\": 0.0005026613546363,\n \"max\": 0.0022195623350899,\n \"num_unique_values\": 48,\n \"samples\": [\n 0.0010395076275443\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"l10_conc\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2.128820024585955,\n \"min\": -11.728448794331495,\n \"max\": -5.401346257363949,\n \"num_unique_values\": 11,\n \"samples\": [\n -8.429457060118102\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"resp_ratio\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.5385570874129337,\n \"min\": -0.7839395766110487,\n \"max\": 1.113709902900031,\n \"num_unique_values\": 48,\n \"samples\": [\n 1.0902095699215248\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 21 + } + ], + "source": [ + "diprates_br1_pacl" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l3rROG4NfFdZ" + }, + "source": [ + "### Plot the DIP rate values of BR1 cells treated with paclitaxel using Seaborn" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 524 + }, + "id": "3qyXL0sFUPK5", + "outputId": "b642c271-758c-4f8c-e1df-037787d168df" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 22 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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XHCBbrrpJj3yyCPy+XxauHChbrvttrjd2WfZsmUaP368UlNTtXbtWv3kJz/Rf/zHf7S7jjzeFBYWqk+fPpoxY4YWLVqkXr166fnnn9dnn32myZMnW11ezK1fv16fffaZfvjDH1pdSsx5vV7deuutWrx4sfLy8nTOOefo0UcflSRdf/31FlfXRayedt5TzJgxw5R0wuOdd94xTfPocqW2nj/nnHMsrft0nKqPpmmaEyZMaLPNZ599Zlndp6sj/fz888/Nb33rW2avXr3Mvn37mvfcc48ZCoWsK/oM3XTTTWZmZqbpdrvNkSNHmi+99JLVJcXchx9+aE6aNMnMzMw009LSzHHjxplvv/221WV1ienTp5vjx4+3uowuEwwGzXvuucfMzs4209LSzKKiInP79u1Wl9Vl2OYSAAAbs/eUTgAAEhxBDQCAjRHUAADYGEENAICNEdQAANgYQQ0AgI0R1AAA2BhBDQCAjRHUQAK5/PLL9eMf/9jqMgCcBoIaSFCrVq3SpEmTlJWVJcMwovc0/6ojR47otttuU1ZWllJTUzV16tToTmEAugdBDSSopqYmXXrppXr44YfbbXP33Xfrrbfe0sqVK7VhwwZVV1fruuuu68YqARDUQIK66aabtGjRIhUVFbX5fENDg37961/rscce05VXXqmCggK98MILKikp0V/+8pcOfUZFRYWuuuoqeb1epaWl6bLLLlNlZaUkKRKJ6Oc//7nOOusseTwejR49WmvWrIm+9vPPP5dhGFq1apWuuOIKpaSkaNSoUSotLW31GR988IEuv/xypaSkqE+fPiouLtaXX37Zya8KYD8ENYA2lZWVKRQKtQryoUOH6uyzzz4hLNuyb98+feMb35DH49H69etVVlamW265RS0tLZKkJ598UkuXLtUvfvELffzxxyouLtbVV1+tTz/9tNX73H///br33ntVXl6u888/X9OnT4++R3l5uSZOnKgLLrhApaWlev/99/Wd73xH4XA4hl8JwFrsRw2gTT6fT263+4Q9qXNycqL7qZ/M008/rfT0dL3yyityuVySpPPPPz/6/C9+8Qvdd999uuGGGyRJDz/8sN555x098cQTevrpp6Pt7r333uie0T/72c80fPhw7d69W0OHDtUjjzyiMWPG6Jlnnom2Hz58eKf7DNgRZ9QAukR5ebkuu+yyaEh/ld/vV3V1tb7+9a+3Ov71r39dO3bsaHVs5MiR0f/v37+/JKm2tjb6GRMnTox16YCtENQA2pSbm6tgMKj6+vpWx2tqapSbm3vK1/fq1SsmdXw16A3DkHT0+nYsPwOwM4IaQJsKCgrkcrm0bt266LFdu3apqqpKhYWFp3z9yJEj9d577ykUCp3wnNfr1YABA/TBBx+0Ov7BBx/oggsu6HCNI0eObFUf0BMR1ECCqqurU3l5uf76179KOhrC5eXl0evP6enpmjVrlubOnat33nlHZWVlmjlzpgoLCzVu3LhTvv/tt98uv9+vG264QZs3b9ann36q//qv/9KuXbskST/5yU/08MMP69VXX9WuXbs0b948lZeX66677upwH+bPn68PP/xQP/rRj/Txxx9r586dWr58uQ4ePNiJrwhgTwQ1kKDefPNNXXTRRdGJWjfccIMuuugiPfvss9E2jz/+uK666ipNnTpV3/jGN5Sbm6tVq1Z16P2zsrK0fv16NTY2asKECSooKNDzzz8fHcq+8847NXfuXN1zzz0aMWKE1qxZozfffFPnnXdeh/tw/vnn649//KM++ugjXXLJJSosLNT//M//KCmJebLoOQzTNE2riwAAAG3jjBoAABsjqAF0yq233qrU1NQ2H7feeqvV5QE9BkPfADqltrZWfr+/zee8Xq+ys7O7uSKgZyKoAQCwMYa+AQCwMYIaAAAbI6gBALAxghoAABsjqAEAsDGCGgAAGyOoAQCwsf8fbIftBqhsNl4AAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ], + "source": [ + "sns.lmplot(x='l10_conc', y='dip_rate', data=diprates_br1_pacl, fit_reg=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "w1RHibjn6j5y" + }, + "source": [ + "#### Perform nonlinear regression on data using the `ll4` model \n", + "Let's first look at each of the dates independently to assess consistency. \n", + "#### Use `scipy.optimize.curve_fit` to perform nonlinear regression (fit model parameters) \n" + ] + }, + { + "cell_type": "code", + "source": [ + " fitCoefs, covMatrix = opt.curve_fit(ll4,\n", + " 10**(diprates_br1_pacl['l10_conc']),\n", + " diprates_br1_pacl['dip_rate'],\n", + " p0=[1,\n", + " np.max(diprates_br1_pacl['dip_rate']),\n", + " np.min(diprates_br1_pacl['dip_rate']),\n", + " 1e-9])\n", + " fitCoefs" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "KY_f5068B6Zi", + "outputId": "2f5dee8f-ae58-441b-ac7b-0a8b82433abe" + }, + "execution_count": 29, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 2.69527518e-01, 4.99380965e-02, -9.96981366e-03, 5.57458520e-11])" + ] + }, + "metadata": {}, + "execution_count": 29 + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "weYYiyir98XD" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ud9_lflbZLDr" + }, + "source": [ + "# TASK\n", + "\n", + "What is the value that represents the $EC_{50}$ of paclitaxel's effects on BR1 cells? Copy it and save as the answer to Quiz question #6." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6djHmEe2UZ40" + }, + "source": [ + "### NOTE: Values from paclitaxel of ~6.2e-8 M were found to be artifactual\n", + "Drug concentration at this value is inaccurate. Data can be removed to allow more accurate fitting of dose-response model" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "id": "HzmXGZlUJgG5" + }, + "outputs": [], + "source": [ + "# remove artifact points\n", + "diprates_br1_pacl_drop62 = diprates_br1_pacl[np.logical_or(diprates_br1_pacl['conc'] < 2e-8, diprates_br1_pacl['conc'] > 7e-8)]\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hv7q1rLRV52C" + }, + "source": [ + "# TASK\n", + "### Fit the cleaned data with the `ll4` model\n", + "NOTE: to get the model to fit you may need some starting parameters (`p0`)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "5vTCa3O_ilGJ" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "id": "z-foKIdsaO_X", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "6625bbcb-a5e6-4b14-f46d-b342ac87640e" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 5.24235174e-01, 3.96443004e-02, -1.12955545e-02, 2.23335887e-10])" + ] + }, + "metadata": {}, + "execution_count": 32 + } + ], + "source": [ + "fitCoefs_dropped, covMatrix_dropped = opt.curve_fit(ll4,\n", + " 10**(diprates_br1_pacl_drop62['l10_conc']),\n", + " diprates_br1_pacl_drop62['dip_rate'],\n", + " p0=[1,\n", + " np.max(diprates_br1_pacl_drop62['dip_rate']),\n", + " np.min(diprates_br1_pacl_drop62['dip_rate']),\n", + " 1e-9])\n", + "\n", + "fitCoefs_dropped # show the values of the fit parameters; leave this line in" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "M-yAXIuzWWZJ" + }, + "source": [ + "# TASK\n", + "\n", + "Copy the value that represents the corrected $EC_{50}$ of paclitaxel's effects on BR1 cells and save as the answer to Quiz question #7." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jxhb_Ly96j5y" + }, + "source": [ + "#### Plot the data and predicted model fits using Seaborn\n", + "NOTE: You will see two curves if you properly fit the cleaned data with the `ll4` model and saved the fit parameters in `fitCoefs_dropped` " + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 525 + }, + "id": "UK4klnJbZlpx", + "outputId": "e1301aee-e534-4329-d4bb-d7b7dc5b9209" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 33 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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qYiI9EUamUxERCSJ2WwGYwdkJrqMuNCtbxERkSSmoBYREUliCmoREZEkpqAWERFJYgpqERGRJKagFhERSWIKahERkSSmoBYREUliCmoREZEkpqAWERFJYgpqERGRJKagFhERSWIKahERkSSmoBYREUliCmoREZEkpqAWERFJYgpqERGRJKagFhERSWIKahERkSSmoBYREUliCmoREZEkpqAWERFJYgpqERGRJKagFhERSWIKahERkSSmoBYREUliCmoREZEkpqAWERFJYgpqERGRJKagFhERSWIKahERkSSmoBYREUliCmoREZEkljJBXVtby7e//W38fj9ZWVlcdtllNDY2HnSblpYWrrzySnJzc/F6vZx//vns3Lmz7f2PP/6Yiy66iJKSEtLS0hg1ahT33ntvT5+KiIhIp6VMUH/7299m1apVzJs3j1dffZW33nqLyy+//KDbXHfddbzyyis899xzLFiwgO3bt/P1r3+97f0lS5ZQUFDA008/zapVq/j5z3/O7Nmzuf/++3v6dERERDrFsCzLSnQRh7J69WpGjx7Nhx9+yLHHHgvA3Llz+cpXvsLWrVvp16/fftvU19eTn5/PM888wze+8Q0A1qxZw6hRo1i0aBEnnHBCh8e68sorWb16NfPnz+90fYFAgMzMTOrr6/H7/d04QxERkY6lxBX1okWLyMrKagtpgKlTp2Kz2Xj//fc73GbJkiVEIhGmTp3atmzkyJEMHDiQRYsWHfBY9fX15OTkHLSeUChEIBBo9xIREekJKRHUVVVVFBQUtFvmcDjIycmhqqrqgNu4XC6ysrLaLS8sLDzgNgsXLuTZZ5895C31O+64g8zMzLZXSUlJ509GRESkCxIa1DfeeCOGYRz0tWbNml6pZeXKlXzta1/j1ltv5YwzzjjourNnz6a+vr7ttWXLll6pUUREjjyORB78+uuv57vf/e5B1xkyZAhFRUVUV1e3Wx6NRqmtraWoqKjD7YqKigiHw9TV1bW7qt65c+d+23zyySecfvrpXH755dx8882HrNvtduN2uw+5noiIyOFKaFDn5+eTn59/yPUmTZpEXV0dS5YsYcKECQDMnz8f0zSZOHFih9tMmDABp9PJG2+8wfnnnw/A2rVrqaysZNKkSW3rrVq1itNOO41LL72UX//613E4KxERkfhJiVbfAGeeeSY7d+5kzpw5RCIRZsyYwbHHHsszzzwDwLZt2zj99NN58sknOf744wGYOXMmr732Go8//jh+v5+rr74aaH0WDa23u0877TSmTZvGXXfd1XYsu93eqS8Q+6jVt4iI9JSEXlF3xV/+8heuuuoqTj/9dGw2G+effz733Xdf2/uRSIS1a9cSDAbblv3+979vWzcUCjFt2jT+9Kc/tb3//PPPs2vXLp5++mmefvrptuWDBg1i06ZNvXJeIiIiB5MyV9TJTFfUIiLSU1Kie5aIiMiRSkEtIiKSxBTUIiIiSUxBLSIiksQU1CIiIklMQS0iIpLEFNQiIiJJTEEtIiKSxBTUIiIiSUxBLSIiksQU1CIiIklMQS0iIpLEFNQiIiJJTEEtIiKSxBTUIiIiSUxBLSIiksQU1CIiIklMQS0iIpLEFNQiIiJJTEEtIiKSxBTUIiIiSUxBLSIiksQU1CIiIknMkegCRESk55imxartAWqDYXLSXYzp58dmMxJdlnSBglpEpI9aWF7DgwsqqKhuJBKzcNoNygq8zJxSxuSheYkuTzpJt75FRPqgheU13PTiClbvCJDhdlDgc5PhdrB6RwM3vbiCheU1iS5ROklBLSLSx5imxYMLKmgMRSnye/A47dhsBh6nnSK/m8ZQjAcXVGCaVqJLlU5QUIuI9DGrtgeoqG4kO92FYbR/Hm0YBlnpTiqqG1m1PZCgCqUrFNQiIn1MbTBMJGbhsnf8Ee+224iYFrXBcC9XJt2hoBYR6WNy0l047QbhmNnh+6GYidNmkJPu6uXKpDsU1CIifcyYfn7KCrzsCUawrPbPoS3Loi4YoazAy5h+/gRVKF2hoBYR6WNsNoOZU8rwuu1UBUI0R2KYpkVzJEZVIITXbWfmlDL1p04RCmoRkT5o8tA8bj9vLKOKfQRDUaobQwRDUUYV+7j9vLHqR51CDOvz90WkywKBAJmZmdTX1+P361aSiCQPjUyW+jQymYhIH2azGYwdkJnoMuQw6Na3iIhIElNQi4iIJDEFtYiISBJTUIuIiCQxBbWIiEgSU1CLiIgkMQW1iIhIElNQi4iIJDEFtYiISBJTUIuIiCQxBbWIiEgSU1CLiIgkMU3KEQf7JiALBAIJrkRERFKJz+fDMA4+m5mCOg4aGhoAKCkpSXAlIiKSSjozPbLmo44D0zTZvn17p74ZHUwgEKCkpIQtW7b0iXmt+9L59KVzAZ1PMutL5wI6n0PRFXUvsdlsDBgwIG778/v9feIf9D596Xz60rmAzieZ9aVzAZ3P4VBjMhERkSSmoBYREUliCuok4na7ufXWW3G73YkuJS760vn0pXMBnU8y60vnAjqfeFBjMhERkSSmK2oREZEkpqAWERFJYgpqERGRJKagThK//vWvmTx5Munp6WRlZe33/scff8xFF11ESUkJaWlpjBo1invvvbf3C+2EQ50LwDXXXMOECRNwu92MHz++V+vrqs6cT2VlJWeddRbp6ekUFBTwk5/8hGg02ruFdtPSpUv50pe+RFZWFrm5uVx++eU0NjYmuqxuW7duHV/72tfIy8vD7/dz4okn8uabbya6rG7573//i2EYHb4+/PDDRJfXLf/85z+ZOHEiaWlpZGdnc+655ya6pG4bPHjwfr+X3/zmN3E/joI6SYTDYS644AJmzpzZ4ftLliyhoKCAp59+mlWrVvHzn/+c2bNnc//99/dypYd2qHPZ53vf+x7Tp0/vpaq671DnE4vFOOusswiHwyxcuJAnnniCxx9/nFtuuaWXK+267du3M3XqVIYOHcr777/P3LlzWbVqFd/97ncTXVq3nX322USjUebPn8+SJUsYN24cZ599NlVVVYkurcsmT57Mjh072r2+//3vU1payrHHHpvo8rrs73//OxdffDEzZszg448/5t133+Vb3/pWoss6LL/61a/a/X6uvvrq+B/EkqTy2GOPWZmZmZ1a90c/+pF16qmn9mxBh6Ez53Lrrbda48aN65V6DteBzue1116zbDabVVVV1bbswQcftPx+vxUKhXqxwq576KGHrIKCAisWi7UtW758uQVY69evT2Bl3bNr1y4LsN566622ZYFAwAKsefPmJbCy+AiHw1Z+fr71q1/9KtGldFkkErH69+9v/e///m+iS4mbQYMGWb///e97/Di6ok5h9fX15OTkJLqMI96iRYsYO3YshYWFbcumTZtGIBBg1apVCazs0EKhEC6XC5vt04+CtLQ0AN55551EldVtubm5jBgxgieffJKmpiai0SgPPfQQBQUFTJgwIdHlHbaXX36Z3bt3M2PGjESX0mVLly5l27Zt2Gw2jjnmGIqLiznzzDNZuXJloks7LL/5zW/Izc3lmGOO4a677uqRR14K6hS1cOFCnn32WS6//PJEl3LEq6qqahfSQNvfk/1262mnnUZVVRV33XUX4XCYPXv2cOONNwKwY8eOBFfXdYZh8J///IePPvoIn8+Hx+Phd7/7HXPnziU7OzvR5R22Rx99lGnTpsV1boHesmHDBgBuu+02br75Zl599VWys7M55ZRTqK2tTXB13XPNNdfw17/+lTfffJMf/vCH3H777fz0pz+N+3EU1D3oxhtvPGBDkH2vNWvWdHm/K1eu5Gtf+xq33norZ5xxRg9Uvr+eOpdE6Wvn83mdPb8xY8bwxBNPcM8995Cenk5RURGlpaUUFha2u8pOtM6ej2VZXHnllRQUFPD222/zwQcfcO655/LVr341qb54dOff39atW/n3v//NZZddlqCqO9bZczFNE4Cf//znnH/++UyYMIHHHnsMwzB47rnnEnwWn+rK72bWrFmccsopHH300VxxxRXcc889/PGPfyQUCsW1Js2e1YOuv/76QzbKGTJkSJf2+cknn3D66adz+eWXc/PNNx9GdV3TE+eSSPE8n6KiIj744IN2y3bu3Nn2XiJ05fy+9a1v8a1vfYudO3eSkZGBYRj87ne/S6rfZ2fPZ/78+bz66qvs2bOnbWajP/3pT8ybN48nnnii7W5BonXn399jjz1Gbm4u55xzTg9W1nWdPZd9X5RGjx7dttztdjNkyBAqKyt7ssQuOZzPhokTJxKNRtm0aRMjRoyIW00K6h6Un59Pfn5+3Pa3atUqTjvtNC699FJ+/etfx22/nRHvc0m0eJ7PpEmT+PWvf011dTUFBQUAzJs3D7/f3+5DqTd15/z23a7/85//jMfj4Utf+lJPlNYtnT2fYDAIsN/dAJvN1nZFlwy6+vuxLIvHHnuMSy65BKfT2YOVdV1nz2Vfd8y1a9dy4oknAhCJRNi0aRODBg3q6TI77XA+G5YtW4bNZmv7HIgXBXWSqKyspLa2lsrKSmKxGMuWLQNg6NCheL1eVq5cyWmnnca0adOYNWtW27NPu92edAF6qHMBKC8vp7GxkaqqKpqbm9vWGT16NC6XK0GVd+xQ53PGGWcwevRoLr74Yn77299SVVXFzTffzJVXXpkSExHcf//9TJ48Ga/Xy7x58/jJT37Cb37zmwP2GU9mkyZNIjs7m0svvZRbbrmFtLQ0HnnkETZu3MhZZ52V6PK6bf78+WzcuJHvf//7iS6l2/x+P1dccQW33norJSUlDBo0iLvuuguACy64IMHVdd2iRYt4//33OfXUU/H5fCxatIjrrruO73znO/FvD9Hj7cqlUy699FIL2O/15ptvWpbV2o2po/cHDRqU0Lo7cqhzsSzLmjJlSofrbNy4MWF1H0hnzmfTpk3WmWeeaaWlpVl5eXnW9ddfb0UikcQV3QUXX3yxlZOTY7lcLuvoo4+2nnzyyUSXdFg+/PBD64wzzrBycnIsn89nnXDCCdZrr72W6LIOy0UXXWRNnjw50WUctnA4bF1//fVWQUGB5fP5rKlTp1orV65MdFndsmTJEmvixIlWZmam5fF4rFGjRlm333671dLSEvdjafYsERGRJJY8zTpFRERkPwpqERGRJKagFhERSWIKahERkSSmoBYREUliCmoREZEkpqAWERFJYgpqERGRJKagFjmCnHLKKfz4xz9OdBki0gUKapEj1AsvvMAZZ5xBbm4uhmG0jWH+WS0tLVx55ZXk5ubi9Xo5//zz22YGE5HeoaAWOUI1NTVx4okncueddx5wneuuu45XXnmF5557jgULFrB9+3a+/vWv92KVIqKgFjlCXXzxxdxyyy1MnTq1w/fr6+t59NFH+d3vfsdpp53GhAkTeOyxx1i4cCHvvfdep46xatUqzj77bPx+Pz6fj5NOOomKigoATNPkV7/6FQMGDMDtdjN+/Hjmzp3btu2mTZswDIMXXniBU089lfT0dMaNG8eiRYvaHePdd9/llFNOIT09nezsbKZNm8aePXu6+VMRST4KahHp0JIlS4hEIu2CfOTIkQwcOHC/sOzItm3bOPnkk3G73cyfP58lS5bwve99j2g0CsC9997LPffcw913383y5cuZNm0a55xzDuvXr2+3n5///OfccMMNLFu2jOHDh3PRRRe17WPZsmWcfvrpjB49mkWLFvHOO+/w1a9+lVgsFsefhEhiaT5qEelQVVUVLpdrv3mpCwsL2+ZDP5gHHniAzMxM/vrXv+J0OgEYPnx42/t33303P/vZz7jwwgsBuPPOO3nzzTf5wx/+wAMPPNC23g033NA2l/Qvf/lLxowZQ3l5OSNHjuS3v/0txx57LH/605/a1h8zZky3z1kkGemKWkR6xLJlyzjppJPaQvqzAoEA27dv54tf/GK75V/84hdZvXp1u2VHH310238XFxcDUF1d3XaM008/Pd6liyQVBbWIdKioqIhwOExdXV275Tt37qSoqOiQ26elpcWljs8GvWEYQOvz7XgeQySZKahFpEMTJkzA6XTyxhtvtC1bu3YtlZWVTJo06ZDbH3300bz99ttEIpH93vP7/fTr149333233fJ3332X0aNHd7rGo48+ul19In2RglrkCFVbW8uyZcv45JNPgNYQXrZsWdvz58zMTC677DJmzZrFm2++yZIlS5gxYwaTJk3ihBNOOOT+r7rqKgKBABdeeCGLFy9m/fr1PPXUU6xduxaAn/zkJ9x55508++yzrF27lhtvvJFly5Zx7bXXdvocZs+ezYcffsiPfvQjli9fzpo1a3jwwQepqanpxk9EJDkpqEWOUC+//DLHHHNMW0OtCy+8kGOOOYY5c+a0rfP73/+es88+m/PPP5+TTz6ZoqIiXnjhhU7tPzc3l/nz59PY2MiUKVOYMGECjzzySNut7GuuuYZZs2Zx/fXXM3bsWObOncvLL7/MsGHDOn0Ow4cP5/XXX+fjjz/m+OOPZ9KkSfzjH//A4VA7Wek7DMuyrEQXISIiIh3TFbWIiEgSU1CLSLdcccUVeL3eDl9XXHFFossT6TN061tEuqW6uppAINDhe36/n4KCgl6uSKRvUlCLiIgkMd36FhERSWIKahERkSSmoBYREUliCmoREZEkpqAWERFJYgpqERGRJKagFhERSWIKahERkST2/wEgGnWDmP/jrgAAAABJRU5ErkJggg==\n" + }, + "metadata": {} + } + ], + "source": [ + "myconc = np.linspace(-12,-5,100)\n", + "sns.lmplot(x='l10_conc', y='dip_rate', data=diprates_br1_pacl, fit_reg=False)\n", + "if type(fitCoefs_dropped)!=int:\n", + " sns.lineplot(x=myconc, y=[ll4(x, *fitCoefs_dropped) for x in 10**myconc], legend=False)\n", + "sns.lineplot(x=myconc, y=[ll4(x, *fitCoefs) for x in 10**myconc], legend=False, hue=2)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MfIG6Kno6j5z" + }, + "source": [ + "#### Perform nonlinear regression on data using `ll3` model \n", + "Use `resp_ratio` values.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3Ue2Rwp56j5z", + "outputId": "818b33d5-7093-4f4e-ab4e-97e0049bf16d" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 6.15594008e-01, -3.36526687e-01, 4.17293781e-10])" + ] + }, + "metadata": {}, + "execution_count": 34 + } + ], + "source": [ + "fitCoefs_ratio, covMatrix_ratio = opt.curve_fit(ll3, 10**(diprates_br1_pacl_drop62['l10_conc']),\n", + " diprates_br1_pacl_drop62['resp_ratio'])\n", + "fitCoefs_ratio" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kBVmg7djf8xr" + }, + "source": [ + "# Task\n", + "What is the $E_{max}$ value from the `ll3` model parameters fit to response ratios of BR1 + paclitaxel? Copy it and save the answer to Quiz question #8." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rDTanbu5uQ-9" + }, + "source": [ + "#### Plot the data and predicted model fits using Seaborn" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 512 + }, + "id": "v5Xn-Q566j5z", + "outputId": "86ede5ce-192e-4dd5-b6c1-4404677b1b1d" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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\n" + }, + "metadata": {} + } + ], + "source": [ + "a = sns.lmplot(x='l10_conc', y='resp_ratio', data=diprates_br1_pacl_drop62, fit_reg=False)\n", + "a.set(ylim=(-1, 1.25))\n", + "l = sns.lineplot(x=[i for i in myconc], y=[ll3(10**i,*fitCoefs_ratio) for i in myconc], legend=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "LGkZX0_HbKw8", + "outputId": "3d9ad086-47b3-4e2e-d613-f8e7de2539c9" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The EC50 of paclitaxel on BR1 cells is 0.417 nM\n" + ] + } + ], + "source": [ + "print(f\"The EC50 of paclitaxel on BR1 cells is {np.round(fitCoefs_ratio[2]*1e9,3)} nM\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "PFE-dblWbkWk" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file