{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Use Case 3: Associating Clinical Variables with Acetylation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this use case, we aim to analyze acetylation data with a clinical attribute, specifically \"histologic_type\". Our goal is to identify acetylation sites that differ significantly in frequency between non-tumor, serous and endometrial cells."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Step 1: Import Packages and Load Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, we'll import the necessary packages, including the cptac package, and load the Endometrial dataset. Make sure to run pip install (package name) in your terminal to make sure the all of the dependencies you are trying to import are installed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import scipy.stats\n",
    "import statsmodels.stats.multitest\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import math\n",
    "import cptac\n",
    "import cptac.utils as ut\n",
    "\n",
    "en = cptac.Ucec()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Step 2: Understanding the Acetylproteomic Dataframe\n",
    "\n",
    "The Endometrial acetylproteomic dataframe has a multiindex. The 'Name' index lists the gene of interest, 'Site' index shows the site of acetylation, and 'Peptide' index shows the peptide sequence where the modification took place. 'Database_ID' differentiates entries with the same gene name. After joining with other dataframes, we typically drop 'Database_ID' for easier data manipulation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "cptac warning: Your version of cptac (1.5.1) is out-of-date. Latest is 1.5.0. Please run 'pip install --upgrade cptac' to update it. (C:\\Users\\sabme\\anaconda3\\lib\\threading.py, line 910)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th>ARF5</th>\n",
       "      <th colspan=\"8\" halign=\"left\">FKBP4</th>\n",
       "      <th>ZNF195</th>\n",
       "      <th>...</th>\n",
       "      <th colspan=\"3\" halign=\"left\">PDIA4</th>\n",
       "      <th>AC004706.3</th>\n",
       "      <th colspan=\"2\" halign=\"left\">NaN</th>\n",
       "      <th colspan=\"2\" halign=\"left\">WIZ</th>\n",
       "      <th colspan=\"2\" halign=\"left\">NaN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Site</th>\n",
       "      <th>K109</th>\n",
       "      <th>K181</th>\n",
       "      <th>K213</th>\n",
       "      <th>K234</th>\n",
       "      <th>K266</th>\n",
       "      <th>K294</th>\n",
       "      <th>K35</th>\n",
       "      <th>K354</th>\n",
       "      <th>K76</th>\n",
       "      <th>K497</th>\n",
       "      <th>...</th>\n",
       "      <th>K570</th>\n",
       "      <th>K611</th>\n",
       "      <th>K637</th>\n",
       "      <th>K21</th>\n",
       "      <th>K102K105</th>\n",
       "      <th>K105</th>\n",
       "      <th>K16</th>\n",
       "      <th>K638</th>\n",
       "      <th>K228</th>\n",
       "      <th>K304</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Peptide</th>\n",
       "      <th>VQESADELQKMLQEDELR</th>\n",
       "      <th>DKLFDQR</th>\n",
       "      <th>MEKGEHSIVYLK</th>\n",
       "      <th>EKFQIPPNAELK</th>\n",
       "      <th>ESWEMNSEEKLEQSTIVK</th>\n",
       "      <th>QALLQYKK;QALLQYK</th>\n",
       "      <th>QDEGVLK</th>\n",
       "      <th>ALELDSNNEKGLFR</th>\n",
       "      <th>DKFSFDLGK</th>\n",
       "      <th>THTGEKPYK</th>\n",
       "      <th>...</th>\n",
       "      <th>QLEPVYNSLAKK</th>\n",
       "      <th>VEGFPTIYFAPSGDK;VEGFPTIYFAPSGDKK</th>\n",
       "      <th>FIEEHATK</th>\n",
       "      <th>RGEQAAKMPGR;GEQAAKMPGR</th>\n",
       "      <th>SLQKTAK</th>\n",
       "      <th>TAKIMVHSPTK</th>\n",
       "      <th>AESKAAAGPR</th>\n",
       "      <th>PSATGYLGSVAAKRPLQEDR</th>\n",
       "      <th>LRCASIQKFGER</th>\n",
       "      <th>LKECCDKPLLEK;ECCDKPLLEK</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Database_ID</th>\n",
       "      <th>ENSP00000000233.5</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000001008.4</th>\n",
       "      <th>ENSP00000005082.9</th>\n",
       "      <th>...</th>\n",
       "      <th>ENSP00000499129.1</th>\n",
       "      <th>ENSP00000499129.1</th>\n",
       "      <th>ENSP00000499129.1</th>\n",
       "      <th>ENSP00000499350.1</th>\n",
       "      <th>ENSP00000499373.1</th>\n",
       "      <th>ENSP00000499373.1</th>\n",
       "      <th>ENSP00000501256.3</th>\n",
       "      <th>ENSP00000501256.3</th>\n",
       "      <th>P02769</th>\n",
       "      <th>P02769</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Patient_ID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>C3L-00006</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.945484</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.290219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00008</th>\n",
       "      <td>NaN</td>\n",
       "      <td>13.420601</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.790586</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.147555</td>\n",
       "      <td>12.664316</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.236406</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00032</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.060923</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.952557</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.351192</td>\n",
       "      <td>21.437865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00084</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.336663</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.251376</td>\n",
       "      <td>14.506364</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>25.212475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00090</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.483674</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.116837</td>\n",
       "      <td>13.641868</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11.869961</td>\n",
       "      <td>NaN</td>\n",
       "      <td>21.68762</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX5.N</th>\n",
       "      <td>14.617941</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.496429</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.903885</td>\n",
       "      <td>11.666652</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.23143</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.490334</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX6.N</th>\n",
       "      <td>14.533201</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.618387</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.994645</td>\n",
       "      <td>12.320025</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.188642</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.308924</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX7.N</th>\n",
       "      <td>14.289658</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.657418</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.018219</td>\n",
       "      <td>12.048218</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.511215</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.759263</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX8.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>13.118452</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.718777</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.582718</td>\n",
       "      <td>11.997747</td>\n",
       "      <td>NaN</td>\n",
       "      <td>24.135771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX9.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>12.792899</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.237764</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11.802954</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.547796</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>160 rows × 11790 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "Name                      ARF5             FKBP4                    \\\n",
       "Site                      K109              K181              K213   \n",
       "Peptide     VQESADELQKMLQEDELR           DKLFDQR      MEKGEHSIVYLK   \n",
       "Database_ID  ENSP00000000233.5 ENSP00000001008.4 ENSP00000001008.4   \n",
       "Patient_ID                                                           \n",
       "C3L-00006                  NaN               NaN               NaN   \n",
       "C3L-00008                  NaN         13.420601               NaN   \n",
       "C3L-00032                  NaN               NaN         15.060923   \n",
       "C3L-00084                  NaN               NaN               NaN   \n",
       "C3L-00090                  NaN               NaN               NaN   \n",
       "...                        ...               ...               ...   \n",
       "NX5.N                14.617941               NaN         15.496429   \n",
       "NX6.N                14.533201               NaN         15.618387   \n",
       "NX7.N                14.289658               NaN         15.657418   \n",
       "NX8.N                      NaN         13.118452               NaN   \n",
       "NX9.N                      NaN         12.792899               NaN   \n",
       "\n",
       "Name                                                                \\\n",
       "Site                     K234               K266              K294   \n",
       "Peptide          EKFQIPPNAELK ESWEMNSEEKLEQSTIVK  QALLQYKK;QALLQYK   \n",
       "Database_ID ENSP00000001008.4  ENSP00000001008.4 ENSP00000001008.4   \n",
       "Patient_ID                                                           \n",
       "C3L-00006                 NaN                NaN               NaN   \n",
       "C3L-00008                 NaN                NaN               NaN   \n",
       "C3L-00032                 NaN                NaN               NaN   \n",
       "C3L-00084                 NaN                NaN         12.336663   \n",
       "C3L-00090                 NaN                NaN               NaN   \n",
       "...                       ...                ...               ...   \n",
       "NX5.N                     NaN                NaN         12.903885   \n",
       "NX6.N                     NaN                NaN         12.994645   \n",
       "NX7.N                     NaN                NaN         13.018219   \n",
       "NX8.N                     NaN                NaN               NaN   \n",
       "NX9.N                     NaN                NaN               NaN   \n",
       "\n",
       "Name                                                               \\\n",
       "Site                      K35              K354               K76   \n",
       "Peptide               QDEGVLK    ALELDSNNEKGLFR         DKFSFDLGK   \n",
       "Database_ID ENSP00000001008.4 ENSP00000001008.4 ENSP00000001008.4   \n",
       "Patient_ID                                                          \n",
       "C3L-00006                 NaN               NaN               NaN   \n",
       "C3L-00008                 NaN               NaN               NaN   \n",
       "C3L-00032                 NaN               NaN               NaN   \n",
       "C3L-00084                 NaN               NaN               NaN   \n",
       "C3L-00090                 NaN         16.483674               NaN   \n",
       "...                       ...               ...               ...   \n",
       "NX5.N               11.666652               NaN               NaN   \n",
       "NX6.N               12.320025               NaN               NaN   \n",
       "NX7.N               12.048218               NaN               NaN   \n",
       "NX8.N                     NaN               NaN               NaN   \n",
       "NX9.N                     NaN               NaN               NaN   \n",
       "\n",
       "Name                   ZNF195  ...             PDIA4  \\\n",
       "Site                     K497  ...              K570   \n",
       "Peptide             THTGEKPYK  ...      QLEPVYNSLAKK   \n",
       "Database_ID ENSP00000005082.9  ... ENSP00000499129.1   \n",
       "Patient_ID                     ...                     \n",
       "C3L-00006                 NaN  ...               NaN   \n",
       "C3L-00008                 NaN  ...               NaN   \n",
       "C3L-00032                 NaN  ...               NaN   \n",
       "C3L-00084                 NaN  ...               NaN   \n",
       "C3L-00090                 NaN  ...               NaN   \n",
       "...                       ...  ...               ...   \n",
       "NX5.N                     NaN  ...               NaN   \n",
       "NX6.N                     NaN  ...               NaN   \n",
       "NX7.N                     NaN  ...               NaN   \n",
       "NX8.N                     NaN  ...               NaN   \n",
       "NX9.N                     NaN  ...               NaN   \n",
       "\n",
       "Name                                                            \\\n",
       "Site                                    K611              K637   \n",
       "Peptide     VEGFPTIYFAPSGDK;VEGFPTIYFAPSGDKK          FIEEHATK   \n",
       "Database_ID                ENSP00000499129.1 ENSP00000499129.1   \n",
       "Patient_ID                                                       \n",
       "C3L-00006                                NaN               NaN   \n",
       "C3L-00008                                NaN               NaN   \n",
       "C3L-00032                                NaN               NaN   \n",
       "C3L-00084                                NaN         12.251376   \n",
       "C3L-00090                                NaN               NaN   \n",
       "...                                      ...               ...   \n",
       "NX5.N                                    NaN               NaN   \n",
       "NX6.N                                    NaN               NaN   \n",
       "NX7.N                                    NaN               NaN   \n",
       "NX8.N                                    NaN               NaN   \n",
       "NX9.N                                    NaN               NaN   \n",
       "\n",
       "Name                    AC004706.3               NaN                    \\\n",
       "Site                           K21          K102K105              K105   \n",
       "Peptide     RGEQAAKMPGR;GEQAAKMPGR           SLQKTAK       TAKIMVHSPTK   \n",
       "Database_ID      ENSP00000499350.1 ENSP00000499373.1 ENSP00000499373.1   \n",
       "Patient_ID                                                               \n",
       "C3L-00006                15.945484               NaN               NaN   \n",
       "C3L-00008                16.790586               NaN               NaN   \n",
       "C3L-00032                15.952557               NaN               NaN   \n",
       "C3L-00084                14.506364               NaN               NaN   \n",
       "C3L-00090                16.116837         13.641868               NaN   \n",
       "...                            ...               ...               ...   \n",
       "NX5.N                     17.23143               NaN               NaN   \n",
       "NX6.N                    17.188642               NaN               NaN   \n",
       "NX7.N                    17.511215               NaN               NaN   \n",
       "NX8.N                    16.718777               NaN               NaN   \n",
       "NX9.N                    15.237764               NaN               NaN   \n",
       "\n",
       "Name                      WIZ                               NaN  \\\n",
       "Site                      K16                 K638         K228   \n",
       "Peptide            AESKAAAGPR PSATGYLGSVAAKRPLQEDR LRCASIQKFGER   \n",
       "Database_ID ENSP00000501256.3    ENSP00000501256.3       P02769   \n",
       "Patient_ID                                                        \n",
       "C3L-00006                 NaN                  NaN          NaN   \n",
       "C3L-00008           14.147555            12.664316          NaN   \n",
       "C3L-00032                 NaN                  NaN    14.351192   \n",
       "C3L-00084                 NaN                  NaN          NaN   \n",
       "C3L-00090                 NaN            11.869961          NaN   \n",
       "...                       ...                  ...          ...   \n",
       "NX5.N                     NaN                  NaN          NaN   \n",
       "NX6.N                     NaN                  NaN          NaN   \n",
       "NX7.N                     NaN                  NaN          NaN   \n",
       "NX8.N               12.582718            11.997747          NaN   \n",
       "NX9.N                     NaN            11.802954          NaN   \n",
       "\n",
       "Name                                 \n",
       "Site                           K304  \n",
       "Peptide     LKECCDKPLLEK;ECCDKPLLEK  \n",
       "Database_ID                  P02769  \n",
       "Patient_ID                           \n",
       "C3L-00006                 22.290219  \n",
       "C3L-00008                 22.236406  \n",
       "C3L-00032                 21.437865  \n",
       "C3L-00084                 25.212475  \n",
       "C3L-00090                  21.68762  \n",
       "...                             ...  \n",
       "NX5.N                     23.490334  \n",
       "NX6.N                     23.308924  \n",
       "NX7.N                     23.759263  \n",
       "NX8.N                     24.135771  \n",
       "NX9.N                     23.547796  \n",
       "\n",
       "[160 rows x 11790 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "en.get_acetylproteomics('umich')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Step 3: Choose Clinical Attribute and Join Dataframes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For this use case, we'll use the 'histologic_type' clinical attribute to identify differences in acetylation sites between \"endometrioid\" and \"serous\" cancer cells. We'll join this clinical attribute with our acetylation dataframe using the en.join_metadata_to_omics method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th>histologic_type</th>\n",
       "      <th>ARF5_umich_acetylproteomics</th>\n",
       "      <th colspan=\"8\" halign=\"left\">FKBP4_umich_acetylproteomics</th>\n",
       "      <th>...</th>\n",
       "      <th colspan=\"3\" halign=\"left\">PDIA4_umich_acetylproteomics</th>\n",
       "      <th>AC004706.3_umich_acetylproteomics</th>\n",
       "      <th colspan=\"2\" halign=\"left\">NaN</th>\n",
       "      <th colspan=\"2\" halign=\"left\">WIZ_umich_acetylproteomics</th>\n",
       "      <th colspan=\"2\" halign=\"left\">NaN</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Site</th>\n",
       "      <th></th>\n",
       "      <th>K109</th>\n",
       "      <th>K181</th>\n",
       "      <th>K213</th>\n",
       "      <th>K234</th>\n",
       "      <th>K266</th>\n",
       "      <th>K294</th>\n",
       "      <th>K35</th>\n",
       "      <th>K354</th>\n",
       "      <th>K76</th>\n",
       "      <th>...</th>\n",
       "      <th>K570</th>\n",
       "      <th>K611</th>\n",
       "      <th>K637</th>\n",
       "      <th>K21</th>\n",
       "      <th>K102K105</th>\n",
       "      <th>K105</th>\n",
       "      <th>K16</th>\n",
       "      <th>K638</th>\n",
       "      <th>K228</th>\n",
       "      <th>K304</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Peptide</th>\n",
       "      <th></th>\n",
       "      <th>VQESADELQKMLQEDELR</th>\n",
       "      <th>DKLFDQR</th>\n",
       "      <th>MEKGEHSIVYLK</th>\n",
       "      <th>EKFQIPPNAELK</th>\n",
       "      <th>ESWEMNSEEKLEQSTIVK</th>\n",
       "      <th>QALLQYKK;QALLQYK</th>\n",
       "      <th>QDEGVLK</th>\n",
       "      <th>ALELDSNNEKGLFR</th>\n",
       "      <th>DKFSFDLGK</th>\n",
       "      <th>...</th>\n",
       "      <th>QLEPVYNSLAKK</th>\n",
       "      <th>VEGFPTIYFAPSGDK;VEGFPTIYFAPSGDKK</th>\n",
       "      <th>FIEEHATK</th>\n",
       "      <th>RGEQAAKMPGR;GEQAAKMPGR</th>\n",
       "      <th>SLQKTAK</th>\n",
       "      <th>TAKIMVHSPTK</th>\n",
       "      <th>AESKAAAGPR</th>\n",
       "      <th>PSATGYLGSVAAKRPLQEDR</th>\n",
       "      <th>LRCASIQKFGER</th>\n",
       "      <th>LKECCDKPLLEK;ECCDKPLLEK</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Patient_ID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>C3L-00006</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.945484</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.290219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00008</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.420601</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.790586</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.147555</td>\n",
       "      <td>12.664316</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.236406</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00032</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.060923</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.952557</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.351192</td>\n",
       "      <td>21.437865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00084</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.336663</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.251376</td>\n",
       "      <td>14.506364</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>25.212475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00090</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.483674</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.116837</td>\n",
       "      <td>13.641868</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11.869961</td>\n",
       "      <td>NaN</td>\n",
       "      <td>21.68762</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX5.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>14.617941</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.496429</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.903885</td>\n",
       "      <td>11.666652</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.23143</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.490334</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX6.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>14.533201</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.618387</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.994645</td>\n",
       "      <td>12.320025</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.188642</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.308924</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX7.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>14.289658</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.657418</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.018219</td>\n",
       "      <td>12.048218</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.511215</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.759263</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX8.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.118452</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.718777</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.582718</td>\n",
       "      <td>11.997747</td>\n",
       "      <td>NaN</td>\n",
       "      <td>24.135771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX9.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.792899</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.237764</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11.802954</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.547796</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>160 rows × 11791 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "Name               histologic_type ARF5_umich_acetylproteomics  \\\n",
       "Site                                                      K109   \n",
       "Peptide                                     VQESADELQKMLQEDELR   \n",
       "Patient_ID                                                       \n",
       "C3L-00006   Endometrioid carcinoma                         NaN   \n",
       "C3L-00008   Endometrioid carcinoma                         NaN   \n",
       "C3L-00032   Endometrioid carcinoma                         NaN   \n",
       "C3L-00084   Endometrioid carcinoma                         NaN   \n",
       "C3L-00090   Endometrioid carcinoma                         NaN   \n",
       "...                            ...                         ...   \n",
       "NX5.N                          NaN                   14.617941   \n",
       "NX6.N                          NaN                   14.533201   \n",
       "NX7.N                          NaN                   14.289658   \n",
       "NX8.N                          NaN                         NaN   \n",
       "NX9.N                          NaN                         NaN   \n",
       "\n",
       "Name       FKBP4_umich_acetylproteomics                            \\\n",
       "Site                               K181         K213         K234   \n",
       "Peptide                         DKLFDQR MEKGEHSIVYLK EKFQIPPNAELK   \n",
       "Patient_ID                                                          \n",
       "C3L-00006                           NaN          NaN          NaN   \n",
       "C3L-00008                     13.420601          NaN          NaN   \n",
       "C3L-00032                           NaN    15.060923          NaN   \n",
       "C3L-00084                           NaN          NaN          NaN   \n",
       "C3L-00090                           NaN          NaN          NaN   \n",
       "...                                 ...          ...          ...   \n",
       "NX5.N                               NaN    15.496429          NaN   \n",
       "NX6.N                               NaN    15.618387          NaN   \n",
       "NX7.N                               NaN    15.657418          NaN   \n",
       "NX8.N                         13.118452          NaN          NaN   \n",
       "NX9.N                         12.792899          NaN          NaN   \n",
       "\n",
       "Name                                                                      \\\n",
       "Site                     K266             K294        K35           K354   \n",
       "Peptide    ESWEMNSEEKLEQSTIVK QALLQYKK;QALLQYK    QDEGVLK ALELDSNNEKGLFR   \n",
       "Patient_ID                                                                 \n",
       "C3L-00006                 NaN              NaN        NaN            NaN   \n",
       "C3L-00008                 NaN              NaN        NaN            NaN   \n",
       "C3L-00032                 NaN              NaN        NaN            NaN   \n",
       "C3L-00084                 NaN        12.336663        NaN            NaN   \n",
       "C3L-00090                 NaN              NaN        NaN      16.483674   \n",
       "...                       ...              ...        ...            ...   \n",
       "NX5.N                     NaN        12.903885  11.666652            NaN   \n",
       "NX6.N                     NaN        12.994645  12.320025            NaN   \n",
       "NX7.N                     NaN        13.018219  12.048218            NaN   \n",
       "NX8.N                     NaN              NaN        NaN            NaN   \n",
       "NX9.N                     NaN              NaN        NaN            NaN   \n",
       "\n",
       "Name                  ... PDIA4_umich_acetylproteomics  \\\n",
       "Site             K76  ...                         K570   \n",
       "Peptide    DKFSFDLGK  ...                 QLEPVYNSLAKK   \n",
       "Patient_ID            ...                                \n",
       "C3L-00006        NaN  ...                          NaN   \n",
       "C3L-00008        NaN  ...                          NaN   \n",
       "C3L-00032        NaN  ...                          NaN   \n",
       "C3L-00084        NaN  ...                          NaN   \n",
       "C3L-00090        NaN  ...                          NaN   \n",
       "...              ...  ...                          ...   \n",
       "NX5.N            NaN  ...                          NaN   \n",
       "NX6.N            NaN  ...                          NaN   \n",
       "NX7.N            NaN  ...                          NaN   \n",
       "NX8.N            NaN  ...                          NaN   \n",
       "NX9.N            NaN  ...                          NaN   \n",
       "\n",
       "Name                                                    \\\n",
       "Site                                   K611       K637   \n",
       "Peptide    VEGFPTIYFAPSGDK;VEGFPTIYFAPSGDKK   FIEEHATK   \n",
       "Patient_ID                                               \n",
       "C3L-00006                               NaN        NaN   \n",
       "C3L-00008                               NaN        NaN   \n",
       "C3L-00032                               NaN        NaN   \n",
       "C3L-00084                               NaN  12.251376   \n",
       "C3L-00090                               NaN        NaN   \n",
       "...                                     ...        ...   \n",
       "NX5.N                                   NaN        NaN   \n",
       "NX6.N                                   NaN        NaN   \n",
       "NX7.N                                   NaN        NaN   \n",
       "NX8.N                                   NaN        NaN   \n",
       "NX9.N                                   NaN        NaN   \n",
       "\n",
       "Name       AC004706.3_umich_acetylproteomics        NaN              \\\n",
       "Site                                     K21   K102K105        K105   \n",
       "Peptide               RGEQAAKMPGR;GEQAAKMPGR    SLQKTAK TAKIMVHSPTK   \n",
       "Patient_ID                                                            \n",
       "C3L-00006                          15.945484        NaN         NaN   \n",
       "C3L-00008                          16.790586        NaN         NaN   \n",
       "C3L-00032                          15.952557        NaN         NaN   \n",
       "C3L-00084                          14.506364        NaN         NaN   \n",
       "C3L-00090                          16.116837  13.641868         NaN   \n",
       "...                                      ...        ...         ...   \n",
       "NX5.N                               17.23143        NaN         NaN   \n",
       "NX6.N                              17.188642        NaN         NaN   \n",
       "NX7.N                              17.511215        NaN         NaN   \n",
       "NX8.N                              16.718777        NaN         NaN   \n",
       "NX9.N                              15.237764        NaN         NaN   \n",
       "\n",
       "Name       WIZ_umich_acetylproteomics                               NaN  \\\n",
       "Site                              K16                 K638         K228   \n",
       "Peptide                    AESKAAAGPR PSATGYLGSVAAKRPLQEDR LRCASIQKFGER   \n",
       "Patient_ID                                                                \n",
       "C3L-00006                         NaN                  NaN          NaN   \n",
       "C3L-00008                   14.147555            12.664316          NaN   \n",
       "C3L-00032                         NaN                  NaN    14.351192   \n",
       "C3L-00084                         NaN                  NaN          NaN   \n",
       "C3L-00090                         NaN            11.869961          NaN   \n",
       "...                               ...                  ...          ...   \n",
       "NX5.N                             NaN                  NaN          NaN   \n",
       "NX6.N                             NaN                  NaN          NaN   \n",
       "NX7.N                             NaN                  NaN          NaN   \n",
       "NX8.N                       12.582718            11.997747          NaN   \n",
       "NX9.N                             NaN            11.802954          NaN   \n",
       "\n",
       "Name                                \n",
       "Site                          K304  \n",
       "Peptide    LKECCDKPLLEK;ECCDKPLLEK  \n",
       "Patient_ID                          \n",
       "C3L-00006                22.290219  \n",
       "C3L-00008                22.236406  \n",
       "C3L-00032                21.437865  \n",
       "C3L-00084                25.212475  \n",
       "C3L-00090                 21.68762  \n",
       "...                            ...  \n",
       "NX5.N                    23.490334  \n",
       "NX6.N                    23.308924  \n",
       "NX7.N                    23.759263  \n",
       "NX8.N                    24.135771  \n",
       "NX9.N                    23.547796  \n",
       "\n",
       "[160 rows x 11791 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Set desired attribute to variable 'clinical_attribute'\n",
    "clinical_attribute = \"histologic_type\"\n",
    "\n",
    "#Join attribute with acetylation dataframe\n",
    "clinical_and_acetylation = en.join_metadata_to_omics(metadata_name='clinical',\n",
    "                                                    omics_name='acetylproteomics',\n",
    "                                                    omics_source='umich',\n",
    "                                                    metadata_source='mssm',\n",
    "                                                    metadata_cols=clinical_attribute)\n",
    "clinical_and_acetylation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " Now, we'll drop the 'Peptide' level and flatten the 'Site' level, appending the 'Site' to the column names."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "cptac warning: Due to dropping the specified levels, dataframe now has 587 duplicated column headers. (C:\\Users\\sabme\\AppData\\Local\\Temp\\ipykernel_28116\\1181336117.py, line 2)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Name</th>\n",
       "      <th>histologic_type</th>\n",
       "      <th>ARF5_umich_acetylproteomics_K109</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K181</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K213</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K234</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K266</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K294</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K35</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K354</th>\n",
       "      <th>FKBP4_umich_acetylproteomics_K76</th>\n",
       "      <th>...</th>\n",
       "      <th>PDIA4_umich_acetylproteomics_K570</th>\n",
       "      <th>PDIA4_umich_acetylproteomics_K611</th>\n",
       "      <th>PDIA4_umich_acetylproteomics_K637</th>\n",
       "      <th>AC004706.3_umich_acetylproteomics_K21</th>\n",
       "      <th>K102K105</th>\n",
       "      <th>K105</th>\n",
       "      <th>WIZ_umich_acetylproteomics_K16</th>\n",
       "      <th>WIZ_umich_acetylproteomics_K638</th>\n",
       "      <th>K228</th>\n",
       "      <th>K304</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Patient_ID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>C3L-00006</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.945484</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.290219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00008</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.420601</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.790586</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.147555</td>\n",
       "      <td>12.664316</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.236406</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00032</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.060923</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.952557</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.351192</td>\n",
       "      <td>21.437865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00084</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.336663</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.251376</td>\n",
       "      <td>14.506364</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>25.212475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C3L-00090</th>\n",
       "      <td>Endometrioid carcinoma</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.483674</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.116837</td>\n",
       "      <td>13.641868</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11.869961</td>\n",
       "      <td>NaN</td>\n",
       "      <td>21.68762</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX5.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>14.617941</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.496429</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.903885</td>\n",
       "      <td>11.666652</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.23143</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.490334</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX6.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>14.533201</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.618387</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.994645</td>\n",
       "      <td>12.320025</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.188642</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.308924</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX7.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>14.289658</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.657418</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.018219</td>\n",
       "      <td>12.048218</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.511215</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.759263</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX8.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.118452</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16.718777</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.582718</td>\n",
       "      <td>11.997747</td>\n",
       "      <td>NaN</td>\n",
       "      <td>24.135771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NX9.N</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12.792899</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15.237764</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11.802954</td>\n",
       "      <td>NaN</td>\n",
       "      <td>23.547796</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>160 rows × 11791 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "Name               histologic_type ARF5_umich_acetylproteomics_K109  \\\n",
       "Patient_ID                                                            \n",
       "C3L-00006   Endometrioid carcinoma                              NaN   \n",
       "C3L-00008   Endometrioid carcinoma                              NaN   \n",
       "C3L-00032   Endometrioid carcinoma                              NaN   \n",
       "C3L-00084   Endometrioid carcinoma                              NaN   \n",
       "C3L-00090   Endometrioid carcinoma                              NaN   \n",
       "...                            ...                              ...   \n",
       "NX5.N                          NaN                        14.617941   \n",
       "NX6.N                          NaN                        14.533201   \n",
       "NX7.N                          NaN                        14.289658   \n",
       "NX8.N                          NaN                              NaN   \n",
       "NX9.N                          NaN                              NaN   \n",
       "\n",
       "Name       FKBP4_umich_acetylproteomics_K181  \\\n",
       "Patient_ID                                     \n",
       "C3L-00006                                NaN   \n",
       "C3L-00008                          13.420601   \n",
       "C3L-00032                                NaN   \n",
       "C3L-00084                                NaN   \n",
       "C3L-00090                                NaN   \n",
       "...                                      ...   \n",
       "NX5.N                                    NaN   \n",
       "NX6.N                                    NaN   \n",
       "NX7.N                                    NaN   \n",
       "NX8.N                              13.118452   \n",
       "NX9.N                              12.792899   \n",
       "\n",
       "Name       FKBP4_umich_acetylproteomics_K213  \\\n",
       "Patient_ID                                     \n",
       "C3L-00006                                NaN   \n",
       "C3L-00008                                NaN   \n",
       "C3L-00032                          15.060923   \n",
       "C3L-00084                                NaN   \n",
       "C3L-00090                                NaN   \n",
       "...                                      ...   \n",
       "NX5.N                              15.496429   \n",
       "NX6.N                              15.618387   \n",
       "NX7.N                              15.657418   \n",
       "NX8.N                                    NaN   \n",
       "NX9.N                                    NaN   \n",
       "\n",
       "Name       FKBP4_umich_acetylproteomics_K234  \\\n",
       "Patient_ID                                     \n",
       "C3L-00006                                NaN   \n",
       "C3L-00008                                NaN   \n",
       "C3L-00032                                NaN   \n",
       "C3L-00084                                NaN   \n",
       "C3L-00090                                NaN   \n",
       "...                                      ...   \n",
       "NX5.N                                    NaN   \n",
       "NX6.N                                    NaN   \n",
       "NX7.N                                    NaN   \n",
       "NX8.N                                    NaN   \n",
       "NX9.N                                    NaN   \n",
       "\n",
       "Name       FKBP4_umich_acetylproteomics_K266  \\\n",
       "Patient_ID                                     \n",
       "C3L-00006                                NaN   \n",
       "C3L-00008                                NaN   \n",
       "C3L-00032                                NaN   \n",
       "C3L-00084                                NaN   \n",
       "C3L-00090                                NaN   \n",
       "...                                      ...   \n",
       "NX5.N                                    NaN   \n",
       "NX6.N                                    NaN   \n",
       "NX7.N                                    NaN   \n",
       "NX8.N                                    NaN   \n",
       "NX9.N                                    NaN   \n",
       "\n",
       "Name       FKBP4_umich_acetylproteomics_K294 FKBP4_umich_acetylproteomics_K35  \\\n",
       "Patient_ID                                                                      \n",
       "C3L-00006                                NaN                              NaN   \n",
       "C3L-00008                                NaN                              NaN   \n",
       "C3L-00032                                NaN                              NaN   \n",
       "C3L-00084                          12.336663                              NaN   \n",
       "C3L-00090                                NaN                              NaN   \n",
       "...                                      ...                              ...   \n",
       "NX5.N                              12.903885                        11.666652   \n",
       "NX6.N                              12.994645                        12.320025   \n",
       "NX7.N                              13.018219                        12.048218   \n",
       "NX8.N                                    NaN                              NaN   \n",
       "NX9.N                                    NaN                              NaN   \n",
       "\n",
       "Name       FKBP4_umich_acetylproteomics_K354 FKBP4_umich_acetylproteomics_K76  \\\n",
       "Patient_ID                                                                      \n",
       "C3L-00006                                NaN                              NaN   \n",
       "C3L-00008                                NaN                              NaN   \n",
       "C3L-00032                                NaN                              NaN   \n",
       "C3L-00084                                NaN                              NaN   \n",
       "C3L-00090                          16.483674                              NaN   \n",
       "...                                      ...                              ...   \n",
       "NX5.N                                    NaN                              NaN   \n",
       "NX6.N                                    NaN                              NaN   \n",
       "NX7.N                                    NaN                              NaN   \n",
       "NX8.N                                    NaN                              NaN   \n",
       "NX9.N                                    NaN                              NaN   \n",
       "\n",
       "Name        ... PDIA4_umich_acetylproteomics_K570  \\\n",
       "Patient_ID  ...                                     \n",
       "C3L-00006   ...                               NaN   \n",
       "C3L-00008   ...                               NaN   \n",
       "C3L-00032   ...                               NaN   \n",
       "C3L-00084   ...                               NaN   \n",
       "C3L-00090   ...                               NaN   \n",
       "...         ...                               ...   \n",
       "NX5.N       ...                               NaN   \n",
       "NX6.N       ...                               NaN   \n",
       "NX7.N       ...                               NaN   \n",
       "NX8.N       ...                               NaN   \n",
       "NX9.N       ...                               NaN   \n",
       "\n",
       "Name       PDIA4_umich_acetylproteomics_K611  \\\n",
       "Patient_ID                                     \n",
       "C3L-00006                                NaN   \n",
       "C3L-00008                                NaN   \n",
       "C3L-00032                                NaN   \n",
       "C3L-00084                                NaN   \n",
       "C3L-00090                                NaN   \n",
       "...                                      ...   \n",
       "NX5.N                                    NaN   \n",
       "NX6.N                                    NaN   \n",
       "NX7.N                                    NaN   \n",
       "NX8.N                                    NaN   \n",
       "NX9.N                                    NaN   \n",
       "\n",
       "Name       PDIA4_umich_acetylproteomics_K637  \\\n",
       "Patient_ID                                     \n",
       "C3L-00006                                NaN   \n",
       "C3L-00008                                NaN   \n",
       "C3L-00032                                NaN   \n",
       "C3L-00084                          12.251376   \n",
       "C3L-00090                                NaN   \n",
       "...                                      ...   \n",
       "NX5.N                                    NaN   \n",
       "NX6.N                                    NaN   \n",
       "NX7.N                                    NaN   \n",
       "NX8.N                                    NaN   \n",
       "NX9.N                                    NaN   \n",
       "\n",
       "Name       AC004706.3_umich_acetylproteomics_K21   K102K105 K105  \\\n",
       "Patient_ID                                                         \n",
       "C3L-00006                              15.945484        NaN  NaN   \n",
       "C3L-00008                              16.790586        NaN  NaN   \n",
       "C3L-00032                              15.952557        NaN  NaN   \n",
       "C3L-00084                              14.506364        NaN  NaN   \n",
       "C3L-00090                              16.116837  13.641868  NaN   \n",
       "...                                          ...        ...  ...   \n",
       "NX5.N                                   17.23143        NaN  NaN   \n",
       "NX6.N                                  17.188642        NaN  NaN   \n",
       "NX7.N                                  17.511215        NaN  NaN   \n",
       "NX8.N                                  16.718777        NaN  NaN   \n",
       "NX9.N                                  15.237764        NaN  NaN   \n",
       "\n",
       "Name       WIZ_umich_acetylproteomics_K16 WIZ_umich_acetylproteomics_K638  \\\n",
       "Patient_ID                                                                  \n",
       "C3L-00006                             NaN                             NaN   \n",
       "C3L-00008                       14.147555                       12.664316   \n",
       "C3L-00032                             NaN                             NaN   \n",
       "C3L-00084                             NaN                             NaN   \n",
       "C3L-00090                             NaN                       11.869961   \n",
       "...                                   ...                             ...   \n",
       "NX5.N                                 NaN                             NaN   \n",
       "NX6.N                                 NaN                             NaN   \n",
       "NX7.N                                 NaN                             NaN   \n",
       "NX8.N                           12.582718                       11.997747   \n",
       "NX9.N                                 NaN                       11.802954   \n",
       "\n",
       "Name             K228       K304  \n",
       "Patient_ID                        \n",
       "C3L-00006         NaN  22.290219  \n",
       "C3L-00008         NaN  22.236406  \n",
       "C3L-00032   14.351192  21.437865  \n",
       "C3L-00084         NaN  25.212475  \n",
       "C3L-00090         NaN   21.68762  \n",
       "...               ...        ...  \n",
       "NX5.N             NaN  23.490334  \n",
       "NX6.N             NaN  23.308924  \n",
       "NX7.N             NaN  23.759263  \n",
       "NX8.N             NaN  24.135771  \n",
       "NX9.N             NaN  23.547796  \n",
       "\n",
       "[160 rows x 11791 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Use the cptac.utils.reduce_multiindex function to combine the multiple column levels\n",
    "clinical_and_acetylation = ut.reduce_multiindex(clinical_and_acetylation, levels_to_drop=\"Peptide\")\n",
    "clinical_and_acetylation = ut.reduce_multiindex(clinical_and_acetylation, flatten=True)\n",
    "\n",
    "clinical_and_acetylation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Step 4: Format Dataframe to Compare Acetylproteomic Sites Between Histologic Types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Endometrioid carcinoma', 'Serous carcinoma',\n",
       "       'Clear cell carcinoma', 'Mixed cell adenocarcinoma', nan],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clinical_attribute = \"histologic_type\"\n",
    "#Show possible variations of histologic_type\n",
    "clinical_and_acetylation[clinical_attribute].unique()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this step, we will make two different dataframes for \"Endometrioid\" and \"Serous\" cancer types, as well as fill the NaN columns with \"Non-Tumor.\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Make dataframes with only endometrioid and only serous data in order to compare \n",
    "endom = clinical_and_acetylation.loc[clinical_and_acetylation[clinical_attribute] == \"Endometrioid carcinoma\"]\n",
    "serous = clinical_and_acetylation.loc[clinical_and_acetylation[clinical_attribute] == \"Serous carcinoma\"]\n",
    "#Here is where we set the NaN values to \"Non_Tumor\"\n",
    "clinical_and_acetylation[[clinical_attribute]] = clinical_and_acetylation[[clinical_attribute]].fillna(\n",
    "    value=\"Non_Tumor\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that we have our different dataframes, we want to make sure that the amount of data we are using for each site is significant. Since there are fewer patients with \"serous\" tumors than with \"endometrioid,\" we will check to make sure that we have at least five values for each acetylation site that we are comparing that have a measurement of intensity for serous patients. We will remove every acetylation site from our dataframe that doesn't have at least five values among the serous patients."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total Sites:  11790\n",
      "Removed:  5442\n",
      "Remaining Sites:  6348\n",
      "Adjusted p-value cutoff will be:  7.876496534341525e-06\n"
     ]
    }
   ],
   "source": [
    "#Remove every column that doesn't have at least 5 values among the serous patients\n",
    "print(\"Total Sites: \", len(serous.columns) - 1)\n",
    "sites_to_remove = []\n",
    "for num in range(1, len(serous.columns)):\n",
    "    serous_site = serous.columns[num]\n",
    "    one_site = serous[serous_site]\n",
    "    num_datapoints_ser = one_site.count()\n",
    "    if num_datapoints_ser.mean() < 5:\n",
    "        sites_to_remove.append(serous_site)\n",
    "\n",
    "clinical_and_acetylation = clinical_and_acetylation.drop(sites_to_remove, axis = 1)\n",
    "\n",
    "#Also remove non-tumor patients from our dataframe to use in comparison, as we want to compare only endometrioid and serous types\n",
    "clinical_and_acetylation_comparison = clinical_and_acetylation.loc[clinical_and_acetylation['histologic_type'] != 'Non_Tumor']\n",
    "clinical_and_acetylation_comparison = clinical_and_acetylation_comparison.loc[clinical_and_acetylation_comparison['histologic_type'] != 'Mixed cell adenocarcinoma']\n",
    "clinical_and_acetylation_comparison = clinical_and_acetylation_comparison.loc[clinical_and_acetylation_comparison['histologic_type'] != 'Clear cell carcinoma']\n",
    "\n",
    "\n",
    "print(\"Removed: \", len(sites_to_remove))\n",
    "print(\"Remaining Sites: \", len(clinical_and_acetylation_comparison.columns) - 1)\n",
    "print(\"Adjusted p-value cutoff will be: \", .05/(len(clinical_and_acetylation_comparison.columns)-1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Step 5: Compare Endometrioid and Serous Values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will now call the wrap_ttest method, which will loop through the data and compare endometrioid versus serous data for each acetylation site. If we find a site that is significantly different, we will add it to a dataframe, with its p-value. The default alpha used is .05, which will be adjusted to account for multiple testing using a bonferroni correction, dividing alpha by the number of comparisons that will occur (the number of comparison columns)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Comparison</th>\n",
       "      <th>P_Value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>PCBP1_umich_acetylproteomics_K31</td>\n",
       "      <td>0.000398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>FOXA2_umich_acetylproteomics_K274</td>\n",
       "      <td>0.000951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>TBL1XR1_umich_acetylproteomics_K102</td>\n",
       "      <td>0.001964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>CNBP_umich_acetylproteomics_K85</td>\n",
       "      <td>0.004430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>JADE3_umich_acetylproteomics_K735</td>\n",
       "      <td>0.007308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>EYA2_umich_acetylproteomics_K248</td>\n",
       "      <td>0.009880</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>RAB1A_umich_acetylproteomics_K131</td>\n",
       "      <td>0.012228</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>DYNC1H1_umich_acetylproteomics_K1649</td>\n",
       "      <td>0.014876</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>VDAC1_umich_acetylproteomics_K224</td>\n",
       "      <td>0.022864</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             Comparison   P_Value\n",
       "0      PCBP1_umich_acetylproteomics_K31  0.000398\n",
       "1     FOXA2_umich_acetylproteomics_K274  0.000951\n",
       "2   TBL1XR1_umich_acetylproteomics_K102  0.001964\n",
       "3       CNBP_umich_acetylproteomics_K85  0.004430\n",
       "4     JADE3_umich_acetylproteomics_K735  0.007308\n",
       "5      EYA2_umich_acetylproteomics_K248  0.009880\n",
       "6     RAB1A_umich_acetylproteomics_K131  0.012228\n",
       "7  DYNC1H1_umich_acetylproteomics_K1649  0.014876\n",
       "8     VDAC1_umich_acetylproteomics_K224  0.022864"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Make list of all remaining sites in dataframe to pass to wrap_ttest function\n",
    "columns_to_compare = list(clinical_and_acetylation_comparison.columns)\n",
    "\n",
    "#Remove the \"Histologic_type\" column (at index 0) from this list\n",
    "columns_to_compare = columns_to_compare[1:]\n",
    "# print(columns_to_compare)\n",
    "\n",
    "clinical_and_acetylation_comparison = clinical_and_acetylation_comparison.loc[:,~clinical_and_acetylation_comparison.columns.duplicated()]\n",
    "#Perform ttest on each column in dataframe\n",
    "significant_sites_df = ut.wrap_ttest(df=clinical_and_acetylation_comparison, label_column=\"histologic_type\", comparison_columns=columns_to_compare)\n",
    "\n",
    "#List significant results\n",
    "significant_sites_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Step 6: Graph Results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now that we have eight acetylation sites that differ significantly between endometrioid and serous intensities, we will graph a couple of them using a boxplot and a stripplot in order to visually see the difference, as well as compare with normal cells. First we'll remove some extreme outliers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define a function to calculate IQR and lower and upper bounds for extreme outliers\n",
    "def calculate_iqr_and_bounds_extreme(data):\n",
    "    Q1 = data.quantile(0.25)\n",
    "    Q3 = data.quantile(0.75)\n",
    "    IQR = Q3 - Q1\n",
    "\n",
    "    # Define bounds for extreme outliers\n",
    "    lower_bound = Q1 - 3.0 * IQR\n",
    "    upper_bound = Q3 + 3.0 * IQR\n",
    "\n",
    "    return lower_bound, upper_bound"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we will visualize the data while considering extreme outliers. Extreme outliers are calculated by expanding the IQR range to 3 times instead of the usual 1.5 times."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TtestResult(statistic=5.653510545875068, pvalue=1.520752350373057e-07, df=99.0)\n"
     ]
    },
    {
     "data": {
      "image/png": "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CNC7PfDAA7V+fHBwMLZs2YLt27cjIiIC77//PpYtW6Z3TH29P7p27Yrvv/8e586dw4MPPoju3bvjtddeQ2BgoO6YxYsX48KFC2jbtq3ZNTKWL1+O0aNH48knn0SPHj1w/vx5JCcnm6y1FBUVhY8++girVq1CREQEUlJS8Morr1R7DRcXF6SkpMDPzw9Dhw5Fly5dsHz5cl1CvnLlSvj4+KB379549NFHMXjwYPTo0aPG2MPDw5GSkoL09HTcd9996NWrF3bs2AFnZ8t69N3c3JCcnIybN28iMjISY8aMwcCBA7F69WqLzqc1bNgw/POf/8TMmTPRrVs3HD58GK+++mqdzmmMh4cH7r//frzzzjvo27cvOnfujFdffRVTp07VPQdJkrBr1y707dsXTz31FMLDw/HYY4/h4sWL1SZskiRhx44d8PHxQd++ffHQQw+hTZs22LRpk+6YwYMH49VXX8WLL76IyMhIFBQUYMKECbr9Xl5eOHDgAIYOHYrw8HC88sorWLFiBR555BGj12zevDm+++47FBYWIjo6Gj179sRHH32k65pZt24dcnNz0aNHDzz55JO6EgM16devH5KSkrBz505069YNAwYMMGh5Ncfdd9+NXbt24aeffkJERASee+45TJkypca/i5o8++yzGDVqFMaNG4f7778ff/75J6ZPn16nc1oLV80mIiIih8aWGSIiInJoTGaasGXLlulNhax8M9XMSkREZG/YzdSE3bx50+RsDldXV9x9990NHBEREZH5mMwQERGRQ2M3ExERETk0JjNERETk0JjMEBERkUNjMkNEREQOjckMURPUr18/zJkzx+R+SZKwffv2eo2hPq5R0/MiosaJq2YTkYGcnByTywdUJUkStm3bhhEjRtRvULWwdetWg5WALbF//370798fubm5eis3E5F9YjJDRAZatmxp6xAs4uvra+sQiMgG2M1E1ERVVFTgxRdfhK+vL1q2bIlFixbp9lXuArp9+zZmzpyJgIAAKJVKhISEID4+HsCd1bEBYOTIkZAkSXcfANauXYu2bdvCxcUF7du3x2effVZtPCdOnMCAAQPg6uqK5s2b45lnnkFhYaFuf3l5OWbPno1mzZqhefPmmD9/PiZOnKjXIlS1m0mtVmP+/PkICgqCQqFAu3btsG7dumrjuHDhAvr37w8A8PHxgSRJmDRpEj799FM0b94carVa7/gRI0bgySefBAAsWrQI3bp1wwcffICgoCC4ublh7NixyMvL03vMxx9/jI4dO0KpVKJDhw7497//XW1MRFQDQURNTnR0tPDy8hKLFi0S586dExs2bBCSJImUlBQhhBAAxLZt24QQQrz99tsiKChIHDhwQFy4cEEcPHhQfPHFF0IIIa5fvy4AiPXr14ucnBxx/fp1IYQQW7duFXK5XKxZs0acPXtWrFixQshkMvHdd9/pYqh8jcLCQhEQECBGjRolTpw4Ifbu3StCQ0PFxIkTdce/8cYbwtfXV2zdulWcPn1aPPfcc8LLy0sMHz5c73k9//zzuvtjx44VQUFBYuvWrSIzM1N8++23YuPGjdW+NuXl5WLLli0CgDh79qzIyckRt27dEsXFxcLb21t89dVXumOvXbsmnJ2ddc9r4cKFwt3dXQwYMED88ssv4vvvvxft2rUTjz/+uO4xn3/+uQgICBBbtmwRv/32m9iyZYvw9fUViYmJtfvlEZEBJjNETVB0dLR44IEH9LZFRkaK+fPnCyH0E41Zs2aJAQMGiIqKCqPnqnysVu/evcXUqVP1tsXExIihQ4cafdyHH34ofHx8RGFhoW7///73P+Hk5CSuXr0qhBDC399fvP3227r95eXlIjg42GQyc/bsWQFA7Nmzp/oXw4h9+/YJACI3N1dv+7Rp08Qjjzyiu79ixQrRpk0b3WuzcOFCIZPJxOXLl3XHfPPNN8LJyUnk5OQIIYRo27atLhnUWrJkiejVq5fZcRLRHexmImqiunbtqnc/ICAA169fNzhu0qRJSEtLQ/v27TF79mykpKTUeO7Tp0+jT58+etv69OmD06dPmzw+IiIC7u7uesdXVFTg7NmzyMvLw7Vr13Dffffp9stkMvTs2dNkDGlpaZDJZIiOjq4x3tqaOnUqUlJS8PvvvwMAEhMTMWnSJEiSpDsmODhYb12zXr166Z5HUVERMjMzMWXKFL2FXd944w1kZmZaLU6ipoYDgImaqKqzfiRJQkVFhcFxPXr0QFZWFr755ht8++23GDt2LB566CFs3ry5oUK1iKurq9XP2b17d0RERODTTz/FoEGD8Ouvv+J///tfrR+vHQP00Ucf4f7779fbJ5PJrBorUVPClhkiqpGXlxfGjRuHjz76CJs2bcKWLVt0K67L5XJoNBq94zt27IhDhw7pbTt06BA6depk9PwdO3ZEeno6ioqK9I53cnJC+/bt4e3tDX9/f6Smpur2azQaHDt2zGTMXbp0QUVFBb7//nuzn6+Li4vuGlU9/fTTSExMxPr16/HQQw8hKChIb392djauXLmiu69SqXTPw9/fH4GBgfjtt9/Qrl07vVtoaKjZcRLRHUxmiKhaK1euxJdffokzZ87g3LlzSEpKQsuWLXX1V1q3bo29e/fi6tWryM3NBQC88MILSExMxNq1a5GRkYGVK1di69atmDdvntFrPPHEE1AqlZg4cSJOnjyJffv2YdasWXjyySfh7+8PAJg1axbi4+OxY8cOnD17Fs8//zxyc3P1ungqa926NSZOnIjJkydj+/btyMrKwv79+/HVV1/V+JxDQkIgSRK+/vpr3LhxQ29W1eOPP47Lly/jo48+wuTJkw0eq30e6enpOHjwIGbPno2xY8fqpru//vrriI+Px7vvvotz587hxIkTWL9+PVauXFljXERkHJMZIqqWp6cn3nrrLdx7772IjIzEhQsXsGvXLjg53fn4WLFiBfbs2YOgoCB0794dwJ3pyqtWrUJCQgLuuecefPDBB1i/fj369etn9Bpubm5ITk7GzZs3ERkZiTFjxmDgwIFYvXq17pj58+dj/PjxmDBhAnr16gUPDw8MHjwYSqXSZOxr167FmDFjMH36dHTo0AFTp07Va/0x5e6778brr7+Ol156Cf7+/pg5c6Zun7e3N0aPHg0PDw+jhQLbtWuHUaNGYejQoRg0aBC6du2qN/X66aefxscff4z169ejS5cuiI6ORmJiIltmiOpAEkIIWwdBRGSuiooKdOzYEWPHjsWSJUsa9NoDBw7EPffcg3fffVdv+6JFi7B9+3akpaU1aDxETR0HABORQ7h48SJSUlIQHR0NtVqN1atXIysrC48//niDxZCbm4v9+/dj//79LHRHZEfYzUREDsHJyQmJiYmIjIxEnz59cOLECXz77bfo2LGj2ed67rnn9KZGV74999xzJh/XvXt3TJo0CW+++Sbat29fl6dDRFbEbiYianKuX7+O/Px8o/u8vLzg5+fXwBERUV0wmSEiIiKHxm4mIiIicmhMZoiIiMihMZkhIiIih8ZkhoiIiBwakxkiIiJyaExmiIiIyKExmSEiIiKHxmSGiIiIHNr/ATaxbOAioyKxAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TtestResult(statistic=-5.487492982044729, pvalue=3.1403534632193126e-07, df=99.0)\n"
     ]
    },
    {
     "data": {
      "image/png": "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tjolEdVTarUaCQkJdXKt+fPnIzU11WR727ZtDe83KpXK4V08ju7mImrMrO5mqk5ycjK6d++O0tJSW5zOZtjNROTctFotYmNjUfGtSpIkxMTEICIiwoGREZE9yfn8trpl5sSJE1XuP3funLWnIiKyWkREBGJiYrB582akpaUhODgYkZGRTGSIyMDqlhkXFxdIkgRzh+u3S5LElhkiIiKqNbu0zPj5+eHtt9/GoEGDzO7/7bff8Oijj8qLlIiIiKiWrE5mevTogWvXriEkJMTs/qysLLOtNkRERET2ZHUyM23aNOTl5VncHxwcjLi4OJsERURERGQtm81mqq84ZoaIiMj52KVoXnV+//13DBkyxFanIyIiIrKKzZKZ27dvY8+ePbY6HREREZFVbJbMEBERETkCkxkiIiJyakxmiIiIyKlZPTW7W7duVS7klp+fb5OAiIiIiOSwOpkZNWqUHcMgIiIiqhnWmSEiIqJ6p07rzBQXFyM3N7e2pyEiIiKqEVnJTFxcHGbOnIl//etfAICYmBh4e3tDo9HgwQcfxF9//WWXIImIiIgssTqZWbJkCaZPn46zZ89i1qxZeO655xAfH49FixZh2bJlOHv2LF577TV7xkpERERkwuoBwPHx8fj4448xYcIEHDlyBD179sQ333yDsWPHAgA6d+6MadOm2S1QIiIiInOsbplJS0vD/fffDwC499574erqis6dOxv2d+3aFenp6baPkIiIiKgKViczOp0OKpXKcN/NzQ1KpdJw39XVFaWlpbaNjoiIiKgaVnczAcDp06dx/fp1AIAQAmfPnjXMZPrzzz9tHx0RERFRNayuM+Pi4gJJkmDucP12SZLqXesM68wQERE5Hzmf31a3zFy8eLHWgRERERHZmtXJzKeffoq5c+fCw8PDnvEQERERyWL1AOCFCxey0i8RERHVO1YnMw18CSciIiJyUrKWM5AkyV5xEBEREdWIrKnZoaGh1SY0GRkZtQqIiIiISA5ZyczChQuh0WhsdvEDBw7gnXfewdGjR5Geno5t27Zh1KhRhv25ubl45ZVXsH37dvz1119o3bo1Zs2axWUTiIiIyEBWMvPYY4/B39/fZhfPy8tDWFgYpkyZgjFjxpjsnzNnDn744Qd88cUXaNWqFRITE/H888+jefPmGDFihM3iICIiIudldTJjj/EyDz30EB566CGL+3/66SdMmjQJ/fv3BwA8++yzWL9+PX755RcmM0RERASgns9m6t27N3bu3Ik//vgDQgjs3bsX58+fx5AhQyw+pqioCDk5OUY3IiIiarisTmbKysps2sVkjffeew+dOnVCixYt4ObmhmHDhmHt2rXo27evxcfExsZCo9EYbi1btqzDiImIiKiuyZqaXdfee+89aLVa7Ny5E0ePHsXKlSsxffp0fP/99xYfExMTg+zsbMPtypUrdRgxERER1TVZA4DrUkFBAebPn49t27bh4YcfBgB07doVx48fx4oVKzB48GCzj1OpVFCpVHUZKhERETlQvW2Z0el00Ol0cHExDlGhUKCsrMxBUREREVF949CWmdzcXFy4cMFw/+LFizh+/Dj8/PwQHByMfv36Yd68eXB3d0dISAj279+Pzz77DKtWrXJg1ERERFSfSMKBiy7t27cPAwYMMNk+adIkxMfH4/r164iJiUFiYiIyMjIQEhKCZ599Fi+++KLVU8VzcnKg0WiQnZ0NHx8fW/8IREREZAdyPr8dmszUBSYzREREzkfO53e9HTNDREREZA0mM0REROTUmMwQERGRU2MyQ0RERE6NyQwRERE5NSYzRERE5NSYzBAREZFTYzJDRERETo3JDBERETk1JjNERETk1JjMEBERkVNjMkNEREROjckMEREROTUmM0REROTUmMwQERGRU2MyQ0RERE7N1dEBEBHVllarxaZNm5CWlobg4GBERUUhIiLC0WERUR1hywwROTWtVoulS5ciJSUFRUVFSElJQWxsLLRaraNDI6I6wmSGiJzapk2bTLYJIbB582YHRENEjsBkhoicWlpamqztRNTwMJkhIqcWHBwsazsRNTxMZojIqUVFRUGSJKNtkiQhMjLSQRERUV1jMkNETi0iIgIxMTEIDQ2FWq1GaGgoYmJiOJuJqBHh1GwicnoRERFMXogaMbbMEBERkVNjMkNEREROjckMEREROTUmM0REROTUmMwQERGRU2MyQ0RERE6NyQwRERE5NSYzRERE5NSYzBAREZFTYzJDRERETo3JDBERETm1Br82kxACAJCTk+PgSIiIiMha+s9t/ed4VRp8MnP79m0AQMuWLR0cCREREcl1+/ZtaDSaKo+RhDUpjxMrKyvDtWvX4O3tDUmSHB2OU8vJyUHLli1x5coV+Pj4ODocIr4mqV7i69I2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OBH9+vUzdOMMHDgQR44cwWeffYaUlBQsWLAAp06dMpzj559/xtKlS3HkyBGkpaVh69atuHXrFjp27Gj2mjNmzEBOTg4ee+wxHDlyBCkpKfj8888NXX7t2rXD559/jjNnzuDnn3/GE088YVWry4IFC/DVV19hwYIFOHPmDE6ePInly5db/TxX9vzzz+PKlSuYOXMmzp49ix07dmDBggWYM2eOUXekXO3atcORI0eQkJCA8+fP4/XXXzeaaehITGacyKJFi4zeULt3745vvvkGX3/9NTp37ow33ngDixYtqlFXlFwxMTHo168fHnnkETz88MMYNWoU2rRpU+vzjho1CqtXr8aKFStw9913Y/369YiLizOaStkQ7N69G0FBQUa3+++/3+rHBwcHY8uWLdi+fTvCwsLwwQcfYOnSpUbH2Ov10bVrV+zfvx/nz5/HAw88gG7duuGNN95A8+bNDccsWrQIly5dQps2bWTXyFi2bBnGjh2LJ598Et27d8eFCxeQkJBgsdZSREQENmzYgNWrVyMsLAyJiYl47bXXqryGm5sbEhMT4e/vj+HDh6NLly5YtmyZISFftWoVfH190bt3bzz66KMYOnQounfvXm3soaGhSExMRHJyMu677z706tULO3bsgKtrzXr0PTw8kJCQgIyMDISHhyMyMhKDBg3C+++/X6Pz6Y0YMQIvvvgiZsyYgXvuuQc//fQTXn/99Vqd0xwvLy/07NkT7777Lvr27YvOnTvj9ddfxzPPPGP4GSRJwrfffou+ffviqaeeQmhoKB577DFcvny5yoRNkiTs2LEDvr6+6Nu3LwYPHoy77roLGzduNBwzdOhQvP7663jppZcQHh6O27dvY+LEiYb9Pj4+OHDgAIYPH47Q0FC89tprWLlyJR566CGz12zatCl++OEH5Obmol+/fujRowc2bNhg6Jr5+OOPkZmZie7du+PJJ580lBioTv/+/bFp0ybs3LkT99xzDwYOHGjS8irHnXfeiW+//Ra//PILwsLCMG3aNEydOrXav4vq/OMf/8CYMWMwfvx49OzZE3/99Reef/75Wp3TViRRuUORiIiIyImwZYaIiIicGpOZRmzp0qVGUyEr3iw1sxIREdU37GZqxDIyMizO5nB3d8edd95ZxxERERHJx2SGiIiInBq7mYiIiMipMZkhIiIip8ZkhoiIiJwakxmiRqh///6YPXu2xf2SJGH79u12jcEe16ju5yKihokLTRKRifT0dIsVdyuTJAnbtm3DqFGj7BuUFbZu3WpxRWM59u3bhwEDBiAzM9NosUMiqp+YzBCRicDAQEeHUCN+fn6ODoGIHIDdTESNVFlZGV566SX4+fkhMDAQb775pmFfxS6g4uJizJgxA0FBQVCr1QgJCUFsbCyA8gUlAWD06NGQJMlwHwDWrVtnWAW7ffv2+Pzzz6uM5+TJkxg4cCDc3d3RtGlTPPvss8jNzTXsLykpwaxZs9CkSRM0bdoUL7/8MiZNmmTUIlS5m6moqAgvv/wyWrZsCZVKhbZt2+Ljjz+uMo5Lly5hwIABAABfX19IkoTJkyfjs88+Q9OmTVFUVGR0/KhRo/Dkk08CAN58803cc889WL9+PVq2bAkPDw+MGzcO2dnZRo/56KOP0LFjR6jVanTo0AH//Oc/q4yJiKohiKjR6devn/Dx8RFvvvmmOH/+vPj000+FJEkiMTFRCCEEALFt2zYhhBDvvPOOaNmypThw4IC4dOmSOHjwoPjyyy+FEELcvHlTABBxcXEiPT1d3Lx5UwghxNatW4VSqRRr164V586dEytXrhQKhUL88MMPhhgqXiM3N1cEBQWJMWPGiJMnT4o9e/aI1q1bi0mTJhmOf+utt4Sfn5/YunWrOHPmjJg2bZrw8fERI0eONPq5XnjhBcP9cePGiZYtW4qtW7eK1NRU8f3334uvv/66yuempKREbNmyRQAQ586dE+np6SIrK0vk5+cLjUYjvvnmG8OxN27cEK6uroafa8GCBcLT01MMHDhQ/Prrr2L//v2ibdu24vHHHzc85osvvhBBQUFiy5Yt4vfffxdbtmwRfn5+Ij4+3rpfHhGZYDJD1Aj169dP3H///UbbwsPDxcsvvyyEME40Zs6cKQYOHCjKysrMnqvisXq9e/cWzzzzjNG2qKgoMXz4cLOP+/DDD4Wvr6/Izc017P/Pf/4jXFxcxPXr14UQQgQEBIh33nnHsL+kpEQEBwdbTGbOnTsnAIjvvvuu6ifDjL179woAIjMz02j7c889Jx566CHD/ZUrV4q77rrL8NwsWLBAKBQKcfXqVcMx//3vf4WLi4tIT08XQgjRpk0bQzKot3jxYtGrVy/ZcRJROXYzETVSXbt2NbofFBSEmzdvmhw3efJkHD9+HO3bt8esWbOQmJhY7bnPnDmDPn36GG3r06cPzpw5Y/H4sLAweHp6Gh1fVlaGc+fOITs7Gzdu3MB9991n2K9QKNCjRw+LMRw/fhwKhQL9+vWrNl5rPfPMM0hMTMQff/wBAIiPj8fkyZMhSZLhmODgYKOlQHr16mX4OfLy8pCamoqpU6carYX21ltvITU11WZxEjU2HABM1EhVnvUjSRLKyspMjuvevTsuXryI//73v/j+++8xbtw4DB48GJs3b66rUGvE3d3d5ufs1q0bwsLC8Nlnn2HIkCH47bff8J///Mfqx+vHAG3YsAE9e/Y02qdQKGwaK1FjwpYZIqqWj48Pxo8fjw0bNmDjxo3YsmWLYZFSpVKJ0tJSo+M7duyIQ4cOGW07dOgQOnXqZPb8HTt2RHJyMvLy8oyOd3FxQfv27aHRaBAQEICkpCTD/tLSUhw7dsxizF26dEFZWRn2798v++d1c3MzXKOyp59+GvHx8YiLi8PgwYPRsmVLo/1paWm4du2a4b5WqzX8HAEBAWjevDl+//13tG3b1ujWunVr2XESUTkmM0RUpVWrVuGrr77C2bNncf78eWzatAmBgYGG+iutWrXCnj17cP36dWRmZgIA5s2bh/j4eKxbtw4pKSlYtWoVtm7dirlz55q9xhNPPAG1Wo1Jkybh1KlT2Lt3L2bOnIknn3wSAQEBAICZM2ciNjYWO3bswLlz5/DCCy8gMzPTqIunolatWmHSpEmYMmUKtm/fjosXL2Lfvn345ptvqv2ZQ0JCIEkSdu3ahVu3bhnNqnr88cdx9epVbNiwAVOmTDF5rP7nSE5OxsGDBzFr1iyMGzfOMN194cKFiI2NxZo1a3D+/HmcPHkScXFxWLVqVbVxEZF5TGaIqEre3t54++23ce+99yI8PByXLl3Ct99+CxeX8rePlStX4rvvvkPLli3RrVs3AOXTlVevXo0VK1bg7rvvxvr16xEXF4f+/fubvYaHhwcSEhKQkZGB8PBwREZGYtCgQXj//fcNx7z88suYMGECJk6ciF69esHLywtDhw6FWq22GPu6desQGRmJ559/Hh06dMAzzzxj1PpjyZ133omFCxfilVdeQUBAAGbMmGHYp9FoMHbsWHh5eZktFNi2bVuMGTMGw4cPx5AhQ9C1a1ejqddPP/00PvroI8TFxaFLly7o168f4uPj2TJDVAuSEEI4OggiIrnKysrQsWNHjBs3DosXL67Taw8aNAh333031qxZY7T9zTffxPbt23H8+PE6jYeoseMAYCJyCpcvX0ZiYiL69euHoqIivP/++7h48SIef/zxOoshMzMT+/btw759+1jojqgeYTcTETkFFxcXxMfHIzw8HH369MHJkyfx/fffo2PHjrLPNW3aNKOp0RVv06ZNs/i4bt26YfLkyVi+fDnat29fmx+HiGyI3UxE1OjcvHkTOTk5Zvf5+PjA39+/jiMiotpgMkNEREROjd1MRERE5NSYzBAREZFTYzJDRERETo3JDBERETk1JjNERETk1JjMEBERkVNjMkNEREROjckMERERObX/Dy1iSF0uVDJlAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now we will visualize the data while considering extreme outliers.\n",
    "# Extreme outliers are calculated by expanding the IQR range to 3 times instead of the usual 1.5 times.\n",
    "for site in ['FOXA2_umich_acetylproteomics_K274', 'TBL1XR1_umich_acetylproteomics_K102']:\n",
    "    # Convert to numeric and drop NA\n",
    "    clinical_and_acetylation[site] = pd.to_numeric(clinical_and_acetylation[site], errors='coerce')\n",
    "\n",
    "    # Calculate lower and upper bounds for the specific column\n",
    "    lower_bound, upper_bound = calculate_iqr_and_bounds_extreme(clinical_and_acetylation[site])\n",
    "\n",
    "    # Create a new dataframe without extreme outliers\n",
    "    clinical_and_acetylation_no_extreme_outliers = clinical_and_acetylation[(clinical_and_acetylation[site] >= lower_bound) & \n",
    "                                                                            (clinical_and_acetylation[site] <= upper_bound)]\n",
    "    \n",
    "    # Convert data to list format to make it compatible with t-test\n",
    "    endomList = endom[site].tolist()\n",
    "    serousList = serous[site].tolist()\n",
    "    \n",
    "    # Perform t-test and print results\n",
    "    print(scipy.stats.ttest_ind(endomList, serousList))\n",
    "\n",
    "    # Create boxplot and stripplot\n",
    "    sns.boxplot(x=clinical_attribute, y=site, data=clinical_and_acetylation_no_extreme_outliers, showfliers=False, \n",
    "                order=[\"Non_Tumor\", \"Endometrioid carcinoma\", \"Serous carcinoma\"])\n",
    "    sns.stripplot(x=clinical_attribute, y=site, data=clinical_and_acetylation_no_extreme_outliers, color='.3', \n",
    "                  order=[\"Non_Tumor\", \"Endometrioid carcinoma\", \"Serous carcinoma\"])\n",
    "    plt.show()"
   ]
  }
 ],
 "metadata": {
  "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.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}