Skip to content
Snippets Groups Projects
MachineLearning_inMolecularBiology2022_GroupProject.ipynb 865 KiB
Newer Older
jpronkko's avatar
jpronkko committed
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Project Tasks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the first few assignments, we have learned how to infer part based components (known as mutational signatures) generated by particular mutational processes using Non-negative Matrix Factorization (NMF). By doing this, we are trying to reconstruct the mutation catalog in a given sample with mutational signatures and their contributions.\n",
    "\n",
    "In this group project, you will use similar mutational profiles and signature activities to predict cancer types but with much larger sample size. \n",
    "You should:\n",
    "* Separate the data into training and test groups within each cancer type.\n",
    "* Find out which features are informative for the prediction of the cancer type (label). You should combine the profiles and activities and use each data type independently.\n",
    "* Implement different models for classification of the samples given the input data and evaluate the model performance using test data to avoid overfitting. Explain briefly how does each model that you have used work.\n",
    "* Report model performance, using standard machine learning metrics such as confusion matrices etc. \n",
    "* Compare model performance across methods and across cancer types, are some types easier top predict than others.\n",
    "* Submit a single Jupyter notebook as the final report and present that during the last assignment session "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The data include both mutational catalogs from multiple cancers and the predicted activities in the paper [\"Alexandrov LB, et al. (2020) The repertoire of mutational signatures in human cancer\"](https://www.nature.com/articles/s41586-020-1943-3). The data either are generated from whole human genome (WGS) or only exomes regions (WES). Since the exome region only constitutes about 1% of human genome, the total mutation numbers in these samples are, of course, much smaller. So if you plan to use WGS together with WES data, remember to normalize the profile for each sample to sum up to 1.\n",
    "\n",
    "Note that, the data is generated from different platforms by different research groups, some of them (e.g. labeled with PCAWG, TCGA) are processed with the same bioinformatics pipeline. Thus, these samples will have less variability related to data processing pipelines."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Cancer types might be labeled under the same tissue, e.g. 'Bone-Benign','Bone-Epith', which can also be combined together or take the one has more samples."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here is a link to background reading [\"Pan-Cancer Analysis of Whole Genomes\"](https://www.nature.com/collections/afdejfafdb). Have a look especially the paper [\"A deep learning system accurately classifies primary and metastatic cancers using passenger mutation patterns\"](https://www.nature.com/articles/s41467-019-13825-8)."
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import re"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mutational catalogs and activities - WGS data"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Mutation type</th>\n",
       "      <th>Trinucleotide</th>\n",
       "      <th>Biliary-AdenoCA::SP117655</th>\n",
       "      <th>Biliary-AdenoCA::SP117556</th>\n",
       "      <th>Biliary-AdenoCA::SP117627</th>\n",
       "      <th>Biliary-AdenoCA::SP117775</th>\n",
       "      <th>Biliary-AdenoCA::SP117332</th>\n",
       "      <th>Biliary-AdenoCA::SP117712</th>\n",
       "      <th>Biliary-AdenoCA::SP117017</th>\n",
       "      <th>Biliary-AdenoCA::SP117031</th>\n",
       "      <th>...</th>\n",
       "      <th>Uterus-AdenoCA::SP94540</th>\n",
       "      <th>Uterus-AdenoCA::SP95222</th>\n",
       "      <th>Uterus-AdenoCA::SP89389</th>\n",
       "      <th>Uterus-AdenoCA::SP90503</th>\n",
       "      <th>Uterus-AdenoCA::SP92460</th>\n",
       "      <th>Uterus-AdenoCA::SP92931</th>\n",
       "      <th>Uterus-AdenoCA::SP91265</th>\n",
       "      <th>Uterus-AdenoCA::SP89909</th>\n",
       "      <th>Uterus-AdenoCA::SP90629</th>\n",
       "      <th>Uterus-AdenoCA::SP95550</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACA</td>\n",
       "      <td>269</td>\n",
       "      <td>114</td>\n",
       "      <td>105</td>\n",
       "      <td>217</td>\n",
       "      <td>52</td>\n",
       "      <td>192</td>\n",
       "      <td>54</td>\n",
       "      <td>196</td>\n",
       "      <td>...</td>\n",
       "      <td>117</td>\n",
       "      <td>233</td>\n",
       "      <td>94</td>\n",
       "      <td>114</td>\n",
       "      <td>257</td>\n",
       "      <td>139</td>\n",
       "      <td>404</td>\n",
       "      <td>97</td>\n",
       "      <td>250</td>\n",
       "      <td>170</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACC</td>\n",
       "      <td>148</td>\n",
       "      <td>56</td>\n",
       "      <td>71</td>\n",
       "      <td>123</td>\n",
       "      <td>36</td>\n",
       "      <td>139</td>\n",
       "      <td>54</td>\n",
       "      <td>102</td>\n",
       "      <td>...</td>\n",
       "      <td>90</td>\n",
       "      <td>167</td>\n",
       "      <td>59</td>\n",
       "      <td>64</td>\n",
       "      <td>268</td>\n",
       "      <td>75</td>\n",
       "      <td>255</td>\n",
       "      <td>78</td>\n",
       "      <td>188</td>\n",
       "      <td>137</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 2782 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mutation type Trinucleotide  Biliary-AdenoCA::SP117655  \\\n",
       "0           C>A           ACA                        269   \n",
       "1           C>A           ACC                        148   \n",
       "\n",
       "   Biliary-AdenoCA::SP117556  Biliary-AdenoCA::SP117627  \\\n",
       "0                        114                        105   \n",
       "1                         56                         71   \n",
       "\n",
       "   Biliary-AdenoCA::SP117775  Biliary-AdenoCA::SP117332  \\\n",
       "0                        217                         52   \n",
       "1                        123                         36   \n",
       "\n",
       "   Biliary-AdenoCA::SP117712  Biliary-AdenoCA::SP117017  \\\n",
       "0                        192                         54   \n",
       "1                        139                         54   \n",
       "\n",
       "   Biliary-AdenoCA::SP117031  ...  Uterus-AdenoCA::SP94540  \\\n",
       "0                        196  ...                      117   \n",
       "1                        102  ...                       90   \n",
       "\n",
       "   Uterus-AdenoCA::SP95222  Uterus-AdenoCA::SP89389  Uterus-AdenoCA::SP90503  \\\n",
       "0                      233                       94                      114   \n",
       "1                      167                       59                       64   \n",
       "\n",
jpronkko's avatar
jpronkko committed
       "   Uterus-AdenoCA::SP92460  Uterus-AdenoCA::SP92931  Uterus-AdenoCA::SP91265  \\\n",
       "0                      257                      139                      404   \n",
       "1                      268                       75                      255   \n",
       "\n",
       "   Uterus-AdenoCA::SP89909  Uterus-AdenoCA::SP90629  Uterus-AdenoCA::SP95550  \n",
       "0                       97                      250                      170  \n",
       "1                       78                      188                      137  \n",
       "\n",
       "[2 rows x 2782 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## PCAWG data is performed by the same pipeline\n",
    "PCAWG_wgs_mut = pd.read_csv (\"./project_data/catalogs/WGS/WGS_PCAWG.96.csv\")\n",
    "PCAWG_wgs_mut.head(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Accuracy is the cosine similarity of reconstruct catalog to the observed catalog "
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Cancer Types</th>\n",
       "      <th>Sample Names</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>SBS1</th>\n",
       "      <th>SBS2</th>\n",
       "      <th>SBS3</th>\n",
       "      <th>SBS4</th>\n",
       "      <th>SBS5</th>\n",
       "      <th>SBS6</th>\n",
       "      <th>SBS7a</th>\n",
       "      <th>...</th>\n",
       "      <th>SBS51</th>\n",
       "      <th>SBS52</th>\n",
       "      <th>SBS53</th>\n",
       "      <th>SBS54</th>\n",
       "      <th>SBS55</th>\n",
       "      <th>SBS56</th>\n",
       "      <th>SBS57</th>\n",
       "      <th>SBS58</th>\n",
       "      <th>SBS59</th>\n",
       "      <th>SBS60</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Biliary-AdenoCA</td>\n",
       "      <td>SP117655</td>\n",
       "      <td>0.968</td>\n",
       "      <td>1496</td>\n",
       "      <td>1296</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1825</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Biliary-AdenoCA</td>\n",
       "      <td>SP117556</td>\n",
       "      <td>0.963</td>\n",
       "      <td>985</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>922</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 68 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Cancer Types Sample Names  Accuracy  SBS1  SBS2  SBS3  SBS4  SBS5  SBS6  \\\n",
       "0  Biliary-AdenoCA     SP117655     0.968  1496  1296     0     0  1825     0   \n",
       "1  Biliary-AdenoCA     SP117556     0.963   985     0     0     0   922     0   \n",
       "\n",
       "   SBS7a  ...  SBS51  SBS52  SBS53  SBS54  SBS55  SBS56  SBS57  SBS58  SBS59  \\\n",
       "0      0  ...      0      0      0      0      0      0      0      0      0   \n",
       "1      0  ...      0      0      0      0      0      0      0      0      0   \n",
       "\n",
       "   SBS60  \n",
       "0      0  \n",
       "1      0  \n",
       "\n",
       "[2 rows x 68 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## Activities:\n",
    "PCAWG_wgs_act = pd.read_csv (\"./project_data/activities/WGS/WGS_PCAWG.activities.csv\")\n",
    "PCAWG_wgs_act.head(2)"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Mutation type</th>\n",
       "      <th>Trinucleotide</th>\n",
       "      <th>ALL::PD4020a</th>\n",
       "      <th>ALL::SJBALL011_D</th>\n",
       "      <th>ALL::SJBALL012_D</th>\n",
       "      <th>ALL::SJBALL020013_D1</th>\n",
       "      <th>ALL::SJBALL020422_D1</th>\n",
       "      <th>ALL::SJBALL020579_D1</th>\n",
       "      <th>ALL::SJBALL020589_D1</th>\n",
       "      <th>ALL::SJBALL020625_D1</th>\n",
       "      <th>...</th>\n",
       "      <th>Stomach-AdenoCa::pfg316T</th>\n",
       "      <th>Stomach-AdenoCa::pfg317T</th>\n",
       "      <th>Stomach-AdenoCa::pfg344T</th>\n",
       "      <th>Stomach-AdenoCa::pfg373T</th>\n",
       "      <th>Stomach-AdenoCa::pfg375T</th>\n",
       "      <th>Stomach-AdenoCa::pfg378T</th>\n",
       "      <th>Stomach-AdenoCa::pfg398T</th>\n",
       "      <th>Stomach-AdenoCa::pfg413T</th>\n",
       "      <th>Stomach-AdenoCa::pfg416T</th>\n",
       "      <th>Stomach-AdenoCa::pfg424T</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACA</td>\n",
       "      <td>35</td>\n",
       "      <td>9</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "      <td>...</td>\n",
       "      <td>133</td>\n",
       "      <td>185</td>\n",
       "      <td>202</td>\n",
       "      <td>185</td>\n",
       "      <td>96</td>\n",
       "      <td>134</td>\n",
       "      <td>12</td>\n",
       "      <td>279</td>\n",
       "      <td>75</td>\n",
       "      <td>135</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACC</td>\n",
       "      <td>16</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>48</td>\n",
       "      <td>70</td>\n",
       "      <td>126</td>\n",
       "      <td>88</td>\n",
       "      <td>35</td>\n",
       "      <td>54</td>\n",
       "      <td>16</td>\n",
       "      <td>112</td>\n",
       "      <td>31</td>\n",
       "      <td>91</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 1867 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mutation type Trinucleotide  ALL::PD4020a  ALL::SJBALL011_D  \\\n",
       "0           C>A           ACA            35                 9   \n",
       "1           C>A           ACC            16                 2   \n",
       "\n",
       "   ALL::SJBALL012_D  ALL::SJBALL020013_D1  ALL::SJBALL020422_D1  \\\n",
       "0                 2                     7                     5   \n",
       "1                 4                    10                     5   \n",
       "\n",
       "   ALL::SJBALL020579_D1  ALL::SJBALL020589_D1  ALL::SJBALL020625_D1  ...  \\\n",
       "0                     7                     3                     5  ...   \n",
       "1                     9                     1                     2  ...   \n",
       "\n",
       "   Stomach-AdenoCa::pfg316T  Stomach-AdenoCa::pfg317T  \\\n",
       "0                       133                       185   \n",
       "1                        48                        70   \n",
       "\n",
       "   Stomach-AdenoCa::pfg344T  Stomach-AdenoCa::pfg373T  \\\n",
       "0                       202                       185   \n",
       "1                       126                        88   \n",
       "\n",
       "   Stomach-AdenoCa::pfg375T  Stomach-AdenoCa::pfg378T  \\\n",
       "0                        96                       134   \n",
       "1                        35                        54   \n",
       "\n",
       "   Stomach-AdenoCa::pfg398T  Stomach-AdenoCa::pfg413T  \\\n",
       "0                        12                       279   \n",
       "1                        16                       112   \n",
       "\n",
       "   Stomach-AdenoCa::pfg416T  Stomach-AdenoCa::pfg424T  \n",
       "0                        75                       135  \n",
       "1                        31                        91  \n",
       "\n",
       "[2 rows x 1867 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nonPCAWG_wgs_mut = pd.read_csv (\"./project_data/catalogs/WGS/WGS_Other.96.csv\")\n",
    "nonPCAWG_wgs_mut.head(2)"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Cancer Types</th>\n",
       "      <th>Sample Names</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>SBS1</th>\n",
       "      <th>SBS2</th>\n",
       "      <th>SBS3</th>\n",
       "      <th>SBS4</th>\n",
       "      <th>SBS5</th>\n",
       "      <th>SBS6</th>\n",
       "      <th>SBS7a</th>\n",
       "      <th>...</th>\n",
       "      <th>SBS51</th>\n",
       "      <th>SBS52</th>\n",
       "      <th>SBS53</th>\n",
       "      <th>SBS54</th>\n",
       "      <th>SBS55</th>\n",
       "      <th>SBS56</th>\n",
       "      <th>SBS57</th>\n",
       "      <th>SBS58</th>\n",
       "      <th>SBS59</th>\n",
       "      <th>SBS60</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ALL</td>\n",
       "      <td>PD4020a</td>\n",
       "      <td>0.995</td>\n",
       "      <td>208</td>\n",
       "      <td>3006</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>365</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ALL</td>\n",
       "      <td>SJBALL011_D</td>\n",
       "      <td>0.905</td>\n",
       "      <td>66</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>144</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 68 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  Cancer Types Sample Names  Accuracy  SBS1  SBS2  SBS3  SBS4  SBS5  SBS6  \\\n",
       "0          ALL      PD4020a     0.995   208  3006     0     0   365     0   \n",
       "1          ALL  SJBALL011_D     0.905    66     0     0     0   144     0   \n",
       "\n",
       "   SBS7a  ...  SBS51  SBS52  SBS53  SBS54  SBS55  SBS56  SBS57  SBS58  SBS59  \\\n",
       "0      0  ...      0      0      0      0      0      0      0      0      0   \n",
       "1      0  ...      0      0      0      0      0      0      0      0      0   \n",
       "\n",
       "   SBS60  \n",
       "0      0  \n",
       "1      0  \n",
       "\n",
       "[2 rows x 68 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nonPCAWG_wgs_act = pd.read_csv (\"./project_data/activities/WGS/WGS_Other.activities.csv\")\n",
    "nonPCAWG_wgs_act.head(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mutational catalogs - WES data"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Mutation type</th>\n",
       "      <th>Trinucleotide</th>\n",
       "      <th>AML::TCGA-AB-2802-03B-01W-0728-08</th>\n",
       "      <th>AML::TCGA-AB-2803-03B-01W-0728-08</th>\n",
       "      <th>AML::TCGA-AB-2804-03B-01W-0728-08</th>\n",
       "      <th>AML::TCGA-AB-2805-03B-01W-0728-08</th>\n",
       "      <th>AML::TCGA-AB-2806-03B-01W-0728-08</th>\n",
       "      <th>AML::TCGA-AB-2807-03B-01W-0728-08</th>\n",
       "      <th>AML::TCGA-AB-2808-03B-01W-0728-08</th>\n",
       "      <th>AML::TCGA-AB-2809-03D-01W-0755-09</th>\n",
       "      <th>...</th>\n",
       "      <th>Eye-Melanoma::TCGA-WC-A885-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-WC-A888-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-WC-A88A-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-WC-AA9A-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-WC-AA9E-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-YZ-A980-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-YZ-A982-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-YZ-A983-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-YZ-A984-01A-11D-A39W-08</th>\n",
       "      <th>Eye-Melanoma::TCGA-YZ-A985-01A-11D-A39W-08</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACA</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACC</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 9495 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mutation type Trinucleotide  AML::TCGA-AB-2802-03B-01W-0728-08  \\\n",
       "0           C>A           ACA                                  0   \n",
       "1           C>A           ACC                                  0   \n",
       "\n",
       "   AML::TCGA-AB-2803-03B-01W-0728-08  AML::TCGA-AB-2804-03B-01W-0728-08  \\\n",
       "0                                  0                                  0   \n",
       "1                                  2                                  0   \n",
       "\n",
       "   AML::TCGA-AB-2805-03B-01W-0728-08  AML::TCGA-AB-2806-03B-01W-0728-08  \\\n",
       "0                                  0                                  4   \n",
       "1                                  0                                  0   \n",
       "\n",
       "   AML::TCGA-AB-2807-03B-01W-0728-08  AML::TCGA-AB-2808-03B-01W-0728-08  \\\n",
       "0                                  0                                  2   \n",
       "1                                  1                                  3   \n",
       "\n",
       "   AML::TCGA-AB-2809-03D-01W-0755-09  ...  \\\n",
       "0                                  0  ...   \n",
       "1                                  0  ...   \n",
       "\n",
       "   Eye-Melanoma::TCGA-WC-A885-01A-11D-A39W-08  \\\n",
       "0                                           1   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-WC-A888-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-WC-A88A-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-WC-AA9A-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-WC-AA9E-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-YZ-A980-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-YZ-A982-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-YZ-A983-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           1   \n",
       "\n",
       "   Eye-Melanoma::TCGA-YZ-A984-01A-11D-A39W-08  \\\n",
       "0                                           0   \n",
       "1                                           0   \n",
       "\n",
       "   Eye-Melanoma::TCGA-YZ-A985-01A-11D-A39W-08  \n",
       "0                                           0  \n",
       "1                                           0  \n",
       "\n",
       "[2 rows x 9495 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "## Performed by TCGA pipeline\n",
    "TCGA_wes_mut = pd.read_csv (\"./project_data/catalogs/WES/WES_TCGA.96.csv\")\n",
    "TCGA_wes_mut.head(2)"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Cancer Types</th>\n",
       "      <th>Sample Names</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>SBS1</th>\n",
       "      <th>SBS2</th>\n",
       "      <th>SBS3</th>\n",
       "      <th>SBS4</th>\n",
       "      <th>SBS5</th>\n",
       "      <th>SBS6</th>\n",
       "      <th>SBS7a</th>\n",
       "      <th>...</th>\n",
       "      <th>SBS51</th>\n",
       "      <th>SBS52</th>\n",
       "      <th>SBS53</th>\n",
       "      <th>SBS54</th>\n",
       "      <th>SBS55</th>\n",
       "      <th>SBS56</th>\n",
       "      <th>SBS57</th>\n",
       "      <th>SBS58</th>\n",
       "      <th>SBS59</th>\n",
       "      <th>SBS60</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AML</td>\n",
       "      <td>TCGA-AB-2802-03B-01W-0728-08</td>\n",
       "      <td>0.811</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>AML</td>\n",
       "      <td>TCGA-AB-2803-03B-01W-0728-08</td>\n",
       "      <td>0.608</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 68 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  Cancer Types                  Sample Names  Accuracy  SBS1  SBS2  SBS3  \\\n",
       "0          AML  TCGA-AB-2802-03B-01W-0728-08     0.811     3     0     0   \n",
       "1          AML  TCGA-AB-2803-03B-01W-0728-08     0.608     4     0     0   \n",
       "\n",
       "   SBS4  SBS5  SBS6  SBS7a  ...  SBS51  SBS52  SBS53  SBS54  SBS55  SBS56  \\\n",
       "0     0     0     0      0  ...      0      0      0      0      0      0   \n",
       "1     0     7     0      0  ...      0      0      0      0      0      0   \n",
       "\n",
       "   SBS57  SBS58  SBS59  SBS60  \n",
       "0      0      0      0      0  \n",
       "1      0      0      0      0  \n",
       "\n",
       "[2 rows x 68 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "##Activities\n",
    "TCGA_wes_act = pd.read_csv(\"./project_data/activities/WES/WES_TCGA.activities.csv\")\n",
    "TCGA_wes_act.head(2)"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Mutation type</th>\n",
       "      <th>Trinucleotide</th>\n",
       "      <th>ALL::TARGET-10-PAIXPH-03A-01D</th>\n",
       "      <th>ALL::TARGET-10-PAKHZT-03A-01R</th>\n",
       "      <th>ALL::TARGET-10-PAKMVD-09A-01D</th>\n",
       "      <th>ALL::TARGET-10-PAKSWW-03A-01D</th>\n",
       "      <th>ALL::TARGET-10-PALETF-03A-01D</th>\n",
       "      <th>ALL::TARGET-10-PALLSD-09A-01D</th>\n",
       "      <th>ALL::TARGET-10-PAMDKS-03A-01D</th>\n",
       "      <th>ALL::TARGET-10-PAPJIB-04A-01D</th>\n",
       "      <th>...</th>\n",
       "      <th>Head-SCC::V-109</th>\n",
       "      <th>Head-SCC::V-112</th>\n",
       "      <th>Head-SCC::V-116</th>\n",
       "      <th>Head-SCC::V-119</th>\n",
       "      <th>Head-SCC::V-123</th>\n",
       "      <th>Head-SCC::V-124</th>\n",
       "      <th>Head-SCC::V-125</th>\n",
       "      <th>Head-SCC::V-14</th>\n",
       "      <th>Head-SCC::V-29</th>\n",
       "      <th>Head-SCC::V-98</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACA</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>C&gt;A</td>\n",
       "      <td>ACC</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 9693 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mutation type Trinucleotide  ALL::TARGET-10-PAIXPH-03A-01D  \\\n",
       "0           C>A           ACA                              0   \n",
       "1           C>A           ACC                              0   \n",
       "\n",
       "   ALL::TARGET-10-PAKHZT-03A-01R  ALL::TARGET-10-PAKMVD-09A-01D  \\\n",
       "0                              0                              0   \n",
       "1                              0                              0   \n",
       "\n",
       "   ALL::TARGET-10-PAKSWW-03A-01D  ALL::TARGET-10-PALETF-03A-01D  \\\n",
       "0                              1                              0   \n",
       "1                              1                              0   \n",
       "\n",
       "   ALL::TARGET-10-PALLSD-09A-01D  ALL::TARGET-10-PAMDKS-03A-01D  \\\n",
       "0                              0                              0   \n",
       "1                              0                              0   \n",
       "\n",
       "   ALL::TARGET-10-PAPJIB-04A-01D  ...  Head-SCC::V-109  Head-SCC::V-112  \\\n",
       "0                              2  ...                0                0   \n",
       "1                              0  ...                1                0   \n",
       "\n",
       "   Head-SCC::V-116  Head-SCC::V-119  Head-SCC::V-123  Head-SCC::V-124  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "\n",
       "   Head-SCC::V-125  Head-SCC::V-14  Head-SCC::V-29  Head-SCC::V-98  \n",
       "0                0               0               0               1  \n",
       "1                0               1               0               0  \n",
       "\n",
       "[2 rows x 9693 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "other_wes_mut = pd.read_csv(\"./project_data/catalogs/WES/WES_Other.96.csv\")\n",
    "other_wes_mut.head(2)"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "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>Cancer Types</th>\n",
       "      <th>Sample Names</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>SBS1</th>\n",
       "      <th>SBS2</th>\n",
       "      <th>SBS3</th>\n",
       "      <th>SBS4</th>\n",
       "      <th>SBS5</th>\n",
       "      <th>SBS6</th>\n",
       "      <th>SBS7a</th>\n",
       "      <th>...</th>\n",
       "      <th>SBS51</th>\n",
       "      <th>SBS52</th>\n",
       "      <th>SBS53</th>\n",
       "      <th>SBS54</th>\n",
       "      <th>SBS55</th>\n",
       "      <th>SBS56</th>\n",
       "      <th>SBS57</th>\n",
       "      <th>SBS58</th>\n",
       "      <th>SBS59</th>\n",
       "      <th>SBS60</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ALL</td>\n",
       "      <td>TARGET-10-PAIXPH-03A-01D</td>\n",
       "      <td>0.529</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>ALL</td>\n",
       "      <td>TARGET-10-PAKHZT-03A-01R</td>\n",
       "      <td>0.696</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2 rows × 68 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  Cancer Types              Sample Names  Accuracy  SBS1  SBS2  SBS3  SBS4  \\\n",
       "0          ALL  TARGET-10-PAIXPH-03A-01D     0.529     0     0     0     0   \n",
       "1          ALL  TARGET-10-PAKHZT-03A-01R     0.696     0     0     0     0   \n",
       "\n",
       "   SBS5  SBS6  SBS7a  ...  SBS51  SBS52  SBS53  SBS54  SBS55  SBS56  SBS57  \\\n",
       "0     0     0      0  ...      0      0      0      1      0      0      0   \n",
       "1     0     0      0  ...      0      0      0      1      0      0      0   \n",
       "\n",
       "   SBS58  SBS59  SBS60  \n",
       "0      0      0      0  \n",
       "1      0      0      0  \n",
       "\n",
       "[2 rows x 68 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "other_wes_act = pd.read_csv(\"./project_data/activities/WES/WES_Other.activities.csv\")\n",
    "other_wes_act.head(2)"
   ]
  },
jpronkko's avatar
jpronkko committed
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Imports and helpers"
   ]
  },
jpronkko's avatar
jpronkko committed
  {
   "cell_type": "code",
   "metadata": {},
   "outputs": [],
   "source": [
jpronkko's avatar
jpronkko committed
    "import re\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn\n",
    "from sklearn.decomposition import PCA\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
jpronkko's avatar
jpronkko committed
    "#import torch \n",
    "\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
jpronkko's avatar
jpronkko committed
    "\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.metrics import roc_curve\n",
jpronkko's avatar
jpronkko committed
    "from sklearn.metrics import classification_report\n",
    "\n",
jpronkko's avatar
jpronkko committed
    "from sklearn.model_selection import cross_val_score, train_test_split, KFold\n",
    "from sklearn.model_selection import StratifiedShuffleSplit\n",
    "from sklearn.model_selection import StratifiedKFold, GridSearchCV\n",
    "from sklearn.model_selection import learning_curve\n",
    "\n",
jpronkko's avatar
jpronkko committed
    "from sklearn.preprocessing import LabelEncoder\n",
    "\n",
    "# These ones are work in progress\n",
    "def plot_roc_auc(X_tst, y_test, model, is_multi_class=False):\n",
    "    probs = model.predict_proba(X_tst)\n",
    "    probs = probs[:, 1]\n",
    "    if is_multi_class:\n",
    "        auc = roc_auc_score(y_test, probs, multi_class='ovo')\n",
    "    else:\n",
    "        auc = roc_auc_score(y_test, probs, multi_class='ovo')\n",
    "    \n",
    "    fp_rate, tp_rate, thresholds = roc_curve(y_test, probs)\n",
    "    \n",
    "    plt.figure(figsize=(7,6))\n",
    "    plt.axis('scaled')\n",
    "    plt.xlim([0,1])\n",
    "    plt.ylim([0,1])\n",
    "    plt.title(\"AUC & ROC\")\n",
    "    plt.plot(fp_rate, tp_rate, 'g')\n",
    "    plt.fill_between(fp_rate, tp_rate, facecolor = \"green\", alpha = 0.7)\n",
    "    plt.text(0.95, 0.05, f'AUC = {auc}', ha='right', fontsize=12, weight='bold', color='blue')\n",
    "    plt.xlabel(\"False Positive Rate\")\n",
    "    plt.ylabel(\"True Positive Rate\")\n",
    "\n",
jpronkko's avatar
jpronkko committed
    "def plot_confusion_mat(y_test, y_pred, labs=None, size=None):\n",
    "    cm = sklearn.metrics.confusion_matrix(y_test, y_pred)\n",
    "    if size is None:\n",
    "        plt.figure(figsize=(12,10))\n",
    "    else:\n",
    "        plt.figure(figsize=size)\n",
    "    if labs is None:\n",
    "        sns.heatmap(cm, square=False, annot=True, fmt='d', cmap='viridis', cbar=True)\n",
    "    else:\n",
    "        sns.heatmap(cm, square=False, annot=True, fmt='d', cmap='viridis', xticklabels=labs, yticklabels=labs, cbar=True)\n",
    "    plt.xlabel('Predicted label')\n",
    "    plt.ylabel('True label')\n",
    "    #plt.ylim(0, 2)\n",
    "\n",
    "def plot_learning_curve(model, X, y):\n",
    "    N, train_lc, val_lc = learning_curve(model, X, y, cv=7, train_sizes=np.linspace(0.3, 1, 25))\n",
    "    plt.figure(figsize=(7,6))\n",
jpronkko's avatar
jpronkko committed
    "    plt.title(\"Learning curve\")\n",
    "    plt.plot(N, np.mean(train_lc, 1), color='blue', label='training score')\n",
    "    plt.plot(N, np.mean(val_lc, 1), color='red', label='validation score')\n",
    "    #plt.hlines(N, np.mean([train_lc[-1],  val_lc[-1]]), N[0], N[-1], color='gray', label='mean', linestyle='dashed')\n",
    "\n",
    "def plot_trn_tst_dist(y_all, y_train, y_test, y_pred, in_cols=False):\n",
    "    #fig = None\n",
    "    #ax = None\n",
    "    if in_cols:\n",
    "        fig, ax = plt.subplots(2,2)\n",
    "    else:\n",
    "        fig, ax = plt.subplots(4,1)\n",
    "\n",
    "    fig.set_size_inches(15,8)\n",
    "\n",
    "    plt_sets = [y_all, y_train, y_test, y_pred]\n",
    "    plt_labels = [\"All\", \"Train\", \"Test\", \"Pred\"]\n",
    "    plt_set_df = pd.DataFrame()\n",
    "    for i in range(len(plt_sets)):\n",
    "        s = pd.Series(plt_sets[i]).value_counts().sort_index()\n",
    "        plt_set_df[plt_labels[i]] = s\n",
    "    \n",
    "        pd.DataFrame({plt_labels[i]: s}).plot(ax=ax.flat[i], kind=\"bar\")\n",
    "        #sns.countplot(x=s, \n",
    "        #            palette=sns.hls_palette(2),\n",
    "        #            ax=ax[i])\n",
    "        ax.flat[i].tick_params(axis=\"x\", rotation=90)\n",
    "\n",
    "    fig.tight_layout()\n",
    "    with pd.option_context('display.max_rows', None,\n",
    "                       'display.max_columns', None,\n",
    "                       'display.precision', 2,\n",
    "                       ):\n",
    "        print(plt_set_df)\n",
    "\n",
    "\n",
    "   \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Dataset preprocess, combine profile data to a single data frame\n",
    "\n",
    "From all profile sets, a combined data frame is made, which has samples in the rows and features in the columns."
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Profile data:\n",
      "\n",
      "---Data set diagnostics print---\n",
      "\n",
      "Missing entries in mutations: 0\n",
      "The shape of the mutations data frame (23829, 97)\n",
jpronkko's avatar
jpronkko committed
      "Checking normalization: sum of some rows:\n",
      " Thymoma::TCGA-4V-A9QI-01A-11D-A423-09    1.0\n",
      "CNS::TCGA-06-0216-01B-01D-1492-08        1.0\n",
      "Prost-AdenoCA::SP114926                  1.0\n",
      "CNS::TCGA-06-1802-01A-01W-0643-08        1.0\n",
      "Sarcoma-bone::IC086T_WGS                 1.0\n",
jpronkko's avatar
jpronkko committed
      "dtype: float64\n",
      "\n",
      "\n",
      "Some tumor counts:\n",
      " Breast    1858\n",
      "Lung      1668\n",
      "CNS       1595\n",
      "Liver     1358\n",
      "Kidney    1269\n",
      "Name: tumor_types, dtype: int64\n",
      "\n",
      "\n",
      "Tumor types with smallish counts: 0\n",
      "Series([], Name: tumor_types, dtype: int64)\n",
jpronkko's avatar
jpronkko committed
      "\n",
      "\n",
      "Unique tumor types:  51\n",
      "['ALL', 'AML', 'Adrenal-neoplasm', 'Biliary-AdenoCA', 'Bladder-TCC', 'Blood-CMDI', 'Bone', 'Breast', 'CNS', 'CNS-NOS', 'Cervix', 'ColoRect-AdenoCA', 'ColoRect-Adenoma', 'DLBC', 'Eso-AdenoCA', 'Eso-SCC', 'Ewings', 'Eye', 'Head-SCC', 'Kidney', 'Liver', 'Lung', 'Lymph', 'Meninges-Meningioma', 'Mesothelium-Mesothelioma', 'Myeloid', 'Neuroblastoma', 'Oral-SCC', 'Ovary-AdenoCA', 'Panc', 'Para-AdenoCA', 'Para-Adenoma', 'Pheochromocytoma', 'Pit-All', 'Prost-AdenoCA', 'Prost-Adenoma', 'Sarcoma', 'Sarcoma-bone', 'Skin-BCC', 'Skin-Melanoma', 'Skin-SCC', 'Small-Intestine-carcinoid', 'SoftTissue-Leiomyo', 'SoftTissue-Liposarc', 'Stomach-AdenoCA', 'Testis-CA', 'Thy-AdenoCA', 'Thymoma', 'Transitional-cell-carcinoma', 'UCS', 'Uterus-AdenoCA']\n"
     ]
    }
   ],
   "source": [
    "\n",
    "def prepare_mut_df(raw_mutation_dfs, is_profile, small_sample_limit=None):\n",
    "\n",
    "    mutations_all = pd.DataFrame()\n",
    "\n",
    "    for df in raw_mutation_dfs:\n",
    "        # Make a copy of the original data frame and start processing from there\n",
    "        mutations  = df.copy()\n",
    "    \n",
    "        if is_profile:\n",
    "            mutations['mut_tri'] = mutations.apply(lambda a: '{}_{}'.format(a['Mutation type'], a['Trinucleotide']), axis=1)\n",
    "            mutations = mutations.set_index('mut_tri').drop(['Mutation type', 'Trinucleotide'], axis=1)\n",
    "            mutations = mutations.T\n",
    "        else:\n",
    "            mutations['mut_tri'] = mutations.apply(lambda a: '{}::{}'.format(a['Cancer Types'], a['Sample Names']), axis=1)\n",
    "            mutations = mutations.set_index('mut_tri').drop(['Cancer Types', 'Sample Names', 'Accuracy'], axis=1)\n",
    "     \n",
    "        # Rename some index names\n",
    "        renamed_items = list(mutations.index)\n",
    "        index_items = list(mutations.index)\n",
    "\n",
    "        # Combine rows for low count labels\n",
    "        for i in range(len(index_items)):\n",
    "            result = index_items[i]\n",
    "            for to_sub in ['Bone', 'Breast', 'Cervix', 'CNS', 'Eye', 'Liver', 'Lymph', 'Lung', 'Kidney', 'Myeloid', 'Panc' ]:\n",
    "                result = re.sub( to_sub + r'(-\\w*)', to_sub, result)\n",
    "                \n",
    "            renamed_items[i] = result.replace('Ca', 'CA')\n",
    "       \n",
    "        mutations.rename(index=dict(zip(index_items, renamed_items)), inplace = True)\n",
    "   \n",
    "        # Normalize \n",
    "        row_sums = mutations.sum(axis=1)\n",
    "        mutations = mutations.divide(row_sums, axis = 0)\n",
    "\n",
    "        mutations_all = pd.concat([mutations_all, mutations])\n",
    "\n",
    "    mutations_all.sort_index(inplace=True)\n",
    "\n",
    "    # Do we need to renormalize after obtaining the full dataframe?\n",
    "  \n",
    "    # Figure out tumor types based on the first part of the index\n",
    "    tumor_types = [a.split(':')[0] for a in mutations_all.index]\n",
    "    # Prepare a list with all the types appearing only once\n",
    "    unique_tumor_types = sorted(list(set(tumor_types)))\n",
    "    # Attach this back to the frame\n",
    "    mutations_all[\"tumor_types\"] = tumor_types\n",
    "\n",
    "    # Get rid of types with very few samples if the limit is specified\n",
    "    if small_sample_limit is not None:\n",
    "        counts = mutations_all[\"tumor_types\"].value_counts()\n",
    "        small_counts = list(counts[counts < small_sample_limit].index)\n",
    "        mutations_all = mutations_all.loc[~mutations_all[\"tumor_types\"].isin(small_counts)]\n",
    "\n",
    "    \n",
    "    return (mutations_all, unique_tumor_types)\n",
    "\n",
    "\n",
    "def print_dset_diag(mut_df, unique_tumor_types, small_sample_limit):\n",
    "    # Check if the data frame is ok\n",
    "    print(\"\\n---Data set diagnostics print---\\n\")\n",
    "    print(\"Missing entries in mutations:\", mut_df.isnull().sum().sum())\n",
    "    print(\"The shape of the mutations data frame\", mut_df.shape)\n",
    "\n",
    "    # Check to see if the rows are normalized to one, take a sample from the data frame\n",
    "    norm_df = mut_df.sample(n=5, random_state=5)\n",
    "    print(\"Checking normalization: sum of some rows:\\n\", norm_df.iloc[:,0:-1].sum(axis=1))\n",
    "    print(\"\\n\")\n",
    "\n",
    "    # Check some counts of tumor types\n",
    "    tumor_counts = mut_df[\"tumor_types\"].value_counts() #.sort_values(ascending=True)\n",
    "    print(\"Some tumor counts:\\n\", tumor_counts.head(5))\n",
    "    print(\"\\n\")\n",
    "\n",
    "    small_counts = tumor_counts < 1.5*small_sample_limit\n",
    "    print(\"Tumor types with smallish counts:\",  sum(small_counts))\n",
    "\n",
    "    print(tumor_counts[small_counts])\n",
    "    print(\"\\n\")\n",
    "\n",
    "    # Tumor types\n",
    "    print(\"Unique tumor types: \", len(unique_tumor_types))\n",
    "    print(unique_tumor_types)\n",
    "\n",
    "\n",
    "small_sample_limit = 0\n",
jpronkko's avatar
jpronkko committed
    "\n",
    "profile_raw_data_sets = [PCAWG_wgs_mut, TCGA_wes_mut, nonPCAWG_wgs_mut, other_wes_mut]\n",
    "profile_mut_all, prf_unique_tumor_types = prepare_mut_df(profile_raw_data_sets, True, small_sample_limit)\n",
    "\n",
    "# Print some diagnostics from the prepared data set\n",
    "print(\"Profile data:\")\n",
    "print_dset_diag(profile_mut_all, prf_unique_tumor_types, small_sample_limit)\n",
    "\n",
    "# Data matrix X for fitting, omit the tumor labeling from there, use that information in constructing true y\n",
    "# Note: this contains profile data only\n",
    "X_prf = profile_mut_all.drop(\"tumor_types\", axis=1)"
jpronkko's avatar
jpronkko committed
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Dataset preprocess for activites data"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
jpronkko's avatar
jpronkko committed
      "Activities data:\n",
      "\n",
      "---Data set diagnostics print---\n",
      "\n",
      "Missing entries in mutations: 0\n",
      "The shape of the mutations data frame (23829, 66)\n",
      "Checking normalization: sum of some rows:\n",
jpronkko's avatar
jpronkko committed
      " mut_tri\n",
      "Thymoma::TCGA-4V-A9QI-01A-11D-A423-09    1.0\n",
      "CNS::TCGA-06-0216-01B-01D-1492-08        1.0\n",
      "Prost-AdenoCA::SP114926                  1.0\n",
      "CNS::TCGA-06-1802-01A-01W-0643-08        1.0\n",
      "Sarcoma-bone::IC086T_WGS                 1.0\n",
      "dtype: float64\n",
jpronkko's avatar
jpronkko committed
      "\n",
      "\n",
      "Some tumor counts:\n",
jpronkko's avatar
jpronkko committed
      " Breast    1858\n",
      "Lung      1668\n",
      "CNS       1595\n",
      "Liver     1358\n",
      "Kidney    1269\n",
      "Name: tumor_types, dtype: int64\n",
jpronkko's avatar
jpronkko committed
      "\n",
      "\n",
      "Tumor types with smallish counts: 0\n",
      "Series([], Name: tumor_types, dtype: int64)\n",
jpronkko's avatar
jpronkko committed
      "\n",
      "\n",
      "Unique tumor types:  51\n",
      "['ALL', 'AML', 'Adrenal-neoplasm', 'Biliary-AdenoCA', 'Bladder-TCC', 'Blood-CMDI', 'Bone', 'Breast', 'CNS', 'CNS-NOS', 'Cervix', 'ColoRect-AdenoCA', 'ColoRect-Adenoma', 'DLBC', 'Eso-AdenoCA', 'Eso-SCC', 'Ewings', 'Eye', 'Head-SCC', 'Kidney', 'Liver', 'Lung', 'Lymph', 'Meninges-Meningioma', 'Mesothelium-Mesothelioma', 'Myeloid', 'Neuroblastoma', 'Oral-SCC', 'Ovary-AdenoCA', 'Panc', 'Para-AdenoCA', 'Para-Adenoma', 'Pheochromocytoma', 'Pit-All', 'Prost-AdenoCA', 'Prost-Adenoma', 'Sarcoma', 'Sarcoma-bone', 'Skin-BCC', 'Skin-Melanoma', 'Skin-SCC', 'Small-Intestine-carcinoid', 'SoftTissue-Leiomyo', 'SoftTissue-Liposarc', 'Stomach-AdenoCA', 'Testis-CA', 'Thy-AdenoCA', 'Thymoma', 'Transitional-cell-carcinoma', 'UCS', 'Uterus-AdenoCA']\n"
     ]
    }
   ],
   "source": [
    "act_raw_data_sets = [PCAWG_wgs_act, TCGA_wes_act, nonPCAWG_wgs_act, other_wes_act]\n",
    "act_mut_all, act_unique_tumor_types = prepare_mut_df(act_raw_data_sets, is_profile=False, small_sample_limit=small_sample_limit)\n",
    "\n",
    "# Print some diagnostics from the prepared data set\n",
    "print(\"Activities data:\")\n",
    "print_dset_diag(act_mut_all, act_unique_tumor_types, small_sample_limit)\n",
    "\n",
    "# Data matrix X for fitting, omit the tumor labeling from there, use that information in constructing true y\n",
    "# Note: this contains profile data only\n",
    "X_act = act_mut_all.drop(\"tumor_types\", axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check profile data content"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Some content from the full profile set:\n"
      "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>mut_tri</th>\n",
       "      <th>C&gt;A_ACA</th>\n",
       "      <th>C&gt;A_ACC</th>\n",
       "      <th>C&gt;A_ACG</th>\n",
       "      <th>C&gt;A_ACT</th>\n",
       "      <th>C&gt;A_CCA</th>\n",
       "      <th>C&gt;A_CCC</th>\n",
       "      <th>C&gt;A_CCG</th>\n",
       "      <th>C&gt;A_CCT</th>\n",
       "      <th>C&gt;A_GCA</th>\n",
       "      <th>C&gt;A_GCC</th>\n",
       "      <th>...</th>\n",
       "      <th>T&gt;G_CTT</th>\n",
       "      <th>T&gt;G_GTA</th>\n",
       "      <th>T&gt;G_GTC</th>\n",
       "      <th>T&gt;G_GTG</th>\n",
       "      <th>T&gt;G_GTT</th>\n",
       "      <th>T&gt;G_TTA</th>\n",
       "      <th>T&gt;G_TTC</th>\n",
       "      <th>T&gt;G_TTG</th>\n",
       "      <th>T&gt;G_TTT</th>\n",
       "      <th>tumor_types</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
jpronkko's avatar
jpronkko committed
       "      <th>ALL::11</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.133333</td>\n",
       "      <td>0.066667</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
jpronkko's avatar
jpronkko committed
       "      <td>0.066667</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.066667</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
jpronkko's avatar
jpronkko committed
       "      <th>ALL::2211636</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
jpronkko's avatar
jpronkko committed
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
jpronkko's avatar
jpronkko committed
       "      <th>ALL::2211638</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
jpronkko's avatar
jpronkko committed
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
jpronkko's avatar
jpronkko committed
       "      <th>ALL::2211640</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
jpronkko's avatar
jpronkko committed
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
jpronkko's avatar
jpronkko committed
       "      <th>ALL::2211642</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
jpronkko's avatar
jpronkko committed
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 97 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
jpronkko's avatar
jpronkko committed
       "mut_tri       C>A_ACA  C>A_ACC  C>A_ACG  C>A_ACT  C>A_CCA  C>A_CCC  C>A_CCG  \\\n",
       "ALL::11           0.0      0.0      0.0      0.0      0.0      0.0      0.0   \n",
       "ALL::2211636      0.0      0.0      0.0      0.0      0.0      0.0      0.0   \n",
       "ALL::2211638      0.0      0.0      0.0      0.0      0.0      0.0      0.0   \n",
       "ALL::2211640      0.0      0.0      0.0      0.0      0.0      0.0      0.0   \n",
       "ALL::2211642      0.0      0.0      0.0      0.0      0.0      0.0      0.0   \n",
       "\n",
       "mut_tri        C>A_CCT   C>A_GCA  C>A_GCC  ...   T>G_CTT  T>G_GTA   T>G_GTC  \\\n",
       "ALL::11       0.133333  0.066667      0.0  ...  0.066667      0.0  0.066667   \n",
       "ALL::2211636  0.000000  0.000000      0.0  ...  0.000000      0.0  0.000000   \n",
       "ALL::2211638  0.000000  0.000000      0.0  ...  0.000000      0.0  0.000000   \n",
       "ALL::2211640  0.000000  0.000000      0.0  ...  0.000000      0.0  0.000000   \n",
       "ALL::2211642  0.000000  0.000000      0.0  ...  0.000000      0.0  0.000000   \n",
       "\n",
       "mut_tri       T>G_GTG  T>G_GTT   T>G_TTA  T>G_TTC  T>G_TTG  T>G_TTT  \\\n",
       "ALL::11           0.0      0.0  0.000000      0.0      0.0      0.0   \n",
       "ALL::2211636      0.0      0.0  0.000000      0.0      0.0      0.0   \n",
       "ALL::2211638      0.0      0.0  0.333333      0.0      0.0      0.0   \n",
       "ALL::2211640      0.0      0.0  0.000000      0.0      0.0      0.0   \n",
       "ALL::2211642      0.0      0.0  0.000000      0.0      0.0      0.0   \n",
       "\n",
       "mut_tri       tumor_types  \n",
       "ALL::11               ALL  \n",
       "ALL::2211636          ALL  \n",
       "ALL::2211638          ALL  \n",
       "ALL::2211640          ALL  \n",
       "ALL::2211642          ALL  \n",
       "\n",
       "[5 rows x 97 columns]"
      ]
     },
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
jpronkko's avatar
jpronkko committed
    "print(\"Some content from the full profile set:\")\n",
    "profile_mut_all.head(5)"
  {
   "cell_type": "code",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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sdasWaPo6Gi1bdtWY8aMUd++ffXyyy8biRUXF6eoqCjPSOaqVasaKUFRpEiRPO9jvr6+xtr0o0eP1osvvqiJEyfq7bff1vz58x3vPC5SJP/KrSaO66677pIkTZ8+XfPmzfPEuO+++9SjRw8jI0eXLFmijz76yHPP6datmzp16mQkMZ2enq709HTPuZKWlpbtecQptu5rzZo103XXXacuXbrojTfeUPHixXX//fc7GiOrNm3a6PTp02rTpo2io6NVtWpVBQUFGUtKS9KsWbO0ePFi9ezZUzExMfr666+NzaSyeW20mRuZN2+eoqKidObMGbVt21YxMTHq0qWLpzPICV6XmM5v+ojL5VJiYqLj8X777bd8X3P6wdvt+uuv15kzZxy/ceVl1apVioqK0rfffquHH35Y48aNU3h4uHr16mUkXl4XJRMj2a699lrP/7vrIVesWNHxODnZeLj67rvvtHjxYv3555/ZHsSvuuoqx5NX6enpSk5OVsmSJbVlyxY99dRTntecvkmnp6crLS1NxYoV03fffefpgZcyHwpMycjIUHJysooWLarU1FQj5+OCBQtUv3599erVS40aNZJkviPNfSMrVaqU/vjjD1199dWO1YjKydb32nZy4nznnalz0v292rhxo1q1apVvQ8opO3fuVGRkpNatWydJKl26tDIyMhyNcerUKV199dW5tleuXFmnT592NFZWDRs2VMOGDfXzzz+rd+/eev/999W8eXOFh4crICDA0VjHjh3TY489pgYNGnim/UsyMvVz8+bN2UZxuhuD77//vlq1auVorO+//15xcXHZknMm2WjEu23btk1Lly5VcHCwnn32WXXu3DnPGRKXw/0ssnnzZv33v//1bB8+fLi6du1qbEbJJ598ooULF6pTp0565513tHPnTs2ePdvRGOfrCD916pSjsQriHipJRYsW1YEDBzwdWvv373f8etysWTM1bNhQL7/8su68805JmbNJTLJxfmRlI2nwwQcfOPp+F2KjEZ/Tvn37NH36dK1atUqtW7fWQw89ZLS9VrRoUfn4+CgtLU1VqlTR4cOHjcQqUaJErnuMie93amqqUlJSVLJkyWzbT506ZSTx6I7ZuHFjuVwuVa5cWQMGDFC3bt0c/7sdO3YsVzv32LFjRmeTJyQk6OzZs56yn6mpqTpy5IixeFk7QvPqFHVK06ZNNWDAAHXv3l1S5ne9WbNmjsexdV/717/+pQ0bNmjdunWqUqWKp2PBFF9fX08y350rM32/Llq0qCpVquTpOL7nnns0ffp0I7FsXhtt5kYmTJigxo0ba8yYMZ5nHqf/bl6XmDY1aiw/57txmJoa/NJLL6lr165q0KBBtoSPiSlGffv2VePGjfXpp596bmimLh5nz57VuXPnVLRo9tMyLS3N8ZG+UmZdnjlz5ngS05UqVdIzzzyjJ5980vFYbjYertq0aaM2bdpo8eLFatu2raPvndMTTzyhdu3aqUyZMqpatapuu+02SZm1d51O9D/00EPq0aOHKlSoIB8fH9WvX1+S9PvvvxvtpOnUqZNq166txYsX68iRIxo4cKA2bNjgaE22devWaenSpZo0aZL++usvhYaGGl9opWHDhjpx4oQ6deqktm3bys/PTw8//LDjcWx+r20nJypWrKj4+PhcUxPj4+OzTfNz0l133aWHH35YLpdLo0eP1smTJ887GuZy5bxenT171vGGzJkzZ/J9zcS1323Lli2aP3++fvzxRz3++ONq3769NmzYoD59+mjlypWOxnr00UeNJiSyOn78uM6ePet5BklNTVVCQoJ8fHwcXxeiatWqjr7fhdhqxEv//wzn6+urlJQUlSlTxlij+siRI9kSB8eOHdPRo0eNxJIyG06lSpVSRkaGXC6Xateu7fhU5AYNGmjOnDm5kutz5871JFidUhD3UCmzZmSnTp08o23XrFmjcePGORqje/fuWrp0qV599VW1a9fOyH06JxvnR1Y2kgbnG0gkyfE1IWw04nNytwmLFSumEydOqFy5csYSIqVLl1ZKSorq16+viIgI+fv7G+skr1q1qrZs2SIfHx9lZGRo1qxZRuq4t2rVSoMHD9aECRM8ic2kpCSNHDlSjzzyiOPxJHk+s3LlymnHjh2qUqWK4zPu2rdvr/79+2v8+PG6/vrrJWV2YowYMSJXPW0ntWzZUh07dvR0iH/66adq2bKlkVi33XabhgwZovbt28vHx0cLFy70tEmdNnDgQM2ePVuvvPKKXC6X7rvvPiPPILbua2+88Yb++usvLVmyRBMnTtRff/2l5OTkbJ2uTlq0aJF+++03LVq0SB07dlStWrV0+vTpPDuFnOLn5yeXy6Xrr79eH3zwga699lodP37cSCyb10abuZFly5Zp0aJF6tSp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ooSkzOu0yc5CG414t9atW2vBggVq2bJltiSgiaT4gQMHNGjQIP3888/y8fHRLbfcosmTJ+c5ys0JdevWNVJOKSdbDaaCuIdK0scff6zZs2erdOnS8vPzM1Jj+uzZszp37lyu+2VaWpqxRryt88PNRtJgxIgRWrx4sbp06aK2bdsaaTNlZbNN49atWze9/vrrevDBB7Nds0zM4m3cuLH69OmjIkWKGDv33erVq+eZCWRyIEVBXEciIiL03HPP6Z577snWAeXkrNMaNWrom2++yVWreP369UZnhI4aNUo33nijIiIi5HK59Mknn2jkyJFGBkmNHTtWK1euVFBQkKZOnaqbbrpJUuZAukceecTRWOvXr1dERIQSExNVpEgRpaWlqXz58o6f+7bOxwYNGmjOnDm5Zt/MnTvXyLorN998s5YuXZprEMOyZcs8fzenPf/88+rQoYPq1KljvAyuzWtj+/bt1b9/f40fP94zK37fvn0aMWJErlmol6t48eI6cOBArufSAwcOONZR7nWJaSmzYbR69WpFRUXphx9+0Llz5/TOO+84viiUJH344YeKjY2Vn5+f2rRpo5iYGOMjeb755htFREToyy+/VJUqVfTaa6+pV69exh6ybDUsbJzwbu5VifNjqhSLrYcrKXN6/LZt2/Tbb7/p/vvv16pVqxwfDT5lyhT5+/vr+++/V69evXK97mR9zDZt2qhPnz4aO3asatasKUnas2ePRo0aZXQWga+vr+677z7dd999OnHihF599VV17tzZ0Zp9ffr0UZ8+fdS3b19PPcJt27Zp5syZxqaZfv7551q9erUnoWRK1sRizlhOJx1tNypsP8xJUsOGDfX5559rz549crlcqlWrlqcxY+J7YONhPzU1VSkpKbnunadOnVJqaqojMXKKiIjQK6+8oqNHj6pDhw4KCgoyWk5hy5YtatiwobFkdFZbt27V4sWLdcMNN2S7z5ioV1y9enV17NjRs2r7ihUr1LBhQ0+pLKdLOtloxLtVqlRJI0aM8MwaM1mvdeTIkerQoYOn/M/ixYs1cuRIvfvuu47HkqQnnnhCXbt2VdWqVY2dIzYbTAVxD5WUZ4kNpzVv3lyvvPKKhgwZ4unAy8jI0OTJk9WsWTMjMW2cH1nZSBp06dJFXbp00S+//KKoqCh17NhRp06dUlRUlB5++GHHB43YbNO4JSQk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9evnGhFrok7Uiy++qJ07d6ply5aaOnWqqlev7th7X4iNhyspcxG2F198URkZGVqzZo22bdumTz75RGPHjnUsRqtWrTR48OA8Fy0z+cC/evVqvfbaa/L399frr7+u2267zVisUqVKqU2bNmrevHm2G5mpB4Ks1w+T15K8krd79+61Ojrb1PHZeojz9fX1JCbWr1+v0NBQVapUSS1atNBrr73maCw39wiGFStWeLaZGMV55syZbLNHsv6/03+3+Ph4TwIrNjZWAQEBmjt3rg4fPqxnn33WSGK6Zs2a6tGjh/Ea627Dhg0rsPr0ycnJOnDggJH3vv7663XmzBlr9TFtNOKzMj1TzD0NMyfTI1SvvfZa42UhsiYHvvvuOz3wwAOSpLJlyxrtyLB1Dz1x4oSuuuoq/fXXX+rcubPatm0rPz8/Y88+KSkp2epKN2rU6IIlzi6VjfMjK5tJgzlz5njuZ+7OkazbnGZzQIpkb3T22rVrFR4ersDAQEmZbbjJkycbiXfbbbdpyJAhnsETCxcuNPLc734WKFasmKpVq5bt+mFqdlVKSopmzpyZ7W/23HPPGStP+MMPP3gWbzedrxg2bJj69OmjevXqGS+vkZCQoPfee08xMTGeWKZmOL355ptq1aqVtm7dqnXr1ql79+7GOgndbN3X3CIiInT06FFji7hLUkZGhhITE7MtjpmRkWEk1oEDBzRo0CD9/PPP8vHx0S233KLJkyerRo0ajseyeW08n6yLgDrNVC7rH5GYNmndunVaunSpJk2a5KlpbfJEkDJ7Ydq3b6958+apfv36qlu3rnr06GE0pqRsFycTF6o6depYK+WxYsUKlStXTvPnz9eHH37o2W66MZjz4eqTTz4xllSdOHGi5syZo7CwMEnS7bffroiICEdj9O3bVxEREWrWrFmuRcv69evnaCxJ2rJli6ZMmaKMjAwNHTrU6OI/btdff73RWrdZNW3aVM8884zatGkjHx8fRUdHG6sxait5279//3wTL3/99ZejsbKy8RCXnp6utLQ0FStWTN99950ef/xxz2tpaWlGYtoaxWlztGjWBNa3337rSWBVrVrV2N8uNTVV1113nXbu3Gnk/d0OHDigGjVqqHz58p51GrIyMZona43pjIwMHTx4UE899ZTjcaTMDrquXbuqQYMGxktrSHYb8TZmitkemepmoyxEsWLF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uMPx51QS04VIXlO43UxP5Y6IiND27dt1yy23GL0opqenq2/fvp7ksKlRBue7AJoYWebn5+eZPnjdddd5vshFihQxMhXT5XKpS5cuWrJkiZVRowVl4sSJRpOAknKtRH/y5EljHSYnT550fIRofmwlb3/77bdsSWm3Bx54wFgPss0Ef06mzg23+Ph4vfPOO0pLS1OjRo3UuHFjNWrUSFdffbXRuLa98847Rhuev//+e7bRrzVq1NCePXscj2MzWXy+6eimyji1bt3aWoJAstuItzFTzK106dL6888/Pc8fGzduVJkyZYzFs1kWIivT10db91Cbi8O6zZ07V3FxcVaSPbbPj+bNm2vZsmX68ccfjSUNfv31VzVu3FhfffWVihUrZvT7lZXJRnxONkdnx8TE6L777lO5cuUkZZYw++qrr4wMtrnmmmt07Ngxzzlx/Phxa53zpv9mUma5CRt1mLMy+X0ODw/X5MmTsy3EnNWiRYuMxF27dm22hZFNLDYnZdbsvvHGGz0z2D/++GONHDkyz5nfTrB1XytRooRn8XFJqlKliqpUqWI0nq3FMaXMZ7p77rnHU0LV5KDO/fv3a//+/dnKtdr+jpuyb98+YyX8SEwXIgU5hfv7779XXFyc8YaLr6+vzpw5o4yMDBUpUsRIzVu3rA85WbeZaDhlneaZc8qnicW9fHx8VKNGDf3111+eh0ZvZLqRK2UucDdy5EidOnVKixcv1ocffmhssZCbbrpJCQkJRh8E3Gwlb0uUKHFJr10Omwn+nO68806j7z9q1ChJmbV9v/zyS7366qs6dOhQoa4xnRfT3+3y5ctrxowZat++vaTMKafly5d3PI7NZHFBJMuaNGli5XqVlelG/LfffqsGDRpozZo1+cZ32qBBg/TMM8/o4MGD6tatm/bu3etZVMmEF154QW+88Ua2kgbubSaZTprZvIfa5u/vb3UEoq2yIVLmYovDhg3LtiCye5tTbrzxRrVo0UKlS5dWamqqpk+fnq2OtikmG/E52RydPXfuXIWGhnp+Ll++vObOnetoYto9ar5UqVIKCQnxnB9ffvmllb+dJH3yySdG33/37t168803c/3NTCVv3Uwe15NPPikp+0LMps2ZM0exsbF69NFHJUmvvPKKQkNDjSzct3//fk2fPt3zc//+/Y2WXzF9X3vyySf1/vvvq1GjRtk6EkyW1pDsLo65cuVKTZgwQUeOHJH0/8dmou00depULVy4UAEBAZ6BkKbKyhSEGjVqKDk52chIcBLThdSxY8f0448/ysfHR3Xr1jWyYF9WplYjzkvdunX1/PPPq3Xr1ipdurRnu5Nf6Pbt26t///4aP368p7zFvn37NGLECE+iwkk5p31m/X9TtT9LlSqlNm3aqHnz5tkWejHxgFpQTC76mZ6ertTUVD399NNasmSJTp48qTVr1qh79+6eBx+nnTx5Uo899piVafG2krc5a3HmfM2EgkxO5LXAjJO2b9+u9evXa/369Tp69KiaNm1qrYFmU/fu3Y2+f2RkpMaPH+8ZrdGoUSNFRkY6HqcgksU2tWvXTvXr11eXLl089WhNmDx5ssLDw9W/f/8875lOXiOjo6PVoEEDvf3227leM9W4qFu3rubNm6fvvvtOUuYMuay1mZ2WV/3q3bt3Oxojr/JzDRo08Gw3MVLJ5j3UtiZNmmjSpEl69NFHsx2biWSxzbIhUma5u5zyKrdxOd5880199NFHCgwM1IYNGzRjxgwr906TjficbI7OzovTi7m72y433nhjtvO8Q4cOjsbJyWaC371gX9u2bY3P8LN1XO665qZLLWa1ZMkSffTRR57vWbdu3dSpUycjiemMjAwlJiaqUqVKkjJnoGZkZDgex830fc09e9VmTXDJ7uKYkyZN0vTp03XbbbcZLxuyYsUKffHFF15XwsOtTJkyateunZo1a5btPkON6X+ozz77TCNGjNCtt94ql8ulHTt2aOzYsdmmXzitZs2a6tGjhx544IFsJ6GJmmzuhtmCBQs825xuDD755JM6duyYHnvsMc9F/uzZs+rRo4d69OjhWBy3gkhOXH/99V5XUzqrc+fOqUWLFnmOfHfClClTVKtWLbVv316PPfaYZxTIvHnzNHXqVCMPqDanxdtK3uZVi9PNVKeM7eRESkqKZs6cma3eXO/evY0kXh5//HHVr19fgwYNUsOGDR1//4KQVwKrZcuWRhNYVapUsbJwkrdbvXq1li9frtdee01JSUnq0qWLQkJCHH8gb9CggSRlG1Fpirs+q82alW+99Zbat29vfETNJ598oo8//lh79+7V448/7tmelJSkG264wdFYeZWfc/9saqSS7dIyNsXExEjKbPS6mUoW2yob8umnn+rTTz/V77//rhdeeMGzPTk52fEZ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jo+P19ixYx2N8Z///Ec9e/bUf/7zHz3//POekdJt2rTRs88+62isf4KWLVvm2maq1JGUmcDN+l0uWrSoDh06JD8/P8cbNDZHqIaGhqpt27b68MMPVbVqVc/2GjVqqG3bto7HO3funCRp8+bNatGihUqWLGnsXpOamqrGjRvL5XKpcuXKGjBggLp162ZkJJbNe6htJUqUyHUfM/lds9UpI2U2bENDQxUaGuqpVT916tRCXavezWQjPiebo7O3bNmiBQsW6Prrr882ytLU7NZ169bp559/ztaOMZWIt5ngT0pK0pw5c3Id27x58xyPZfO40tPT1bdvX82aNctop/+vv/6qli1bavv27cZi5FS8eHFPUlqSGjZs6PhirVnZuq99/fXXqlatmsqUKaPw8HBt27ZNw4cPV9OmTR2PJWXmkv78889ss6FNrYN1xx13aODAgUbrPo8bN06zZ8/O89nG5Iwj24oWzZ4+PnnypGODO0lMF1LHjx/Xjz/+KB8fH9WtW9d4jemcD8Nnz541NsK4du3aWrJkiVwulw4ePKi33npLDRo0cDRGXr1ZVatWzbYQYmGVs45e1v832YgxrUuXLrr99tt15MgR3XPPPZ7tvr6+RqbCFS1aVFOmTNG+ffsUHx8vl8ulW2+91TOa04TOnTvr+eef1/HjxzV9+nTFxMRowIABRmJ588iygkhONG/eXM2bN/fUa3Va1uutO6mU12uF2UMPPaQGDRroxx9/lMvlUv369R3vdCpZsqRmz56t7t27y+Vyafny5Wrbtq3R6Yre6HwLBOY8P5101113qVevXgoJCZGPj4+WLFmiBg0a6NSpU44npm2MUHWP8nruuefybLh06dIl26JwTgkICNC///1v7d69W4MGDdKZM2ccj+HmvvaWK1dOO3bsUJUqVfT7778biWXzHmpb1apVtWXLFvn4+CgjI0OzZs3STTfdZCSWzU4ZN5u16m0y2YjPyebobJslKKZMmaJt27bpt99+0/33369Vq1apcePGjscpiNG3Q4cOVUBAgPbu3asXXnhBUVFRji8EVxDH5evrqzNnzsjlchlte7rvjzbXwmrYsKGWLFniKUuydOlSxwejZGXrvrZ48WI99dRT2rBhg44dO6YJEyZo3LhxxhLTYWFheuaZZ3Tw4EF169ZNe/fu1ZtvvmkklrvjwmTd59mzZ0squLJR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h7R79259+OGHat26te655x51797ds+C6U0qXLq0ff/xRdevWlST9+OOP2RaILazuu+8+SZmDOrdu3erpbI2Li3OstBOJ6UJozJgxCgsL06hRo+Tj46PAwEBNnjzZSCz3F2n//v3avHmzHnzwQUnSF1984XgxfPfCBX379lVsbKxq1KghSTpw4IBngTanjRo1SgMHDvRMGzl79my23mRcWZKTk/XWW28pKipKHTp00Keffmp0SrAt7gv69OnTNW/ePM8Dz3333acePXo4upK2N48ss/0Q98cff+iaa67Js17rI4884ng8b+dONNpYJA2F08mTJzV27Fhr8fbv36/9+/dnG+3iZCLQ5XJp7dq1Wrx4sXbu3KmWLVvqk08+8Tz/mGKzE+jYsWN67LHH1KBBg2yNMycTSzbvoba5Rx2Gh4dr6NChnsbu1q1bjd2vbXbKSN45wsxGIz4vtkZn2yhB4Xb11Vd7/r9Pnz5GYmQVERGhF154Qe+++67Wrl2rFi1aWCkfZXqgiO3jWr58uSIjI3Xy5ElVrlxZ+/fvV506dYx0ONlYC+vJJ5+UlPcMXhNs39d+/PFHvfjii8rIyNCaNWu0bds2ffLJJ8aeub766qtsZV569uypTp06qXv37kbiZVWsWDEVL15cgwcPVrNmzRQREeHYe4eHh6tv376eNWt+++03/ec//3Hs/QtKmzZtJEmxsbGaP3++SpQoISlzNLpTFRVITBdC1113nT755BOdOnVKLpfLaGLOfdF75plnsi1I0rt3b0e/xFn9/vvv2RplNWrU0J49e4zEatiwob744gvt2bNHLpdLtWrVylV/C1eGt99+W++9954eeeQRLV261NgsgYKUkJCgs2fPei72qampOnLkiKMxvHlkme2HuL59+yo6OlolSpTQrFmzPEmCKlWq6LPPPjNa+sgbtWrVytoiaSicbrrpJiUkJBiph5zT1KlTtXDhQgUEBHhK8zhdH7N58+by9/dX27Zt1bdvX/n4+Ojs2bPGF+O02Qn06KOP6tFHH/UsOG2SjXtoQdm1a5cnKS1lLhw1evRoR2MURNkQyTtHmNloxLsVxOhsmyUodu/erVmzZmn//v3ZSjg53TGTdcbsyy+/rGeeeUZ33323unbt6njt20aNGuX5N3N30ji5gJ7N48pq1qxZWrx4sXr27KmYmBh9/fXX+uyzz4zE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xQcffIDQ0FAWpf9LLEwTEREREVWTlZWF4OBgWFpaAgCsra1RVVWlcFZEREREVNuYm5sjNzdX6TSMFgvTRERERETV6ArSOuXl5eD0OyIiIiKqbuHChQAANzc3RERE4OLFi7h69ar+P3o+C6UTICIiIiKqTVxdXREdHQ21Wo309HTExsbC3d1d6bSIiIiIqBbJyMgAAMTFxQEAfvzxR/1jgiDg2LFjSqRlVLj8kIiIiIiomoqKCsTExOD48eMAAHd3d0ybNg3m5uYKZ0ZEREREtYW3tzdUKpXSaRg1FqaJiIiIiADs3r37Lx/39/eXKRMiIiIiqu3at2+PBg0a/Onjp0+fljEb48RRHkREREREACIjI9GhQwe0adNG6VSIiIiIqJZzdHTEli1blE7DqLEwTUREREQEYPny5UhMTMTVq1fh5eWF4cOHw9bWVum0iIiIiKgWsrKywuuvv650GkaNozyIiIiIiKq5efMmVCoVDh8+DGdnZwQGBuKNN95QOi0iIiIiqkXGjBmDAwcOKJ2GUWNhmoiIiIjoCUVFRUhJScHGjRsxb948jB49WumUiIiIiIhMCgvTREREREQAtFotTp48iYSEBGRlZcHDwwNeXl5wcHBQOjUiIiIiIpPDwjQREREREYDevXvDzs4OPj4+6NatGwRBMHi8devWCmVGRERERGR6WJgmIiIiIgLg7u6u/1oQBFR/mywIAo4dO6ZEWkREREREJomFaSIiIiIiIiIiIiKSlZnSCRARERERERERERHRi4WFaSIiIiIiIiIiIiKSFQvTRERERERERERERCQrFqaJiIiIiIiIiIiISFYsTBMRERERERERERGRrP4/ZFbAMbNZGZoAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1800x360 with 1 Axes>"
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(25, 5))\n",
jpronkko's avatar
jpronkko committed
    "sns.set_theme()\n",
    "profile_mut_all[\"tumor_types\"].value_counts().sort_index().plot(kind=\"bar\")\n",
    "#sns.countplot(x=profile_mut_all[\"tumor_types\"], palette=sns.hls_palette(2))\n",
    "plt.xticks(rotation=90);\n"
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
jpronkko's avatar
jpronkko committed
    "### Check activites data content"
  {
   "cell_type": "code",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
jpronkko's avatar
jpronkko committed
      "Some content from the full act set:\n"
jpronkko's avatar
jpronkko committed
      "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>SBS1</th>\n",
       "      <th>SBS2</th>\n",
       "      <th>SBS3</th>\n",
       "      <th>SBS4</th>\n",
       "      <th>SBS5</th>\n",
       "      <th>SBS6</th>\n",
       "      <th>SBS7a</th>\n",
       "      <th>SBS7b</th>\n",
       "      <th>SBS7c</th>\n",
       "      <th>SBS7d</th>\n",
       "      <th>...</th>\n",
       "      <th>SBS52</th>\n",
       "      <th>SBS53</th>\n",
       "      <th>SBS54</th>\n",
       "      <th>SBS55</th>\n",
       "      <th>SBS56</th>\n",
       "      <th>SBS57</th>\n",
       "      <th>SBS58</th>\n",
       "      <th>SBS59</th>\n",
       "      <th>SBS60</th>\n",
       "      <th>tumor_types</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mut_tri</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>ALL::11</th>\n",
       "      <td>0.066667</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.066667</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ALL::2211636</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ALL::2211638</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ALL::2211640</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ALL::2211642</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.250000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>ALL</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 66 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                  SBS1  SBS2  SBS3  SBS4      SBS5  SBS6  SBS7a  SBS7b  SBS7c  \\\n",
       "mut_tri                                                                         \n",
       "ALL::11       0.066667   0.0   0.0   0.0  0.066667   0.0    0.0    0.0    0.0   \n",
       "ALL::2211636  0.000000   0.0   0.0   0.0  0.000000   0.0    0.0    0.0    0.0   \n",
       "ALL::2211638  0.000000   0.0   0.0   0.0  0.333333   0.0    0.0    0.0    0.0   \n",
       "ALL::2211640  0.000000   0.0   0.0   0.0  0.000000   0.0    0.0    0.0    0.0   \n",
       "ALL::2211642  0.000000   0.0   0.0   0.0  0.250000   0.0    0.0    0.0    0.0   \n",
       "\n",
       "              SBS7d  ...  SBS52  SBS53  SBS54  SBS55  SBS56  SBS57  SBS58  \\\n",
       "mut_tri              ...                                                    \n",
       "ALL::11         0.0  ...    0.0    0.0    0.0    0.0    0.0    0.0    0.0   \n",
       "ALL::2211636    0.0  ...    0.0    0.0    0.0    0.0    0.0    0.0    0.0   \n",
       "ALL::2211638    0.0  ...    0.0    0.0    0.0    0.0    0.0    0.0    0.0   \n",
       "ALL::2211640    0.0  ...    0.0    0.0    0.0    0.0    0.0    0.0    0.0   \n",
       "ALL::2211642    0.0  ...    0.0    0.0    0.0    0.0    0.0    0.0    0.0   \n",
       "\n",
       "                 SBS59  SBS60  tumor_types  \n",
       "mut_tri                                     \n",
       "ALL::11       0.000000    0.0          ALL  \n",
       "ALL::2211636  0.000000    0.0          ALL  \n",
       "ALL::2211638  0.666667    0.0          ALL  \n",
       "ALL::2211640  0.000000    0.0          ALL  \n",
       "ALL::2211642  0.000000    0.0          ALL  \n",
       "\n",
       "[5 rows x 66 columns]"
      ]
     },
jpronkko's avatar
jpronkko committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"Some content from the full act set:\")\n",
    "act_mut_all.head(5)"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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sdasWaPo6Gi1bdtWY8aMUd++ffXyyy8biRUXF6eoqCjPSOaqVasaKUFRpEiRPO9jvr6+xtr0o0eP1osvvqiJEyfq7bff1vz58x3vPC5SJP/KrSaO66677pIkTZ8+XfPmzfPEuO+++9SjRw8jI0eXLFmijz76yHPP6datmzp16mQkMZ2enq709HTPuZKWlpbtecQptu5rzZo103XXXacuXbrojTfeUPHixXX//fc7GiOrNm3a6PTp02rTpo2io6NVtWpVBQUFGUtKS9KsWbO0ePFi9ezZUzExMfr666+NzaSyeW20mRuZN2+eoqKidObMGbVt21YxMTHq0qWLpzPICV6XmM5v+ojL5VJiYqLj8X777bd8X3P6wdvt+uuv15kzZxy/ceVl1apVioqK0rfffquHH35Y48aNU3h4uHr16mUkXl4XJRMj2a699lrP/7vrIVesWNHxODnZeLj67rvvtHjxYv3555/ZHsSvuuoqx5NX6enpSk5OVsmSJbVlyxY99dRTntecvkmnp6crLS1NxYoV03fffefpgZcyHwpMycjIUHJysooWLarU1FQj5+OCBQtUv3599erVS40aNZJkviPNfSMrVaqU/vjjD1199dWO1YjKydb32nZy4nznnalz0v292rhxo1q1apVvQ8opO3fuVGRkpNatWydJKl26tDIyMhyNcerUKV199dW5tleuXFmnT592NFZWDRs2VMOGDfXzzz+rd+/eev/999W8eXOFh4crICDA0VjHjh3TY489pgYNGnim/UsyMvVz8+bN2UZxuhuD77//vlq1auVorO+//15xcXHZknMm2WjEu23btk1Lly5VcHCwnn32WXXu3DnPGRKXw/0ssnnzZv33v//1bB8+fLi6du1qbEbJJ598ooULF6pTp0565513tHPnTs2ePdvRGOfrCD916pSjsQriHipJRYsW1YEDBzwdWvv373f8etysWTM1bNhQL7/8su68805JmbNJTLJxfmRlI2nwwQcfOPp+F2KjEZ/Tvn37NH36dK1atUqtW7fWQw89ZLS9VrRoUfn4+CgtLU1VqlTR4cOHjcQqUaJErnuMie93amqqUlJSVLJkyWzbT506ZSTx6I7ZuHFjuVwuVa5cWQMGDFC3bt0c/7sdO3YsVzv32LFjRmeTJyQk6OzZs56yn6mpqTpy5IixeFk7QvPqFHVK06ZNNWDAAHXv3l1S5ne9WbNmjsexdV/717/+pQ0bNmjdunWqUqWKp2PBFF9fX08y350rM32/Llq0qCpVquTpOL7nnns0ffp0I7FsXhtt5kYmTJigxo0ba8yYMZ5nHqf/bl6XmDY1aiw/57txmJoa/NJLL6lr165q0KBBtoSPiSlGffv2VePGjfXpp596bmimLh5nz57VuXPnVLRo9tMyLS3N8ZG+UmZdnjlz5ngS05UqVdIzzzyjJ5980vFYbjYertq0aaM2bdpo8eLFatu2raPvndMTTzyhdu3aqUyZMqpatapuu+02SZm1d51O9D/00EPq0aOHKlSoIB8fH9WvX1+S9PvvvxvtpOnUqZNq166txYsX68iRIxo4cKA2bNjgaE22devWaenSpZo0aZL++usvhYaGGl9opWHDhjpx4oQ6deqktm3bys/PTw8//LDjcWx+r20nJypWrKj4+PhcUxPj4+OzTfNz0l133aWHH35YLpdLo0eP1smTJ887GuZy5bxenT171vGGzJkzZ/J9zcS1323Lli2aP3++fvzxRz3++ONq3769NmzYoD59+mjlypWOxnr00UeNJiSyOn78uM6ePet5BklNTVVCQoJ8fHwcXxeiatWqjr7fhdhqxEv//wzn6+urlJQUlSlTxlij+siRI9kSB8eOHdPRo0eNxJIyG06lSpVSRkaGXC6Xateu7fhU5AYNGmjOnDm5kutz5871JFidUhD3UCmzZmSnTp08o23XrFmjcePGORqje/fuWrp0qV599VW1a9fOyH06JxvnR1Y2kgbnG0gkyfE1IWw04nNytwmLFSumEydOqFy5csYSIqVLl1ZKSorq16+viIgI+fv7G+skr1q1qrZs2SIfHx9lZGRo1qxZRuq4t2rVSoMHD9aECRM8ic2kpCSNHDlSjzzyiOPxJHk+s3LlymnHjh2qUqWK4zPu2rdvr/79+2v8+PG6/vrrJWV2YowYMSJXPW0ntWzZUh07dvR0iH/66adq2bKlkVi33XabhgwZovbt28vHx0cLFy70tEmdNnDgQM2ePVuvvPKKXC6X7rvvPiPPILbua2+88Yb++usvLVmyRBMnTtRff/2l5OTkbJ2uTlq0aJF+++03LVq0SB07dlStWrV0+vTpPDuFnOLn5yeXy6Xrr79eH3zwga699lodP37cSCyb10abuZFly5Zp0aJF6tSp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ooSkzOu0yc5CG414t9atW2vBggVq2bJltiSgiaT4gQMHNGjQIP3888/y8fHRLbfcosmTJ+c5ys0JdevWNVJOKSdbDaaCuIdK0scff6zZs2erdOnS8vPzM1Jj+uzZszp37lyu+2VaWpqxRryt88PNRtJgxIgRWrx4sbp06aK2bdsaaTNlZbNN49atWze9/vrrevDBB7Nds0zM4m3cuLH69OmjIkWKGDv33erVq+eZCWRyIEVBXEciIiL03HPP6Z577snWAeXkrNMaNWrom2++yVWreP369UZnhI4aNUo33nijIiIi5HK59Mknn2jkyJFGBkmNHTtWK1euVFBQkKZOnaqbbrpJUuZAukceecTRWOvXr1dERIQSExNVpEgRpaWlqXz58o6f+7bOxwYNGmjOnDm5Zt/MnTvXyLorN998s5YuXZprEMOyZcs8fzenPf/88+rQoYPq1KljvAyuzWtj+/bt1b9/f40fP94zK37fvn0aMWJErlmol6t48eI6cOBArufSAwcOONZR7nWJaSmzYbR69WpFRUXphx9+0Llz5/TOO+84viiUJH344YeKjY2Vn5+f2rRpo5iYGOMjeb755htFREToyy+/VJUqVfTaa6+pV69exh6ybDUsbJzwbu5VifNjqhSLrYcrKXN6/LZt2/Tbb7/p/vvv16pVqxwfDT5lyhT5+/vr+++/V69evXK97mR9zDZt2qhPnz4aO3asatasKUnas2ePRo0aZXQWga+vr+677z7dd999OnHihF599VV17tzZ0Zp9ffr0UZ8+fdS3b19PPcJt27Zp5syZxqaZfv7551q9erUnoWRK1sRizlhOJx1tNypsP8xJUsOGDfX5559rz549crlcqlWrlqcxY+J7YONhPzU1VSkpKbnunadOnVJqaqojMXKKiIjQK6+8oqNHj6pDhw4KCgoyWk5hy5YtatiwobFkdFZbt27V4sWLdcMNN2S7z5ioV1y9enV17NjRs2r7ihUr1LBhQ0+pLKdLOtloxLtVqlRJI0aM8MwaM1mvdeTIkerQoYOn/M/ixYs1cuRIvfvuu47HkqQnnnhCXbt2VdWqVY2dIzYbTAVxD5WUZ4kNpzVv3lyvvPKKhgwZ4unAy8jI0OTJk9WsWTMjMW2cH1nZSBp06dJFXbp00S+//KKoqCh17NhRp06dUlRUlB5++GHHB43YbNO4JSQk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9evnGhFrok7Uiy++qJ07d6ply5aaOnWqqlev7th7X4iNhyspcxG2F198URkZGVqzZo22bdumTz75RGPHjnUsRqtWrTR48OA8Fy0z+cC/evVqvfbaa/L399frr7+u2267zVisUqVKqU2bNmrevHm2G5mpB4Ks1w+T15K8krd79+61Ojrb1PHZeojz9fX1JCbWr1+v0NBQVapUSS1atNBrr73maCw39wiGFStWeLaZGMV55syZbLNHsv6/03+3+Ph4TwIrNjZWAQEBmjt3rg4fPqxnn33WSGK6Zs2a6tGjh/Ea627Dhg0rsPr0ycnJOnDggJH3vv7663XmzBlr9TFtNOKzMj1TzD0NMyfTI1SvvfZa42UhsiYHvvvuOz3wwAOSpLJlyxrtyLB1Dz1x4oSuuuoq/fXXX+rcubPatm0rPz8/Y88+KSkp2epKN2rU6IIlzi6VjfMjK5tJgzlz5njuZ+7OkazbnGZzQIpkb3T22rVrFR4ersDAQEmZbbjJkycbiXfbbbdpyJAhnsETCxcuNPLc734WKFasmKpVq5bt+mFqdlVKSopmzpyZ7W/23HPPGStP+MMPP3gWbzedrxg2bJj69OmjevXqGS+vkZCQoPfee08xMTGeWKZmOL355ptq1aqVtm7dqnXr1ql79+7GOgndbN3X3CIiInT06FFji7hLUkZGhhITE7MtjpmRkWEk1oEDBzRo0CD9/PPP8vHx0S233KLJkyerRo0ajseyeW08n6yLgDrNVC7rH5GYNmndunVaunSpJk2a5KlpbfJEkDJ7Ydq3b6958+apfv36qlu3rnr06GE0pqRsFycTF6o6depYK+WxYsUKlStXTvPnz9eHH37o2W66MZjz4eqTTz4xllSdOHGi5syZo7CwMEnS7bffroiICEdj9O3bVxEREWrWrFmuRcv69evnaCxJ2rJli6ZMmaKMjAwNHTrU6OI/btdff73RWrdZNW3aVM8884zatGkjHx8fRUdHG6sxait5279//3wTL3/99ZejsbKy8RCXnp6utLQ0FStWTN99950ef/xxz2tpaWlGYtoaxWlztGjWBNa3337rSWBVrVrV2N8uNTVV1113nXbu3Gnk/d0OHDigGjVqqHz58p51GrIyMZona43pjIwMHTx4UE899ZTjcaTMDrquXbuqQYMGxktrSHYb8TZmitkemepmoyxEsWLF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uMPx51QS04VIXlO43UxP5Y6IiND27dt1yy23GL0opqenq2/fvp7ksKlRBue7AJoYWebn5+eZPnjdddd5vshFihQxMhXT5XKpS5cuWrJkiZVRowVl4sSJRpOAknKtRH/y5EljHSYnT550fIRofmwlb3/77bdsSWm3Bx54wFgPss0Ef06mzg23+Ph4vfPOO0pLS1OjRo3UuHFjNWrUSFdffbXRuLa98847Rhuev//+e7bRrzVq1NCePXscj2MzWXy+6eimyji1bt3aWoJAstuItzFTzK106dL6888/Pc8fGzduVJkyZYzFs1kWIivT10db91Cbi8O6zZ07V3FxcVaSPbbPj+bNm2vZsmX68ccfjSUNfv31VzVu3FhfffWVihUrZvT7lZXJRnxONkdnx8TE6L777lO5cuUkZZYw++qrr4wMtrnmmmt07Ngxzzlx/Phxa53zpv9mUma5CRt1mLMy+X0ODw/X5MmTsy3EnNWiRYuMxF27dm22hZFNLDYnZdbsvvHGGz0z2D/++GONHDkyz5nfTrB1XytRooRn8XFJqlKliqpUqWI0nq3FMaXMZ7p77rnHU0LV5KDO/fv3a//+/dnKtdr+jpuyb98+YyX8SEwXIgU5hfv7779XXFyc8YaLr6+vzpw5o4yMDBUpUsRIzVu3rA85WbeZaDhlneaZc8qnicW9fHx8VKNGDf3111+eh0ZvZLqRK2UucDdy5EidOnVKixcv1ocffmhssZCbbrpJCQkJRh8E3Gwlb0uUKHFJr10Omwn+nO68806j7z9q1ChJmbV9v/zyS7366qs6dOhQoa4xnRfT3+3y5ctrxowZat++vaTMKafly5d3PI7NZHFBJMuaNGli5XqVlelG/LfffqsGDRpozZo1+cZ32qBBg/TMM8/o4MGD6tatm/bu3etZVMmEF154QW+88Ua2kgbubSaZTprZvIfa5u/vb3UEoq2yIVLmYovDhg3LtiCye5tTbrzxRrVo0UKlS5dWamqqpk+fnq2OtikmG/E52RydPXfuXIWGhnp+Ll++vObOnetoYto9ar5UqVIKCQnxnB9ffvmllb+dJH3yySdG33/37t168803c/3NTCVv3Uwe15NPPikp+0LMps2ZM0exsbF69NFHJUmvvPKKQkNDjSzct3//fk2fPt3zc//+/Y2WXzF9X3vyySf1/vvvq1GjRtk6EkyW1pDsLo65cuVKTZgwQUeOHJH0/8dmou00depULVy4UAEBAZ6BkKbKyhSEGjVqKDk52chIcBLThdSxY8f0448/ysfHR3Xr1jWyYF9WplYjzkvdunX1/PPPq3Xr1ipdurRnu5Nf6Pbt26t///4aP368p7zFvn37NGLECE+iwkk5p31m/X9TtT9LlSqlNm3aqHnz5tkWejHxgFpQTC76mZ6ertTUVD399NNasmSJTp48qTVr1qh79+6eBx+nnTx5Uo899piVafG2krc5a3HmfM2EgkxO5LXAjJO2b9+u9evXa/369Tp69KiaNm1qrYFmU/fu3Y2+f2RkpMaPH+8ZrdGoUSNFRkY6HqcgksU2tWvXTvXr11eXLl089WhNmDx5ssLDw9W/f/8875lOXiOjo6PVoEEDvf3227leM9W4qFu3rubNm6fvvvtOUuYMuay1mZ2WV/3q3bt3Oxojr/JzDRo08Gw3MVLJ5j3UtiZNmmjSpEl69NFHsx2biWSxzbIhUma5u5zyKrdxOd5880199NFHCgwM1IYNGzRjxgwr906TjficbI7OzovTi7m72y433nhjtvO8Q4cOjsbJyWaC371gX9u2bY3P8LN1XO665qZLLWa1ZMkSffTRR57vWbdu3dSpUycjiemMjAwlJiaqUqVKkjJnoGZkZDgex830fc09e9VmTXDJ7uKYkyZN0vTp03XbbbcZLxuyYsUKffHFF15XwsOtTJkyateunZo1a5btPkON6X+ozz77TCNGjNCtt94ql8ulHTt2aOzYsdmmXzitZs2a6tGjhx544IFsJ6GJmmzuhtmCBQs825xuDD755JM6duyYHnvsMc9F/uzZs+rRo4d69OjhWBy3gkhOXH/99V5XUzqrc+fOqUWLFnmOfHfClClTVKtWLbVv316PPfaYZxTIvHnzNHXqVCMPqDanxdtK3uZVi9PNVKeM7eRESkqKZs6cma3eXO/evY0kXh5//HHVr19fgwYNUsOGDR1//4KQVwKrZcuWRhNYVapUsbJwkrdbvXq1li9frtdee01JSUnq0qWLQkJCHH8gb9CggSRlG1Fpirs+q82alW+99Zbat29vfETNJ598oo8//lh79+7V448/7tmelJSkG264wdFYeZWfc/9saqSS7dIyNsXExEjKbPS6mUoW2yob8umnn+rTTz/V77//rhdeeMGzPTk52fEZ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jo+P19ixYx2N8Z///Ec9e/bUf/7zHz3//POekdJt2rTRs88+62isf4KWLVvm2maq1JGUmcDN+l0uWrSoDh06JD8/P8cbNDZHqIaGhqpt27b68MMPVbVqVc/2GjVqqG3bto7HO3funCRp8+bNatGihUqWLGnsXpOamqrGjRvL5XKpcuXKGjBggLp162ZkJJbNe6htJUqUyHUfM/lds9UpI2U2bENDQxUaGuqpVT916tRCXavezWQjPiebo7O3bNmiBQsW6Prrr882ytLU7NZ169bp559/ztaOMZWIt5ngT0pK0pw5c3Id27x58xyPZfO40tPT1bdvX82aNctop/+vv/6qli1bavv27cZi5FS8eHFPUlqSGjZs6PhirVnZuq99/fXXqlatmsqUKaPw8HBt27ZNw4cPV9OmTR2PJWXmkv78889ss6FNrYN1xx13aODAgUbrPo8bN06zZ8/O89nG5Iwj24oWzZ4+PnnypGODO0lMF1LHjx/Xjz/+KB8fH9WtW9d4jemcD8Nnz541NsK4du3aWrJkiVwulw4ePKi33npLDRo0cDRGXr1ZVatWzbYQYmGVs45e1v832YgxrUuXLrr99tt15MgR3XPPPZ7tvr6+RqbCFS1aVFOmTNG+ffsUHx8vl8ulW2+91TOa04TOnTvr+eef1/HjxzV9+nTFxMRowIABRmJ588iygkhONG/eXM2bN/fUa3Va1uutO6mU12uF2UMPPaQGDRroxx9/lMvlUv369R3vdCpZsqRmz56t7t27y+Vyafny5Wrbtq3R6Yre6HwLBOY8P5101113qVevXgoJCZGPj4+WLFmiBg0a6NSpU44npm2MUHWP8nruuefybLh06dIl26JwTgkICNC///1v7d69W4MGDdKZM2ccj+HmvvaWK1dOO3bsUJUqVfT7778biWXzHmpb1apVtWXLFvn4+CgjI0OzZs3STTfdZCSWzU4ZN5u16m0y2YjPyebobJslKKZMmaJt27bpt99+0/33369Vq1apcePGjscpiNG3Q4cOVUBAgPbu3asXXnhBUVFRji8EVxDH5evrqzNnzsjlchlte7rvjzbXwmrYsKGWLFniKUuydOlSxwejZGXrvrZ48WI99dRT2rBhg44dO6YJEyZo3LhxxhLTYWFheuaZZ3Tw4EF169ZNe/fu1ZtvvmkklrvjwmTd59mzZ0squLJR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h7R79259+OGHat26te655x51797ds+C6U0qXLq0ff/xRdevWlST9+OOP2RaILazuu+8+SZmDOrdu3erpbI2Li3OstBOJ6UJozJgxCgsL06hRo+Tj46PAwEBNnjzZSCz3F2n//v3avHmzHnzwQUnSF1984XgxfPfCBX379lVsbKxq1KghSTpw4IBngTanjRo1SgMHDvRMGzl79my23mRcWZKTk/XWW28pKipKHTp00Keffmp0SrAt7gv69OnTNW/ePM8Dz3333acePXo4upK2N48ss/0Q98cff+iaa67Js17rI4884ng8b+dONNpYJA2F08mTJzV27Fhr8fbv36/9+/dnG+3iZCLQ5XJp7dq1Wrx4sXbu3KmWLVvqk08+8Tz/mGKzE+jYsWN67LHH1KBBg2yNMycTSzbvoba5Rx2Gh4dr6NChnsbu1q1bjd2vbXbKSN45wsxGIz4vtkZn2yhB4Xb11Vd7/r9Pnz5GYmQVERGhF154Qe+++67Wrl2rFi1aWCkfZXqgiO3jWr58uSIjI3Xy5ElVrlxZ+/fvV506dYx0ONlYC+vJJ5+UlPcMXhNs39d+/PFHvfjii8rIyNCaNWu0bds2ffLJJ8aeub766qtsZV569uypTp06qXv37kbiZVWsWDEVL15cgwcPVrNmzRQREeHYe4eHh6tv376eNWt+++03/ec//3Hs/QtKmzZtJEmxsbGaP3++SpQoISlzNLpTFRVITBdC1113nT755BOdOnVKLpfLaGLOfdF75plnsi1I0rt3b0e/xFn9/vvv2RplNWrU0J49e4zEatiwob744gvt2bNHLpdLtWrVylV/C1eGt99+W++9954eeeQRLV261NgsgYKUkJCgs2fPei72qampOnLkiKMxvHlkme2HuL59+yo6OlolSpTQrFmzPEmCKlWq6LPPPjNa+sgbtWrVytoiaSicbrrpJiUkJBiph5zT1KlTtXDhQgUEBHhK8zhdH7N58+by9/dX27Zt1bdvX/n4+Ojs2bPGF+O02Qn06KOP6tFHH/UsOG2SjXtoQdm1a5cnKS1lLhw1evRoR2MURNkQyTtHmNloxLsVxOhsmyUodu/erVmzZmn//v3ZSjg53TGTdcbsyy+/rGeeeUZ33323unbt6njt20aNGuX5N3N30ji5gJ7N48pq1qxZWrx4sXr27KmYmBh9/fXX+uyzz4zE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xQcffIDQ0FAWpf9LLEwTEREREVWTlZWF4OBgWFpaAgCsra1RVVWlcFZEREREVNuYm5sjNzdX6TSMFgvTRERERETV6ArSOuXl5eD0OyIiIiKqbuHChQAANzc3RERE4OLFi7h69ar+P3o+C6UTICIiIiKqTVxdXREdHQ21Wo309HTExsbC3d1d6bSIiIiIqBbJyMgAAMTFxQEAfvzxR/1jgiDg2LFjSqRlVLj8kIiIiIiomoqKCsTExOD48eMAAHd3d0ybNg3m5uYKZ0ZEREREtYW3tzdUKpXSaRg1FqaJiIiIiADs3r37Lx/39/eXKRMiIiIiqu3at2+PBg0a/Onjp0+fljEb48RRHkREREREACIjI9GhQwe0adNG6VSIiIiIqJZzdHTEli1blE7DqLEwTUREREQEYPny5UhMTMTVq1fh5eWF4cOHw9bWVum0iIiIiKgWsrKywuuvv650GkaNozyIiIiIiKq5efMmVCoVDh8+DGdnZwQGBuKNN95QOi0iIiIiqkXGjBmDAwcOKJ2GUWNhmoiIiIjoCUVFRUhJScHGjRsxb948jB49WumUiIiIiIhMCgvTREREREQAtFotTp48iYSEBGRlZcHDwwNeXl5wcHBQOjUiIiIiIpPDwjQREREREYDevXvDzs4OPj4+6NatGwRBMHi8devWCmVGRERERGR6WJgmIiIiIgLg7u6u/1oQBFR/mywIAo4dO6ZEWkREREREJomFaSIiIiIiIiIiIiKSlZnSCRARERERERERERHRi4WFaSIiIiIiIiIiIiKSFQvTRERERERERERERCQrFqaJiIiIiIiIiIiISFYsTBMRERERERERERGRrP4/ZFbAMbNZGZoAAAAASUVORK5CYII=",
jpronkko's avatar
jpronkko committed
      "text/plain": [
       "<Figure size 1800x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(25, 5))\n",
    "sns.set_theme()\n",
    "act_mut_all[\"tumor_types\"].value_counts().sort_index().plot(kind=\"bar\")\n",
    "#sns.countplot(x=profile_mut_all[\"tumor_types\"], palette=sns.hls_palette(2))\n",
    "plt.xticks(rotation=90);\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Testing with a single RandomForest binary classifier"
   ]
  },
  {
   "cell_type": "code",
jpronkko's avatar
jpronkko committed
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dimension of the training data (16680, 96) and test data (7149, 96)\n",
jpronkko's avatar
jpronkko committed
      "     All  Train  Test    Pred\n",
      "0  23342  16351  6991  7149.0\n",
      "1    487    329   158     NaN\n",
      "Accuracy: 0.9778990068541055\n",
jpronkko's avatar
jpronkko committed
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.98      1.00      0.99      6991\n",
      "           1       0.00      0.00      0.00       158\n",
jpronkko's avatar
jpronkko committed
      "\n",
      "    accuracy                           0.98      7149\n",
      "   macro avg       0.49      0.50      0.49      7149\n",
      "weighted avg       0.96      0.98      0.97      7149\n",
jpronkko's avatar
jpronkko committed
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/jr/miniconda3/lib/python3.9/site-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n",
      "/home/jr/miniconda3/lib/python3.9/site-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n",
      "/home/jr/miniconda3/lib/python3.9/site-packages/sklearn/metrics/_classification.py:1308: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABCwAAAI0CAYAAADWR7hcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAABCWklEQVR4nO39fXRd9X0n+r+lo9g8WZUlJCHArceeQkTaCbcwodPbJFN7itNERrmT/pYyapqHBrgppdeZhDtRSCIZbNorAjdNBhzaGYaGhOSmNC2uRVqR/phfp0kzado8TIjyK9TICQnCMpK9bAjB+OjcPxhUnoLtI8ln65zXa62shfdHW/qceB/5c957f/duqlQqlQAAAAAUSHOtGwAAAAB4PoEFAAAAUDgCCwAAAKBwBBYAAABA4QgsAAAAgMIRWAAAAACFI7AAAAAACqel1g0shf37H8/cXKXWbbDIOjpOy8zMY7VuAzgO3rf1qbm5KatXn1rrNk4IM0V98rsJlh/v2/p0tJmiLgOLubmK4aJO+XuF5cf7luXMTFG//L3C8uN923gsCQEAAAAKR2ABAAAAFE5dLgkBgFool49k//59OXLkcK1bWRQtLSuyenVnSiXjAgAsRL3NCNWoZq4wgQDAItm/f19OOumUnHrqGWlqaqp1OwtSqVTy+OMHs3//vpx+ek+t2wGAZa2eZoRqVDtXWBICAIvkyJHDOfXU1roYRJqamnLqqa0NfSYIABZLPc0I1ah2rhBYAMAiqqdBpJ5eCwDUWqP/u1rN6xdYAAAAAIXjHhYAsERWtZ6ck1Yu/j+1P3rySA4dfOKYvvbgwYN54xtfl/7+N2XLlvcmSW699ffzxBNP5Mor353Pf35X/uZv/jrbt1+/6H0CAC+uljPCZZe9LU899VSOHHkqDz30vfyzf7Y+SXLOOefm6qtHjvoz7rrrj/Pkk09mYODXFqXnlyKwAIAlctLKlmx+785F/767buzPoWP82i984c/zilf8bP7yL8dzxRX/R172spctej8AwPGp5Yzwn/7TJ5IkU1MP59JLfz1/+Ieffk79yJEjaWn58VHBG9/4qwtt85gJLJaxpUrliqyzc1WtWzghjufsKcBLufvuP8sVV2zJJz/5h/niF/8qv/RL/6bWLVFQjTZXNMpMkZgrgKP71V/dnL6+/vz93381Z555Vi6//Ips3fqBPP744zl8+HB+4Rf+11xxxZYkL7xS8wtf+IusWtWaBx/cnVWrTsv27deno+P0Remrcf5VqkNLlcpRe8dz9hTgx3nggftz8ODBXHDBv8zs7EzuvvvPah5YjI6OZnx8PD/4wQ+ya9eunHPOOUmSJ598Mr/zO7+TL3/5y1m5cmXOP//8bNu2LUkyOTmZoaGhHDhwIG1tbRkdHc3atWsXVOOFzBX1y1wBHItHH300//E//n6Sp/9dHh39SE455ZQcOXIk73nPlfnv//1v8vM//wsv2O8735nIJz7xmXR3n5HR0e354z/+bP73//23FqUnN90EgDp1990787rXvSFNTU157Wt/Kd/+9n3Zt2+6pj1t3Lgxd9xxR84666znbP/whz+clStXZnx8PLt27cqWLVvmayMjIxkcHMz4+HgGBwczPDy84BoA8Fyve90b5v97bm4uO3Z8NG9727/LO9/5ljz44O488MD9L7rfv/gXr0x39xlJkle84mfy8MPfX7SeBBYAUIeeeuqpfOELf5G77/6z/Oqvbs6v/dr/J0eOHMmf//lYTfu68MIL09PT85xtjz/+eO66665s2bJl/pFnp5/+9KWkMzMzmZiYSF9fX5Kkr68vExMTmZ2drboGALzQKaecPP/fn/3sHTl06GD+4A/+MJ/4xP+TV7/6X+fw4SdfdL8VK1bM/3dzcynlcnnRerIkBADq0H/7b/+//ORPrs3HP37r/Lb77vsf2b59JL/8y6+rYWcv9NBDD6WtrS033XRTvvKVr+TUU0/Nli1bcuGFF2Zqaird3d0plUpJklKplK6urkxNTaVSqVRVa29vr9lrBYDl4NChQ+noOD0rV67Mvn3T+eIX/ypvfOObTngfAgsAqEOf//yuXHzxrzxn28/8zL/I3NxcvvnNr+ecc15eo85e6MiRI3nooYdy3nnn5X3ve1+++c1v5l3vele+8IUv1Lq1dHScVusWYFE00k1GqV/L+Tienm5OS8uJWeBwrD+nVGpO0jT/9aXSP/X45jf/u3zgA+/Lb/zGr6Wrqzv/8l++Ks3NT39tc3PTc/67qemfvsfz//x8zc3Nx/X3KLAAgCXyoyePZNeN/UvyfY/mxhs/9qLb/+iPnntTxde/fnNe//rNi9JXtc4888y0tLTML9945StfmdWrV2dycjJnnnlm9u7dm3K5nFLp6ctMp6en09PTk0qlUlXteMzMPJa5ucpSvOzCWc4fBDi6ffvcdpPlrbNz1bI+jufm5nLkyNz8n5dyRnj2z3kpXV1n5O67/zJHjszlj/94V5LM79vZeUb+4A8+8YJ9jhyZyzvecfn8f7/udX153ev65vd7/p+fb25u7jl/j83NTS95ckBgAQBL5NDBJ9yZ/xi0t7fnoosuype+9KX84i/+YiYnJzMzM5Of+qmfSmtra3p7ezM2Npb+/v6MjY2lt7d3fllHtTUAqCUzwrERWAAAJ8z27dtzzz335NFHH8073vGOtLW15e67784111yTq6++OqOjo2lpacn111+f1tbWJMnWrVszNDSUHTt2pLW1NaOjo/Pfr9oaAFB8AgsA4IT54Ac/mA9+8IMv2L5mzZp88pOffNF91q9fnzvvvHNRawBA8XmsKQAsokqlfu53UE+vBQBqrdH/Xa3m9QssAGCRtLSsyOOPH6yLgaRSqeTxxw+mpWXF0b8YAHhJ9TQjVKPaucKSEABYJKtXd2b//n157LEDtW5lUbS0rMjq1Z21bgMAlr16mxGqUc1cIbAAgEVSKrXk9NOP77GZAED9MyNUx5IQAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHCOGljs378/l112WTZt2pTNmzfnyiuvzOzsbJJkcnIyAwMD2bRpUwYGBrJnz575/ZaiBgAsb6Ojo9mwYUPOPffc3H///S+o33TTTS+omSkAoDEdNbBoamrKpZdemvHx8ezatStr1qzJDTfckCQZGRnJ4OBgxsfHMzg4mOHh4fn9lqIGACxvGzduzB133JGzzjrrBbVvf/vb+cY3vpEzzzzzOdvNFADQmI4aWLS1teWiiy6a//P555+fhx9+ODMzM5mYmEhfX1+SpK+vLxMTE5mdnV2SGgCw/F144YXp6el5wfbDhw/n2muvzcjISJqamua3mykAoHG1HM8Xz83N5TOf+Uw2bNiQqampdHd3p1QqJUlKpVK6uroyNTWVSqWy6LX29vZj7rOj47TjeVlQSJ2dq2rdAiwKxzLH4qMf/WguueSSrFmz5jnbl2LeMFPQiPwuph44jhvPcQUW27ZtyymnnJK3vOUtmZiYWKqeFmxm5rHMzVVq3caS84atb/v2Hap1C7BgnZ2rHMt1qLm5aVE/yH/961/Pt771rVx11VWL9j0XS6PMFIm5ot75XcxyZ6aoT0ebKY45sBgdHc13v/vd3HLLLWlubk5PT0/27t2bcrmcUqmUcrmc6enp9PT0pFKpLHoNAKhPX/3qV/Pggw9m48aNSZJHHnkk73znO/O7v/u76e3tNVMAQIM6pseafuQjH8l9992Xm2++OStWrEiSdHR0pLe3N2NjY0mSsbGx9Pb2pr29fUlqAEB9uvzyy/PFL34x9957b+69996cccYZufXWW/OLv/iLZgoAaGBNlUrlJa9zfOCBB9LX15e1a9fmpJNOSpKcffbZufnmm7N79+4MDQ3l4MGDaW1tzejoaNatW5ckS1I7Vo1y+WZn56psfu/OWrfBEth1Y79L3qgLLt+sTwtZErJ9+/bcc889efTRR7N69eq0tbXl7rvvfs7XbNiwIbfcckvOOeecJGaKE8VcUb/MFdQDM0V9OtpMcdTAYjlqlOHCYFG/DBbUC8NFfVrse1gUWaPMFIm5op6ZK6gHZor6dLSZ4piWhAAAAACcSAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAnzOjoaDZs2JBzzz03999/f5Jk//79ueyyy7Jp06Zs3rw5V155ZWZnZ+f3mZyczMDAQDZt2pSBgYHs2bNnwTUAoPgEFgDACbNx48bccccdOeuss+a3NTU15dJLL834+Hh27dqVNWvW5IYbbpivj4yMZHBwMOPj4xkcHMzw8PCCawBA8QksAIAT5sILL0xPT89ztrW1teWiiy6a//P555+fhx9+OEkyMzOTiYmJ9PX1JUn6+voyMTGR2dnZqmsAwPLQUusGAACeMTc3l8985jPZsGFDkmRqaird3d0plUpJklKplK6urkxNTaVSqVRVa29vr82LAwCOi8ACACiMbdu25ZRTTslb3vKWWreSJOnoOK3WLcCi6OxcVesWYMEcx41HYAEAFMLo6Gi++93v5pZbbklz89OrVnt6erJ3796Uy+WUSqWUy+VMT0+np6cnlUqlqtrxmJl5LHNzlaV4uYXjg0B927fvUK1bgAXp7FzlOK5Dzc1NL3lywD0sAICa+8hHPpL77rsvN998c1asWDG/vaOjI729vRkbG0uSjI2Npbe3N+3t7VXXAIDloalSqdTdaYNGORvS2bkqm9+7s9ZtsAR23dgvQaYuOBtSn452NuSlbN++Pffcc08effTRrF69Om1tbfm93/u99PX1Ze3atTnppJOSJGeffXZuvvnmJMnu3bszNDSUgwcPprW1NaOjo1m3bt2CaseqUWaKxFxRz8wV1AMzRX062kwhsFjGDBb1y2BBvTBc1KeFBBbLTaPMFIm5op6ZK6gHZor6ZEkIAAAAsOwILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUzlEDi9HR0WzYsCHnnntu7r///vntGzZsyOte97r09/env78/f/3Xfz1fm5yczMDAQDZt2pSBgYHs2bNnwTUAAACgcRw1sNi4cWPuuOOOnHXWWS+ofexjH8vOnTuzc+fOvPrVr57fPjIyksHBwYyPj2dwcDDDw8MLrgEAAACN46iBxYUXXpienp5j/oYzMzOZmJhIX19fkqSvry8TExOZnZ2tugYAAAA0lpaF7HzVVVelUqnkggsuyHve8560trZmamoq3d3dKZVKSZJSqZSurq5MTU2lUqlUVWtvb1/gywQAAACWk6oDizvuuCM9PT05fPhwrrvuulx77bW54YYbFrO3qnV0nFbrFmDBOjtX1boFWBSOZQAAqlF1YPHMMpEVK1ZkcHAwv/mbvzm/fe/evSmXyymVSimXy5menk5PT08qlUpVteM1M/NY5uYq1b60ZcOHgPq2b9+hWrcAC9bZucqxXIeam5ucHAAAllxVjzX94Q9/mEOHnh5AK5VKPv/5z6e3tzdJ0tHRkd7e3oyNjSVJxsbG0tvbm/b29qprAAAAQGM5amCxffv2vOY1r8kjjzySd7zjHXnDG96QmZmZ/Pqv/3o2b96cvr6+TE5OZmRkZH6frVu35lOf+lQ2bdqUT33qU7nmmmsWXAMAlr8f97j0pXgkuselA8Dy1lSpVOpu7UQjLQnZ/N6dtW6DJbDrxn6X0VMXLAmpTwtZEvJ3f/d3Oeuss/Jrv/ZrueWWW3LOOeckSd761rfmTW96U/r7+7Nz58587nOfy+23375ktWPVKDNFYq6oZ+YK6oGZoj4dbaaoakkIAEA1Xuxx6UvxSHSPSweA5W9BjzUFAFiopXgkuselA8DyJ7AAAPgxPA2FeuHpctQDx3HjEVgAADW1FI9EX6zHpTfaPSyoX9b+s9y5h0V9cg8LAKDQluKR6B6XDgDLn6eELGPu5l2/3M2beuFsSH1ayFNCtm/fnnvuuSePPvpoVq9enba2ttx9993ZvXt3hoaGcvDgwbS2tmZ0dDTr1q1LkiWpHatGmSkSc0U9M1dQD8wU9eloM4XAYhkzWNQvgwX1wnBRnxYSWCw3jTJTJOaKemauoB6YKeqTJSEAAADAsiOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAoBD+63/9r3njG9+Y/v7+bN68Offcc0+SZHJyMgMDA9m0aVMGBgayZ8+e+X2qrQEAxSewAABqrlKp5D/8h/+Q66+/Pjt37syHP/zhvO9978vc3FxGRkYyODiY8fHxDA4OZnh4eH6/amsAQPEJLACAQmhubs6hQ4eSJIcOHUpXV1f279+fiYmJ9PX1JUn6+voyMTGR2dnZzMzMVFUDAJaHllo3AADQ1NSU3/u938sVV1yRU045JY8//nh+//d/P1NTU+nu7k6pVEqSlEqldHV1ZWpqKpVKpapae3v7MffV0XHa4r9YqIHOzlW1bgEWzHHceAQWAEDNHTlyJL//+7+fHTt25IILLsjf//3f59//+3+f66+/vqZ9zcw8lrm5Sk17OFF8EKhv+/YdqnULsCCdnascx3WoubnpJU8OCCwAgJr7zne+k+np6VxwwQVJkgsuuCAnn3xyVq5cmb1796ZcLqdUKqVcLmd6ejo9PT2pVCpV1QCA5cE9LACAmjvjjDPyyCOP5MEHH0yS7N69O48++mh+6qd+Kr29vRkbG0uSjI2Npbe3N+3t7eno6KiqBgAsD66wAABqrrOzM1u3bs2WLVvS1NSUJPnd3/3dtLW1ZevWrRkaGsqOHTvS2tqa0dHR+f2qrQEAxSewAAAK4ZJLLskll1zygu3r16/PnXfe+aL7VFsDAIrPkhAAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAArnqIHF6OhoNmzYkHPPPTf333///PbJyckMDAxk06ZNGRgYyJ49e5a0BgAAADSOowYWGzduzB133JGzzjrrOdtHRkYyODiY8fHxDA4OZnh4eElrAAAAQOM4amBx4YUXpqen5znbZmZmMjExkb6+viRJX19fJiYmMjs7uyQ1AAAAoLG0VLPT1NRUuru7UyqVkiSlUildXV2ZmppKpVJZ9Fp7e/tivFYAAABgmagqsCi6jo7Tat0CLFhn56patwCLwrEMAEA1qgosenp6snfv3pTL5ZRKpZTL5UxPT6enpyeVSmXRa8drZuaxzM1Vqnlpy4oPAfVt375DtW4BFqyzc5VjuQ41Nzc5OQAALLmqHmva0dGR3t7ejI2NJUnGxsbS29ub9vb2JakBAAAAjaWpUqm85KUI27dvzz333JNHH300q1evTltbW+6+++7s3r07Q0NDOXjwYFpbWzM6Opp169YlyZLUjkcjXWGx+b07a90GS2DXjf3OSlMXXGFRnxrpCotGmSkSc0U9M1dQD8wU9eloM8VRA4vlqFGGC4NF/TJYUC8MF/VJYFGfzBX1y1xBPTBT1KejzRRVLQkBAAAAWEoCCwAAAKBwBBYAAABA4QgsAAAAgMIRWAAAAACFI7AAAAAACkdgAQAUwpNPPpmRkZFcfPHF2bx5cz70oQ8lSSYnJzMwMJBNmzZlYGAge/bsmd+n2hoAUHwCCwCgED784Q9n5cqVGR8fz65du7Jly5YkycjISAYHBzM+Pp7BwcEMDw/P71NtDQAoPoEFAFBzjz/+eO66665s2bIlTU1NSZLTTz89MzMzmZiYSF9fX5Kkr68vExMTmZ2drboGACwPLbVuAADgoYceSltbW2666aZ85StfyamnnpotW7bkpJNOSnd3d0qlUpKkVCqlq6srU1NTqVQqVdXa29tr9joBgGMnsAAAau7IkSN56KGHct555+V973tfvvnNb+Zd73pXPvrRj9a0r46O02r682GxdHauqnULsGCO48YjsAAAau7MM89MS0vL/BKOV77ylVm9enVOOumk7N27N+VyOaVSKeVyOdPT0+np6UmlUqmqdjxmZh7L3FxlKV5y4fggUN/27TtU6xZgQTo7VzmO61Bzc9NLnhxwDwsAoOba29tz0UUX5Utf+lKSp5/wMTMzk7Vr16a3tzdjY2NJkrGxsfT29qa9vT0dHR1V1QCA5aGpUqnU3WmDRjkb0tm5Kpvfu7PWbbAEdt3YL0GmLjgbUp+OdjakWg899FCuvvrqHDhwIC0tLXn3u9+d1772tdm9e3eGhoZy8ODBtLa2ZnR0NOvWrUuSqmvHqlFmisRcUc/MFdQDM0V9OtpMYUkIAFAIa9asySc/+ckXbF+/fn3uvPPOF92n2hoAUHyWhAAAAACFI7AAAAAACkdgAQAAABSOwAIAAAAoHIEFAAAAUDgCCwAAAKBwBBYAAABA4QgsAAAAgMIRWAAAAACFI7AAAAAACkdgAQAAABSOwAIAAAAoHIEFAAAAUDgCCwAAAKBwBBYAAABA4QgsAAAAgMIRWAAAAACFI7AAAAAACkdgAQAAABSOwAIAAAAoHIEFAAAAUDgCCwCgUG666aace+65uf/++5Mkk5OTGRgYyKZNmzIwMJA9e/bMf221NQCg+AQWAEBhfPvb3843vvGNnHnmmfPbRkZGMjg4mPHx8QwODmZ4eHjBNQCg+AQWAEAhHD58ONdee21GRkbS1NSUJJmZmcnExET6+vqSJH19fZmYmMjs7GzVNQBgeWipdQMAAEny0Y9+NJdccknWrFkzv21qaird3d0plUpJklKplK6urkxNTaVSqVRVa29vP+aeOjpOW8RXCLXT2bmq1i3AgjmOG4/AAgCoua9//ev51re+lauuuqrWrTzHzMxjmZur1LqNE8IHgfq2b9+hWrcAC9LZucpxXIeam5te8uSAwAIAqLmvfvWrefDBB7Nx48YkySOPPJJ3vvOdef/735+9e/emXC6nVCqlXC5neno6PT09qVQqVdUAgOXBPSwAgJq7/PLL88UvfjH33ntv7r333pxxxhm59dZb8/rXvz69vb0ZGxtLkoyNjaW3tzft7e3p6OioqgYALA8LvsJiw4YNWbFiRVauXJkkueqqq/LqV786k5OTGRoayoEDB9LW1pbR0dGsXbs2SaquAQCNZ+vWrRkaGsqOHTvS2tqa0dHRBdcAgOJrqlQqC1qYuWHDhtxyyy0555xznrP9rW99a970pjelv78/O3fuzOc+97ncfvvtC6odq0ZZb9rZuSqb37uz1m2wBHbd2G+NHnXBetP6dLT1pvWkUWaKxFxRz8wV1AMzRX062kyxJEtCPIIMAAAAWIhFuenmVVddlUqlkgsuuCDvec97PIIMFoG7tVMvHMsAAFRjwYHFHXfckZ6enhw+fDjXXXddrr322rz97W9fhNaq1yiXb/oQUN9c8kY9cPlmfWqkJSEAQO0seEnIM48HW7FiRQYHB/O1r30tPT09848SS/KcR4lVWwMAAAAax4ICix/+8Ic5dOjpM2eVSiWf//zn09vbW/VjxjyCDAAAAEgWuCRkZmYmv/3bv51yuZy5ubmsX78+IyMjSTyCDAAAAKjeggKLNWvW5K677nrR2vr163PnnXcuag0AAABoDEvyWFMAAACAhRBYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAUAj79+/PZZddlk2bNmXz5s258sorMzs7mySZnJzMwMBANm3alIGBgezZs2d+v2prAECxCSwAgEJoamrKpZdemvHx8ezatStr1qzJDTfckCQZGRnJ4OBgxsfHMzg4mOHh4fn9qq0BAMUmsAAACqGtrS0XXXTR/J/PP//8PPzww5mZmcnExET6+vqSJH19fZmYmMjs7GzVNQCg+Fpq3QAAwPPNzc3lM5/5TDZs2JCpqal0d3enVColSUqlUrq6ujI1NZVKpVJVrb29/Zj66Og4bWleIJxgnZ2rat0CLJjjuPEILACAwtm2bVtOOeWUvOUtb8nExETN+piZeSxzc5Wa/fwTyQeB+rZv36FatwAL0tm5ynFch5qbm17y5IDAAgAolNHR0Xz3u9/NLbfckubm5vT09GTv3r0pl8splUopl8uZnp5OT09PKpVKVTUAoPjcwwIAKIyPfOQjue+++3LzzTdnxYoVSZKOjo709vZmbGwsSTI2Npbe3t60t7dXXQMAis8VFgBAITzwwAO55ZZbsnbt2rz5zW9Okpx99tm5+eabs3Xr1gwNDWXHjh1pbW3N6Ojo/H7V1gCAYhNYAACF8NM//dP5h3/4hxetrV+/Pnfeeeei1gCAYrMkBAAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHBaat0AQCNZ1XpyTlrZWL96OztX1bqFE+JHTx7JoYNP1LoNABpIo80VjTJTJOaKZxTy6J6cnMzQ0FAOHDiQtra2jI6OZu3atbVuC2DBTlrZks3v3VnrNlgCu27sz6FaN8ELmCmAemauqF/miqcVcknIyMhIBgcHMz4+nsHBwQwPD9e6JQBgGTJTAMDyVbjAYmZmJhMTE+nr60uS9PX1ZWJiIrOzszXuDABYTswUALC8FW5JyNTUVLq7u1MqlZIkpVIpXV1dmZqaSnt7+zF9j+bmpqVssVC6Vp9c6xZYIo10HDca79v61Sjv2+XyOs0Ux8/vp/rVaMdyI/G+rV+N8L492mssXGCxGFavPrXWLZwwt37w4lq3wBLp6Dit1i2wRLxv65f3bf1ppJki8fupnvn9VL+8b+uX920Bl4T09PRk7969KZfLSZJyuZzp6en09PTUuDMAYDkxUwDA8la4wKKjoyO9vb0ZGxtLkoyNjaW3t/eYL90EAEjMFACw3DVVKpVKrZt4vt27d2doaCgHDx5Ma2trRkdHs27dulq3BQAsM2YKAFi+ChlYAAAAAI2tcEtCAAAAAAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUTkutG4AfZ//+/XnkkUeSJGeccUZWr15d444AgOXKXAGw/AgsKJzvfe97+dCHPpSJiYl0dXUlSaanp3Peeeflmmuuydq1a2vbIACwbJgrAJavpkqlUql1E/Bsb37zmzM4OJi+vr40Nz+9amlubi67du3Kpz/96Xz2s5+tcYfA8dq8eXN27dpV6zaABmSugPpipmgsrrCgcA4cOJBLLrnkOduam5vT39+fj3/84zXqCjiaf/zHf/yxtf3795/ATgD+ibkClh8zBc8QWFA4bW1tGRsbyxve8IY0NTUlSSqVSnbt2pXW1tYadwf8OH19fTnrrLPyYhfuHThw4MQ3BBBzBSxHZgqeYUkIhbNnz56MjIzkO9/5Trq7u5Mke/fuzctf/vJs3bo169atq3GHwIvZuHFjPv3pT8+/b5/tta99bf7qr/6qBl0Bjc5cAcuPmYJnuMKCwlm7dm0+8YlPZHZ2NlNTU0mSnp6etLe317gz4KVcfPHF+cEPfvCiw8Uv//Iv16AjAHMFLEdmCp7hCgsAAACgcJpr3QAAAADA8wksAAAAgMIRWAAAAACFI7AAAAAACkdgAQAAABSOwAIAAAAoHIEFAAAAUDgCCwAAAKBwBBYAAABA4QgsAAAAgMIRWAAAAACF01LrBpbC/v2PZ26uUus2WGQdHadlZuaxWrcBHAfv2/rU3NyU1atPrXUbJ4SZApYX/+7A8nK0maIuA4u5uYrhok75e4Xlx/uW5cxMAcuP9yzUD0tCAAAAgMIRWAAAAACFI7AAAAAACqcu72EBAEuhXD6S/fv35ciRw7Vu5YRoaVmR1as7UyoZFwBgMTTaLPFs1cwVJhAAOEb79+/LSSedklNPPSNNTU21bmdJVSqVPP74wezfvy+nn95T63YAoC400izxbNXOFQsKLL7//e/nt37rt+b/fOjQoTz22GP527/920xOTmZoaCgHDhxIW1tbRkdHs3bt2iSpugYAtXTkyOGGGTCamppy6qmteeyxA7VuBQDqRiPNEs9W7VyxoHtYnH322dm5c+f8/zZu3Ji+vr4kycjISAYHBzM+Pp7BwcEMDw/P71dtDQBqrZEGjEZ6rQBwojTqv6/VvO5FWxJy+PDh7Nq1K7feemtmZmYyMTGR2267LUnS19eXbdu2ZXZ2NpVKpapae3v7YrUKAItiVevJOWnl4q+u/NGTR3Lo4BOL/n0BgGIxS7y0Rft/5t577013d3de8YpX5L777kt3d3dKpVKSpFQqpaurK1NTU6lUKlXVBBYAFM1JK1uy+b07F/377rqxP4eO8jWXXfa2PPXUUzly5Kk89ND38s/+2fokyTnnnJurrx45pp/zta/9XY4cOZJXvernF9gxAFCNWs4SSfKrv7o5K1asyMtetiJzc+W87W3vzL/5N5uq/rmf//yu/M3f/HW2b7++6u/xbIsWWHzuc5/Lm970psX6dgvS0XFarVs4IQ4/Vc6Kl5Vq3cYJ1dm5qtYtnBCN+HdL/aqn9+30dHNaWk7ME8GP9nNuu+2TSZKHH34473jHW/KpT/0/x/0zvvnNr+WJJ57IL/zCL/zYr2lubq6rv0NIlu6MJsXgd1Z9qpcrBopo+/bRrFv3z3P//f//vOtd78yFF16Utra2JMmRI0fS0lK735eL8pP37t2br371q7n++qdTlJ6enuzduzflcjmlUinlcjnT09Pp6elJpVKpqnY8ZmYey9xcZTFeWqF1dq5akjSO2tt1Y3/27TuWTBSKrbNzVV0dy3NzczlyZO6E/Kxj/Tnl8lySSo4cmcuXv/zF3H77f8mTTx7Oy172svz2b78nP/MzP5vvfW9PrrvumvzoRz/K3Fw5v/Irm3PRRf8qf/qnn8vc3Fz+9m+/ko0bL86v//rbX/D95+bmXvB32Nzc1DAnB6hPS3VGE1g6x3rFANU755yX55RTTsl1143kzDPPykMPPZQDB/bnv/yXT+XP/3wsf/Ind6ZcLue0007LVVcN5Sd/cm2eeuqpfOQj1+frX//7dHZ25Sd/cu2i9rQogcWf/umf5rWvfW1Wr16dJOno6Ehvb2/GxsbS39+fsbGx9Pb2zi/rqLYGALy4H/zg+/nDP7w1//f//R9z6qmn5cEHd+eqq/6P/Mmf3J0/+ZM/zr/6V/9r3v72S5MkBw8eTGtra/r7/22eeOKJXHnlu2vb/P/k6WMAUDtf+9rf5fDhw2lpacl9930rN930Bzn55JPzzW9+Pffe+4XcfPN/yooVK/LlL38pv/u71+bjH/8v2bnzc5maejif/OQf5ciRI/mt37rsuC84eCmLFlh84AMfeM62rVu3ZmhoKDt27Ehra2tGR0cXXAMAXtxXvvLl/OAH389v/dbl89vK5XJmZ2dy/vn/S26++aN56qmn8nM/d2F+7ucurGGnP94zTx97xnXXXZdyuZzkn54i1t/fn507d2Z4eDi33377gmoAQPLBD74vK1aszKmnnprrrhvNPff8Rc4772dz8sknJ0m+9KX/ln/8xwdy+eVvT5JUKpUcOnQwSfK1r/19fuVX+tLS0pKWlpZs2vQr+R//4xuL1tuiBBbj4+Mv2LZ+/frceeedL/r11dYAgBdXqVRy0UX/Kh/60LUvqP3rf70xP/Mz/yJ/+7f/PZ/61B/m7rv/LMPD22rQ5bHz9DEAODGeuYfFM+655y9yyiknz/+5Ukne8IZLcuml73rBvpXK0t6Kwd2GAKAOvOpVP5/bbvtPefDB3Vm37uknhnznO99Ob+8r8v3vP5Qzzzwrr3/95px99pr8zu88HWqceuqpefTRfbVs+8cqytPH3KsDoDjq4YaqRbqB9zNKpef21NTUlObmpvltr3nNa3LNNcP5t//2Tenq6k65XM4DD/xDXv7y8/KqV70q99zz+Vx88aYcOXIkf/mX4+nuPuPH/uzjvZm3wAIAqvSjJ49k1439S/J9j9eaNT+Z4eFt+b/+r2158sknc+TIU/nZn31lentfkXvv/ULuuecv8rKXtaSpqSlbtrw3SfKa1/xSPvCB/zNvf/vgj73pZq0U5eljjXIj70ZTDx96oBHVw428n38D76WcJY7nBt7P/tpKpZK5ucr8tp/92f8ll19+Ra666t3/82ufyi/90r/JP//nL09f3/+W++9/IP/u3/1qurq688pX/lympn7wY3/282/mfbQbeQssAKBKhw4+UfM7lvf0nJm77/7/Jnn6KotXvernX/A1b33rb+Stb/2NF2w/88yzctttn17yHo9X0Z4+BgBLpdazxB//8a4XbPvAB7a+YNvFF/9KLr74V16w/WUve1ne974PvGD7Yjkx16IAAByjl3r6WJLnPEWs2hoAUHyusAAACsXTxwCARGABAMelUqmkqamp1m2cEEt95+8fx9PHAKhnjTRLPFs1c4UlIQBwjJqbSymXj/+GmMtVuXwkzc2lWrcBAHWj0WaJZ6tmrhBYAMAxOvnk03Lo0IFUKsd21+3lrFKZy6FD+3PyyR7rCQCLpZFmiWerdq6wJAQAjtFpp/1E9u/fl717v5+k3h912ZQVK07Kaaf9RK0bAYC60VizxLNVN1cILADgGDU1NaW9vavWbQAAy5RZ4vhYEgIAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApnwYHFk08+mZGRkVx88cXZvHlzPvShDyVJJicnMzAwkE2bNmVgYCB79uyZ36faGgAAANAYFhxYfPjDH87KlSszPj6eXbt2ZcuWLUmSkZGRDA4OZnx8PIODgxkeHp7fp9oaAAAA0BgWFFg8/vjjueuuu7Jly5Y0NTUlSU4//fTMzMxkYmIifX19SZK+vr5MTExkdna26hoAAADQOFoWsvNDDz2Utra23HTTTfnKV76SU089NVu2bMlJJ52U7u7ulEqlJEmpVEpXV1empqZSqVSqqrW3tx9zXx0dpy3kZUEhdHauqnULsCgcywAAVGNBgcWRI0fy0EMP5bzzzsv73ve+fPOb38y73vWufPSjH12s/qoyM/NY5uYqNe3hRPAhoL7t23eo1i3AgnV2rnIs16Hm5qYlOTnw5JNP5nd+53fy5S9/OStXrsz555+fbdu2ZXJyMkNDQzlw4EDa2toyOjqatWvXJknVNQCg+Ba0JOTMM89MS0vL/BKOV77ylVm9enVOOumk7N27N+VyOUlSLpczPT2dnp6e9PT0VFUDAOqb+2IBAM+2oMCivb09F110Ub70pS8lefpMxszMTNauXZve3t6MjY0lScbGxtLb25v29vZ0dHRUVQMA6pf7YgEAz7egJSFJcs011+Tqq6/O6OhoWlpacv3116e1tTVbt27N0NBQduzYkdbW1oyOjs7vU20NAKhPRb0vFgBQOwsOLNasWZNPfvKTL9i+fv363HnnnS+6T7U1AKA+FfW+WG7kDVAc7uHXeBYcWAAALNSx3BerVCo95/5WlUqlqtrxaJQbeTcaH3pgeXIj7/pztBt5L+geFgAAi8F9sQCA52uqVCp1d9qgUc6GdHauyub37qx1GyyBXTf2S5CpCx5rWp+W6rGmDz30UK6++uocOHAgLS0tefe7353Xvva12b17d4aGhnLw4MH5+1utW7cuSaquHatGmSkajRkKlh/zcX062kxhSQgAUAjuiwUAPJslIQAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFE7LQr/Bhg0bsmLFiqxcuTJJctVVV+XVr351JicnMzQ0lAMHDqStrS2jo6NZu3ZtklRdAwAAABrDolxh8bGPfSw7d+7Mzp078+pXvzpJMjIyksHBwYyPj2dwcDDDw8PzX19tDQAAAGgMS7IkZGZmJhMTE+nr60uS9PX1ZWJiIrOzs1XXAAAAgMax4CUhydPLQCqVSi644IK85z3vydTUVLq7u1MqlZIkpVIpXV1dmZqaSqVSqarW3t6+GK0CAAAAy8CCA4s77rgjPT09OXz4cK677rpce+21efvb374IrVWvo+O0mv58WAydnatq3QIsCscyx8O9sQCAZyw4sOjp6UmSrFixIoODg/nN3/zNvP/978/evXtTLpdTKpVSLpczPT2dnp6eVCqVqmrHY2bmsczNVRb60grPh4D6tm/foVq3AAvW2bnKsVyHmpublvTkwMc+9rGcc845z9n2zD2u+vv7s3PnzgwPD+f2229fUA0AKLYF3cPihz/8YQ4denoQrVQq+fznP5/e3t50dHSkt7c3Y2NjSZKxsbH09vamvb296hoA0JjcGwsAGtOCrrCYmZnJb//2b6dcLmdubi7r16/PyMhIkmTr1q0ZGhrKjh070tramtHR0fn9qq0BAPWvSPfGsswUoDhcYd54FhRYrFmzJnfdddeL1tavX58777xzUWsAQH0r2r2xGmWZaaPxoQeWJ8tM68/RlpkuyWNNAQCq8fx7Y33ta19LT0/P/D2ukjznHlfV1gCA4hNYAACF4N5YAMCzLfgpIQAAi8G9sQCAZxNYAACF4N5YAMCzWRICAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhLFpgcdNNN+Xcc8/N/fffnySZnJzMwMBANm3alIGBgezZs2f+a6utAQAAAI1hUQKLb3/72/nGN76RM888c37byMhIBgcHMz4+nsHBwQwPDy+4BgAAADSGBQcWhw8fzrXXXpuRkZE0NTUlSWZmZjIxMZG+vr4kSV9fXyYmJjI7O1t1DQAAAGgcCw4sPvrRj+aSSy7JmjVr5rdNTU2lu7s7pVIpSVIqldLV1ZWpqamqawBAY7DMFABIkpaF7Pz1r3893/rWt3LVVVctVj+LoqPjtFq3AAvW2bmq1i3AonAsczxeaplpf39/du7cmeHh4dx+++0LqgEAxbegwOKrX/1qHnzwwWzcuDFJ8sgjj+Sd73xn3v/+92fv3r0pl8splUopl8uZnp5OT09PKpVKVbXjMTPzWObmKgt5acuCDwH1bd++Q7VuARass3OVY7kONTc3LcnJgWeWmd5www1529veluSflpnedtttSZ5eLrpt27bMzs6mUqlUVWtvb1/03gGAxbegJSGXX355vvjFL+bee+/NvffemzPOOCO33nprXv/616e3tzdjY2NJkrGxsfT29qa9vT0dHR1V1QCA+maZKQDwbAu6wuKlbN26NUNDQ9mxY0daW1szOjq64BoAUJ8sMwXgaFxh3ngWNbC499575/97/fr1ufPOO1/066qtAQD1yTJTTiQfemB5ssy0/hxtmemCnxICALBQlpkCAM+3ZEtCAAAWg2WmANCYBBYAQOFYZgoAWBICAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIUjsAAAAAAKR2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHAEFgAAAEDhCCwAAACAwhFYAAAAAIXTstBvcMUVV+T73/9+mpubc8opp+RDH/pQent7Mzk5maGhoRw4cCBtbW0ZHR3N2rVrk6TqGgAAANAYFnyFxejoaP7sz/4sd911V37jN34jV199dZJkZGQkg4ODGR8fz+DgYIaHh+f3qbYGAAAANIYFBxarVq2a/+/HHnssTU1NmZmZycTERPr6+pIkfX19mZiYyOzsbNU1AKD+XXHFFbnkkkvyxje+MYODg/nOd76T5OkrMAcGBrJp06YMDAxkz5498/tUWwMAim3BS0KS5AMf+EC+9KUvpVKp5D//5/+cqampdHd3p1QqJUlKpVK6uroyNTWVSqVSVa29vf2Y++noOG0xXhbUVGfnqqN/ESwDjmWOx+jo6PzJkL/8y7/M1VdfnT/90z+dvwKzv78/O3fuzPDwcG6//fYkqboGABTbogQW1113XZLkrrvuyvXXX58tW7Ysxret2szMY5mbq9S0hxPBh4D6tm/foVq3AAvW2bnKsVyHmpubluzkwEtduXnbbbclefoKzG3btmV2djaVSqWq2vGcCAEAamNRAotnvPGNb8zw8HDOOOOM7N27N+VyOaVSKeVyOdPT0+np6UmlUqmqBgA0hqJduQkA1MaCAovHH388Bw8enA8U7r333vzET/xEOjo60tvbm7GxsfT392dsbCy9vb3zw0G1NQCg/hXpyk3LTAGKwxXmjWdBgcUTTzyRLVu25Iknnkhzc3N+4id+IrfcckuampqydevWDA0NZceOHWltbc3o6Oj8ftXWAIDGUYQrNxtlmWmj8aEHlifLTOvP0ZaZLiiwOP300/NHf/RHL1pbv3597rzzzkWtAQD1y5WbAMCzLeo9LAAAquXKTQDg2QQWAEAhuHITAHi25lo3AAAAAPB8AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUzoICi/379+eyyy7Lpk2bsnnz5lx55ZWZnZ1NkkxOTmZgYCCbNm3KwMBA9uzZM79ftTUAAACgMSwosGhqasqll16a8fHx7Nq1K2vWrMkNN9yQJBkZGcng4GDGx8czODiY4eHh+f2qrQEAAACNYUGBRVtbWy666KL5P59//vl5+OGHMzMzk4mJifT19SVJ+vr6MjExkdnZ2aprAEB9c+UmAPBsi3YPi7m5uXzmM5/Jhg0bMjU1le7u7pRKpSRJqVRKV1dXpqamqq4BAPXNlZsAwLO1LNY32rZtW0455ZS85S1vycTExGJ926p0dJxW058Pi6Gzc1WtW4BF4VjmWL3YlZuf+cxn5q/AvO2225I8fQXmtm3bMjs7m0qlUlWtvb39xL9AAOC4LEpgMTo6mu9+97u55ZZb0tzcnJ6enuzduzflcjmlUinlcjnT09Pp6elJpVKpqnY8ZmYey9xcZTFeWqH5EFDf9u07VOsWYME6O1c5lutQc3PTkp8cONYrNyuVSlW1Yw0snAQBKA6ffxrPggOLj3zkI7nvvvvyB3/wB1mxYkWSpKOjI729vRkbG0t/f3/GxsbS29s7PxxUWwMAGkNRrtxslJMgjcaHHlienASpP0c7CbKgwOKBBx7ILbfckrVr1+bNb35zkuTss8/OzTffnK1bt2ZoaCg7duxIa2trRkdH5/ertgYA1L+iXbkJANTGggKLn/7pn84//MM/vGht/fr1ufPOOxe1BgDUN1duAgDPaKpUKnV3nWOjXL7Z2bkqm9+7s9ZtsAR23djvkjfqgntY1KeluofFAw88kL6+vqxduzYnnXRSkn+6cnP37t0ZGhrKwYMH56/AXLduXZJUXTsWjTJTNBozFCw/5uP6tKRLQgAAFosrNwGAZ2uudQMAAAAAzyewAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEsKLAYHR3Nhg0bcu655+b++++f3z45OZmBgYFs2rQpAwMD2bNnz4JrAAAAQONYUGCxcePG3HHHHTnrrLOes31kZCSDg4MZHx/P4OBghoeHF1wDAOqbEyEAwLMtKLC48MIL09PT85xtMzMzmZiYSF9fX5Kkr68vExMTmZ2drboGANQ/J0IAgGdb9HtYTE1Npbu7O6VSKUlSKpXS1dWVqampqmsAQP1zIgQAeLaWWjewFDo6Tqt1C7BgnZ2rat0CLArHMgvxUic0KpVKVbX29vaavR4A4NgtemDR09OTvXv3plwup1QqpVwuZ3p6Oj09PalUKlXVjtfMzGOZm6ss9ksrHB8C6tu+fYdq3QIsWGfnKsdyHWpubmqYkwON8joBlgOffxrPogcWHR0d6e3tzdjYWPr7+zM2Npbe3t75sxnV1gCAxlPrEyGNchKk0fjQA8uTkyD152gnQRZ0D4vt27fnNa95TR555JG84x3vyBve8IYkydatW/OpT30qmzZtyqc+9alcc8018/tUWwMAGs+zT4Qkec4JjWprAMDy0FSpVOrutEGjnA3p7FyVze/dWes2WAK7buyXIFMXLAmpT0u1JGT79u2555578uijj2b16tVpa2vL3Xffnd27d2doaCgHDx5Ma2trRkdHs27duiSpunasGmWmaDRmKFh+zMf16WgzhcBiGfOPbf3yC5l6IbCoT410D4tGmSkajRkKlh/zcX1a0iUhAAAAAEtBYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCEVgAAAAAhSOwAAAAAApHYAEAAAAUjsACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOEILAAAAIDCaal1AwCNZFXryTlpZWP96u3sXFXrFk6IHz15JIcOPlHrNgAA6kZjTc0ANXbSypZsfu/OWrfBEth1Y38O1boJAIA6UsglIZOTkxkYGMimTZsyMDCQPXv21LolAGAZMlMAwPJVyMBiZGQkg4ODGR8fz+DgYIaHh2vdEgCwDJkpAGD5KtySkJmZmUxMTOS2225LkvT19WXbtm2ZnZ1Ne3v7MX2P5uampWyxULpWn1zrFlgijXQcNxrv2/rVKO/b5fI6zRS8FL+LYfnxO7n+HO3vtHCBxdTUVLq7u1MqlZIkpVIpXV1dmZqaOubhYvXqU5eyxUK59YMX17oFlkhHx2m1boEl4n1bv7xvi8VMwUvxuxiWH//ONp5CLgkBAAAAGlvhAouenp7s3bs35XI5SVIulzM9PZ2enp4adwYALCdmCgBY3goXWHR0dKS3tzdjY2NJkrGxsfT29h7zpZsAAImZAgCWu6ZKpVKpdRPPt3v37gwNDeXgwYNpbW3N6Oho1q1bV+u2AIBlxkwBAMtXIQMLAAAAoLEVbkkIAAAAgMACAAAAKByBBQAAAFA4AgsAAACgcAQWAAAAQOG01LoB+HH279+fRx55JElyxhlnZPXq1TXuCACAojEzQv0SWFA43/ve9/KhD30oExMT6erqSpJMT0/nvPPOyzXXXJO1a9fWtkEAAGrOzAj1r6lSqVRq3QQ825vf/OYMDg6mr68vzc1Pr1qam5vLrl278ulPfzqf/exna9whcLw2b96cXbt21boNAOqImRHqnyssKJwDBw7kkksuec625ubm9Pf35+Mf/3iNugKO5h//8R9/bG3//v0nsBMAGoGZEeqfwILCaWtry9jYWN7whjekqakpSVKpVLJr1660trbWuDvgx+nr68tZZ52VF7tw78CBAye+IQDqmpkR6p8lIRTOnj17MjIyku985zvp7u5Okuzduzcvf/nLs3Xr1qxbt67GHQIvZuPGjfn0pz89/759tte+9rX5q7/6qxp0BUC9MjNC/XOFBYWzdu3afOITn8js7GympqaSJD09PWlvb69xZ8BLufjii/ODH/zgRQOLX/7lX65BRwDUMzMj1D9XWAAAAACF01zrBgAAAACeT2ABAAAAFI7AAgAAACgcgQUAAABQOAILAAAAoHD+XzWJPmwmk9o2AAAAAElFTkSuQmCC",
jpronkko's avatar
jpronkko committed
      "text/plain": [
       "<Figure size 1080x576 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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uHDhn71WpaFer4+q5yr0PbD7SJcAjBLTJ79ipEsARoHr+y4b6RKSJFMWP3Pjtrksn3XqsH3W5iBhBQAowaiKEIeXGVYAAIomYQUAKMEgH5m6JZCwAgBQNAkrAEABRtdt8MNLwgoAQNEqE9ZTTjklDQ3PPEvx2c9+drMWBACwRZKwVqpsWHfbbbfhrAMAADaqsmGdPXv2cNYBALBls0tApQHfdHXzzTfn2muvzapVq3LBBRfkjjvuyOrVq/PqV796KOsDAGALN6Cbrr7xjW/k4x//eKZMmZKf/exnSZJx48bl3HPPHdLiAAC2FA314TtGmwE1rIsXL85FF12U4447LmPGrHvL1KlTs2zZsiEtDgAABjQSsGbNmrS0tCRJ/84BTz31VLbeeuuhqwwAYEsyCpPP4TKghHXvvffOl7/85fXOff3rX88+++wzJEUBAMAfDChh/ehHP5rjjz8+l112WdasWZPp06dnu+22ywUXXDDU9QEAbBnsElBpQA3rpEmT8h//8R+54447ct9996WlpSV77rln/zwrAAAMlQF3nH19fXnyySeTJL29val74C0AAMNgQAnrr3/965x00klZu3Ztmpub88ADD2SbbbbJ+eefnxe/+MVDXSMAwHOfLLDSgBrW008/PW9729vyzne+Mw0NDanX6/na176W008/PZdffvlQ1wgAwBZsQCMBy5cvz6xZs/q3tGpoaMixxx6b5cuXD2VtAABbjvowHqPMgBrWAw88MDfeeON65773ve/lda973VDUBAAA/SpHAk455ZT+RLW3tzcf+MAH8rKXvSw77bRTHnjggfziF7/IwQcfPGyFAgA8p43C5HO4VDasu+2223q/77777v0/v/CFL8z+++8/dFUBAMD/r7JhnT179nDWAQCwZfPggEoD2iUgSdauXZtly5bloYceWm8P1le/+tVDUhgAACQDbFhvvfXWvP/978/atWuzevXqbLfddlmzZk122mmnfPe73x3qGgEAnvMazLBWGtAuAf/4j/+Y97znPbnlllvyvOc9L7fccktOOOGEtLe3D3V9AABs4Qa8D+uxxx673rnjjjsuX/va14aiJgCALY99WCsNqGHdfvvts3r16iTJjjvumLvvvjs9PT159NFHh7Q4AAAY0AzrIYcckh/84Ac54ogj8qY3vSnHHntsttpqqxx22GFDXR8AAFu4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9tgjv/3tbze6dswxx+Syyy4b0N856KCD8l//9V+DquHPeS/AlkDDCgzYQQcdlD333DOvfOUrs99+++W0007LmjVrNvvnTJs2LUuWLHnG111++eV561vfutk/H4CyaFiBZ+WCCy7IbbfdliuuuCJ33HFH/vmf/3mD1zz11FMjUBkAz1UaVmBQmpubc8ABB+Suu+5Ksu6f1i+55JIceuihOfTQQ5Mk3/ve93LUUUdl2rRpectb3pJf//rX/e/v7OzMjBkz8spXvjLvf//788QTT/Sv/fSnP81rX/va/t+7uroye/bs7Lvvvtlnn32yYMGCLF26NPPnz8/Pf/7zvPKVr8y0adOSJGvXrs3ChQvzute9Lvvtt1/mzZuXxx9/vP9vXXjhhdl///2z//7759///d8H/H1/97vf5dhjj80+++yTffbZJx/60IfS09Oz3mvuuOOOHH744dl7771z2mmnrfedNnUtANg0DSswKF1dXbnpppvS2traf+6GG27IpZdemm9/+9v55S9/mdNPPz0LFizIT3/608ycOTMnnnhi1q5dm7Vr1+akk07KUUcdlVtuuSWHHXZYrrvuuo1+Tm9vb973vvdl8uTJufHGG3PTTTfl8MMPzwte8IJ84hOfyF577ZXbbrstt956a5LkrLPOyrJly3LllVfmuuuuS3d3d84///wkyU033ZSvfvWr+epXv5rrrrsuP/7xjwf8fev1et73vvflhz/8Yb7zne/kgQceyHnnnbfea6655pp85StfyfXXX59ly5bli1/8YpJs8loA8Mw0rMCzctJJJ2XatGlpb2/P3nvvneOPP75/7bjjjsuECRMybty4XHrppZk5c2Ze8YpXpLGxMTNmzMjWW2+dn//857n99tvz5JNPZtasWdl6661z2GGH5eUvf/lGP+9//ud/0t3dnY985CMZP358ttlmm/409U/V6/VcdtllOf300zNhwoRst912ed/73tf/zPjvfOc7eeMb35jdd98948ePz+zZswf8vXfbbbe85jWvydixY9PU1JR3vvOd+dnPfrbea972trelpaUlEyZMyAknnND/uZu6FgA8s61GugBgdDn//POz3377bXStpaWl/+f7778/V155ZS6++OL+c08++WS6u7vT0NCQ5ubmNDQ09K9Nnjx5o3+zq6srkydPzlZbPfP/XK1atSqPPfZY3vjGN/afq9fr6evrS5J0d3fnZS97Wf/azjvv/Ix/8w9WrlyZT37yk7n11luzZs2a1Ov11Gq19V7z9O8/efLkdHd3J9n0tQDgmWlYgc3m6Q1oS0tLjj/++JxwwgkbvO6WW27JihUrUq/X+99z//33Z9ddd93gtS0tLenq6spTTz21QdP69M9Lkh122CHjxo3Ltddem+bm5g3+1qRJk9LV1dX/+/333z/g73b22WenoaEhV199dXbYYYfccMMNWbBgwXqv+dO/PWnSpP7vUHUtAHhmRgKAIXH00UfnX//1X3P77benXq/n0Ucfzfe///2sXr06e+21V7baaqt8/etfz1NPPZXrrrsud9xxx0b/zp577pkdd9wxZ599dh599NE88cQT+e///u8kycSJE7NixYr+WdAxY8bk6KOPzqc//emsXLkySbJixYr88Ic/TJIcdthhueKKK3L33Xfnsccey6JFiwb8fdasWZPx48enVqtlxYoVufDCCzd4zTe/+c088MADefjhh/OlL30phx9++DNeCwCemYYVGBIvf/nLc+aZZ2bBggXZe++9c+ihh+byyy9PkowdOzbnnXderrjiiuy999759re/nUMOOWSjf6exsTEXXHBBfvvb3+Zv/uZv8trXvjbf+c53kiT77rtvXvjCF2b//ffPPvvskyQ55ZRTsttuu+XNb35z/uqv/irveMc7smzZsiTJgQcemFmzZmXWrFk55JBDsu+++w74+8yePTudnZ2ZNm1ajjvuuP6dEJ6ura0t73rXu/L6178+u+66a3+iuqlrAcAza6jX6/WRLgIAAKpIWAEAKJqGFQCAomlYAQAomoYVAICiaVgBACiahhUAgKJpWAEAKJqGFQCAomlYAQAo2v8DMdoPVtO8bT4AAAAASUVORK5CYII=",
jpronkko's avatar
jpronkko committed
      "text/plain": [
       "<Figure size 864x720 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
jpronkko's avatar
jpronkko committed
      "text/plain": [
       "<Figure size 504x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# For binary classification, construct y vector for a sigle selected tumor type\n",
    "\n",
    "target_type = \"Biliary-AdenoCA\"\n",
    "\n",
    "y_prf = profile_mut_all[\"tumor_types\"].values\n",
    "\n",
    "# Encode for classificaiton to two classes: if the type is the desired type, set to 1 otherwise 0\n",
    "y_prf_bin = [1 if tumor_type == target_type else 0 for tumor_type in y_prf]\n",
    "\n",
    "# Split the data for fitting and prediction, use simple splitting here\n",
    "X_prf_train, X_prf_test, y_prf_train, y_prf_test = train_test_split(X_prf, y_prf_bin, test_size = 0.3, random_state=898)\n",
    "\n",
    "print(f\"Dimension of the training data {X_prf_train.shape} and test data {X_prf_test.shape}\")\n",
    "\n",
    "# Make a model\n",
    "model_rfs = RandomForestClassifier()\n",
    "\n",
    "# Fit the model \n",
    "clf= model_rfs.fit(X_prf_train, y_prf_train)\n",
    "\n",
    "# Predict with unused (test) data \n",
    "y_prf_pred = model_rfs.predict(X_prf_test)\n",
    "\n",
    "# What we got \n",
    "plot_trn_tst_dist(y_prf_bin, y_prf_train, y_prf_test, y_prf_pred, in_cols=True)\n",
    "print(f\"Accuracy:\", accuracy_score(y_prf_test, y_prf_pred))\n",
    "print(classification_report(y_prf_test, y_prf_pred))\n",
    "\n",
    "# Plot some results\n",
    "plot_confusion_mat(y_prf_test, y_prf_pred, labs=[\"0\", \"1\"])\n",
    "plot_roc_auc(X_prf_test, y_prf_test, model_rfs)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We notice the training material is very skewed and results in classifier, which does not predict class 1 in any case. This is not good. Let's try oversampling, how it effects the situation. You need to install imbalanced-learn for this to work."
   ]
  },
Loading
Loading full blame...