Created
July 12, 2017 13:58
-
-
Save olgabot/9450c2dfd8a32e3846d0f0bc50e45423 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import os\n", | |
"\n", | |
"HOME = os.path.expanduser('~')\n", | |
"\n", | |
"DATA_FOLDER = os.path.abspath(\n", | |
" os.path.join(HOME, 'projects', 'cshl-singlecell-2017', 'data'))\n", | |
"FIGURE_FOLDER = os.path.abspath(\n", | |
" os.path.join(HOME, 'projects', 'cshl-singlecell-2017', 'figures'))\n", | |
"\n", | |
"\n", | |
"notebook_name = '50_Example_workflow_reanalyzing_macosko2015'\n", | |
"data_folder = os.path.join(DATA_FOLDER, notebook_name)\n", | |
"figure_folder = os.path.join(FIGURE_FOLDER, notebook_name)\n", | |
"\n", | |
"input_folder = os.path.join(DATA_FOLDER, '91_filter_genes')\n", | |
"\n", | |
"! mkdir -p $data_folder\n", | |
"! mkdir -p $figure_folder" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.decomposition import PCA, FastICA, NMF\n", | |
"from sklearn.manifold import TSNE, MDS" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import matplotlib.pyplot as plt\n", | |
"import phenograph\n", | |
"\n", | |
"import macosko2015\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"counts.shape (6020, 1339)\n", | |
"cells.shape (6020, 5)\n", | |
"genes.shape (1339, 39)\n" | |
] | |
} | |
], | |
"source": [ | |
"counts, cells, genes = macosko2015.load_differential_clusters()\n", | |
"print('counts.shape', counts.shape)\n", | |
"print('cells.shape', cells.shape)\n", | |
"print('genes.shape', genes.shape)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <th>2010107E04RIK</th>\n", | |
" <th>2410066E13RIK</th>\n", | |
" <th>2610017I09RIK</th>\n", | |
" <th>2900011O08RIK</th>\n", | |
" <th>4632428N05RIK</th>\n", | |
" <th>...</th>\n", | |
" <th>ZFHX4</th>\n", | |
" <th>ZFP36</th>\n", | |
" <th>ZFP365</th>\n", | |
" <th>ZFP36L1</th>\n", | |
" <th>ZFP804A</th>\n", | |
" <th>ZIC1</th>\n", | |
" <th>ZIC4</th>\n", | |
" <th>ZMAT4</th>\n", | |
" <th>ZWINT</th>\n", | |
" <th>ZYX</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GGCCGCAGTCCG</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>4</td>\n", | |
" <td>7</td>\n", | |
" <td>28</td>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>33</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>3</td>\n", | |
" <td>0</td>\n", | |
" <td>7</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>7</td>\n", | |
" <td>53</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTGTGCGGGAA</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>9</td>\n", | |
" <td>4</td>\n", | |
" <td>4</td>\n", | |
" <td>33</td>\n", | |
" <td>4</td>\n", | |
" <td>0</td>\n", | |
" <td>43</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>8</td>\n", | |
" <td>0</td>\n", | |
" <td>4</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>65</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCGCAACTGCTC</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>11</td>\n", | |
" <td>1</td>\n", | |
" <td>4</td>\n", | |
" <td>26</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>30</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>4</td>\n", | |
" <td>38</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GATTGGGAGGCA</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>8</td>\n", | |
" <td>2</td>\n", | |
" <td>5</td>\n", | |
" <td>14</td>\n", | |
" <td>6</td>\n", | |
" <td>0</td>\n", | |
" <td>20</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>17</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTGCCGCCTCTC</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>19</td>\n", | |
" <td>1</td>\n", | |
" <td>13</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>3</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 1339 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 1500015O10RIK 1500016L03RIK 1700025G04RIK 1810009A15RIK \\\n", | |
"r1_GGCCGCAGTCCG 0 0 5 4 \n", | |
"r1_CTTGTGCGGGAA 0 0 9 4 \n", | |
"r1_GCGCAACTGCTC 0 0 11 1 \n", | |
"r1_GATTGGGAGGCA 0 0 8 2 \n", | |
"r1_GTGCCGCCTCTC 0 0 1 19 \n", | |
"\n", | |
" 1810037I17RIK 2010107E04RIK 2410066E13RIK 2610017I09RIK \\\n", | |
"r1_GGCCGCAGTCCG 7 28 5 0 \n", | |
"r1_CTTGTGCGGGAA 4 33 4 0 \n", | |
"r1_GCGCAACTGCTC 4 26 2 0 \n", | |
"r1_GATTGGGAGGCA 5 14 6 0 \n", | |
"r1_GTGCCGCCTCTC 1 13 0 0 \n", | |
"\n", | |
" 2900011O08RIK 4632428N05RIK ... ZFHX4 ZFP36 ZFP365 \\\n", | |
"r1_GGCCGCAGTCCG 33 0 ... 3 0 7 \n", | |
"r1_CTTGTGCGGGAA 43 0 ... 8 0 4 \n", | |
"r1_GCGCAACTGCTC 30 0 ... 0 0 2 \n", | |
"r1_GATTGGGAGGCA 20 0 ... 1 0 1 \n", | |
"r1_GTGCCGCCTCTC 0 0 ... 0 0 3 \n", | |
"\n", | |
" ZFP36L1 ZFP804A ZIC1 ZIC4 ZMAT4 ZWINT ZYX \n", | |
"r1_GGCCGCAGTCCG 0 0 0 0 7 53 0 \n", | |
"r1_CTTGTGCGGGAA 0 0 0 0 5 65 1 \n", | |
"r1_GCGCAACTGCTC 0 0 0 0 4 38 0 \n", | |
"r1_GATTGGGAGGCA 0 0 1 0 3 17 0 \n", | |
"r1_GTGCCGCCTCTC 0 0 0 0 0 3 0 \n", | |
"\n", | |
"[5 rows x 1339 columns]" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"counts.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>cluster_01</th>\n", | |
" <th>cluster_02</th>\n", | |
" <th>cluster_03</th>\n", | |
" <th>cluster_04</th>\n", | |
" <th>cluster_05</th>\n", | |
" <th>cluster_06</th>\n", | |
" <th>cluster_07</th>\n", | |
" <th>cluster_08</th>\n", | |
" <th>cluster_09</th>\n", | |
" <th>cluster_10</th>\n", | |
" <th>...</th>\n", | |
" <th>cluster_30</th>\n", | |
" <th>cluster_31</th>\n", | |
" <th>cluster_32</th>\n", | |
" <th>cluster_33</th>\n", | |
" <th>cluster_34</th>\n", | |
" <th>cluster_35</th>\n", | |
" <th>cluster_36</th>\n", | |
" <th>cluster_37</th>\n", | |
" <th>cluster_38</th>\n", | |
" <th>cluster_39</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>...</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>...</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>...</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>...</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>...</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>True</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" <td>False</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 39 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" cluster_01 cluster_02 cluster_03 cluster_04 cluster_05 \\\n", | |
"1500015O10RIK False False False False False \n", | |
"1500016L03RIK True False False False False \n", | |
"1700025G04RIK False False True False False \n", | |
"1810009A15RIK False False False False False \n", | |
"1810037I17RIK False False False False False \n", | |
"\n", | |
" cluster_06 cluster_07 cluster_08 cluster_09 cluster_10 \\\n", | |
"1500015O10RIK False False False False False \n", | |
"1500016L03RIK False False False False False \n", | |
"1700025G04RIK False False False False False \n", | |
"1810009A15RIK False False False False False \n", | |
"1810037I17RIK False False False False False \n", | |
"\n", | |
" ... cluster_30 cluster_31 cluster_32 cluster_33 \\\n", | |
"1500015O10RIK ... False False False False \n", | |
"1500016L03RIK ... False False False False \n", | |
"1700025G04RIK ... False False False False \n", | |
"1810009A15RIK ... False False False False \n", | |
"1810037I17RIK ... False False False False \n", | |
"\n", | |
" cluster_34 cluster_35 cluster_36 cluster_37 cluster_38 \\\n", | |
"1500015O10RIK False True False False False \n", | |
"1500016L03RIK False False False False False \n", | |
"1700025G04RIK False False False False False \n", | |
"1810009A15RIK False False False False True \n", | |
"1810037I17RIK False True False False False \n", | |
"\n", | |
" cluster_39 \n", | |
"1500015O10RIK False \n", | |
"1500016L03RIK False \n", | |
"1700025G04RIK False \n", | |
"1810009A15RIK False \n", | |
"1810037I17RIK False \n", | |
"\n", | |
"[5 rows x 39 columns]" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"genes.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>cluster_id</th>\n", | |
" <th>celltype</th>\n", | |
" <th>cluster_n</th>\n", | |
" <th>cluster_n_celltype</th>\n", | |
" <th>cluster_celltype_with_id</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GGCCGCAGTCCG</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTGTGCGGGAA</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCGCAACTGCTC</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GATTGGGAGGCA</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTGCCGCCTCTC</th>\n", | |
" <td>cluster_25</td>\n", | |
" <td>Cones</td>\n", | |
" <td>25</td>\n", | |
" <td>#25 (Cones)</td>\n", | |
" <td>Cones (cluster_25)</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" cluster_id celltype cluster_n \\\n", | |
"r1_GGCCGCAGTCCG cluster_02 Retinal ganglion cells 2 \n", | |
"r1_CTTGTGCGGGAA cluster_02 Retinal ganglion cells 2 \n", | |
"r1_GCGCAACTGCTC cluster_02 Retinal ganglion cells 2 \n", | |
"r1_GATTGGGAGGCA cluster_02 Retinal ganglion cells 2 \n", | |
"r1_GTGCCGCCTCTC cluster_25 Cones 25 \n", | |
"\n", | |
" cluster_n_celltype \\\n", | |
"r1_GGCCGCAGTCCG #2 (Retinal ganglion cells) \n", | |
"r1_CTTGTGCGGGAA #2 (Retinal ganglion cells) \n", | |
"r1_GCGCAACTGCTC #2 (Retinal ganglion cells) \n", | |
"r1_GATTGGGAGGCA #2 (Retinal ganglion cells) \n", | |
"r1_GTGCCGCCTCTC #25 (Cones) \n", | |
"\n", | |
" cluster_celltype_with_id \n", | |
"r1_GGCCGCAGTCCG Retinal ganglion cells (cluster_02) \n", | |
"r1_CTTGTGCGGGAA Retinal ganglion cells (cluster_02) \n", | |
"r1_GCGCAACTGCTC Retinal ganglion cells (cluster_02) \n", | |
"r1_GATTGGGAGGCA Retinal ganglion cells (cluster_02) \n", | |
"r1_GTGCCGCCTCTC Cones (cluster_25) " | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"cells.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## New stuff starts here" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# pcaer = PCA(n_components=15)\n", | |
"# # pcad = pcaer.fit_tra" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# pcad = pcaer.fit_transform(counts)\n", | |
"# pcad" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# pcad.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# pcad_df = pd.DataFrame(pcad, index=counts.index)\n", | |
"# print(pcad_df.shape)\n", | |
"# pcad_df.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# %%time\n", | |
"\n", | |
"# smusher = TSNE()\n", | |
"# tsned = smusher.fit_transform(pcad_df)\n", | |
"# print(tsned.shape)\n", | |
"# tsned" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Phenograph clustering on cell-cell correlations" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(6020, 1339)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <th>2010107E04RIK</th>\n", | |
" <th>2410066E13RIK</th>\n", | |
" <th>2610017I09RIK</th>\n", | |
" <th>2900011O08RIK</th>\n", | |
" <th>4632428N05RIK</th>\n", | |
" <th>...</th>\n", | |
" <th>ZFHX4</th>\n", | |
" <th>ZFP36</th>\n", | |
" <th>ZFP365</th>\n", | |
" <th>ZFP36L1</th>\n", | |
" <th>ZFP804A</th>\n", | |
" <th>ZIC1</th>\n", | |
" <th>ZIC4</th>\n", | |
" <th>ZMAT4</th>\n", | |
" <th>ZWINT</th>\n", | |
" <th>ZYX</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GGCCGCAGTCCG</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>4</td>\n", | |
" <td>7</td>\n", | |
" <td>28</td>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>33</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>3</td>\n", | |
" <td>0</td>\n", | |
" <td>7</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>7</td>\n", | |
" <td>53</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTGTGCGGGAA</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>9</td>\n", | |
" <td>4</td>\n", | |
" <td>4</td>\n", | |
" <td>33</td>\n", | |
" <td>4</td>\n", | |
" <td>0</td>\n", | |
" <td>43</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>8</td>\n", | |
" <td>0</td>\n", | |
" <td>4</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>65</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCGCAACTGCTC</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>11</td>\n", | |
" <td>1</td>\n", | |
" <td>4</td>\n", | |
" <td>26</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>30</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>4</td>\n", | |
" <td>38</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GATTGGGAGGCA</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>8</td>\n", | |
" <td>2</td>\n", | |
" <td>5</td>\n", | |
" <td>14</td>\n", | |
" <td>6</td>\n", | |
" <td>0</td>\n", | |
" <td>20</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>17</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTGCCGCCTCTC</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>19</td>\n", | |
" <td>1</td>\n", | |
" <td>13</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>3</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 1339 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 1500015O10RIK 1500016L03RIK 1700025G04RIK 1810009A15RIK \\\n", | |
"r1_GGCCGCAGTCCG 0 0 5 4 \n", | |
"r1_CTTGTGCGGGAA 0 0 9 4 \n", | |
"r1_GCGCAACTGCTC 0 0 11 1 \n", | |
"r1_GATTGGGAGGCA 0 0 8 2 \n", | |
"r1_GTGCCGCCTCTC 0 0 1 19 \n", | |
"\n", | |
" 1810037I17RIK 2010107E04RIK 2410066E13RIK 2610017I09RIK \\\n", | |
"r1_GGCCGCAGTCCG 7 28 5 0 \n", | |
"r1_CTTGTGCGGGAA 4 33 4 0 \n", | |
"r1_GCGCAACTGCTC 4 26 2 0 \n", | |
"r1_GATTGGGAGGCA 5 14 6 0 \n", | |
"r1_GTGCCGCCTCTC 1 13 0 0 \n", | |
"\n", | |
" 2900011O08RIK 4632428N05RIK ... ZFHX4 ZFP36 ZFP365 \\\n", | |
"r1_GGCCGCAGTCCG 33 0 ... 3 0 7 \n", | |
"r1_CTTGTGCGGGAA 43 0 ... 8 0 4 \n", | |
"r1_GCGCAACTGCTC 30 0 ... 0 0 2 \n", | |
"r1_GATTGGGAGGCA 20 0 ... 1 0 1 \n", | |
"r1_GTGCCGCCTCTC 0 0 ... 0 0 3 \n", | |
"\n", | |
" ZFP36L1 ZFP804A ZIC1 ZIC4 ZMAT4 ZWINT ZYX \n", | |
"r1_GGCCGCAGTCCG 0 0 0 0 7 53 0 \n", | |
"r1_CTTGTGCGGGAA 0 0 0 0 5 65 1 \n", | |
"r1_GCGCAACTGCTC 0 0 0 0 4 38 0 \n", | |
"r1_GATTGGGAGGCA 0 0 1 0 3 17 0 \n", | |
"r1_GTGCCGCCTCTC 0 0 0 0 0 3 0 \n", | |
"\n", | |
"[5 rows x 1339 columns]" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"print(counts.shape)\n", | |
"counts.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"counts_train.shape (3010, 1339)\n" | |
] | |
}, | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/Users/olgabot/anaconda3/envs/cshl-sca-2017/lib/python3.6/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", | |
" \"This module will be removed in 0.20.\", DeprecationWarning)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <th>2010107E04RIK</th>\n", | |
" <th>2410066E13RIK</th>\n", | |
" <th>2610017I09RIK</th>\n", | |
" <th>2900011O08RIK</th>\n", | |
" <th>4632428N05RIK</th>\n", | |
" <th>...</th>\n", | |
" <th>ZFHX4</th>\n", | |
" <th>ZFP36</th>\n", | |
" <th>ZFP365</th>\n", | |
" <th>ZFP36L1</th>\n", | |
" <th>ZFP804A</th>\n", | |
" <th>ZIC1</th>\n", | |
" <th>ZIC4</th>\n", | |
" <th>ZMAT4</th>\n", | |
" <th>ZWINT</th>\n", | |
" <th>ZYX</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>2</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>...</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>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</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>1</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>4</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>r1_TCCCCTCTAGAG</th>\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", | |
" <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>r1_TTTTAATTTGTA</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>3</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>4</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>5 rows × 1339 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 1500015O10RIK 1500016L03RIK 1700025G04RIK 1810009A15RIK \\\n", | |
"r1_CCAACACGTTCT 0 0 0 2 \n", | |
"r1_CTTCTTCAGGCT 0 0 0 3 \n", | |
"r1_TCTCACTATCCA 0 0 0 4 \n", | |
"r1_TCCCCTCTAGAG 0 0 0 0 \n", | |
"r1_TTTTAATTTGTA 0 0 3 0 \n", | |
"\n", | |
" 1810037I17RIK 2010107E04RIK 2410066E13RIK 2610017I09RIK \\\n", | |
"r1_CCAACACGTTCT 0 0 0 0 \n", | |
"r1_CTTCTTCAGGCT 0 0 0 0 \n", | |
"r1_TCTCACTATCCA 0 0 0 0 \n", | |
"r1_TCCCCTCTAGAG 0 0 1 0 \n", | |
"r1_TTTTAATTTGTA 0 1 1 0 \n", | |
"\n", | |
" 2900011O08RIK 4632428N05RIK ... ZFHX4 ZFP36 ZFP365 \\\n", | |
"r1_CCAACACGTTCT 1 0 ... 0 0 0 \n", | |
"r1_CTTCTTCAGGCT 0 0 ... 0 0 0 \n", | |
"r1_TCTCACTATCCA 0 0 ... 0 0 0 \n", | |
"r1_TCCCCTCTAGAG 0 0 ... 0 0 0 \n", | |
"r1_TTTTAATTTGTA 0 0 ... 4 0 0 \n", | |
"\n", | |
" ZFP36L1 ZFP804A ZIC1 ZIC4 ZMAT4 ZWINT ZYX \n", | |
"r1_CCAACACGTTCT 0 0 0 0 0 0 0 \n", | |
"r1_CTTCTTCAGGCT 0 0 0 0 0 1 0 \n", | |
"r1_TCTCACTATCCA 0 0 0 0 0 0 0 \n", | |
"r1_TCCCCTCTAGAG 0 0 0 0 0 0 0 \n", | |
"r1_TTTTAATTTGTA 0 0 0 0 0 0 0 \n", | |
"\n", | |
"[5 rows x 1339 columns]" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from sklearn.cross_validation import train_test_split\n", | |
"\n", | |
"counts_test, counts_train = train_test_split(counts, test_size=0.5, random_state=0)\n", | |
"print('counts_train.shape', counts_train.shape)\n", | |
"counts_train.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"counts_test.shape (3010, 1339)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <th>2010107E04RIK</th>\n", | |
" <th>2410066E13RIK</th>\n", | |
" <th>2610017I09RIK</th>\n", | |
" <th>2900011O08RIK</th>\n", | |
" <th>4632428N05RIK</th>\n", | |
" <th>...</th>\n", | |
" <th>ZFHX4</th>\n", | |
" <th>ZFP36</th>\n", | |
" <th>ZFP365</th>\n", | |
" <th>ZFP36L1</th>\n", | |
" <th>ZFP804A</th>\n", | |
" <th>ZIC1</th>\n", | |
" <th>ZIC4</th>\n", | |
" <th>ZMAT4</th>\n", | |
" <th>ZWINT</th>\n", | |
" <th>ZYX</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GATCCAATCCCG</th>\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", | |
" <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>r1_CGATCAAGTATC</th>\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", | |
" <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>r1_GATGCTTATGAG</th>\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", | |
" <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>r1_TGCCGCGAGAGC</th>\n", | |
" <td>0</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>0</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>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTCGCGCCGAAA</th>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>1</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>2</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 1339 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 1500015O10RIK 1500016L03RIK 1700025G04RIK 1810009A15RIK \\\n", | |
"r1_GATCCAATCCCG 0 0 0 1 \n", | |
"r1_CGATCAAGTATC 0 0 0 0 \n", | |
"r1_GATGCTTATGAG 0 0 0 0 \n", | |
"r1_TGCCGCGAGAGC 0 0 0 0 \n", | |
"r1_GTCGCGCCGAAA 0 0 0 0 \n", | |
"\n", | |
" 1810037I17RIK 2010107E04RIK 2410066E13RIK 2610017I09RIK \\\n", | |
"r1_GATCCAATCCCG 0 0 0 0 \n", | |
"r1_CGATCAAGTATC 1 0 0 0 \n", | |
"r1_GATGCTTATGAG 0 0 0 0 \n", | |
"r1_TGCCGCGAGAGC 0 4 0 0 \n", | |
"r1_GTCGCGCCGAAA 1 2 1 0 \n", | |
"\n", | |
" 2900011O08RIK 4632428N05RIK ... ZFHX4 ZFP36 ZFP365 \\\n", | |
"r1_GATCCAATCCCG 0 0 ... 0 0 0 \n", | |
"r1_CGATCAAGTATC 0 0 ... 0 0 0 \n", | |
"r1_GATGCTTATGAG 0 0 ... 0 0 0 \n", | |
"r1_TGCCGCGAGAGC 3 0 ... 0 0 0 \n", | |
"r1_GTCGCGCCGAAA 0 0 ... 0 0 0 \n", | |
"\n", | |
" ZFP36L1 ZFP804A ZIC1 ZIC4 ZMAT4 ZWINT ZYX \n", | |
"r1_GATCCAATCCCG 0 0 0 0 0 0 0 \n", | |
"r1_CGATCAAGTATC 0 0 0 0 0 0 0 \n", | |
"r1_GATGCTTATGAG 0 0 0 0 0 0 0 \n", | |
"r1_TGCCGCGAGAGC 0 0 0 0 0 1 0 \n", | |
"r1_GTCGCGCCGAAA 0 0 0 0 0 2 0 \n", | |
"\n", | |
"[5 rows x 1339 columns]" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"print('counts_test.shape', counts_test.shape)\n", | |
"counts_test.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 3010)\n", | |
"CPU times: user 16.5 s, sys: 149 ms, total: 16.7 s\n", | |
"Wall time: 16.7 s\n" | |
] | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"correlations = counts_train.T.rank().corr()\n", | |
"print(correlations.shape)\n", | |
"correlations.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 3010)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <th>r1_TTATTTGTGGCA</th>\n", | |
" <th>r1_GTCGCGTACGCA</th>\n", | |
" <th>r1_CGCACATAGGTC</th>\n", | |
" <th>r1_TACCTCCGTGGT</th>\n", | |
" <th>r1_TAAACTCTACGA</th>\n", | |
" <th>...</th>\n", | |
" <th>r1_CGGGGGTTATTC</th>\n", | |
" <th>r1_CAGTGGCAGCCC</th>\n", | |
" <th>r1_TTACCTCAGCGT</th>\n", | |
" <th>r1_GCGGAAGCGTCA</th>\n", | |
" <th>r1_ACGCAAGATAGG</th>\n", | |
" <th>r1_CGCGGCGTGCTA</th>\n", | |
" <th>r1_AGATCTTCCCAA</th>\n", | |
" <th>r1_AATATCCTCGGC</th>\n", | |
" <th>r1_GGTTAGTCGGCT</th>\n", | |
" <th>r1_AAATTTATATAA</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.993441</td>\n", | |
" <td>1.076941</td>\n", | |
" <td>1.027240</td>\n", | |
" <td>1.296840</td>\n", | |
" <td>1.331150</td>\n", | |
" <td>1.244828</td>\n", | |
" <td>1.326081</td>\n", | |
" <td>1.008790</td>\n", | |
" <td>1.020011</td>\n", | |
" <td>...</td>\n", | |
" <td>1.000673</td>\n", | |
" <td>1.057810</td>\n", | |
" <td>1.270931</td>\n", | |
" <td>1.017896</td>\n", | |
" <td>1.202897</td>\n", | |
" <td>1.018735</td>\n", | |
" <td>0.984900</td>\n", | |
" <td>1.350747</td>\n", | |
" <td>0.974036</td>\n", | |
" <td>1.045396</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0.993441</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.976185</td>\n", | |
" <td>1.054736</td>\n", | |
" <td>1.271578</td>\n", | |
" <td>1.308774</td>\n", | |
" <td>1.200513</td>\n", | |
" <td>1.308940</td>\n", | |
" <td>0.975947</td>\n", | |
" <td>1.047391</td>\n", | |
" <td>...</td>\n", | |
" <td>0.967996</td>\n", | |
" <td>1.066160</td>\n", | |
" <td>1.260695</td>\n", | |
" <td>0.935730</td>\n", | |
" <td>1.182850</td>\n", | |
" <td>1.013576</td>\n", | |
" <td>0.980752</td>\n", | |
" <td>1.315583</td>\n", | |
" <td>0.979983</td>\n", | |
" <td>1.035630</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>1.076941</td>\n", | |
" <td>0.976185</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.029532</td>\n", | |
" <td>1.248153</td>\n", | |
" <td>1.313877</td>\n", | |
" <td>1.197329</td>\n", | |
" <td>1.279683</td>\n", | |
" <td>0.977199</td>\n", | |
" <td>1.009855</td>\n", | |
" <td>...</td>\n", | |
" <td>0.964681</td>\n", | |
" <td>1.029582</td>\n", | |
" <td>1.204676</td>\n", | |
" <td>0.950428</td>\n", | |
" <td>1.159075</td>\n", | |
" <td>1.025457</td>\n", | |
" <td>0.991594</td>\n", | |
" <td>1.310962</td>\n", | |
" <td>0.998356</td>\n", | |
" <td>1.014989</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>1.027240</td>\n", | |
" <td>1.054736</td>\n", | |
" <td>1.029532</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.279174</td>\n", | |
" <td>1.351473</td>\n", | |
" <td>1.221056</td>\n", | |
" <td>1.340927</td>\n", | |
" <td>1.039574</td>\n", | |
" <td>1.021917</td>\n", | |
" <td>...</td>\n", | |
" <td>0.987412</td>\n", | |
" <td>1.075835</td>\n", | |
" <td>1.226816</td>\n", | |
" <td>0.999903</td>\n", | |
" <td>1.194162</td>\n", | |
" <td>1.081733</td>\n", | |
" <td>0.966514</td>\n", | |
" <td>1.356934</td>\n", | |
" <td>0.967550</td>\n", | |
" <td>1.077539</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>1.296840</td>\n", | |
" <td>1.271578</td>\n", | |
" <td>1.248153</td>\n", | |
" <td>1.279174</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.313388</td>\n", | |
" <td>1.231700</td>\n", | |
" <td>1.206492</td>\n", | |
" <td>1.276229</td>\n", | |
" <td>1.269962</td>\n", | |
" <td>...</td>\n", | |
" <td>1.294213</td>\n", | |
" <td>1.282831</td>\n", | |
" <td>1.215458</td>\n", | |
" <td>1.299271</td>\n", | |
" <td>1.204348</td>\n", | |
" <td>1.293593</td>\n", | |
" <td>1.278576</td>\n", | |
" <td>1.220729</td>\n", | |
" <td>1.268400</td>\n", | |
" <td>1.257103</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 3010 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" r1_CCAACACGTTCT r1_CTTCTTCAGGCT r1_TCTCACTATCCA \\\n", | |
"r1_CCAACACGTTCT 0.000000 0.993441 1.076941 \n", | |
"r1_CTTCTTCAGGCT 0.993441 0.000000 0.976185 \n", | |
"r1_TCTCACTATCCA 1.076941 0.976185 0.000000 \n", | |
"r1_TCCCCTCTAGAG 1.027240 1.054736 1.029532 \n", | |
"r1_TTTTAATTTGTA 1.296840 1.271578 1.248153 \n", | |
"\n", | |
" r1_TCCCCTCTAGAG r1_TTTTAATTTGTA r1_TTATTTGTGGCA \\\n", | |
"r1_CCAACACGTTCT 1.027240 1.296840 1.331150 \n", | |
"r1_CTTCTTCAGGCT 1.054736 1.271578 1.308774 \n", | |
"r1_TCTCACTATCCA 1.029532 1.248153 1.313877 \n", | |
"r1_TCCCCTCTAGAG 0.000000 1.279174 1.351473 \n", | |
"r1_TTTTAATTTGTA 1.279174 0.000000 1.313388 \n", | |
"\n", | |
" r1_GTCGCGTACGCA r1_CGCACATAGGTC r1_TACCTCCGTGGT \\\n", | |
"r1_CCAACACGTTCT 1.244828 1.326081 1.008790 \n", | |
"r1_CTTCTTCAGGCT 1.200513 1.308940 0.975947 \n", | |
"r1_TCTCACTATCCA 1.197329 1.279683 0.977199 \n", | |
"r1_TCCCCTCTAGAG 1.221056 1.340927 1.039574 \n", | |
"r1_TTTTAATTTGTA 1.231700 1.206492 1.276229 \n", | |
"\n", | |
" r1_TAAACTCTACGA ... r1_CGGGGGTTATTC \\\n", | |
"r1_CCAACACGTTCT 1.020011 ... 1.000673 \n", | |
"r1_CTTCTTCAGGCT 1.047391 ... 0.967996 \n", | |
"r1_TCTCACTATCCA 1.009855 ... 0.964681 \n", | |
"r1_TCCCCTCTAGAG 1.021917 ... 0.987412 \n", | |
"r1_TTTTAATTTGTA 1.269962 ... 1.294213 \n", | |
"\n", | |
" r1_CAGTGGCAGCCC r1_TTACCTCAGCGT r1_GCGGAAGCGTCA \\\n", | |
"r1_CCAACACGTTCT 1.057810 1.270931 1.017896 \n", | |
"r1_CTTCTTCAGGCT 1.066160 1.260695 0.935730 \n", | |
"r1_TCTCACTATCCA 1.029582 1.204676 0.950428 \n", | |
"r1_TCCCCTCTAGAG 1.075835 1.226816 0.999903 \n", | |
"r1_TTTTAATTTGTA 1.282831 1.215458 1.299271 \n", | |
"\n", | |
" r1_ACGCAAGATAGG r1_CGCGGCGTGCTA r1_AGATCTTCCCAA \\\n", | |
"r1_CCAACACGTTCT 1.202897 1.018735 0.984900 \n", | |
"r1_CTTCTTCAGGCT 1.182850 1.013576 0.980752 \n", | |
"r1_TCTCACTATCCA 1.159075 1.025457 0.991594 \n", | |
"r1_TCCCCTCTAGAG 1.194162 1.081733 0.966514 \n", | |
"r1_TTTTAATTTGTA 1.204348 1.293593 1.278576 \n", | |
"\n", | |
" r1_AATATCCTCGGC r1_GGTTAGTCGGCT r1_AAATTTATATAA \n", | |
"r1_CCAACACGTTCT 1.350747 0.974036 1.045396 \n", | |
"r1_CTTCTTCAGGCT 1.315583 0.979983 1.035630 \n", | |
"r1_TCTCACTATCCA 1.310962 0.998356 1.014989 \n", | |
"r1_TCCCCTCTAGAG 1.356934 0.967550 1.077539 \n", | |
"r1_TTTTAATTTGTA 1.220729 1.268400 1.257103 \n", | |
"\n", | |
"[5 rows x 3010 columns]" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from networkplots import correlation_to_distance\n", | |
"\n", | |
"distances = correlation_to_distance(correlations)\n", | |
"print(distances.shape)\n", | |
"distances.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Finding 30 nearest neighbors using minkowski metric and 'auto' algorithm\n", | |
"Neighbors computed in 7.462655067443848 seconds\n", | |
"Jaccard graph constructed in 0.4774787425994873 seconds\n", | |
"Wrote graph to binary file in 0.11667513847351074 seconds\n", | |
"Running Louvain modularity optimization\n", | |
"After 1 runs, maximum modularity is Q = 0.846274\n", | |
"After 17 runs, maximum modularity is Q = 0.847682\n", | |
"Louvain completed 37 runs in 1.4393260478973389 seconds\n", | |
"PhenoGraph complete in 9.56062126159668 seconds\n", | |
"CPU times: user 49.2 s, sys: 344 ms, total: 49.6 s\n", | |
"Wall time: 9.65 s\n" | |
] | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"communities, adjacencies, Q = phenograph.cluster(distances, k=30)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Finding 10 nearest neighbors using minkowski metric and 'auto' algorithm\n", | |
"Neighbors computed in 8.863274097442627 seconds\n", | |
"Jaccard graph constructed in 0.14262104034423828 seconds\n", | |
"Wrote graph to binary file in 0.032111167907714844 seconds\n", | |
"Running Louvain modularity optimization\n", | |
"After 1 runs, maximum modularity is Q = 0.895781\n", | |
"Louvain completed 21 runs in 0.5709171295166016 seconds\n", | |
"PhenoGraph complete in 9.627496242523193 seconds\n", | |
"CPU times: user 48.1 s, sys: 525 ms, total: 48.7 s\n", | |
"Wall time: 9.8 s\n" | |
] | |
} | |
], | |
"source": [ | |
"%%time\n", | |
"communities, adjacencies, Q = phenograph.cluster(distances, k=10)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import networkx" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<networkx.classes.graph.Graph at 0x110f274a8>" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"graph = networkx.from_scipy_sparse_matrix(adjacencies)\n", | |
"graph" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"3010" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"positions = networkx.spring_layout(graph)\n", | |
"len(positions)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dict" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(positions)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(2, 3010)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>...</th>\n", | |
" <th>3000</th>\n", | |
" <th>3001</th>\n", | |
" <th>3002</th>\n", | |
" <th>3003</th>\n", | |
" <th>3004</th>\n", | |
" <th>3005</th>\n", | |
" <th>3006</th>\n", | |
" <th>3007</th>\n", | |
" <th>3008</th>\n", | |
" <th>3009</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>xs</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.647390</td>\n", | |
" <td>0.523527</td>\n", | |
" <td>0.007839</td>\n", | |
" <td>0.456290</td>\n", | |
" <td>0.211770</td>\n", | |
" <td>...</td>\n", | |
" <td>0.320587</td>\n", | |
" <td>0.151550</td>\n", | |
" <td>0.236928</td>\n", | |
" <td>0.394814</td>\n", | |
" <td>0.328936</td>\n", | |
" <td>0.368547</td>\n", | |
" <td>0.446920</td>\n", | |
" <td>0.067811</td>\n", | |
" <td>0.528635</td>\n", | |
" <td>0.377247</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ys</th>\n", | |
" <td>0.527988</td>\n", | |
" <td>0.481257</td>\n", | |
" <td>0.773558</td>\n", | |
" <td>0.627434</td>\n", | |
" <td>0.424228</td>\n", | |
" <td>0.703439</td>\n", | |
" <td>0.461635</td>\n", | |
" <td>0.589635</td>\n", | |
" <td>0.743805</td>\n", | |
" <td>0.715635</td>\n", | |
" <td>...</td>\n", | |
" <td>0.858051</td>\n", | |
" <td>0.431389</td>\n", | |
" <td>0.497536</td>\n", | |
" <td>0.852505</td>\n", | |
" <td>0.474639</td>\n", | |
" <td>0.326307</td>\n", | |
" <td>0.853984</td>\n", | |
" <td>0.633341</td>\n", | |
" <td>0.767849</td>\n", | |
" <td>0.435929</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>2 rows × 3010 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4 5 6 \\\n", | |
"xs 0.116133 0.335802 0.476648 0.137763 0.601614 0.647390 0.523527 \n", | |
"ys 0.527988 0.481257 0.773558 0.627434 0.424228 0.703439 0.461635 \n", | |
"\n", | |
" 7 8 9 ... 3000 3001 3002 \\\n", | |
"xs 0.007839 0.456290 0.211770 ... 0.320587 0.151550 0.236928 \n", | |
"ys 0.589635 0.743805 0.715635 ... 0.858051 0.431389 0.497536 \n", | |
"\n", | |
" 3003 3004 3005 3006 3007 3008 3009 \n", | |
"xs 0.394814 0.328936 0.368547 0.446920 0.067811 0.528635 0.377247 \n", | |
"ys 0.852505 0.474639 0.326307 0.853984 0.633341 0.767849 0.435929 \n", | |
"\n", | |
"[2 rows x 3010 columns]" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout = pd.DataFrame(positions, index=['xs', 'ys'])\n", | |
"print(layout.shape)\n", | |
"layout.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 26, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 2)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.527988</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.481257</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.773558</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.627434</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.424228</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys\n", | |
"0 0.116133 0.527988\n", | |
"1 0.335802 0.481257\n", | |
"2 0.476648 0.773558\n", | |
"3 0.137763 0.627434\n", | |
"4 0.601614 0.424228" | |
] | |
}, | |
"execution_count": 26, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout_t = layout.T\n", | |
"print(layout_t.shape)\n", | |
"layout_t.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 2)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.527988</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.481257</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.773558</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.627434</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.424228</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys\n", | |
"r1_CCAACACGTTCT 0.116133 0.527988\n", | |
"r1_CTTCTTCAGGCT 0.335802 0.481257\n", | |
"r1_TCTCACTATCCA 0.476648 0.773558\n", | |
"r1_TCCCCTCTAGAG 0.137763 0.627434\n", | |
"r1_TTTTAATTTGTA 0.601614 0.424228" | |
] | |
}, | |
"execution_count": 27, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout_t.index = distances.index\n", | |
"print(layout_t.shape)\n", | |
"layout_t.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 28, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 1, 16, 0, ..., 8, 4, 2])" | |
] | |
}, | |
"execution_count": 28, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"communities" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 29, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"3010" | |
] | |
}, | |
"execution_count": 29, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"len(communities)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 30, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 3)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" <th>community</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.527988</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.481257</td>\n", | |
" <td>16</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.773558</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.627434</td>\n", | |
" <td>1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.424228</td>\n", | |
" <td>5</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys community\n", | |
"r1_CCAACACGTTCT 0.116133 0.527988 1\n", | |
"r1_CTTCTTCAGGCT 0.335802 0.481257 16\n", | |
"r1_TCTCACTATCCA 0.476648 0.773558 0\n", | |
"r1_TCCCCTCTAGAG 0.137763 0.627434 1\n", | |
"r1_TTTTAATTTGTA 0.601614 0.424228 5" | |
] | |
}, | |
"execution_count": 30, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout_t['community'] = list(communities) # + [1, 2, 3, 'beyonce']\n", | |
"print(layout_t.shape)\n", | |
"layout_t.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 31, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"community\n", | |
"-1 1\n", | |
" 0 568\n", | |
" 1 524\n", | |
" 2 288\n", | |
" 3 244\n", | |
" 4 185\n", | |
" 5 141\n", | |
" 6 138\n", | |
" 7 123\n", | |
" 8 113\n", | |
" 9 91\n", | |
" 10 91\n", | |
" 11 78\n", | |
" 12 75\n", | |
" 13 74\n", | |
" 14 54\n", | |
" 15 54\n", | |
" 16 47\n", | |
" 17 34\n", | |
" 18 25\n", | |
" 19 24\n", | |
" 20 23\n", | |
" 21 15\n", | |
"dtype: int64" | |
] | |
}, | |
"execution_count": 31, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sizes = layout_t.groupby('community').size()\n", | |
"sizes" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 32, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"pandas.core.series.Series" | |
] | |
}, | |
"execution_count": 32, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(sizes)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 33, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"pandas.core.frame.DataFrame" | |
] | |
}, | |
"execution_count": 33, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"sizes_mystery = sizes.to_frame()\n", | |
"type(sizes_mystery)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# layout_t.groupby('communities').mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 35, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>cluster_id</th>\n", | |
" <th>celltype</th>\n", | |
" <th>cluster_n</th>\n", | |
" <th>cluster_n_celltype</th>\n", | |
" <th>cluster_celltype_with_id</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GGCCGCAGTCCG</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTGTGCGGGAA</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCGCAACTGCTC</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GATTGGGAGGCA</th>\n", | |
" <td>cluster_02</td>\n", | |
" <td>Retinal ganglion cells</td>\n", | |
" <td>2</td>\n", | |
" <td>#2 (Retinal ganglion cells)</td>\n", | |
" <td>Retinal ganglion cells (cluster_02)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTGCCGCCTCTC</th>\n", | |
" <td>cluster_25</td>\n", | |
" <td>Cones</td>\n", | |
" <td>25</td>\n", | |
" <td>#25 (Cones)</td>\n", | |
" <td>Cones (cluster_25)</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" cluster_id celltype cluster_n \\\n", | |
"r1_GGCCGCAGTCCG cluster_02 Retinal ganglion cells 2 \n", | |
"r1_CTTGTGCGGGAA cluster_02 Retinal ganglion cells 2 \n", | |
"r1_GCGCAACTGCTC cluster_02 Retinal ganglion cells 2 \n", | |
"r1_GATTGGGAGGCA cluster_02 Retinal ganglion cells 2 \n", | |
"r1_GTGCCGCCTCTC cluster_25 Cones 25 \n", | |
"\n", | |
" cluster_n_celltype \\\n", | |
"r1_GGCCGCAGTCCG #2 (Retinal ganglion cells) \n", | |
"r1_CTTGTGCGGGAA #2 (Retinal ganglion cells) \n", | |
"r1_GCGCAACTGCTC #2 (Retinal ganglion cells) \n", | |
"r1_GATTGGGAGGCA #2 (Retinal ganglion cells) \n", | |
"r1_GTGCCGCCTCTC #25 (Cones) \n", | |
"\n", | |
" cluster_celltype_with_id \n", | |
"r1_GGCCGCAGTCCG Retinal ganglion cells (cluster_02) \n", | |
"r1_CTTGTGCGGGAA Retinal ganglion cells (cluster_02) \n", | |
"r1_GCGCAACTGCTC Retinal ganglion cells (cluster_02) \n", | |
"r1_GATTGGGAGGCA Retinal ganglion cells (cluster_02) \n", | |
"r1_GTGCCGCCTCTC Cones (cluster_25) " | |
] | |
}, | |
"execution_count": 35, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"cells.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 36, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 8)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" <th>community</th>\n", | |
" <th>cluster_id</th>\n", | |
" <th>celltype</th>\n", | |
" <th>cluster_n</th>\n", | |
" <th>cluster_n_celltype</th>\n", | |
" <th>cluster_celltype_with_id</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.527988</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.481257</td>\n", | |
" <td>16</td>\n", | |
" <td>cluster_25</td>\n", | |
" <td>Cones</td>\n", | |
" <td>25</td>\n", | |
" <td>#25 (Cones)</td>\n", | |
" <td>Cones (cluster_25)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.773558</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.627434</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.424228</td>\n", | |
" <td>5</td>\n", | |
" <td>cluster_33</td>\n", | |
" <td>Bipolar cells</td>\n", | |
" <td>33</td>\n", | |
" <td>#33 (Bipolar cells)</td>\n", | |
" <td>Bipolar cells (cluster_33)</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys community cluster_id celltype \\\n", | |
"r1_CCAACACGTTCT 0.116133 0.527988 1 cluster_24 Rods \n", | |
"r1_CTTCTTCAGGCT 0.335802 0.481257 16 cluster_25 Cones \n", | |
"r1_TCTCACTATCCA 0.476648 0.773558 0 cluster_24 Rods \n", | |
"r1_TCCCCTCTAGAG 0.137763 0.627434 1 cluster_24 Rods \n", | |
"r1_TTTTAATTTGTA 0.601614 0.424228 5 cluster_33 Bipolar cells \n", | |
"\n", | |
" cluster_n cluster_n_celltype cluster_celltype_with_id \n", | |
"r1_CCAACACGTTCT 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_CTTCTTCAGGCT 25 #25 (Cones) Cones (cluster_25) \n", | |
"r1_TCTCACTATCCA 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TCCCCTCTAGAG 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TTTTAATTTGTA 33 #33 (Bipolar cells) Bipolar cells (cluster_33) " | |
] | |
}, | |
"execution_count": 36, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout_t_metadata = layout_t.join(cells)\n", | |
"print(layout_t_metadata.shape)\n", | |
"layout_t_metadata.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 37, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import networkplots" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 39, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 9)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" <th>community</th>\n", | |
" <th>cluster_id</th>\n", | |
" <th>celltype</th>\n", | |
" <th>cluster_n</th>\n", | |
" <th>cluster_n_celltype</th>\n", | |
" <th>cluster_celltype_with_id</th>\n", | |
" <th>community_color</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.527988</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#e48432</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.481257</td>\n", | |
" <td>16</td>\n", | |
" <td>cluster_25</td>\n", | |
" <td>Cones</td>\n", | |
" <td>25</td>\n", | |
" <td>#25 (Cones)</td>\n", | |
" <td>Cones (cluster_25)</td>\n", | |
" <td>#9a90f4</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.773558</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f7755a</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.627434</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#e48432</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.424228</td>\n", | |
" <td>5</td>\n", | |
" <td>cluster_33</td>\n", | |
" <td>Bipolar cells</td>\n", | |
" <td>33</td>\n", | |
" <td>#33 (Bipolar cells)</td>\n", | |
" <td>Bipolar cells (cluster_33)</td>\n", | |
" <td>#91a531</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys community cluster_id celltype \\\n", | |
"r1_CCAACACGTTCT 0.116133 0.527988 1 cluster_24 Rods \n", | |
"r1_CTTCTTCAGGCT 0.335802 0.481257 16 cluster_25 Cones \n", | |
"r1_TCTCACTATCCA 0.476648 0.773558 0 cluster_24 Rods \n", | |
"r1_TCCCCTCTAGAG 0.137763 0.627434 1 cluster_24 Rods \n", | |
"r1_TTTTAATTTGTA 0.601614 0.424228 5 cluster_33 Bipolar cells \n", | |
"\n", | |
" cluster_n cluster_n_celltype cluster_celltype_with_id \\\n", | |
"r1_CCAACACGTTCT 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_CTTCTTCAGGCT 25 #25 (Cones) Cones (cluster_25) \n", | |
"r1_TCTCACTATCCA 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TCCCCTCTAGAG 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TTTTAATTTGTA 33 #33 (Bipolar cells) Bipolar cells (cluster_33) \n", | |
"\n", | |
" community_color \n", | |
"r1_CCAACACGTTCT #e48432 \n", | |
"r1_CTTCTTCAGGCT #9a90f4 \n", | |
"r1_TCTCACTATCCA #f7755a \n", | |
"r1_TCCCCTCTAGAG #e48432 \n", | |
"r1_TTTTAATTTGTA #91a531 " | |
] | |
}, | |
"execution_count": 39, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout_t_metadata['community_color'] = networkplots.labels_to_colors(layout_t_metadata['community'], palette='husl')\n", | |
"print(layout_t_metadata.shape)\n", | |
"layout_t_metadata.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 40, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 10)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" <th>community</th>\n", | |
" <th>cluster_id</th>\n", | |
" <th>celltype</th>\n", | |
" <th>cluster_n</th>\n", | |
" <th>cluster_n_celltype</th>\n", | |
" <th>cluster_celltype_with_id</th>\n", | |
" <th>community_color</th>\n", | |
" <th>barcode</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.527988</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#e48432</td>\n", | |
" <td>r1_CCAACACGTTCT</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.481257</td>\n", | |
" <td>16</td>\n", | |
" <td>cluster_25</td>\n", | |
" <td>Cones</td>\n", | |
" <td>25</td>\n", | |
" <td>#25 (Cones)</td>\n", | |
" <td>Cones (cluster_25)</td>\n", | |
" <td>#9a90f4</td>\n", | |
" <td>r1_CTTCTTCAGGCT</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.773558</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f7755a</td>\n", | |
" <td>r1_TCTCACTATCCA</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.627434</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#e48432</td>\n", | |
" <td>r1_TCCCCTCTAGAG</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.424228</td>\n", | |
" <td>5</td>\n", | |
" <td>cluster_33</td>\n", | |
" <td>Bipolar cells</td>\n", | |
" <td>33</td>\n", | |
" <td>#33 (Bipolar cells)</td>\n", | |
" <td>Bipolar cells (cluster_33)</td>\n", | |
" <td>#91a531</td>\n", | |
" <td>r1_TTTTAATTTGTA</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys community cluster_id celltype \\\n", | |
"r1_CCAACACGTTCT 0.116133 0.527988 1 cluster_24 Rods \n", | |
"r1_CTTCTTCAGGCT 0.335802 0.481257 16 cluster_25 Cones \n", | |
"r1_TCTCACTATCCA 0.476648 0.773558 0 cluster_24 Rods \n", | |
"r1_TCCCCTCTAGAG 0.137763 0.627434 1 cluster_24 Rods \n", | |
"r1_TTTTAATTTGTA 0.601614 0.424228 5 cluster_33 Bipolar cells \n", | |
"\n", | |
" cluster_n cluster_n_celltype cluster_celltype_with_id \\\n", | |
"r1_CCAACACGTTCT 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_CTTCTTCAGGCT 25 #25 (Cones) Cones (cluster_25) \n", | |
"r1_TCTCACTATCCA 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TCCCCTCTAGAG 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TTTTAATTTGTA 33 #33 (Bipolar cells) Bipolar cells (cluster_33) \n", | |
"\n", | |
" community_color barcode \n", | |
"r1_CCAACACGTTCT #e48432 r1_CCAACACGTTCT \n", | |
"r1_CTTCTTCAGGCT #9a90f4 r1_CTTCTTCAGGCT \n", | |
"r1_TCTCACTATCCA #f7755a r1_TCTCACTATCCA \n", | |
"r1_TCCCCTCTAGAG #e48432 r1_TCCCCTCTAGAG \n", | |
"r1_TTTTAATTTGTA #91a531 r1_TTTTAATTTGTA " | |
] | |
}, | |
"execution_count": 40, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout_t_metadata['barcode'] = layout_t_metadata.index\n", | |
"print(layout_t_metadata.shape)\n", | |
"layout_t_metadata.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 55, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 11)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" <th>community</th>\n", | |
" <th>cluster_id</th>\n", | |
" <th>celltype</th>\n", | |
" <th>cluster_n</th>\n", | |
" <th>cluster_n_celltype</th>\n", | |
" <th>cluster_celltype_with_id</th>\n", | |
" <th>community_color</th>\n", | |
" <th>barcode</th>\n", | |
" <th>macosko_color</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0.116133</td>\n", | |
" <td>0.527988</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#e48432</td>\n", | |
" <td>r1_CCAACACGTTCT</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0.335802</td>\n", | |
" <td>0.481257</td>\n", | |
" <td>16</td>\n", | |
" <td>cluster_25</td>\n", | |
" <td>Cones</td>\n", | |
" <td>25</td>\n", | |
" <td>#25 (Cones)</td>\n", | |
" <td>Cones (cluster_25)</td>\n", | |
" <td>#9a90f4</td>\n", | |
" <td>r1_CTTCTTCAGGCT</td>\n", | |
" <td>#39a8cc</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0.476648</td>\n", | |
" <td>0.773558</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f7755a</td>\n", | |
" <td>r1_TCTCACTATCCA</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>0.137763</td>\n", | |
" <td>0.627434</td>\n", | |
" <td>1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#e48432</td>\n", | |
" <td>r1_TCCCCTCTAGAG</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>0.601614</td>\n", | |
" <td>0.424228</td>\n", | |
" <td>5</td>\n", | |
" <td>cluster_33</td>\n", | |
" <td>Bipolar cells</td>\n", | |
" <td>33</td>\n", | |
" <td>#33 (Bipolar cells)</td>\n", | |
" <td>Bipolar cells (cluster_33)</td>\n", | |
" <td>#91a531</td>\n", | |
" <td>r1_TTTTAATTTGTA</td>\n", | |
" <td>#dd6ff4</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys community cluster_id celltype \\\n", | |
"r1_CCAACACGTTCT 0.116133 0.527988 1 cluster_24 Rods \n", | |
"r1_CTTCTTCAGGCT 0.335802 0.481257 16 cluster_25 Cones \n", | |
"r1_TCTCACTATCCA 0.476648 0.773558 0 cluster_24 Rods \n", | |
"r1_TCCCCTCTAGAG 0.137763 0.627434 1 cluster_24 Rods \n", | |
"r1_TTTTAATTTGTA 0.601614 0.424228 5 cluster_33 Bipolar cells \n", | |
"\n", | |
" cluster_n cluster_n_celltype cluster_celltype_with_id \\\n", | |
"r1_CCAACACGTTCT 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_CTTCTTCAGGCT 25 #25 (Cones) Cones (cluster_25) \n", | |
"r1_TCTCACTATCCA 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TCCCCTCTAGAG 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TTTTAATTTGTA 33 #33 (Bipolar cells) Bipolar cells (cluster_33) \n", | |
"\n", | |
" community_color barcode macosko_color \n", | |
"r1_CCAACACGTTCT #e48432 r1_CCAACACGTTCT #38a9c1 \n", | |
"r1_CTTCTTCAGGCT #9a90f4 r1_CTTCTTCAGGCT #39a8cc \n", | |
"r1_TCTCACTATCCA #f7755a r1_TCTCACTATCCA #38a9c1 \n", | |
"r1_TCCCCTCTAGAG #e48432 r1_TCCCCTCTAGAG #38a9c1 \n", | |
"r1_TTTTAATTTGTA #91a531 r1_TTTTAATTTGTA #dd6ff4 " | |
] | |
}, | |
"execution_count": 55, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"layout_t_metadata['macosko_color'] = networkplots.labels_to_colors(layout_t_metadata['cluster_n'], \n", | |
" palette='husl')\n", | |
"print(layout_t_metadata.shape)\n", | |
"layout_t_metadata.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 56, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 11)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" <th>community</th>\n", | |
" <th>cluster_id</th>\n", | |
" <th>celltype</th>\n", | |
" <th>cluster_n</th>\n", | |
" <th>cluster_n_celltype</th>\n", | |
" <th>cluster_celltype_with_id</th>\n", | |
" <th>community_color</th>\n", | |
" <th>barcode</th>\n", | |
" <th>macosko_color</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CTATCACTCCAT</th>\n", | |
" <td>0.206043</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>-1</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f77189</td>\n", | |
" <td>r1_CTATCACTCCAT</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCGGCAGCCTCT</th>\n", | |
" <td>0.375232</td>\n", | |
" <td>0.903764</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f7755a</td>\n", | |
" <td>r1_TCGGCAGCCTCT</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTGAACGTGATT</th>\n", | |
" <td>0.381351</td>\n", | |
" <td>0.912286</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f7755a</td>\n", | |
" <td>r1_TTGAACGTGATT</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCTCGGAACGGG</th>\n", | |
" <td>0.311110</td>\n", | |
" <td>0.809028</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f7755a</td>\n", | |
" <td>r1_GCTCGGAACGGG</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_AGAACGCTTTAT</th>\n", | |
" <td>0.487744</td>\n", | |
" <td>0.766872</td>\n", | |
" <td>0</td>\n", | |
" <td>cluster_24</td>\n", | |
" <td>Rods</td>\n", | |
" <td>24</td>\n", | |
" <td>#24 (Rods)</td>\n", | |
" <td>Rods (cluster_24)</td>\n", | |
" <td>#f7755a</td>\n", | |
" <td>r1_AGAACGCTTTAT</td>\n", | |
" <td>#38a9c1</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys community cluster_id celltype \\\n", | |
"r1_CTATCACTCCAT 0.206043 0.000000 -1 cluster_24 Rods \n", | |
"r1_TCGGCAGCCTCT 0.375232 0.903764 0 cluster_24 Rods \n", | |
"r1_TTGAACGTGATT 0.381351 0.912286 0 cluster_24 Rods \n", | |
"r1_GCTCGGAACGGG 0.311110 0.809028 0 cluster_24 Rods \n", | |
"r1_AGAACGCTTTAT 0.487744 0.766872 0 cluster_24 Rods \n", | |
"\n", | |
" cluster_n cluster_n_celltype cluster_celltype_with_id \\\n", | |
"r1_CTATCACTCCAT 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TCGGCAGCCTCT 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_TTGAACGTGATT 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_GCTCGGAACGGG 24 #24 (Rods) Rods (cluster_24) \n", | |
"r1_AGAACGCTTTAT 24 #24 (Rods) Rods (cluster_24) \n", | |
"\n", | |
" community_color barcode macosko_color \n", | |
"r1_CTATCACTCCAT #f77189 r1_CTATCACTCCAT #38a9c1 \n", | |
"r1_TCGGCAGCCTCT #f7755a r1_TCGGCAGCCTCT #38a9c1 \n", | |
"r1_TTGAACGTGATT #f7755a r1_TTGAACGTGATT #38a9c1 \n", | |
"r1_GCTCGGAACGGG #f7755a r1_GCTCGGAACGGG #38a9c1 \n", | |
"r1_AGAACGCTTTAT #f7755a r1_AGAACGCTTTAT #38a9c1 " | |
] | |
}, | |
"execution_count": 56, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"nodes_specs = layout_t_metadata.sort_values('community')\n", | |
"print(nodes_specs.shape)\n", | |
"nodes_specs.head()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Now to create the edges matrix!" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 57, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"edges_specs = networkplots.get_edges_specs(graph, positions)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(16488, 3)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>xs</th>\n", | |
" <th>ys</th>\n", | |
" <th>alphas</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>[0.116133, 0.148019]</td>\n", | |
" <td>[0.527988, 0.588866]</td>\n", | |
" <td>0.119298</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>[0.116133, 0.124028]</td>\n", | |
" <td>[0.527988, 0.64536]</td>\n", | |
" <td>0.119298</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>[0.116133, 0.168057]</td>\n", | |
" <td>[0.527988, 0.52288]</td>\n", | |
" <td>0.140741</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>[0.116133, 0.138209]</td>\n", | |
" <td>[0.527988, 0.529882]</td>\n", | |
" <td>0.119298</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>[0.116133, 0.146351]</td>\n", | |
" <td>[0.527988, 0.477522]</td>\n", | |
" <td>0.181481</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" xs ys alphas\n", | |
"0 [0.116133, 0.148019] [0.527988, 0.588866] 0.119298\n", | |
"1 [0.116133, 0.124028] [0.527988, 0.64536] 0.119298\n", | |
"2 [0.116133, 0.168057] [0.527988, 0.52288] 0.140741\n", | |
"3 [0.116133, 0.138209] [0.527988, 0.529882] 0.119298\n", | |
"4 [0.116133, 0.146351] [0.527988, 0.477522] 0.181481" | |
] | |
}, | |
"execution_count": 43, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"print(edges_specs.shape)\n", | |
"edges_specs.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"networkplots.plot_graph??" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from networkplots import TOOLS, X_COL, Y_COL\n", | |
"\n", | |
"def plot_graph(nodes_source, edges_source, legend_col, color_col, title,\n", | |
" tab=False):\n", | |
" \"\"\"Draw a network in 2d space using Bokeh\"\"\"\n", | |
"\n", | |
" # names=['cell'] matches p1.circle(... name='cell' ...) so that the\n", | |
" # hover tooltip only shows up on the cells, not on the edges\n", | |
" hover1 = HoverTool(names=['cell'], tooltips=[\n", | |
" (\"Cell Barcode\", \"@barcode\"),\n", | |
" (\"Group\", f\"@{legend_col}\"),\n", | |
" ])\n", | |
"\n", | |
" p1 = figure(tools=[TOOLS, hover1], plot_height=500, plot_width=750,\n", | |
" title=title)\n", | |
" edges = p1.multi_line(X_COL, Y_COL, line_width=1.5,\n", | |
" alpha='alphas', color='black',\n", | |
" source=edges_source)\n", | |
" nodes = p1.circle(X_COL, Y_COL, size=10,\n", | |
" fill_alpha=0.5, hover_alpha=1,\n", | |
" hover_fill_color=color_col,\n", | |
" muted_alpha=0.2, source=nodes_source, legend=legend_col,\n", | |
" color=color_col, name='cell')\n", | |
" p1.legend.click_policy = \"mute\"\n", | |
" if tab:\n", | |
" tab1 = Panel(child=p1, title=title)\n", | |
" return tab1\n", | |
" else:\n", | |
" return p1" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 46, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# networkplots??" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 47, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"\n", | |
" <div class=\"bk-root\">\n", | |
" <a href=\"http://bokeh.pydata.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n", | |
" <span id=\"f165f28a-4951-4b4c-8488-638d7ef5d47c\">Loading BokehJS ...</span>\n", | |
" </div>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"application/javascript": [ | |
"\n", | |
"(function(global) {\n", | |
" function now() {\n", | |
" return new Date();\n", | |
" }\n", | |
"\n", | |
" var force = true;\n", | |
"\n", | |
" if (typeof (window._bokeh_onload_callbacks) === \"undefined\" || force === true) {\n", | |
" window._bokeh_onload_callbacks = [];\n", | |
" window._bokeh_is_loading = undefined;\n", | |
" }\n", | |
"\n", | |
"\n", | |
" \n", | |
" if (typeof (window._bokeh_timeout) === \"undefined\" || force === true) {\n", | |
" window._bokeh_timeout = Date.now() + 5000;\n", | |
" window._bokeh_failed_load = false;\n", | |
" }\n", | |
"\n", | |
" var NB_LOAD_WARNING = {'data': {'text/html':\n", | |
" \"<div style='background-color: #fdd'>\\n\"+\n", | |
" \"<p>\\n\"+\n", | |
" \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", | |
" \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", | |
" \"</p>\\n\"+\n", | |
" \"<ul>\\n\"+\n", | |
" \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n", | |
" \"<li>use INLINE resources instead, as so:</li>\\n\"+\n", | |
" \"</ul>\\n\"+\n", | |
" \"<code>\\n\"+\n", | |
" \"from bokeh.resources import INLINE\\n\"+\n", | |
" \"output_notebook(resources=INLINE)\\n\"+\n", | |
" \"</code>\\n\"+\n", | |
" \"</div>\"}};\n", | |
"\n", | |
" function display_loaded() {\n", | |
" if (window.Bokeh !== undefined) {\n", | |
" var el = document.getElementById(\"f165f28a-4951-4b4c-8488-638d7ef5d47c\");\n", | |
" el.textContent = \"BokehJS \" + Bokeh.version + \" successfully loaded.\";\n", | |
" } else if (Date.now() < window._bokeh_timeout) {\n", | |
" setTimeout(display_loaded, 100)\n", | |
" }\n", | |
" }\n", | |
"\n", | |
" function run_callbacks() {\n", | |
" try {\n", | |
" window._bokeh_onload_callbacks.forEach(function(callback) { callback() });\n", | |
" }\n", | |
" finally {\n", | |
" delete window._bokeh_onload_callbacks\n", | |
" }\n", | |
" console.info(\"Bokeh: all callbacks have finished\");\n", | |
" }\n", | |
"\n", | |
" function load_libs(js_urls, callback) {\n", | |
" window._bokeh_onload_callbacks.push(callback);\n", | |
" if (window._bokeh_is_loading > 0) {\n", | |
" console.log(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", | |
" return null;\n", | |
" }\n", | |
" if (js_urls == null || js_urls.length === 0) {\n", | |
" run_callbacks();\n", | |
" return null;\n", | |
" }\n", | |
" console.log(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", | |
" window._bokeh_is_loading = js_urls.length;\n", | |
" for (var i = 0; i < js_urls.length; i++) {\n", | |
" var url = js_urls[i];\n", | |
" var s = document.createElement('script');\n", | |
" s.src = url;\n", | |
" s.async = false;\n", | |
" s.onreadystatechange = s.onload = function() {\n", | |
" window._bokeh_is_loading--;\n", | |
" if (window._bokeh_is_loading === 0) {\n", | |
" console.log(\"Bokeh: all BokehJS libraries loaded\");\n", | |
" run_callbacks()\n", | |
" }\n", | |
" };\n", | |
" s.onerror = function() {\n", | |
" console.warn(\"failed to load library \" + url);\n", | |
" };\n", | |
" console.log(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", | |
" document.getElementsByTagName(\"head\")[0].appendChild(s);\n", | |
" }\n", | |
" };var element = document.getElementById(\"f165f28a-4951-4b4c-8488-638d7ef5d47c\");\n", | |
" if (element == null) {\n", | |
" console.log(\"Bokeh: ERROR: autoload.js configured with elementid 'f165f28a-4951-4b4c-8488-638d7ef5d47c' but no matching script tag was found. \")\n", | |
" return false;\n", | |
" }\n", | |
"\n", | |
" var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.6.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.6.min.js\"];\n", | |
"\n", | |
" var inline_js = [\n", | |
" function(Bokeh) {\n", | |
" Bokeh.set_log_level(\"info\");\n", | |
" },\n", | |
" \n", | |
" function(Bokeh) {\n", | |
" \n", | |
" },\n", | |
" \n", | |
" function(Bokeh) {\n", | |
" \n", | |
" document.getElementById(\"f165f28a-4951-4b4c-8488-638d7ef5d47c\").textContent = \"BokehJS is loading...\";\n", | |
" },\n", | |
" function(Bokeh) {\n", | |
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.6.min.css\");\n", | |
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-0.12.6.min.css\");\n", | |
" console.log(\"Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.6.min.css\");\n", | |
" Bokeh.embed.inject_css(\"https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.6.min.css\");\n", | |
" }\n", | |
" ];\n", | |
"\n", | |
" function run_inline_js() {\n", | |
" \n", | |
" if ((window.Bokeh !== undefined) || (force === true)) {\n", | |
" for (var i = 0; i < inline_js.length; i++) {\n", | |
" inline_js[i](window.Bokeh);\n", | |
" }if (force === true) {\n", | |
" display_loaded();\n", | |
" }} else if (Date.now() < window._bokeh_timeout) {\n", | |
" setTimeout(run_inline_js, 100);\n", | |
" } else if (!window._bokeh_failed_load) {\n", | |
" console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", | |
" window._bokeh_failed_load = true;\n", | |
" } else if (force !== true) {\n", | |
" var cell = $(document.getElementById(\"f165f28a-4951-4b4c-8488-638d7ef5d47c\")).parents('.cell').data().cell;\n", | |
" cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", | |
" }\n", | |
"\n", | |
" }\n", | |
"\n", | |
" if (window._bokeh_is_loading === 0) {\n", | |
" console.log(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", | |
" run_inline_js();\n", | |
" } else {\n", | |
" load_libs(js_urls, function() {\n", | |
" console.log(\"Bokeh: BokehJS plotting callback run at\", now());\n", | |
" run_inline_js();\n", | |
" });\n", | |
" }\n", | |
"}(this));" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# Bokeh - interactive plotting in the browser\n", | |
"from bokeh.plotting import figure, show, output_file, output_notebook\n", | |
"from bokeh.models import HoverTool, ColumnDataSource\n", | |
"from bokeh.models.widgets import Panel, Tabs\n", | |
"\n", | |
"output_notebook()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 52, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"nodes_source = ColumnDataSource(nodes_specs)\n", | |
"edges_source = ColumnDataSource(edges_specs)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 70, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# plot1 = networkplots.plot_graph(nodes_source, edges_source, legend_col='community', \n", | |
"# color_col='community_color', title='Phenograph', tab=True)\n", | |
"# # show(plot1)\n", | |
"# plot2 = networkplots.plot_graph(nodes_source, edges_source, 'cluster_n_celltype', 'macosko_color', \n", | |
"# title='Paper clustering', tab=True)\n", | |
"\n", | |
"# tabs = Tabs(tabs=[plot1, plot2])\n", | |
"# show(tabs)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"output_notebook()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"scrolled": false | |
}, | |
"outputs": [], | |
"source": [ | |
"\n", | |
"# X_COL = 'xs'\n", | |
"# Y_COL = 'ys'\n", | |
"\n", | |
"# legend_col = 'community'\n", | |
"# color_col = 'community_color'\n", | |
"# title = 'PhenoGraph'\n", | |
"\n", | |
"# # hover = HoverTool(names=['cell'], tooltips=[\n", | |
"# # (\"Cell Barcode\", \"@barcode\"),\n", | |
"# # (\"Group\", f\"@{legend_col}\"),\n", | |
"# # ])\n", | |
"\n", | |
"# p1 = figure(tools=[TOOLS, hover]), #plot_height=500, plot_width=750,\n", | |
"# # title=title)\n", | |
"# # edges = p1.multi_line(X_COL, Y_COL, line_width=1.5,\n", | |
"# # alpha='alphas', color='black',\n", | |
"# # source=edges_source)\n", | |
"# # nodes = p1.circle(X_COL, Y_COL, size=10,\n", | |
"# # fill_alpha=0.5, hover_alpha=1,\n", | |
"# # hover_fill_color=color_col,\n", | |
"# # muted_alpha=0.2, source=nodes_source, legend=legend_col,\n", | |
"# # color=color_col, name='cell')\n", | |
"# # p1.legend.click_policy = \"mute\"\n", | |
"# show(p1)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Classifiers!!!" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 93, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2.0</td>\n", | |
" <td>2.0</td>\n", | |
" <td>2.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2\n", | |
"0 1.0 1.0 1.0\n", | |
"1 2.0 2.0 2.0" | |
] | |
}, | |
"execution_count": 93, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df = pd.DataFrame([[3, 4, 5], [9, 7, 8]])\n", | |
"df.rank()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 94, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>1.0</td>\n", | |
" <td>2.0</td>\n", | |
" <td>3.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>3.0</td>\n", | |
" <td>1.0</td>\n", | |
" <td>2.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2\n", | |
"0 1.0 2.0 3.0\n", | |
"1 3.0 1.0 2.0" | |
] | |
}, | |
"execution_count": 94, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df.rank(axis=1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 173, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 1, 16, 0, ..., 8, 4, 2])" | |
] | |
}, | |
"execution_count": 173, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"communities" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 95, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ExtraTreesClassifier(bootstrap=False, class_weight=None, criterion='gini',\n", | |
" max_depth=None, max_features='auto', max_leaf_nodes=None,\n", | |
" min_impurity_split=1e-07, min_samples_leaf=1,\n", | |
" min_samples_split=2, min_weight_fraction_leaf=0.0,\n", | |
" n_estimators=10, n_jobs=1, oob_score=False, random_state=None,\n", | |
" verbose=0, warm_start=False)" | |
] | |
}, | |
"execution_count": 95, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from sklearn.ensemble import ExtraTreesClassifier\n", | |
"\n", | |
"classifier = ExtraTreesClassifier()\n", | |
"classifier.fit(counts_train, communities)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 96, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 0.00000000e+00, 0.00000000e+00, 6.76952931e-04, ...,\n", | |
" 2.12805477e-04, 1.61881734e-03, 9.51079901e-05])" | |
] | |
}, | |
"execution_count": 96, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"classifier.feature_importances_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 97, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import seaborn as sns" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 98, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x13affaba8>" | |
] | |
}, | |
"execution_count": 98, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nBbWIiIiJ/X9D/cMI/gyopQAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x13b6e8860>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.distplot(classifier.feature_importances_)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 174, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(1339,)" | |
] | |
}, | |
"execution_count": 174, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"classifier.feature_importances_.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 99, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"1184" | |
] | |
}, | |
"execution_count": 99, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"is_feature_important = classifier.feature_importances_ > 0\n", | |
"important_features = counts_train.columns[is_feature_important]\n", | |
"len(important_features)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 100, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Index(['1700025G04RIK', '1810009A15RIK', '1810037I17RIK', '2010107E04RIK',\n", | |
" '2410066E13RIK', '2610017I09RIK', '2900011O08RIK', '4833424O15RIK',\n", | |
" '4930447C04RIK', '6330403K07RIK',\n", | |
" ...\n", | |
" 'ZFHX3', 'ZFHX4', 'ZFP36', 'ZFP365', 'ZFP36L1', 'ZFP804A', 'ZIC1',\n", | |
" 'ZMAT4', 'ZWINT', 'ZYX'],\n", | |
" dtype='object', length=1184)" | |
] | |
}, | |
"execution_count": 100, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"important_features" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 101, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 1184)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <th>2010107E04RIK</th>\n", | |
" <th>2410066E13RIK</th>\n", | |
" <th>2610017I09RIK</th>\n", | |
" <th>2900011O08RIK</th>\n", | |
" <th>4833424O15RIK</th>\n", | |
" <th>4930447C04RIK</th>\n", | |
" <th>6330403K07RIK</th>\n", | |
" <th>...</th>\n", | |
" <th>ZFHX3</th>\n", | |
" <th>ZFHX4</th>\n", | |
" <th>ZFP36</th>\n", | |
" <th>ZFP365</th>\n", | |
" <th>ZFP36L1</th>\n", | |
" <th>ZFP804A</th>\n", | |
" <th>ZIC1</th>\n", | |
" <th>ZMAT4</th>\n", | |
" <th>ZWINT</th>\n", | |
" <th>ZYX</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>0</td>\n", | |
" <td>2</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", | |
" <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>r1_CTTCTTCAGGCT</th>\n", | |
" <td>0</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>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>1</td>\n", | |
" <td>0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>0</td>\n", | |
" <td>4</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>...</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>r1_TCCCCTCTAGAG</th>\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", | |
" <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>r1_TTTTAATTTGTA</th>\n", | |
" <td>3</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>0</td>\n", | |
" <td>...</td>\n", | |
" <td>0</td>\n", | |
" <td>4</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>5 rows × 1184 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 1700025G04RIK 1810009A15RIK 1810037I17RIK 2010107E04RIK \\\n", | |
"r1_CCAACACGTTCT 0 2 0 0 \n", | |
"r1_CTTCTTCAGGCT 0 3 0 0 \n", | |
"r1_TCTCACTATCCA 0 4 0 0 \n", | |
"r1_TCCCCTCTAGAG 0 0 0 0 \n", | |
"r1_TTTTAATTTGTA 3 0 0 1 \n", | |
"\n", | |
" 2410066E13RIK 2610017I09RIK 2900011O08RIK 4833424O15RIK \\\n", | |
"r1_CCAACACGTTCT 0 0 1 0 \n", | |
"r1_CTTCTTCAGGCT 0 0 0 0 \n", | |
"r1_TCTCACTATCCA 0 0 0 0 \n", | |
"r1_TCCCCTCTAGAG 1 0 0 0 \n", | |
"r1_TTTTAATTTGTA 1 0 0 1 \n", | |
"\n", | |
" 4930447C04RIK 6330403K07RIK ... ZFHX3 ZFHX4 ZFP36 \\\n", | |
"r1_CCAACACGTTCT 0 0 ... 0 0 0 \n", | |
"r1_CTTCTTCAGGCT 0 0 ... 0 0 0 \n", | |
"r1_TCTCACTATCCA 0 0 ... 0 0 0 \n", | |
"r1_TCCCCTCTAGAG 0 0 ... 0 0 0 \n", | |
"r1_TTTTAATTTGTA 0 0 ... 0 4 0 \n", | |
"\n", | |
" ZFP365 ZFP36L1 ZFP804A ZIC1 ZMAT4 ZWINT ZYX \n", | |
"r1_CCAACACGTTCT 0 0 0 0 0 0 0 \n", | |
"r1_CTTCTTCAGGCT 0 0 0 0 0 1 0 \n", | |
"r1_TCTCACTATCCA 0 0 0 0 0 0 0 \n", | |
"r1_TCCCCTCTAGAG 0 0 0 0 0 0 0 \n", | |
"r1_TTTTAATTTGTA 0 0 0 0 0 0 0 \n", | |
"\n", | |
"[5 rows x 1184 columns]" | |
] | |
}, | |
"execution_count": 101, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"counts_train_subset = counts_train[important_features]\n", | |
"print(counts_train_subset.shape)\n", | |
"counts_train_subset.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 102, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/Users/olgabot/anaconda3/envs/cshl-sca-2017/lib/python3.6/site-packages/matplotlib/cbook.py:136: MatplotlibDeprecationWarning: The axisbg attribute was deprecated in version 2.0. Use facecolor instead.\n", | |
" warnings.warn(message, mplDeprecation, stacklevel=1)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<seaborn.matrix.ClusterGrid at 0x13a9e9080>" | |
] | |
}, | |
"execution_count": 102, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAJiCAYAAAA1wp2FAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt0XNV5P/zvXCSNZVnI4i4bWzYsY5JA/EKTQl8HvIAk\nThpCSCkYUwiLZDm3hgRyYbglkxL4iZWWNOGXm3nTug0klKQ0DQsWlyYYqoADNRGEiw1GCNlWML7I\nlmRpJM3Mef+gGl0saTQz39F5zj7fz1paaMbD1tFozj7P2fvZz454nudBRERERKYU9fsARERERKxT\nwCQiIiJSgAImERERkQIUMImIiIgUoIBJREREpID4dP94yuKzKvJDn3/j8Yq0KyIiIlIJ0wZMkUhk\nto5DRERExKxpA6ZYJDZbxyEiIiJi1rQBUzw27T+LiIiIhIJGmEREREQKmD5gimoRnYiIiMj0U3JR\nTcnJoVpaWpBOp/0+jEBKJBJIJpN+H4aIiBRJU3JStHQ6jVQq5fdhBJLeNxGRYCowwqSASURERKRA\nDpMCJhEREZECU3JK+hYRERHRlJyIiIhIAZqSExERESlg2oCpSgGTiIiIiApXioiIiBRiMuk7m83i\nxhtvxOuvv45IJIJvfvObyGazuPnmmxGLxVBdXY3bbrsNRxxxhC/HJyIiIuFiMun7scceAwDcc889\n+P3vf4/vfOc76O3txU033YSTTjoJ99xzD+68805cd911vhyfiIiIhIvJKblzzz0Xq1atAgB0dXWh\nvr4e3/zmN3HUUUcBeHsEqqamxpdjExERkfAxOcIEAPF4HNdeey0effRRfO9738sHS88++yzuuusu\n3H333b4dm4iIiIRLgRGmyGwdx6Ruu+02fOUrX8FFF12EBx54ABs3bsQPf/hDrF+/Ho2Njb4em4iI\niISHySm5X/3qV9i1axc+/elPY86cOYhEInjkkUdw77334qc//SkaGhp8OS4REREJJ5N1mD7wgQ/g\nuuuuw6WXXopMJoPrr78e119/PY499lh84QtfAAC85z3vwVVXXeXL8YmIiEi4TBswRXyakautrcV3\nv/vdcc+de+65/hyMBEpLSwvS6bTfhzGljo4OpFIpvw9jSolEAslk0u/DEBExx2zSt0gp0um06YDE\nOr13IiKTM530LSIiImKByRwmEREREUumDZiiGmESERERKTDCFNPmuyIiIiLTjzD5tPmuiIiIiCVK\n+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\n1a9+FWvXrsWFF16I3/zmN3jjjTdwySWXYO3atfjGN76BXImbCQ8NDeHLX/4yLrroIlx55ZXjttcp\nxtj37MUXX8SFF16ItWvX4uabby762Ma29fLLL+Oiiy7CJZdcguuuu66stkbcf//9uPjii4tqZ7K/\nwYhbb70VP//5z4tqb0Qul8PXv/51XHzxxbjsssvwxhtvlNROoWMsx8DAANasWUM510eU855N124p\nstksrrvuOqxZswaXXHIJXnnllbKPp9zzc+I5sHbtWlx22WX45Cc/iT1FbgA8tq1t27bhkksuwZo1\na5BMJg8pbFxMWy+99BLe97735fvuBx98sKi2xrrgggvy7Vx33XUlt3Pffffl27noootw8skno6en\np+T2yuJJ6D366KPeVVdd5Xme57W2tnp/+7d/W3Qb69ev9z7ykY94f/3Xfz3u+f3793sf/ehHvV27\ndpV0bENDQ97nPvc57wMf+IC3bdu2ktqYeGzXXnut98ADD3ie53lPPfWU99hjjxXd5qZNm7xPf/rT\nXjab9fr6+rzvfe97Rf3/v/zlL71vfetbnud5Xnd3t3fWWWd5n/70p71NmzZ5nud5N910k/fII48U\nfVye53k//elPvRtvvNHzPM977bXXvCuvvLLoNia+ZxdccIG3efNmz/M87/bbb/d+9atfldzW5z73\nOW/jxo2e53neNddc4/3mN78puS3P87wXX3zRu/zyyw/57BUy2d9g79693ic/+UnvnHPO8X72s58V\n1d6Ihx9+2Lv22ms9z/O8P/zhD95nPvOZktqZ6hjL9fzzz3sXXHCB9xd/8RclnVMT/waM92yydsvx\n6KOPeslk0vO8t8/VUv4GE4+nnPNzYluXXnqp99JLL3me53k///nPvVtvvbXktj772c96Tz/9tOd5\nb/dt5RzXvffe6/3kJz+Z8f8/lXQ67Z1//vlltzNRKpXy7rnnnpL+32XLlk37NRMaYRIsWbIE2WwW\nuVwOfX19iJewT9OiRYtwxx13HPL8HXfcgb/5m7/BUUcdVdKx3XbbbVizZk3J//9kx/bss89i165d\nuOKKK3D//ffjve99b9Fttra2YtmyZfj85z+Pz3zmM1i1alVR///q1avxxS9+EQDgeR5isRhefPHF\n/LGceeaZePLJJ4s+LuDtO84zzzwTALB06dKSRhEmvme7du3CqaeeCgA49dRTsXnz5pLbOumkk7B/\n/354noeDBw8W9Xmb2FZ3dzduv/12XH/99TNuY8Rkf4ODBw/iC1/4As4///yi2xuxefNmvO997wMA\nrFixAi+88ELJbU12jOUaGhrC97//fSxdurSk/3/i34Dxnk3WbjnOPfdc3HzzzQDe3qi8vr74vewm\nHk855+fEtm6//XacdNJJAN4eDRvZ1qqUtu644w685z3vwdDQEHbv3o26urqS23rhhRewceNGXHrp\npbj++uvR11falk5btmzBwMAArrzySlx++eXTbgw/U3/84x+xbdu2okeSmRQwCWpra7Fz50586EMf\nwk033VTSkPgHP/jBQy58e/fuxVNPPYWPf/zjJR3Xfffdh8bGxvzFp1QTj23nzp2or6/Hhg0bcOyx\nx+LOO+8sus3u7m688MIL+O53v4tvfvOb+MpXvgKviF2G5s6di7q6OvT19eGqq67Cl770JXieh0gk\nkv/33t7S9v876aST8Nhjj8HzPLS1tWHXrl3IFrn/3MT37LjjjsPTTz8NAHjssccwMDBQclvNzc24\n5ZZb8KEPfQh79+7Fn//5n5fUVjabxQ033IDrrrsOc+cWv4faZH+D4447Du9+97uLbmusvr6+cRet\nWCxW9DTJdMdYrtNOOw3HlrGH4GSfjXLfs8naLVc8Hse1116Lm2++Geedd17Zx1PO+TmxrZEbwGef\nfRZ33XUXrrjiipLbisVi2LlzJz7ykY+gu7sby5cvL7mtU045BV/72tdw991347jjjsP3v//9Gbc1\nViKRwCc/+Un85Cc/yfePpZ4DI3784x/j85//fFltlEsBk2DDhg1YuXIlHn74Yfznf/4nkskkBgfL\n33jzoYcewkc+8pGS74r//d//HU8++SQuu+wyvPzyy7j22muxe/fuso+roaEBZ599NgDg7LPPLmkE\noKGhAStXrkR1dTWWLl2Kmpoa7Nu3r6g2/vSnP+Hyyy/H+eefj/POOw/RMZsaHzx4sKS7YgD4q7/6\nK9TV1WHt2rV49NFH8c53vrPskYlbb70VP/7xj/GJT3wChx9+OObPn19yW7fccgvuvvtuPPTQQ/jY\nxz6GlpaWktp58cUX8cYbbyCVSuGaa67Btm3bcMsttxTVxsS/AUNdXR0OjtnQNZfLlRUIMI7xO9/5\nTj4PpNjgOchuu+02PPzww7jpppvQ399fVlus83PEgw8+iG984xtYv349Ghsby2prwYIFeOSRR3DJ\n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\nAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x13a9fe320>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.clustermap(counts_train_subset.groupby(communities).mean().T)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 103, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/Users/olgabot/anaconda3/envs/cshl-sca-2017/lib/python3.6/site-packages/matplotlib/cbook.py:136: MatplotlibDeprecationWarning: The axisbg attribute was deprecated in version 2.0. Use facecolor instead.\n", | |
" warnings.warn(message, mplDeprecation, stacklevel=1)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<seaborn.matrix.ClusterGrid at 0x13a97a518>" | |
] | |
}, | |
"execution_count": 103, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAJxCAYAAACwgO2wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt4VdWd//HPyUnI4ZIQaUWlAUKKNIzF8nh3BsUqCFpb\na0uVS2kdfcbWOlovbTkgaCzCHJ9O6SitF3jq0EHFauuj9YcDFSoyUVEqjaACCjFGSAW5xADmkJyc\n/fvDSQYQss5lnex99n6/niePkpx8s85ln/05a629VshxHEcAAAA4pgK3GwAAAOB1BCYAAAADAhMA\nAIABgQkAAMCAwAQAAGBAYAIAADAo7OqHpw4enZM/uv79F3NSFwAAIBe6DEwFBeHuagcAAIBndRmY\nigq6/DEAAEAgdN3DFGKKEwAAQNc9TGF6mAAAAAw9TMxhwmfFYjHF43G3m5HXIpGIotGo280AAKSo\ny8AUZkgORxGPx1VdXe12M/Iajx8A5BeG5AAAAAwMPUwMyQEAAHQZmApdWoepvb1dM2fO1HvvvadQ\nKKS77rpLxcXFikajCoVCOvnkk3XnnXeqoIAhQwAAkHtd9zC5FEheeOEFSdLjjz+uV199Vb/61a/k\nOI5uvvlmnX322brjjju0cuVKjR071pX2AQCAYPHkkNyYMWN0wQUXSJIaGxtVWlqql19+WWeddZYk\n6fzzz9dLL71EYMJn5MsVfPX19Xkx8Zur+QDgU57sYZKkwsJCTZs2Tc8//7zuu+8+vfTSSwqFQpKk\n3r17a9++fa61Dd7FFXx28VgCwKc8vazAPffco5/85Ce68sordfDgwc7vHzhwQKWlpS62DAAABEmX\niaiwIJyTL5Onn35aDz30kCSpZ8+eCoVC+vKXv6xXX31VkrR69WqdccYZFu4+AACAmSeH5C6++GJN\nnz5dU6ZMUSKR0IwZM/TFL35Rs2bN0rx581RZWalx48a50jYAABA8XS9c6dKyAr169dK99977me8/\n8sgjLrQGAAAEnSd7mAAAALzEsPkugQkAAMCwlxyBCQAAwNPLCgAAAHhB13vJ0cMEAABADxMAAIAJ\nPUwAAAAGXSaicKggJ18mbW1t+ulPf6rJkydrwoQJWrlyZefPnn32WV111VXZ33MAAIAUGdZhCnVX\nOw7zpz/9SWVlZfrFL36hpqYmffOb39RFF12kt99+W3/4wx/kOI4r7QIyFYvFFI/H3W5G2urr6/Nu\nA95IJKJoNOp2MwD4jCeH5MaPH9+59YnjOAqHw9q7d6/mzZunGTNmaNasWa60C8hUPB7Pu+CRr3ic\nAeSCJyd99+7dW5K0f/9+3XTTTfrxj3+s22+/XdOnT1dxcbErbQIAAMHlyR4mSfr73/+uG264QZMn\nT1ZFRYXef/99VVdX6+DBg9qyZYvmzJmj22+/3bX2AQCA4PDkHKZdu3bpmmuu0R133KFzzz1XkrR0\n6VJJ0rZt23TrrbcSlgAAQLfpei85lwLTgw8+qObmZt1///26//77JUkLFy5UJBJxpT0AACDYuh6S\nK3BnSG7mzJmaOXPmUX9WXl6uJ554optbBAAAgswwJMfClQAAAIZJ3+4MyQEAAHiJJ+cwAQAAeAlD\ncgAAAAZdByaG5AAAALy5DhMAAICXMIcJAADAoMtJSgUFoZx8peKNN97Q1KlTJUkbN27UlVdeqUmT\nJmn69OlKJpPZ33MAAIAUdRmYCsMFOfkyWbhwoWbOnKmDBw9Kkn7961/rhhtu0JIlS9Ta2qpVq1ZZ\nufMAAACp8GQP06BBgzR//vzOfw8fPlxNTU1yHEcHDhxQYWGXI4kAAABWeTIwjRs37rBQVFFRoTlz\n5uiSSy7R7t27dfbZZ2d/zwEAAFLUZWAKh0M5+UrXnDlz9Oijj2rZsmX65je/qVgslvEdBgAASFde\nLCvQt29f9enTR5LUv39/rVu3zuUWAQCAIOk6MBV6Y6Xvu+++W7fccosKCwtVVFSk2bNnu90kwDdi\nsZji8bjbzbCmvr5e1dXVbjfDmkgkomg06nYzgMDz7DpM5eXleuKJJyRJZ5xxhh5//HHX2gL4WTwe\n91XA8BueG8Ab2BoFAADAoMvAFGLzXQAAAMOQHD1MAAAADMkBAACYeHbSNwAAgFd0HZg8sqwAAACA\nmzy5NYokvfHGG5o6daokaePGjZo8ebKmTp2qa6+9Vrt27cr+ngMAAKSoy8AUKgjl5Mtk4cKFmjlz\npg4ePCjp061RZs2apcWLF2vs2LFauHChnXsPAACQgq73kissyMmXyaBBgzR//vzOf8+bN0/Dhw+X\nJLW3t6u4uDjLuw0AAJA6wzpM7kz6HjdunLZt29b57/79+0uS1q1bp0ceeUSPPvqoK+0CAADBlDeT\nvp977jk98MADWrBggfr16+d2cwAAQIDkxcKVzzzzjH7/+99r8eLFKisrc7s5AAAgYDw5JHeo9vZ2\nzZkzRyeddJJuvPFGSdKZZ56pm266yeWWAQCAoPDskFx5ebmeeOIJSdJrr73mWjuCJBaLKR6PG29X\nX1+f0g7qkUhE0WjUQssAAHCXYaVv78xhQu7F4/GUglCqbNbyslSCJiEzN1IN+fks1ddOvuO1D6/r\nekjOQ5O+Aa+yGTSDcGK0yXbIh3t4HuF17CUHAABg0HUPU5geJgAAAM9fJQcAAOA2w1Vy4e5qBwAA\ngGcZhuToYQKAoOrOqxC7+2pArspDugxDcu7NYXrooYf0l7/8RW1tbZo0aZK+853vuNYWAAgiP1+F\n6Nf7hdzx5LICr776qv72t79pyZIlamlp0cMPP+xKOwAAACSPXiVXU1OjYcOG6YYbbtD+/fv1s5/9\nzJV2AAAASMbNd92Z9L137141NjbqwQcf1LZt23T99ddr2bJlCoWYUxVUNrdtYe6C+2zNjbE174XX\nBAATT/YwlZWVqbKyUj169FBlZaWKi4u1Z88efe5zn3OlPXAfq2n7i9fmxnipLQC8yZOB6fTTT9d/\n/dd/6Z//+Z+1c+dOtbS0qKyszJW2APmKXjkAsMcQmNwZkvvqV7+qtWvXasKECXIcR3fccYfCLrUF\nyFf0yiEfdddSBt21jAEfNvzDkz1MkpjoDQAB5LXh2mz56b4EnWFZAXp1AHibjR4JG70N9CQA/mZY\nuJLABMDbvNIj4YU2AMgdzw7JAUB3y6a3KtNeKnqm3JfLeVO5nivF66f7GAJTlz8GAF9xo7eKnin3\ndffzbjOgbdq0ibXIugk9TAAAdCOvDCMfymvt8aKuV/oupIcJAADAMOmbHiYAAICuu5BcWiwymUyq\nurpamzdvVo8ePXT33Xdr8ODBrrQFAADAsPmuO0NyK1asUGtrq37/+9+rtrZWsVhMDzzwgCttAQAA\n8OTWKK+//rrOO+88SdLIkSP15ptvutIOAAAAyRCYio87obvacZj9+/erT58+nf8Oh8NKJBIqZBI6\nAGSNjZn9xQur3QfhdeDJBNKnTx8dOHCg89/JZJKwBACWsDGzv3hhmQK3/3538ORlcKeddppWr14t\nSaqtrdWwYcNcbhEAAAgyT3bbjB07Vi+99JImTpwox3E0d+5ct5sEAGmxOewlBWPIA/AyTwamgoIC\n/fznP3e7GQCQMdvDJEEY8gC8zJNDcgAAAF5CYAIAADAgMAEAABgQmAAAAAwITAAAAAaevEoOAAB0\nv0xXDc9mpfB8WTKDwAQAACTZXQ4j1fC1adOmvFiLjMAEAACs89taZAQmAIAvsckwbCIwAQB8iU2G\nYRNXyQEAABgQmAAAAAwITAAAAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAwAQAAGIQc\nx3HcbgQAAICXsTVKQDx9433WavXp3cNarVuXLLFWy6ZX//qY1Xptzc3WaoWL7T3+RaVl1mq1NTdZ\nqyVJu/660VqtksoTrdUKhe12zLc1H7BWq/fAAdZqFRRHrNWK79xhrZYk9R442Go9W9oPmvetS4fN\n943ifv2s1QqFvRsdepR+rsufNzc3q7S0VH/+85/1ySefSJK+9rWvqaioyFg7ox6mVDc0zERNTY0S\niUROaneXffv2qaSkxHi7hoYGJZPJnLalvr5ektTavNtazR2rX7VW64Tzz7ZWa/frtdZqrXt2k7Va\nkrR7b4u1WhPv/WdrtYLC5oksbDFI2LbzpbXWavUo622tlm373t9lrVZhxHyiTFXpyfYCqyQlD7ZZ\nq9V+sNVardYmeyHf9uus/7nnHfNnM2fO1LJlyzRs2DBt3LhRjuPIcRydfvrpevjhh421MwpM1dXV\nOduIMJe1U2EjDKYa+roKVtu2bdPWrVuzaockdTy9K6IPZl2rw6499k7+l04bb61We9xeu7z6CTZI\nbAbgHn37WKtV1LfUWi1JavvYXi9CydCh1mrZdOCD963WC8rx2fJho7VaPU+0G+a86lg9TDfffLOW\nLVsmx3FUUFCgZDKpXr16dfYybd682Vg7o361SCSSs1DT0SPillR3t+4qWI0aNcpyq6Q1a9Zo+fLl\nGf/++TO+Y7E19qxf+P+s1epVWmyt1tCrgvGG7GWfO32k203oFpHj+7vdhJwLSsCxLSghpzts3769\nswOhY2SntbVVRUVFamtLrScvo8AUjUYz+bWUuNm7lI5jBatse6i66p0aPXq0JHu9T5myObxx6r9c\nZq1WUKye+6S1WqeMO9laraAEHAD5Z8OGDYf9u6OXKZ1pMZ6buZXL3qtUZNvDlUoPVVehqry8XIsW\nLTrqbTt6mYYMGaLRo0enNQdq35YtKd0uFS079lqr9bkzRlirFRTn/utYa7VCKUx0TJXtYRebevTt\na62WzcnQXmZzrpbtydBenkdmU1Dm3nWHUCikQ2cgRSIRJRIJtbamPrfLc4Epl71XqeiOsNZVqIrF\nYof9rL6+XlVVVYrH4zrnnHN0zjnndPZCHXfccZ1zoEy9TjZDTvtBb07Kt3lFie1hEptvfDYnb0Ys\nXiXn9LU3QVWSWj/+2Fotm4+Zl9kMczZfszaPTUkKHx+Mk3+SwGTNkdO1O+YupcNzgcltqfZw5Wqu\n1ZGBMRaLqa6uTgMGfDqWvWbNGq1cuVJDhgzRoEGDOm9XXl6u8vLynLTpSPGP7U2utn25sS1evjzY\nq3NebC5RIHk35Hi5h8lJtlurVdjT3tVLyWK7x5Pt49MWmwHHNqfd3gddLy8rcCwFBQVqb8/u+Mi/\ne51jqfZw2eqJSmXO04ABAw6b29QxHJdOaOv/T2dm08zDNL31trVaNieD2hwS2rzkBWu1JKlnX3sT\n0odccaG1Wl7m1WDoZTaPAZs9hjZ7CyXpQMO71mqFLS4rEI7YWyNNkiL9P2+tVuvH263Vsrl2WFGp\n3WUFepxy9Kvkhg4dmtKVcF0hMLmgpqamM3A1NjZ29h4d6dCfVVZWHvN2jz32mN59194biInNg9gm\nm/NUjhtkt7cECDKbx6YkJU+wO/xri+1lHWwvBmtLPs4JfOedd7KuQWByQSKRyHjpgkN7mjrWcSop\nKem8gg529Ojb02q9SP/jrNYDjsarl+/bPvEXFNvrFbJ58o9/tNNaLUkqKrW75pctXh0u78qRk74z\nQWDK0LHmOtmc23To8GBHeDr0KrpYLKZVq1Zp06ZN2rHDm3OBupPNbv9Wi/O0JLsLJwLH4tWrqmyf\nYG0OCdlcTdv2oqY250TlY8ixycauGgSmDB1rrlOurrLr+HsdV9EdusRAr169NHiwNz9ZdqdI/xOs\n1bL5hgx0F6tXo1k893u1p8Q2m/s8SnaHq2zWshnkvHwRxZEITC5Kd5HLo632/d5779lulpFXJ+Pa\n/ERcdso/WKsl2Z0oj/R5tefFtpZGez3NXt5qKCjLCniVl4+BXCIwueho6zF1FaKOXIdJSn2jX69O\nHrR99YwtNnurJLu7yAeFV9cBsn2JvM3lGEqr7K3cbpPt9x/bS1h4VVCCfr4gMHlMPB5XJBLpsuep\n44q5xsZG1dXVqa6uzjg+a3P82ma3s82hL5s7aNv+ROzl9VmCwKu9opJ31xTiBOs+ngN7ysvLtW3b\ntqxqEJg8KJ0NgAcMGNAZoDp6no626rd3Txj2duP2sqB8IrbJy1tz2BSEk2IQ7iO87cMPP8y6BoEp\nT3UM3a1Zs6ZzfYmWlhYVF3+6QOKRk8Bt7iVns7fK5lBV74HWSlkXhK5126HEZq+czaFf22sK2eTV\n1wZDcpkJwvtGdznWpvbpIDBZlsrWKk1N2b95HNoL1bF9SkNDg955553DtkzxOq9eueFlXn0Ttf2G\nbPP5tD0nDenJpyuhvCToIcdrCEyWpbK1yqpVqzKu39GzdOR6TwMGDFBdXZ2ko68F1WugvX3mbJ7I\nghJybOJNNH02J33bvkTeq0OPNttl+zjnGIAbCEx5pqNn6cjeJUlqbm5WQUHBUZcaCEIwsTlUaG8d\n4U/xBp8+r65B4+Xn0qttC8oQGvyNwJTn4vG4FixYoFgs1vm9goKCz+wtZzNM2Nz1usdx/azVgr8E\ndXE8P7I9v82rwdA2m++1oTCn+2zxCOapjrlSHcNv0WhUsVhMK1asyPnecl498Dgp4li83MMalJM/\n0ufV99qg4tnIUx1zpaqrqzvnNf31r39VYWGhtm/f/pm95Wyu2huO2NuY1qvzN+C+oAyjBQGPP/yA\nwJTnIpGINm3apEWLFmn8+PF65513cr63XNvH3p1Ai/R4ucvfy71CXuXVYMKQXGa8Ook/qAhMeS4a\njXb2MknH3lvOZq9QYe/e1mpxEKfPq9vc2J7Y69UhVtuv2SD0jHKcZ4bHzVsITD4QiUT01FNPae3a\ntRoyZMhR12GyvYu233n5JGb16rFC774F2OxhCspVWl593QblxG/7wwzD0t7i3XdLGB26Ue+ll16q\nkSNHatWqVXrxxRc/c1ubJwyv9nDYZHPdHsluYA3KyT8o9zMIJzIvrwJvk1d7RSW7z0FQr2AlMOWx\njjWZOoLTX/7yl8/sIZcLXn2BW93d3uI8LUlqL7a3slNQggRwLDaXSfEyr77XerVduUZgylOxWEz1\n9fUaP368PvroI3344YcqKirK6WTvDjY/EXu1t6pk6FCr9bx6P4PCq0NVUjCOJ9snWO9uJg4/IzDl\nqXg8rqqqKtXW1qq2tlbXXXed6urqrGwwaGLz5OPVveRsn3i8vAo5cDQ2ezJtB1avBuAgDK8GGYHJ\nBRUVFVbqRKNRbdq0SbFYTAMGDFBtba3Wrl2rE088UR9++KGVv5FrXn2Dsb/3FZPu3eTV15ltQR0q\n8QqvBjnYQWByga3AJElVVVXatGmTqqqqNHLkSJWWlqquru4zQ3NenfAXlBMZEGRBWYrB9gctr14l\nF9T1oQhMea5jS5S6ujrV1taqvb39qLez+aL06qXodueCePcqOeBYvHry8WrAsc32ZHQvD4sGkTfP\nfDjMocsHdOwdd6QBAwZ0zmE6cOCATjzxxJy1x6v7G9l8Q7C9ArlXL4OGvwT1k382bN7PZLF3j3Ov\n9jDlE2+e+XCYjuUDJHX+t6ampvP/6+vrVVVVpVGjRnX+rL6+vluWGPASL7/Bf/LBNmu1WFYAxxLf\nucN8oxT16NvXWq2gvGaDcj+9/F6bSwSmPJVIJDoDU8eQXENDg9555x0NGjRIyWSyW5YYQGqK+rJn\nHnLP5hZITCBPH3vm+RuBKY91DNU1NjZqwIABGjBggBKJhBKJhI477jiVlJS43UT8ryCsG3Pgg/et\n1us9kMCfriC8zryMgONvBKY8tmLFCo0aNUp1dXVasWKFksnkYT/fvXt35/97dcyZN5j0eXWeis0h\nHCk4izDa5NXjyfZzGZShL68e60FFYMpjHcNysVhMmzZt0qJFizp7nR577DG9++67nbflYPEPm/NU\nbA7h0LuBYwlKwLGN921vITD5QMeq39XV1frrX/+qeDyukpISjR49Oid/j0897rIZcor79bNWCwD8\njMDkE9FoVJI6e5sqKys1YMCAnPwtQo67bK7plDiw31otehEA+FmB2w2AXdFoVFVVVVq6dKkeeeQR\nt5sDjysojlj7AgA/o4fJp0488UR9/PHHbjcDOWBzNWGCjr847fY23/bqArWAWzgifCYWi+mpp57S\n3r17D/s+V8n5h1e3WWENGvcRcoDc4ejykY4FLEeOHKm6urrDQpPNrTnolXCXzcff5r6AXj5Zc6EC\nugMfGvzNu+9wSFs8HldlZaVWrFihurq6w9ZlCsImjpwU02cz5Hj1dSEF5/mEu3id+RuByWc6FrNs\nbm7W2rVrO7/v1ZOZV9vlZV59U/ZquwDABgJTnolEIqqurlZTU5PKyj7ba7Rr1y5FIhGVlpYetg6T\nV09mBCYAQD4gMOWZjvWWVq1addSfNzU1KR6Pa9SoUZ2b8wIAgOwQmHymoKBA9fX1bjcDAABfYeFK\nnxk0aJC2bdumDRs2aPz48W43B/AEpz1h7QuA/6xfv954G3qYfKi8vFyFhYVavny5203pVjaXTvDq\nnC9kxstLHgBw34gRI4y3oYfJBR0Tt3M1dFZRUaFly5bJcZyc1AcAwE9CoZDxNnzsckHHxO1cTcqO\nRCI666yztHbt2s7QFIQ1ilhQE8cShNc/gNwiMPlMQ0ODVq1addgaTJJ33+S92i74S1BeZ15dpiMo\njz/8jcDkM8lkUsuWLevcUw7+09bcZK2WzRXg4T6CCZA7zGHyqRUrVujSSy91uxkAAPgCPUw+9dZb\nb2nUqFFuNwM5YHOuFnN7ACA19DD5VEtLCyt9AwBgCYHJpyIRPu0DAGALgcmnCEwAANhDYAIAADAg\nMPlUWVmZYrGY282Ax4WLI9a+AMDPCEw+VVZWpnjcm4vYAQCQbwhMAAAABgQmAAAAAwKTD8ViMTU1\n2ds+AwCAoCMw5amKiopj/iwej+vzn/+86uvru609AAD4GYEpT3UVmCRp1KhRxtsAAIDUEJgAAAAM\nCEwAAAAGBCYAAACDQrcbgNxhPzmYOO0Ja7VCYd5OAPgX73A+9cgjj2jr1q2KRqNuNwWS2g/aW3Wd\nbUgAb7J5nEsc615DYPKpZDKpO++8Mye1OfmnLyj30yZeZ8g3vM78jcDkUy0tLTmrzZsCACBomPTt\nUyeccIKqq6vdbgYAAL5AD5NPNTQ0KBQKyXEct5uCgGD+BgA/o4fJpwYNGkRYAgDAEgKTT5WVlbnd\nBAAAfIMhOZ/avHmzxowZoxUrVrjdFAQEQ2gIurbmJqv1ikr54OslBCafisfjqqysdLsZABAYBXxo\n8DWG5Hxq8ODBWrBggdvNAADAFwhMPsUcJgAA7GFIzqfWr18fuGUFWBkagJt438hfLS0t6tmzZ5e3\nITD5VGtra862RvEq3qxwLLbXiLKJ1y3gvg8++EDDhg3r8jYEJp9KJOztQg/g/xBwAP8xhSWJwOQ7\n8finn6QLC3lqs8Gq1f7C4w8gW5xVfebQwBSJ5OYk4bTb670Khb35EuQECwA4FFfJ+VhHeAIAANkh\nMPlUPB5XfX29280AAMAXCEw+VlFR4XYTAADwBW9OIAmISCSi6urqw75XX19vLejkag5T0uIVeGGP\nzmECAOBQnK1cFI1GP/O9IwNUpgoLC49aHwAApI8hOZ9iWQEAAOwhMAEAgEBraWkx3obABAAAAu2D\nDz4w3obABAAAAi2VrVEITAAAAAbMDM5TkUhETU1Nx/x5PB7XddddpwULFlj/22wbgnwThO18AOQW\nPUx5KhqNqqysrMvbVFZWdlNrAG8LhQutfQEIJgKTj7EOEwAAZrW1tcbbEJh8inWYAABIzciRI423\nITD5FIEJAAB7CEwAAAAGBCYAAAADAhMAAIABgQkAAMCAwAQAAGBAYAIAADAgMAEAABgQmAAAAAwI\nTAAAAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAwAQAAGBCYAAAADAhMPhWJRNxuAgAA\nvkFg8ikCEwAA9hCYAAAADAhMAAAABgQmAAAAAwITAACAAYEJAADAgMDkM1wdBwCAfQQmnyEwAQBg\nH4EJAADAgMAEAABgQGACAAAwIDABAAAYEJgAAAAMCEwAAAAGBCYAAAADAhMAAIABgQkAAMCAwAQA\nAGBAYPKRmpoaxeNxt5sBAIDvEJh8JJFIsJccAAA5QGACAAAwIDABAAAYEJgAAAAMCEwAAAAGBCYA\nAAADAhMAAIABgQkAAMCAwAQAAGBAYAIAADAgMAEAABgQmAAAAAwITD5VVlbmdhMAAPANApNPxGIx\nNTU1df6bwAQAgD0EJp+Ix+OEJAAAcoTAlMcaGhpUXV2t+vp6t5sCAICvEZjyWDKZVHV1tSoqKtxu\nCgAAvkZgAgAAMCAwAQAAXwuFQlnXIDABAABfIzABAAAYFBRkH3cITAAAwNcSiUTWNQhMeYx1lwAA\nMKOHKeAITAAAmDGHCQAAwMBxnKxrEJgAAICvhcPhrGsQmAAAgK8VFxdnXYPABAAAfC0ej2ddg8AE\nAAB87eabb866BoEJAAD42r/8y79kXYPABAAAYEBg8phIJKL6+nq3mwEAAA5BYPKYaDSqiooKt5sB\nAAAOQWACAAAwIDABAAAYEJgAAAAMCEwAAAAGBCYAAAADAhMAAIABgQkAAMCAwAQAAGBAYAIAADAg\nMAEAABgQmAAAAAwITAAAAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAwAQAAGBCYAAAA\nDAhMAAAABgQmAAAAAwITAACAAYEJAADAgMAEAABgQGACAAAwIDABAAAYEJgAAAAMCEw+U1BQoPr6\nerebAQCArxCYfGbQoEGqqKhwuxkAAPgKgQkAAMCAwAQAAGBAYAIAADAgMAEAABgQmAAAAAwITAAA\nAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAwAQAAGBCYAAAADAhMPlVRUeF2EwAA8A0C\nk08RmAAAsIfABAAAYEBgAgAAMCAwAQAAGBCYAAAADAhMAAAABgQmAAAAAwITAACAAYEJAADAgMAE\nAABgQGACAAAwIDABAABf+9Of/pR1jUIL7UAOxGIxxeNxSVJ9fb27jQEAII/97ne/y7oGgcmj4vG4\nqqurJamNrTVdAAAeVklEQVTzvwAAIH29evXKugZDcgAAwNdCoVDWNQhMAADA19atW5d1DQITAADw\ntTfffDPrGgQmn6moqHC7CQAAeMrTTz+ddQ0Ck88QmAAAONzWrVuzrkFgAgAAvnbbbbdlXYPABAAA\nYEBgAgAAvrZjx46saxCYAACAr33ta1/LugaBCQAA+Nr999+fdQ0CEwAA8DVW+gYAADBYsmRJ1jUI\nTAAAwNfmzZuXdQ0CEwAAgAGBCQAAwIDABAAAfO2Xv/xl1jUITAAAwNe+8IUvZF2DwAQAAHxt6dKl\nWdcgMAEAAF9bvHhx1jUITAAAAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAwAQAAGBCY\nAABAoK1fv954GwITAAAItBEjRhhvQ2ACAACBFgqFjLchMAEAABgQmAAAAAwITAAAINA2btxovA2B\nyUcqKircbgIAAHnni1/8ovE2BCYfITABAJC+Hj16GG9DYAIAADAgMAEAABgQmAAAAAwITAAAAAYE\nJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAw+UAkElF9fb3bzQAAwLcITD4QjUbZFgUAgBwi\nMAEAABgQmAAAAAwITAAAAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAwAQAAGBCYAAAA\nDAhMAAAg0Gpra423ITABAIBAGzlypPE2BKY8xoa7AAB0DwJTHiMwAQDQPQhMAAAABgQmAAAAAwIT\nAACAAYEJAADAgMAEAABgQGACAAAwIDABAAAYEJgAAAAMCEwAAAAGBCYAAAADAhMAAIABgQkAAMCA\nwAQAAGBAYAIAADAgMAEAABgQmAAAAAwITAAAAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAfG3Pnj1Z\n1yAwAQAAXzv//POzrkFgAgAAvtbW1pZ1DQITAACAAYEJAAAEWm1trfE2BCYAABBoI0eONN6GwAQA\nAGBAYAIAADAgMAEAABgQmAAAAAwITAAAAAYEJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCAw\nAQAAGBCYAAAADAhMAAAABgQmAAAAAwKTB0UiEdXX17vdDAAA8L8ITB4UjUZVUVHhdjMAAMD/KnS7\nAciNNWvWaOjQodqyZYvbTYGHOe0Ja7VCYd5OAPgX73A+VFNTo0gkou9+97ud32trbrJWv6A4Yq1W\n2GItpM/LIaf9YNxaLV5nALLl3XdLZCyRSGjUqFGKx+2dcIDuRsgB4CUEJh/at2+fVq1apeXLl6u6\nulqS3V4hr6JHwl02H3+J5wCAtxCYfGjv3r066aSTNHr0aLebggCxHXAIwAC8hMDkQ6WlpaqtrVVh\nYbCe3qCcFAkSAND9gnVGDYiysjKFw2F9/etfd7spQMYIcwC8hMDkQxUVFaqoqOicvwQAALJDYPKh\niooK1dTUaPz48Vq2bJn1+kmGhFwVlMeMoUcA3eWNN97QV77ylS5vQ2DyoUgkooaGBl1wwQU5qV/Y\nu09O6gIA4AZTWJIITL4UjUa1bNkyVVZW5qR+MmFvdeiwhxdOBACgA3vJ+Vg0GnW7CQAA+AKBCQAA\nwIDA5FMVFRVuNwEAAN8gMPnUtm3bWFYAAABLmHHrU3V1dRo1alROanOJNroDrzMAXkIPk08lk0l6\nmAAAsITABAAAYEBg8qmysjK3mwAAgG8QmHyKwAQAgD0EJgAAAAMCEwAAgAHLCvjUvn37dN1112nB\nggXWa7c1N1mrVVTK0CEAwPsITD5VUlKSs813Q0VFOakLAIBXEZiQtlBB2O0mAADQrZjD5GPxeNzt\nJgAA4AsEJgAAAAMCEwAAgAGByacqKircbgIAAL5BYPIpAhMAAPYQmAAAAAwITAAAAAYEJgAAAAMC\nEwAAgAGBCQAAwIDA5FORSET19fVuNwMAAF8gMPlUNBplaQEAACwhMAEAABgQmAAAAAwITAAAAAYE\nJgAAAAMCEwAAgAGBCQAAwIDABAAAYEBgAgAAMCh0uwHInUgkkpO6BYW8bAAAwUIPk49Fo1G3mwAA\ngC8QmAAAAAwYW/GZxsZGjRkzRvX19dq6dascx7H+N5KJhLVa4TAvQb9oPxh3uwnHFC7OzfA0gODg\nbOUzlZWVeuqpp/TlL39Z5eXlOfkbSYsnRk5k/uHl59JmmPPy/QSQOwQmn4lGo3r44Yf1ySefaO3a\ntTn5GwWcMNANvNxjBSB4CEw+VFZWpj179uSsPj1M6aOHI31BuZ8A8gOByWdisZja29tz+jfoYcLR\n2O4RshmYCKwAskVg8pGamhpVVlbq+OOP17p163L2d2yuw+TVYRfbJ8UgnPyDEiS8HAy9iscMfkBg\n8pGOSd6JREJf/OIXtXXr1pz8HatXyXk0SHhZUE4WXn0+vfz4O+32js0QV7ACh+GI8JGqqio9+eST\n2rlzp7Zt2+Z2c1Ji86TI3CoEHSEHyB2OLh+JRqOqq6vT6tWrNXr06MN+FoQAEIT7GCRe7X1keAkI\nJgKTz1RWVurxxx/X5s2b3W4K4Bk2ex+LSsus1QKQPwhMPhONRvXkk09q3759evfdd91ujhHzVNAd\nbF7ZSQ9T+oJwH5HfamtrNXLkyC5vQ2DyodNPP10NDQ15EZiAfMPJP32ETHidKSxJBCbfqKmp0XXX\nXacBAwZ0fh2qrbnJ2t+K79xlrVbJ0KHWasFfvLp8AtLH4w8/IDD5RHl5uRoaGrRw4UKdcMIJ2rFj\nR87+VlHf0pzVhplXg4RXh1cl7z5mQUEPE/yAwOQTVVVVWrNmjYYMGaJkMqnBgwcf9nNW506P7Tf4\nIEw69vJJzMthDjgWgr63EJh8IhqNav78+ZKkxsZGl1vjDt5c3EUvAmAXx4C3EJh85MQTT9Rxxx2n\nk08+Wfv27VNJSUlO/k6oqCgndbPl5TcXrw59sTUKAKSGwOQjI0aMUI8ePdTQ0KAXX3zxsJ/ZHBKy\nqqfbDcg/BBN30ZMGBBOByUc6tkYJh8M53UvOJpt7X3l1jztkxqvzjnhtAMFEYPKRjkUrt2/frqKi\nosMmfrcfbLX2d0LhAou17L0Ew+yjhWPwcsjx6hCrTV5tl9cF4bWRTzjD+FBJSYlOPPHEw74XLu5h\nrb7N8GWTl99cvNy2ILDZk2l7g1ueTxwLrw1vITD5zIgRI1RTU/OZSd9eDTk2efnNxcttCwLbIQdA\n8PAu4jNVVVWqra3V8ccfry1btuTkb9jsrQIAIB8QmHymYx5TfX29ysvLO79PyEGQMSQKIFsEJh8q\nKSlROBzOWX2bV6MB8D+WYoAfEJh8aN++fQqHw9q0aZPbTelW9CLgWHg+3cXjDz8gMPlQSUmJhg0b\npksvvbTze3b3kmN9HMAWgj6QHwhMPlRRUaGlS5equLhY1dXVkuyu9G3zijtvbrICdB9CDpAfCEw+\nVFFRoeLiYo0ZMyYn9ZlADgAIGntLNsMzIpGISktLtWDBArebAgCALxCYfCgajaqsrMztZgAA4BsE\nJp+qqKhwuwkAAPgGgcmnCEwAANhDYAIAADDgKjmfamxsVHV1deeyAkC+sXm5PWsdAcgWgcmnKisr\nFY97c4FJoLsRcgBki8DkE7FYTPF4XDU1Ndq7d6/27t2rZDLZ2cNkc6XvgkJ7L5u25iZrtWwqKuUq\nQwDA/yEw+UAsFtOmTZtUVVWl8vJyjRkzRk899ZTWrl3beZsgfMJmBXIAQK4QmHwgHo+roqKi878A\nDmdzDpNtQfgwA/gBgSmPRSIRVVdXq76+XlVVVZ29TEf2LgUFW7agOxBw0mc7sPIcwA0EpjwWjUYl\nSdXV1YpGo4rFYlq1apV27dql0aNHu9y61NgcRrOJITl/sbn5tG1BOPnbfvyD8JjBewhMPtDY2Kgx\nY8YokUh0fq++vj5nf89pT5hvlKL2eIu1WsmDbdZqRY7vb60W3Mckfnfx+MMPCEw+UFlZKUlqaGhQ\nbW2tduzY8ZnbePVqtHCkp9tNOCrmvLjPq89BUB5/mxiSgx8QmPJIx9IBh1qzZo3eeecdDRo0SJJU\nVVWlqqqqz/yuzaEvm3OF6MlJX9Nbb1urZfO5LBk61FotiZOin/Bcwg8ITHng0MndixYtOiw4nXPO\nOUokEkokEtq2bZu2bt169BoEE99oj9sLv5H+n7dWCwD8jMCUBzomd8diMVVXV6uxsVGSVFdXp/r6\n+mOGpEN5dUjO5oKaQRHpf5y1WqEw20n6CVvAALlDYMojHcFJ+jQ8SdKoUaNUU1PTOeH7WL1MNoNJ\nW3OztVo22+XlK6FsDon2HjjYWi0vs3nyt/nasB3ybQYTrx4Dttvl1Q9aXr6f7M2YPQJTnjl0OG7A\ngAFqbGxUZWWlGhoatHz58mP+ns2QY/PKtqLSUmu1vMzmYxaUNyuvnvxts/l8enWZjqDwapCzzcvv\nG7lEYMoz8Xi8c384SRo/fnznpO8hQ4YomUwe9fe8Gky8euDZDJiSd68GtMn2sC+XomfAm4e5dV4N\n07Zfs3bDtDcfs3xCYPKwo10Vd+T6SsuWLdP48eMVj8d18ODBzvlNR7L5BmOzt8SrbK8aHoRP/rY/\nXXv1Dd6rIT9IgtKTEwT5dDwRmDwqEolo06ZNWrRo0WHfP3Ti94ABAyRJe/bsMW6F0vrxx9ba1rrH\nXu9LpL8356nYfLxsC0pvoc0eK6uB1ZsPvyTvztWy3mMbkG2QvPp8erWHL9cITB4VjUYPG3o79PuS\nOrdBWb58uYYMGaLTTjtNJSUl3dK2Hv3snTGs9nxZPCn26NvXWi3JbgCz+ZjZDDnxj3Zaq+VlXp7Y\n61W2A45XHzPbHxq8GkyCOlwechzHcbsRAAAAufKlL32py59v3rzZWINFWAAAAAwITAAAAAYEJgAA\nEGgtLearvwlMAAAg0D744APjbQhMAAAg0IYNG2a8DYEJAADAgMAEAABgQGCC2tradNttt2nixIma\nPHmytm7dmlGdN954Q1OnTpUk3XLLLZo6daqmTp2qCy+8ULfcckvG7XvooYd01VVX6Vvf+paefPLJ\ntH63ra1NP/3pTzV58mRNmDBBK1eu1Pvvv69JkyZp8uTJuvPOO4+5/14qdu/erdGjR1t5zHbv3q3r\nr79eU6ZM0cSJE9XQ0JBRzdbWVt1222268sordc0113xmO51M2vbWW29pwoQJmjx5smbPnp32Y3Zo\nrY0bN+rKK6/UpEmTNH369KxrTZ48WVOnTtW1116rXbt2pVXryHpbtmzRpEmTNHHiREWjUSUSibTr\nSdIVV1zR+fqfPn16RjUk6amnnuqsc+WVV2rEiBFqznDV7EPvZ4dnn31WV111Vco1jnY8dZg7d66W\nLFmSVbtsHJvJZFJ33HGHrrrqKk2dOlXvv/9+2jUO1dV9zlRLS4smTpxo5X3j7bff1nnnndf5Onnu\nuecyrtUh0+cyldrpam9v1/Tp0zVx4kRNmjRJ77zzTtbtypiDwHv++eedm266yXEcx6mpqXH+9V//\nNe0aCxYscC677DLnO9/5zmHfb2pqcr7xjW84O3bsyKhta9ascX7wgx847e3tzv79+5377rsvrd//\nwx/+4Nx9992O4zjO3r17ndGjRzs/+MEPnDVr1jiO4zizZs1y/vznP2fUttbWVudHP/qRc/HFFztb\ntmxJ+/ePfMymTZvmLF261HEcx3nllVecF154IaN2LV682Jk5c6bjOI6zdetW55prrsm6bVdccYXz\n+uuvO47jOPPmzXOefvrpjGv96Ec/clatWuU4juPceuutzsqVKzOuNWXKFOftt992HMdxlixZ4syd\nOzflWkerd/311zuvvfaa4zifPh+ZvDbi8bhz+eWXp/17JtXV1c7jjz+e0e8e7fh86623nO9973uf\nOWa7crTjaffu3c61117rXHTRRc5jjz2WVbtsHJvLly93pk2b5jiO4/ztb39zfvjDH6Zd41BHu8/Z\nWL9+vXPFFVc4//iP/2jlfeOJJ55wfvvb32bUliNrZfNcmmpn6vnnn3ei0ajjOJ+eDzJ9PocNG9bl\nVyroYYKGDBmi9vZ2JZNJ7d+/X4WF6e+YM2jQIM2fP/8z358/f76++93vqn///hm1raamRsOGDdMN\nN9ygH/7wh7rgggvS+v3x48frxz/+sSTJcRyFw2G99dZbOuussyRJ559/vl5++eWM2nbPPfdo4sSJ\nGd+3Ix+zdevWaceOHbr66qv17LPPdrYxXVu2bNH5558vSaqsrMzoU+yRbduxY4dOO+00SdJpp52m\n119/PeNaw4cPV1NTkxzH0YEDB9J6vR1Za968eRo+fLikTz+JFhcXp1zraPXmz5+vM888U62trfro\no4/Up0+ftOpJ0qZNm9TS0qJrrrlG3/ve91RbW5t2jSNt2LBBW7ZsSas36FBH3s+9e/dq3rx5mjFj\nRlp1jnY8HThwQDfeeKMuv/zyrNtl49h8/fXXdd5550mSRo4cqTfffDPtGoc62n3ORmtrq37zm9+o\nsrIyo98/8jF78803tWrVKk2ZMkUzZszQ/v37M66VzXNpqp2pMWPGaPbs2ZKkxsZGlbq4lyaBCerV\nq5e2b9+uSy65RLNmzcqoC3XcuHGfOfHt3r1br7zyir71rW9l3La9e/fqzTff1L333qu77rpLP/nJ\nT+SksZtP79691adPH+3fv1833XSTbr75ZjmOo1Ao1Pnzffv2pd2up556Sv369et8Y87EkY/Z9u3b\nVVpaqkWLFumkk07SwoULM6o7fPhwvfDCC3IcR7W1tdqxY4fa29uzatvAgQP12muvSZJeeOGFlNYs\nOVatiooKzZkzR5dccol2796ts88+O+NaHWF13bp1euSRR3T11VenXOto9cLhsLZv367LLrtMe/fu\nVVVVVVr1pE83zr722mv129/+tvM1m+nQXoeHHnpIN9xwQ8a/f+j9bG9v1+23367p06erd+/eadU5\n2vE0cOBAfeUrX8m6XZKsHJv79+8/LOiGw+GsHv+j3edsnH766TrppJMy/v0jH7NTTz1VP/vZz/To\no49q4MCB+s1vfpNxrWyeS1PtbBQWFmratGmaPXu2vv71r1upmQkCE7Ro0SKNGjVKy5cv1zPPPKNo\nNKqDBw9mXXfZsmW67LLLsvpEVlZWplGjRqlHjx6qrKxUcXGx9uzZk1aNv//97/re976nyy+/XF//\n+tdVUPB/L/sDBw5k9Inlj3/8o15++WVNnTpVGzdu1LRp0/TRRx+lXedQZWVluvDCCyVJF154Ycaf\njL/97W+rT58+mjx5sp5//nmdcsopWX8qnjt3rh566CF9//vf1+c+9zkdd9xxGdeaM2eOHn30US1b\ntkzf/OY3FYvFsmrbc889pzvvvFMLFixQv379sqolSV/4whf05z//WZMmTcqobUOGDNE3vvENhUIh\nDRkyRGVlZVm9Npqbm/Xee+/pnHPOybjGod566y29//77qq6u1q233qotW7Zozpw5Kf/+kceTTTaO\nzT59+ujAgQOd/04mk1mfuLO9z7/61a865xil++HFZOzYsfryl7/c+f9vv/221fpecc8992j58uWa\nNWuWPvnkE1faQGCCSktLVVJSIknq27evEomElYP6lVde6RwaytTpp5+u//mf/5HjONqxY4daWlpU\nVpb6Ttm7du3SNddco5/+9KeaMGGCJOkf/uEf9Oqrr0qSVq9erTPOOCPtdj366KN65JFHtHjxYg0f\nPlz33HOPjj/++LTrHOr000/Xiy++KElau3athg4dmlGdDRs26Nxzz9WSJUs0fvx4DRw4MKt2SdKL\nL76of//3f9fvfvc7NTU16Z/+6Z8yrtW3b9/OHoD+/ftnPIlZkp555pnO58HG/fzhD3/YOUm+d+/e\nh53AU/WHP/yhM2jt2LFD+/fvz+q1sXbtWp177rkZ//6RTj31VC1dulSLFy/WvHnzNHToUN1+++0p\n/e7RjiebbBybp512mlavXi1Jqq2tTWl9na7YuM+33HKLFi9erMWLF2f94eVI1157rdavXy/p0/fc\nU045xWp9tz399NN66KGHJEk9e/ZUKBTK6Li0wU5/GfLa1VdfrRkzZmjy5Mlqa2vTLbfcol69emVd\n97333sv6JPbVr35Va9eu1YQJE+Q4ju6444603nAefPBBNTc36/7779f9998vSbr99tt19913a968\neaqsrNS4ceOyaqMt06ZN08yZM/X444+rT58++uUvf5lRncGDB+vee+/Vgw8+qJKSkrR6D7qqefXV\nV6tnz546++yzNXr06Ixr3X333brllltUWFiooqKizvkJ6Wpvb9ecOXN00kkn6cYbb5QknXnmmbrp\nppsybtt1112naDSqoqIi9ezZU3fffXfaNSZMmKDp06dr0qRJCoVCmjt3blY9HO+9957Ky8sz/n2b\njnY8LVy4UJFIxEr9adOmadasWVkdm2PHjtVLL72kiRMnynEczZ07N6s25fo+Z6u6ulqzZ89WUVGR\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x13f11b278>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.clustermap(counts_train_subset.groupby(communities).median().T)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Predict the test data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 104, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([1, 9, 1, ..., 6, 0, 0])" | |
] | |
}, | |
"execution_count": 104, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"communities_test = classifier.predict(counts_test)\n", | |
"communities_test" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 109, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 113, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"6020\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"array([ 1, 16, 0, ..., 6, 0, 0])" | |
] | |
}, | |
"execution_count": 113, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"communities_combined = np.concatenate([communities, communities_test])\n", | |
"print(len(communities_combined))\n", | |
"communities_combined" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Try classifying on the ranks" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 86, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"ExtraTreesClassifier(bootstrap=False, class_weight=None, criterion='gini',\n", | |
" max_depth=None, max_features='auto', max_leaf_nodes=None,\n", | |
" min_impurity_split=1e-07, min_samples_leaf=1,\n", | |
" min_samples_split=2, min_weight_fraction_leaf=0.0,\n", | |
" n_estimators=10, n_jobs=1, oob_score=False, random_state=None,\n", | |
" verbose=0, warm_start=False)" | |
] | |
}, | |
"execution_count": 86, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from sklearn.ensemble import ExtraTreesClassifier\n", | |
"ranks = counts_train.rank(axis=1)\n", | |
"classifier = ExtraTreesClassifier()\n", | |
"classifier.fit(ranks, communities)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 87, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"1334" | |
] | |
}, | |
"execution_count": 87, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"is_feature_important = classifier.feature_importances_ > 0\n", | |
"important_features = ranks.columns[is_feature_important]\n", | |
"len(important_features)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 88, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(3010, 1334)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <th>2010107E04RIK</th>\n", | |
" <th>2410066E13RIK</th>\n", | |
" <th>2610017I09RIK</th>\n", | |
" <th>2900011O08RIK</th>\n", | |
" <th>4632428N05RIK</th>\n", | |
" <th>...</th>\n", | |
" <th>ZFHX4</th>\n", | |
" <th>ZFP36</th>\n", | |
" <th>ZFP365</th>\n", | |
" <th>ZFP36L1</th>\n", | |
" <th>ZFP804A</th>\n", | |
" <th>ZIC1</th>\n", | |
" <th>ZIC4</th>\n", | |
" <th>ZMAT4</th>\n", | |
" <th>ZWINT</th>\n", | |
" <th>ZYX</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_CCAACACGTTCT</th>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>1320.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>1295.0</td>\n", | |
" <td>638.5</td>\n", | |
" <td>...</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" <td>638.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTCTTCAGGCT</th>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>1312.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>...</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>618.5</td>\n", | |
" <td>1259.0</td>\n", | |
" <td>618.5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCTCACTATCCA</th>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>1311.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>...</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" <td>611.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TCCCCTCTAGAG</th>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>1301.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>...</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" <td>642.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_TTTTAATTTGTA</th>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>1313.5</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>1213.5</td>\n", | |
" <td>1213.5</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>...</td>\n", | |
" <td>1324.5</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" <td>579.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 1334 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 1500015O10RIK 1500016L03RIK 1700025G04RIK 1810009A15RIK \\\n", | |
"r1_CCAACACGTTCT 638.5 638.5 638.5 1320.5 \n", | |
"r1_CTTCTTCAGGCT 618.5 618.5 618.5 1312.5 \n", | |
"r1_TCTCACTATCCA 611.0 611.0 611.0 1311.0 \n", | |
"r1_TCCCCTCTAGAG 642.0 642.0 642.0 642.0 \n", | |
"r1_TTTTAATTTGTA 579.0 579.0 1313.5 579.0 \n", | |
"\n", | |
" 1810037I17RIK 2010107E04RIK 2410066E13RIK 2610017I09RIK \\\n", | |
"r1_CCAACACGTTCT 638.5 638.5 638.5 638.5 \n", | |
"r1_CTTCTTCAGGCT 618.5 618.5 618.5 618.5 \n", | |
"r1_TCTCACTATCCA 611.0 611.0 611.0 611.0 \n", | |
"r1_TCCCCTCTAGAG 642.0 642.0 1301.0 642.0 \n", | |
"r1_TTTTAATTTGTA 579.0 1213.5 1213.5 579.0 \n", | |
"\n", | |
" 2900011O08RIK 4632428N05RIK ... ZFHX4 ZFP36 ZFP365 \\\n", | |
"r1_CCAACACGTTCT 1295.0 638.5 ... 638.5 638.5 638.5 \n", | |
"r1_CTTCTTCAGGCT 618.5 618.5 ... 618.5 618.5 618.5 \n", | |
"r1_TCTCACTATCCA 611.0 611.0 ... 611.0 611.0 611.0 \n", | |
"r1_TCCCCTCTAGAG 642.0 642.0 ... 642.0 642.0 642.0 \n", | |
"r1_TTTTAATTTGTA 579.0 579.0 ... 1324.5 579.0 579.0 \n", | |
"\n", | |
" ZFP36L1 ZFP804A ZIC1 ZIC4 ZMAT4 ZWINT ZYX \n", | |
"r1_CCAACACGTTCT 638.5 638.5 638.5 638.5 638.5 638.5 638.5 \n", | |
"r1_CTTCTTCAGGCT 618.5 618.5 618.5 618.5 618.5 1259.0 618.5 \n", | |
"r1_TCTCACTATCCA 611.0 611.0 611.0 611.0 611.0 611.0 611.0 \n", | |
"r1_TCCCCTCTAGAG 642.0 642.0 642.0 642.0 642.0 642.0 642.0 \n", | |
"r1_TTTTAATTTGTA 579.0 579.0 579.0 579.0 579.0 579.0 579.0 \n", | |
"\n", | |
"[5 rows x 1334 columns]" | |
] | |
}, | |
"execution_count": 88, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ranks_subset = ranks[important_features]\n", | |
"print(ranks_subset.shape)\n", | |
"ranks_subset.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 90, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/Users/olgabot/anaconda3/envs/cshl-sca-2017/lib/python3.6/site-packages/matplotlib/cbook.py:136: MatplotlibDeprecationWarning: The axisbg attribute was deprecated in version 2.0. Use facecolor instead.\n", | |
" warnings.warn(message, mplDeprecation, stacklevel=1)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<seaborn.matrix.ClusterGrid at 0x1319b6400>" | |
] | |
}, | |
"execution_count": 90, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nTj/96U/R10yShoeHdf311yOmul1dXdq6dSsSa+LvYiHEYjHdcccduv7663XDDTectVlhIddz9913\n67vf/e684sXjcf3t3/6tPv7xj+vGG2/UsWPH5hVHmv59QsaY78853Wv26KOP6uMf//iCYnV1denT\nn/60PvGJT+j6669XW1tb0vEWjGdkLTt37vQ+8IEPeB/96Ec9z/O8z3zmM97evXs9z/O8z33uc95P\nf/rTpGM+8MAD3t/8zd94nud5R44c8T75yU8u+Lo+8pGPeM8++6zneZ53zz33eD/84Q8XFO/f/u3f\nvG9/+9tJX9dMNDQ0eN/73veS/ntTr+sTn/iE99JLL3me53nf/e53vbvvvnte1/PEE094n/3sZz3P\n87ympibvz//8zxd8bQl6enq8D37wg15HR8e8Y33qU5/y9u3b53me5335y1/2fvKTnyR9fZ7neZFI\nxPvQhz40r78707V9+tOf9n7zm994nud5t99++7yubd++fd6nPvUpLxaLeQMDA94//dM/JfX3v//9\n73tf/epXPc/zvO7ubm/r1q3Ya+Z5nvf88897H/nIR7wrrrjCO3z48LzjeJ7njY6Oep/5zGe89773\nvQuONdN7bj488cQTXn19ved5Z34ft95664Kvp6ury7vlllu897znPd53vvOdeV3Xnj17vNtvv93z\nPM/73e9+N6/rSjDd+4SIsZCfc7rf4YsvvujddNNNSf9ep8a6/fbbvccee8zzPM97+umnvZ/97GdJ\nxVu3bt05/zcXLMOUxaxcuVL33nvv+H+vX79ePT098jxPg4ODCgSSXz9w+PBhvfvd75Yk1dbWzuvU\nOfW6Ojo69Ja3vEWS9Ja3vEXPPvvsguIdOHBAe/fu1Sc+8Ql98Ytf1MDAQNLXmOCFF17Q4cOH53V6\nmnpd99xzj9avXy/pzAk5Nzd3Xte0evVqxWIxxeNxDQwMzOv3OPXaEtx77736kz/5Ey1ZMvft81Nj\nvfjii3rb294mSXr3u9+tX/3qV0lfnyQ1NzdreHhYn/zkJ3XTTTdp//79SceYem333nuvLr/8co2O\njqqzs1OFhYVJx2xqatK6dev0Z3/2Z7r11lt15ZVXJvX3t23bpr/8y7+UJHmeJ7/fj71m0pks8De+\n8Q3V1tbOO0aCr33ta7r++uuTej/MxEzvuflw9dVX684775R0ZpVVcXHxgq9ncHBQf/EXf6EPfehD\n876uZ599Vu9617skSRs3btSBAwfmHWu69wkRYyE/59TXrLu7W/fcc4+++MUvLjjWc889p46ODt18\n88169NFHxz8P5xMTTFnMH/3RH016mNbU1Oiuu+7S+973PnV1dentb3970jHXr1+vn/3sZ/I8T/v3\n71dHR4disdiCrmvFihX6zW9+I0n62c9+puHh5La7T4132WWX6a//+q/10EMPacWKFfrGN76RVLyJ\n3HffffqzP/uzef3dqdeVeOg899xzevDBB3XzzTfPK25+fr5OnDih973vffryl788rxLH1GuTzqTE\nn376af3xH//xgmJ5nje+PLWgoED9/fNbChoOh3XLLbfo29/+tv7u7/5Of/VXf5V0CW3qtfn9fp04\ncUIf+MAH1N3drbq6uqSvq7u7WwcOHNA//uM/jl+Xl8QGqoKCAhUWFmpgYECf/exn9d//+3/HXjNJ\n2rRpk5YtWzbvv5/gkUceUXl5+bgAWCjTvecWQiAQ0O23364777xT11577YKvZ8WKFfqDP/iDBV3T\nwMDAJBHu9/vnXfad7n1CxFjIzznxNYvFYvrSl76kO+64QwUFyS9ynvr6nzhxQsXFxdq1a5eWLVum\n+++/f17XuBBMMBnj3HXXXXrooYf0+OOP68Mf/rAaGxuTjvFf/+t/VWFhobZv364nnnhCl1566bxO\nPhO5++67dd999+m//bf/poqKCpWVLWxZ4zXXXKM3velN4///pZdemlecvr4+HT16VJs3b17Q9Uxk\n9+7d+spXvqKdO3eqvLx8XjF27dqlLVu2aM+ePfrRj36k+vp6jYyMLPjaHn/8cX3gAx9Y8O/T53vj\ntjM4ODiv0790JpP2wQ9+UDk5OVq9erVKS0vV2dm5oGuTpOXLl+snP/mJbrjhhnl9BkpLS7VlyxaF\nQiHV1tYqNzdXp0+fTirGa6+9pptuukkf+tCHdO211y74NfuHf/iH8V6vZA8wM/GDH/xAv/rVr3Tj\njTfq5Zdf1u233468/iRf+9rXtGfPHn35y1/W0NDQhb4cFRYWanDC4tp4PL4gkTj1fXKhYkzHiy++\nqGPHjqmhoUGf+9zndPjwYd11113zjldaWqqrrrpKknTVVVctKDs3X0wwGeOUlJSMn36WLFkyrybm\nF154Qe94xzv03e9+V9u2bdOKFSsWfF0///nP9fd///f613/9V/X09Oid73znguLdcsstev755yVJ\n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\nAADAxj8Hl4lKyvuvbwAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x131bf7c18>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.clustermap(ranks_subset.groupby(communities).mean().T)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 91, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/Users/olgabot/anaconda3/envs/cshl-sca-2017/lib/python3.6/site-packages/matplotlib/cbook.py:136: MatplotlibDeprecationWarning: The axisbg attribute was deprecated in version 2.0. Use facecolor instead.\n", | |
" warnings.warn(message, mplDeprecation, stacklevel=1)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<seaborn.matrix.ClusterGrid at 0x12f569ac8>" | |
] | |
}, | |
"execution_count": 91, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAJyCAYAAAA2FJ8eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt4XOV1L/7vXDTasi6WbYIdV8iyW1wlBMeEBExxuPTQ\nQnt+nCQkcYMTEyg0CVBS3B7CJOWiBAgiCZRbCGDCz43dQE1JS2hoOKckhigBQkltSEBcLIQsK7ax\nLVvX0WVmzh+ORjPySDPSfEez9t7fz/PwPPZoWB7dZq+93vWuN5BMJpMQERERkUkFS/0CRERERKxT\nwiQiIiKSgxImERERkRyUMImIiIjkoIRJREREJAclTCIiIiI5hKf64IolpxflH33p7aeLEldERESk\nGKZMmILB0Gy9DhERERGzpkyYQgGt2ImIiIhMnTCpwiQiIiIydcIUDk75YRERERFfyLEkpwqT5Ke5\nuRmxWKzUL0Mm4TgOotFoqV+GiIhr5agwKWGS/MRiMTQ1NZX6Zcgk9L0RESmMephEREREctAuORER\nEZEcpkyYykJq+hYRERGZsoQUDASL8l8+tm/fjnXr1gEAXn31Vaxduxbr1q3DxRdfjH379gEAtmzZ\ngvPOOw9r1qzBT3/6UwCHe2muuOIKrF27Fn/1V3+FAwcOFPL1EREREclRYSrRWIENGzbghz/8ISoq\nKgAAN910E6699lq85z3vwcMPP4wNGzbgkksuwaZNm/Doo49iaGgIa9euxamnnoqHHnoIy5cvxxVX\nXIEf/ehHuOeee3DNNdeU5PMQERERb5iy3BMKBovyXy719fW46667Un+/7bbb8J73vAcAEI/HUV5e\njpdeegknnHACIpEIqqurUV9fj9bWVrz44ov48Ic/DAA47bTT8Oyzzxby9RERERHJkTAFgkX5L5ez\nzz4b4fB4devoo48GAPzqV7/C5s2bceGFF6Kvrw/V1dWp51RWVqKvry/j8crKSvT29s7oCyMiIiIy\nJsdYATu75J544gl85zvfwf3334/58+ejqqoK/f39qY/39/ejuro64/H+/n7U1NSU6iWLiIiIR5is\nME302GOPYfPmzdi0aROOOeYYAMCKFSvw4osvYmhoCL29vdixYweWL1+OD3zgA3j66acBAM888wxO\nPPHEGXxZRERERMaZn/Qdj8dx00034d3vfjeuuOIKAMCHPvQhfPGLX8S6deuwdu1aJJNJrF+/HuXl\n5Tj//PNx9dVX4/zzz0dZWRluvfXWEn8GIiIi4nZml+Tq6uqwZcsWAMAvf/nLrM9Zs2YN1qxZk/FY\nRUUF7rzzzqK/PhEREfEP8xUmERERkVLLUWEKzNbrEBERETHL7JKciIiIiBU5Jn1rSU78q7m5GbFY\nrNQvg6K9vR1NTU2lfhkUjuMgGo2W+mWIiM9oSU5kErFYzDNJhpfoeyIipaCmbxEREZEcVGESERER\nySFHhal0Td/bt2/Ht771LWzatAlvv/02otEoAoEAjj32WFx//fUIBoO48cYb8atf/QqVlZUAgHvu\nuQdlZWW46qqrsH//flRWVuKWW27B/PnzS/Z5iIiIiPtNfTRKMFiU/3LZsGEDrrnmGgwNDQEAbr75\nZlx55ZX4/ve/j2QyiaeeegoA8Jvf/AYPPPAANm3ahE2bNqG6uhoPPfQQli9fju9///v46Ec/invu\nuYfwZRIRERE/y5EwBYryXy719fW46667Un//zW9+g5NOOgkAcNppp+EXv/gFEokE3n77bVx33XX4\n1Kc+hX/5l38BALz44ov48Ic/nHrus88+O+MvjoiIiAhgdEnu7LPPRmdnZ+rvyWQSgcDhRKuyshK9\nvb0YGBjAZz7zGVx00UWIx+O44IIL8L73vQ99fX2orq7OeK6IiIhIIaZMmIJGBlemv47+/n7U1NSg\noqICF1xwASoqKgAAq1atQmtrK6qqqtDf35/xXBGZnNvmTbltppTmRol4w9QVppCNXXLvfe978fzz\nz+Pkk0/GM888g1WrVqG9vR1XXnkl/u3f/g2JRAK/+tWv8LGPfQwHDhzA008/jRUrVuCZZ57BiSee\nWOqXL2Ka5k0Vl762It4w9ViBgI0K09VXX41rr70Wt912G5YtW4azzz4boVAIH/nIR7BmzRqUlZXh\nIx/5CI499ljU1dXh6quvxvnnn4+ysjLceuutpX75IiIi4nJm5zDV1dVhy5YtAIClS5di8+bNRzzn\nkksuwSWXXJLxWEVFBe68885ZeY0iIiLiD1MnTCEbFSYRERGRUjJbYZLZV0jz70wbcdUQKyIibpCj\n6VsVJj8pRfOvGmJFRMQNcowVUIVJREREREtyIiIiIjnkaPpWwiQitlkfvGl90Kb6CEXyoyU5EXE1\nDd4sjL52IvkxuSQ3PDyML3/5y9i5cyeqqqpw3XXXIRAIIBqNIhAI4Nhjj8X111+PYDCILVu24OGH\nH0Y4HMall16KM888sySvWURERLzLZIVpy5YtmDNnDrZs2YK2tjbccMMNKCsrw5VXXomTTz4Z1113\nHZ566imsXLkSmzZtwqOPPoqhoSGsXbsWp556KiKRSElet4iIiHiTycGVb775Jk477TQAwLJly7Bj\nxw7E43GcdNJJAIDTTjsNP//5zxEMBnHCCScgEokgEomgvr4era2tWLFiRUlet8hsYPfsMHts1A8j\nIl5lssL0nve8Bz/96U9x1llnYfv27dizZw8WLFiAQODw66msrERvby/6+vpQXV2d+v8qKyvR19dX\nktcsMlss9+xYfV2zwXrz+WSsN6VPRsm5zLYcgytLkzB9/OMfx44dO7B27Vp84AMfwHHHHYe9e/em\nPt7f34+amhpUVVWhv78/4/H0BEpEZLZYTmS9SF9rmW1TrrkFg4Gi/JfLyy+/jFNOOQUPPfQQzjnn\nHBxzzDF473vfi+effx4A8Mwzz+CDH/wgVqxYgRdffBFDQ0Po7e3Fjh07sHz5cs5XRkREROR3pl6S\nK1GFacmSJbjjjjtw7733orq6GjfddBMGBgZw7bXX4rbbbsOyZctw9tlnIxQKYd26dVi7di2SySTW\nr1+P8vLykrxmERER8S6TTd/z58/Hxo0bj3h88+bNRzy2Zs0arFmzZhZelYiIiPjVlAlTQIMrRURE\nRHJUmMKlqTCJiIiIWGJyrICIiBSPW0cgpHPrOIQxGovgPkqYRER8RiMQSk9ff/eZOmEKK2ES78n3\n7jrfO1jdKXpHIZWXmVY89PMj4g6qMEnR5HPxKUVSwr671p2id5Si8qKfHxF3yDGHSU3fMnPMi48u\nKiIiUkomB1f+4Ac/wL/+678CAIaGhvDqq6/in//5n/H5z38eDQ0NAIDzzz8ff/7nf44tW7bg4Ycf\nRjgcxqWXXoozzzyzJK9ZxMu0jCml5oVG9XRub1qfyA+/0yaX5M477zycd955AICvfvWr+PjHP47f\n/OY3uOiii/CXf/mXqee988472LRpEx599FEMDQ1h7dq1OPXUUxGJREryukW8SsuYUmpqVLfND9+b\nqc+SCweL8l++Xn75Zbz55pv4i7/4C/z617/G1q1b8elPfxpf+cpX0NfXh5deegknnHACIpEIqqur\nUV9fj9bW1oK/KCIiIiLpTE/6vu+++3D55ZcDAFasWIFPfvKTeN/73ofvfOc7+Pa3v43GxkZUV1en\n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\nAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1317e3748>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"sns.clustermap(ranks_subset.groupby(communities).median().T)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Let's smush" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 105, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>...</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GGCCGCAGTCCG</th>\n", | |
" <td>0.001749</td>\n", | |
" <td>0.005366</td>\n", | |
" <td>0.019152</td>\n", | |
" <td>-0.000123</td>\n", | |
" <td>0.022360</td>\n", | |
" <td>0.037655</td>\n", | |
" <td>-0.001717</td>\n", | |
" <td>0.036982</td>\n", | |
" <td>-0.027111</td>\n", | |
" <td>0.158742</td>\n", | |
" <td>...</td>\n", | |
" <td>-0.005785</td>\n", | |
" <td>-0.013217</td>\n", | |
" <td>0.049971</td>\n", | |
" <td>0.006716</td>\n", | |
" <td>0.008569</td>\n", | |
" <td>-0.469579</td>\n", | |
" <td>-0.004635</td>\n", | |
" <td>-0.016037</td>\n", | |
" <td>-0.011403</td>\n", | |
" <td>-0.004986</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTGTGCGGGAA</th>\n", | |
" <td>0.013340</td>\n", | |
" <td>-0.041066</td>\n", | |
" <td>-0.173400</td>\n", | |
" <td>0.009977</td>\n", | |
" <td>0.263543</td>\n", | |
" <td>-0.061787</td>\n", | |
" <td>-0.000113</td>\n", | |
" <td>0.155227</td>\n", | |
" <td>-0.035293</td>\n", | |
" <td>-0.085544</td>\n", | |
" <td>...</td>\n", | |
" <td>-0.025165</td>\n", | |
" <td>-0.020038</td>\n", | |
" <td>0.285238</td>\n", | |
" <td>-0.019992</td>\n", | |
" <td>-0.020663</td>\n", | |
" <td>-0.394908</td>\n", | |
" <td>-0.008130</td>\n", | |
" <td>0.018164</td>\n", | |
" <td>-0.008885</td>\n", | |
" <td>-0.009029</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCGCAACTGCTC</th>\n", | |
" <td>-0.004859</td>\n", | |
" <td>0.006940</td>\n", | |
" <td>-0.011786</td>\n", | |
" <td>-0.001265</td>\n", | |
" <td>-0.144409</td>\n", | |
" <td>0.031326</td>\n", | |
" <td>-0.006235</td>\n", | |
" <td>0.123605</td>\n", | |
" <td>0.053658</td>\n", | |
" <td>0.078483</td>\n", | |
" <td>...</td>\n", | |
" <td>0.031310</td>\n", | |
" <td>0.024500</td>\n", | |
" <td>-0.121823</td>\n", | |
" <td>0.003878</td>\n", | |
" <td>0.003526</td>\n", | |
" <td>-0.408864</td>\n", | |
" <td>0.008606</td>\n", | |
" <td>-0.016183</td>\n", | |
" <td>0.020778</td>\n", | |
" <td>-0.006655</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GATTGGGAGGCA</th>\n", | |
" <td>0.000871</td>\n", | |
" <td>0.030478</td>\n", | |
" <td>0.099761</td>\n", | |
" <td>0.003916</td>\n", | |
" <td>-0.052801</td>\n", | |
" <td>-0.019839</td>\n", | |
" <td>-0.016535</td>\n", | |
" <td>-0.061601</td>\n", | |
" <td>0.015599</td>\n", | |
" <td>-0.051265</td>\n", | |
" <td>...</td>\n", | |
" <td>-0.031973</td>\n", | |
" <td>-0.006078</td>\n", | |
" <td>0.030763</td>\n", | |
" <td>0.002424</td>\n", | |
" <td>-0.006938</td>\n", | |
" <td>-0.247995</td>\n", | |
" <td>0.001215</td>\n", | |
" <td>0.004926</td>\n", | |
" <td>-0.023806</td>\n", | |
" <td>0.001321</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTGCCGCCTCTC</th>\n", | |
" <td>0.040182</td>\n", | |
" <td>0.006984</td>\n", | |
" <td>0.015105</td>\n", | |
" <td>0.042839</td>\n", | |
" <td>-0.001473</td>\n", | |
" <td>0.011268</td>\n", | |
" <td>-0.297831</td>\n", | |
" <td>0.004125</td>\n", | |
" <td>-0.145610</td>\n", | |
" <td>-0.000073</td>\n", | |
" <td>...</td>\n", | |
" <td>0.055111</td>\n", | |
" <td>-0.006417</td>\n", | |
" <td>0.040814</td>\n", | |
" <td>0.066454</td>\n", | |
" <td>0.001088</td>\n", | |
" <td>-0.005451</td>\n", | |
" <td>-0.014530</td>\n", | |
" <td>0.009073</td>\n", | |
" <td>0.110713</td>\n", | |
" <td>-0.015346</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 25 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4 5 \\\n", | |
"r1_GGCCGCAGTCCG 0.001749 0.005366 0.019152 -0.000123 0.022360 0.037655 \n", | |
"r1_CTTGTGCGGGAA 0.013340 -0.041066 -0.173400 0.009977 0.263543 -0.061787 \n", | |
"r1_GCGCAACTGCTC -0.004859 0.006940 -0.011786 -0.001265 -0.144409 0.031326 \n", | |
"r1_GATTGGGAGGCA 0.000871 0.030478 0.099761 0.003916 -0.052801 -0.019839 \n", | |
"r1_GTGCCGCCTCTC 0.040182 0.006984 0.015105 0.042839 -0.001473 0.011268 \n", | |
"\n", | |
" 6 7 8 9 ... 15 \\\n", | |
"r1_GGCCGCAGTCCG -0.001717 0.036982 -0.027111 0.158742 ... -0.005785 \n", | |
"r1_CTTGTGCGGGAA -0.000113 0.155227 -0.035293 -0.085544 ... -0.025165 \n", | |
"r1_GCGCAACTGCTC -0.006235 0.123605 0.053658 0.078483 ... 0.031310 \n", | |
"r1_GATTGGGAGGCA -0.016535 -0.061601 0.015599 -0.051265 ... -0.031973 \n", | |
"r1_GTGCCGCCTCTC -0.297831 0.004125 -0.145610 -0.000073 ... 0.055111 \n", | |
"\n", | |
" 16 17 18 19 20 21 \\\n", | |
"r1_GGCCGCAGTCCG -0.013217 0.049971 0.006716 0.008569 -0.469579 -0.004635 \n", | |
"r1_CTTGTGCGGGAA -0.020038 0.285238 -0.019992 -0.020663 -0.394908 -0.008130 \n", | |
"r1_GCGCAACTGCTC 0.024500 -0.121823 0.003878 0.003526 -0.408864 0.008606 \n", | |
"r1_GATTGGGAGGCA -0.006078 0.030763 0.002424 -0.006938 -0.247995 0.001215 \n", | |
"r1_GTGCCGCCTCTC -0.006417 0.040814 0.066454 0.001088 -0.005451 -0.014530 \n", | |
"\n", | |
" 22 23 24 \n", | |
"r1_GGCCGCAGTCCG -0.016037 -0.011403 -0.004986 \n", | |
"r1_CTTGTGCGGGAA 0.018164 -0.008885 -0.009029 \n", | |
"r1_GCGCAACTGCTC -0.016183 0.020778 -0.006655 \n", | |
"r1_GATTGGGAGGCA 0.004926 -0.023806 0.001321 \n", | |
"r1_GTGCCGCCTCTC 0.009073 0.110713 -0.015346 \n", | |
"\n", | |
"[5 rows x 25 columns]" | |
] | |
}, | |
"execution_count": 105, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"smusher = FastICA(n_components=25)\n", | |
"\n", | |
"smushed = pd.DataFrame(smusher.fit_transform(counts), index=counts.index)\n", | |
"smushed.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 115, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"smushed.columns.name = 'ICA Components'" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 118, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"mean = smushed.groupby(communities_combined).mean()\n", | |
"mean = mean.drop(-1)\n", | |
"mean.index.name = 'Community Mean'\n", | |
"\n", | |
"sns.heatmap(mean)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 126, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(1339, 25)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>...</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <td>-2.549595e-09</td>\n", | |
" <td>-0.000004</td>\n", | |
" <td>4.887615e-07</td>\n", | |
" <td>-5.059184e-08</td>\n", | |
" <td>-1.844098e-08</td>\n", | |
" <td>2.036131e-08</td>\n", | |
" <td>-3.924206e-07</td>\n", | |
" <td>5.407714e-07</td>\n", | |
" <td>-0.000003</td>\n", | |
" <td>-1.006475e-07</td>\n", | |
" <td>...</td>\n", | |
" <td>2.893322e-05</td>\n", | |
" <td>0.000006</td>\n", | |
" <td>0.000003</td>\n", | |
" <td>-3.994638e-07</td>\n", | |
" <td>-7.595416e-08</td>\n", | |
" <td>2.332443e-07</td>\n", | |
" <td>-0.000002</td>\n", | |
" <td>-0.000001</td>\n", | |
" <td>-9.029267e-07</td>\n", | |
" <td>-6.846471e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <td>-3.061738e-07</td>\n", | |
" <td>-0.000020</td>\n", | |
" <td>3.000932e-05</td>\n", | |
" <td>6.267239e-07</td>\n", | |
" <td>1.767445e-05</td>\n", | |
" <td>-2.735468e-05</td>\n", | |
" <td>2.085170e-06</td>\n", | |
" <td>1.745861e-05</td>\n", | |
" <td>-0.000003</td>\n", | |
" <td>1.067953e-06</td>\n", | |
" <td>...</td>\n", | |
" <td>-1.618022e-05</td>\n", | |
" <td>0.000003</td>\n", | |
" <td>-0.000026</td>\n", | |
" <td>-4.509576e-06</td>\n", | |
" <td>-4.501130e-06</td>\n", | |
" <td>1.477159e-05</td>\n", | |
" <td>0.000005</td>\n", | |
" <td>-0.000031</td>\n", | |
" <td>-4.234929e-06</td>\n", | |
" <td>-5.437903e-05</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <td>-2.247922e-06</td>\n", | |
" <td>0.000001</td>\n", | |
" <td>1.060810e-05</td>\n", | |
" <td>1.081140e-06</td>\n", | |
" <td>-2.020613e-05</td>\n", | |
" <td>3.295799e-05</td>\n", | |
" <td>-3.283533e-06</td>\n", | |
" <td>2.714257e-06</td>\n", | |
" <td>0.000021</td>\n", | |
" <td>-5.605839e-06</td>\n", | |
" <td>...</td>\n", | |
" <td>-2.069032e-05</td>\n", | |
" <td>-0.000008</td>\n", | |
" <td>-0.000032</td>\n", | |
" <td>-3.751376e-06</td>\n", | |
" <td>1.641774e-05</td>\n", | |
" <td>-4.833648e-06</td>\n", | |
" <td>-0.000005</td>\n", | |
" <td>0.000027</td>\n", | |
" <td>-1.899860e-06</td>\n", | |
" <td>-3.007887e-05</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <td>-2.570153e-05</td>\n", | |
" <td>-0.000010</td>\n", | |
" <td>1.643111e-05</td>\n", | |
" <td>6.787750e-05</td>\n", | |
" <td>3.050403e-05</td>\n", | |
" <td>-3.920573e-05</td>\n", | |
" <td>-3.938178e-05</td>\n", | |
" <td>4.511666e-06</td>\n", | |
" <td>-0.000009</td>\n", | |
" <td>-1.031280e-05</td>\n", | |
" <td>...</td>\n", | |
" <td>-9.656395e-06</td>\n", | |
" <td>-0.000012</td>\n", | |
" <td>0.000007</td>\n", | |
" <td>4.123264e-05</td>\n", | |
" <td>-1.158482e-05</td>\n", | |
" <td>-3.301692e-06</td>\n", | |
" <td>-0.000005</td>\n", | |
" <td>0.000002</td>\n", | |
" <td>3.572182e-06</td>\n", | |
" <td>-5.549183e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <td>6.418797e-06</td>\n", | |
" <td>0.000006</td>\n", | |
" <td>1.077147e-05</td>\n", | |
" <td>-2.569698e-07</td>\n", | |
" <td>3.058852e-05</td>\n", | |
" <td>7.548442e-08</td>\n", | |
" <td>-1.945967e-06</td>\n", | |
" <td>2.518878e-05</td>\n", | |
" <td>-0.000037</td>\n", | |
" <td>6.845803e-06</td>\n", | |
" <td>...</td>\n", | |
" <td>-8.039342e-07</td>\n", | |
" <td>-0.000020</td>\n", | |
" <td>0.000008</td>\n", | |
" <td>4.087027e-06</td>\n", | |
" <td>-9.536294e-06</td>\n", | |
" <td>7.140660e-07</td>\n", | |
" <td>-0.000004</td>\n", | |
" <td>-0.000007</td>\n", | |
" <td>2.441690e-06</td>\n", | |
" <td>-3.517134e-05</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 25 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 \\\n", | |
"1500015O10RIK -2.549595e-09 -0.000004 4.887615e-07 -5.059184e-08 \n", | |
"1500016L03RIK -3.061738e-07 -0.000020 3.000932e-05 6.267239e-07 \n", | |
"1700025G04RIK -2.247922e-06 0.000001 1.060810e-05 1.081140e-06 \n", | |
"1810009A15RIK -2.570153e-05 -0.000010 1.643111e-05 6.787750e-05 \n", | |
"1810037I17RIK 6.418797e-06 0.000006 1.077147e-05 -2.569698e-07 \n", | |
"\n", | |
" 4 5 6 7 \\\n", | |
"1500015O10RIK -1.844098e-08 2.036131e-08 -3.924206e-07 5.407714e-07 \n", | |
"1500016L03RIK 1.767445e-05 -2.735468e-05 2.085170e-06 1.745861e-05 \n", | |
"1700025G04RIK -2.020613e-05 3.295799e-05 -3.283533e-06 2.714257e-06 \n", | |
"1810009A15RIK 3.050403e-05 -3.920573e-05 -3.938178e-05 4.511666e-06 \n", | |
"1810037I17RIK 3.058852e-05 7.548442e-08 -1.945967e-06 2.518878e-05 \n", | |
"\n", | |
" 8 9 ... 15 16 \\\n", | |
"1500015O10RIK -0.000003 -1.006475e-07 ... 2.893322e-05 0.000006 \n", | |
"1500016L03RIK -0.000003 1.067953e-06 ... -1.618022e-05 0.000003 \n", | |
"1700025G04RIK 0.000021 -5.605839e-06 ... -2.069032e-05 -0.000008 \n", | |
"1810009A15RIK -0.000009 -1.031280e-05 ... -9.656395e-06 -0.000012 \n", | |
"1810037I17RIK -0.000037 6.845803e-06 ... -8.039342e-07 -0.000020 \n", | |
"\n", | |
" 17 18 19 20 21 \\\n", | |
"1500015O10RIK 0.000003 -3.994638e-07 -7.595416e-08 2.332443e-07 -0.000002 \n", | |
"1500016L03RIK -0.000026 -4.509576e-06 -4.501130e-06 1.477159e-05 0.000005 \n", | |
"1700025G04RIK -0.000032 -3.751376e-06 1.641774e-05 -4.833648e-06 -0.000005 \n", | |
"1810009A15RIK 0.000007 4.123264e-05 -1.158482e-05 -3.301692e-06 -0.000005 \n", | |
"1810037I17RIK 0.000008 4.087027e-06 -9.536294e-06 7.140660e-07 -0.000004 \n", | |
"\n", | |
" 22 23 24 \n", | |
"1500015O10RIK -0.000001 -9.029267e-07 -6.846471e-07 \n", | |
"1500016L03RIK -0.000031 -4.234929e-06 -5.437903e-05 \n", | |
"1700025G04RIK 0.000027 -1.899860e-06 -3.007887e-05 \n", | |
"1810009A15RIK 0.000002 3.572182e-06 -5.549183e-07 \n", | |
"1810037I17RIK -0.000007 2.441690e-06 -3.517134e-05 \n", | |
"\n", | |
"[5 rows x 25 columns]" | |
] | |
}, | |
"execution_count": 126, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"components = pd.DataFrame(smusher.components_, columns=counts.columns).T\n", | |
"print(components.shape)\n", | |
"components.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 127, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 0.002066\n", | |
"1 0.001475\n", | |
"2 0.001942\n", | |
"3 0.002885\n", | |
"4 0.002561\n", | |
"5 0.000949\n", | |
"6 0.000899\n", | |
"7 0.002270\n", | |
"8 0.002368\n", | |
"9 0.002190\n", | |
"10 0.001969\n", | |
"11 0.000758\n", | |
"12 0.001468\n", | |
"13 0.001409\n", | |
"14 0.001001\n", | |
"15 0.002048\n", | |
"16 0.001098\n", | |
"17 0.002084\n", | |
"18 0.002660\n", | |
"19 0.000895\n", | |
"20 0.000530\n", | |
"21 0.001426\n", | |
"22 0.000960\n", | |
"23 0.002358\n", | |
"24 0.002020\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 127, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"components.abs().max()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 129, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 True\n", | |
"1 True\n", | |
"2 True\n", | |
"3 False\n", | |
"4 True\n", | |
"5 True\n", | |
"6 False\n", | |
"7 True\n", | |
"8 True\n", | |
"9 True\n", | |
"10 False\n", | |
"11 True\n", | |
"12 True\n", | |
"13 False\n", | |
"14 True\n", | |
"15 True\n", | |
"16 True\n", | |
"17 True\n", | |
"18 False\n", | |
"19 False\n", | |
"20 False\n", | |
"21 True\n", | |
"22 True\n", | |
"23 True\n", | |
"24 True\n", | |
"dtype: bool" | |
] | |
}, | |
"execution_count": 129, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"is_positive = components.max() == components.abs().max()\n", | |
"is_positive" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 131, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0 1\n", | |
"1 1\n", | |
"2 1\n", | |
"3 -1\n", | |
"4 1\n", | |
"5 1\n", | |
"6 -1\n", | |
"7 1\n", | |
"8 1\n", | |
"9 1\n", | |
"10 -1\n", | |
"11 1\n", | |
"12 1\n", | |
"13 -1\n", | |
"14 1\n", | |
"15 1\n", | |
"16 1\n", | |
"17 1\n", | |
"18 -1\n", | |
"19 -1\n", | |
"20 -1\n", | |
"21 1\n", | |
"22 1\n", | |
"23 1\n", | |
"24 1\n", | |
"dtype: int64" | |
] | |
}, | |
"execution_count": 131, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"multiplier = is_positive.astype(int)\n", | |
"multiplier[~is_positive] = -1\n", | |
"multiplier" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 133, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(1339, 25)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>...</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <td>-2.549595e-09</td>\n", | |
" <td>-0.000004</td>\n", | |
" <td>4.887615e-07</td>\n", | |
" <td>5.059184e-08</td>\n", | |
" <td>-1.844098e-08</td>\n", | |
" <td>2.036131e-08</td>\n", | |
" <td>3.924206e-07</td>\n", | |
" <td>5.407714e-07</td>\n", | |
" <td>-0.000003</td>\n", | |
" <td>-1.006475e-07</td>\n", | |
" <td>...</td>\n", | |
" <td>2.893322e-05</td>\n", | |
" <td>0.000006</td>\n", | |
" <td>0.000003</td>\n", | |
" <td>3.994638e-07</td>\n", | |
" <td>7.595416e-08</td>\n", | |
" <td>-2.332443e-07</td>\n", | |
" <td>-0.000002</td>\n", | |
" <td>-0.000001</td>\n", | |
" <td>-9.029267e-07</td>\n", | |
" <td>-6.846471e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <td>-3.061738e-07</td>\n", | |
" <td>-0.000020</td>\n", | |
" <td>3.000932e-05</td>\n", | |
" <td>-6.267239e-07</td>\n", | |
" <td>1.767445e-05</td>\n", | |
" <td>-2.735468e-05</td>\n", | |
" <td>-2.085170e-06</td>\n", | |
" <td>1.745861e-05</td>\n", | |
" <td>-0.000003</td>\n", | |
" <td>1.067953e-06</td>\n", | |
" <td>...</td>\n", | |
" <td>-1.618022e-05</td>\n", | |
" <td>0.000003</td>\n", | |
" <td>-0.000026</td>\n", | |
" <td>4.509576e-06</td>\n", | |
" <td>4.501130e-06</td>\n", | |
" <td>-1.477159e-05</td>\n", | |
" <td>0.000005</td>\n", | |
" <td>-0.000031</td>\n", | |
" <td>-4.234929e-06</td>\n", | |
" <td>-5.437903e-05</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <td>-2.247922e-06</td>\n", | |
" <td>0.000001</td>\n", | |
" <td>1.060810e-05</td>\n", | |
" <td>-1.081140e-06</td>\n", | |
" <td>-2.020613e-05</td>\n", | |
" <td>3.295799e-05</td>\n", | |
" <td>3.283533e-06</td>\n", | |
" <td>2.714257e-06</td>\n", | |
" <td>0.000021</td>\n", | |
" <td>-5.605839e-06</td>\n", | |
" <td>...</td>\n", | |
" <td>-2.069032e-05</td>\n", | |
" <td>-0.000008</td>\n", | |
" <td>-0.000032</td>\n", | |
" <td>3.751376e-06</td>\n", | |
" <td>-1.641774e-05</td>\n", | |
" <td>4.833648e-06</td>\n", | |
" <td>-0.000005</td>\n", | |
" <td>0.000027</td>\n", | |
" <td>-1.899860e-06</td>\n", | |
" <td>-3.007887e-05</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <td>-2.570153e-05</td>\n", | |
" <td>-0.000010</td>\n", | |
" <td>1.643111e-05</td>\n", | |
" <td>-6.787750e-05</td>\n", | |
" <td>3.050403e-05</td>\n", | |
" <td>-3.920573e-05</td>\n", | |
" <td>3.938178e-05</td>\n", | |
" <td>4.511666e-06</td>\n", | |
" <td>-0.000009</td>\n", | |
" <td>-1.031280e-05</td>\n", | |
" <td>...</td>\n", | |
" <td>-9.656395e-06</td>\n", | |
" <td>-0.000012</td>\n", | |
" <td>0.000007</td>\n", | |
" <td>-4.123264e-05</td>\n", | |
" <td>1.158482e-05</td>\n", | |
" <td>3.301692e-06</td>\n", | |
" <td>-0.000005</td>\n", | |
" <td>0.000002</td>\n", | |
" <td>3.572182e-06</td>\n", | |
" <td>-5.549183e-07</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <td>6.418797e-06</td>\n", | |
" <td>0.000006</td>\n", | |
" <td>1.077147e-05</td>\n", | |
" <td>2.569698e-07</td>\n", | |
" <td>3.058852e-05</td>\n", | |
" <td>7.548442e-08</td>\n", | |
" <td>1.945967e-06</td>\n", | |
" <td>2.518878e-05</td>\n", | |
" <td>-0.000037</td>\n", | |
" <td>6.845803e-06</td>\n", | |
" <td>...</td>\n", | |
" <td>-8.039342e-07</td>\n", | |
" <td>-0.000020</td>\n", | |
" <td>0.000008</td>\n", | |
" <td>-4.087027e-06</td>\n", | |
" <td>9.536294e-06</td>\n", | |
" <td>-7.140660e-07</td>\n", | |
" <td>-0.000004</td>\n", | |
" <td>-0.000007</td>\n", | |
" <td>2.441690e-06</td>\n", | |
" <td>-3.517134e-05</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 25 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 \\\n", | |
"1500015O10RIK -2.549595e-09 -0.000004 4.887615e-07 5.059184e-08 \n", | |
"1500016L03RIK -3.061738e-07 -0.000020 3.000932e-05 -6.267239e-07 \n", | |
"1700025G04RIK -2.247922e-06 0.000001 1.060810e-05 -1.081140e-06 \n", | |
"1810009A15RIK -2.570153e-05 -0.000010 1.643111e-05 -6.787750e-05 \n", | |
"1810037I17RIK 6.418797e-06 0.000006 1.077147e-05 2.569698e-07 \n", | |
"\n", | |
" 4 5 6 7 \\\n", | |
"1500015O10RIK -1.844098e-08 2.036131e-08 3.924206e-07 5.407714e-07 \n", | |
"1500016L03RIK 1.767445e-05 -2.735468e-05 -2.085170e-06 1.745861e-05 \n", | |
"1700025G04RIK -2.020613e-05 3.295799e-05 3.283533e-06 2.714257e-06 \n", | |
"1810009A15RIK 3.050403e-05 -3.920573e-05 3.938178e-05 4.511666e-06 \n", | |
"1810037I17RIK 3.058852e-05 7.548442e-08 1.945967e-06 2.518878e-05 \n", | |
"\n", | |
" 8 9 ... 15 16 \\\n", | |
"1500015O10RIK -0.000003 -1.006475e-07 ... 2.893322e-05 0.000006 \n", | |
"1500016L03RIK -0.000003 1.067953e-06 ... -1.618022e-05 0.000003 \n", | |
"1700025G04RIK 0.000021 -5.605839e-06 ... -2.069032e-05 -0.000008 \n", | |
"1810009A15RIK -0.000009 -1.031280e-05 ... -9.656395e-06 -0.000012 \n", | |
"1810037I17RIK -0.000037 6.845803e-06 ... -8.039342e-07 -0.000020 \n", | |
"\n", | |
" 17 18 19 20 21 \\\n", | |
"1500015O10RIK 0.000003 3.994638e-07 7.595416e-08 -2.332443e-07 -0.000002 \n", | |
"1500016L03RIK -0.000026 4.509576e-06 4.501130e-06 -1.477159e-05 0.000005 \n", | |
"1700025G04RIK -0.000032 3.751376e-06 -1.641774e-05 4.833648e-06 -0.000005 \n", | |
"1810009A15RIK 0.000007 -4.123264e-05 1.158482e-05 3.301692e-06 -0.000005 \n", | |
"1810037I17RIK 0.000008 -4.087027e-06 9.536294e-06 -7.140660e-07 -0.000004 \n", | |
"\n", | |
" 22 23 24 \n", | |
"1500015O10RIK -0.000001 -9.029267e-07 -6.846471e-07 \n", | |
"1500016L03RIK -0.000031 -4.234929e-06 -5.437903e-05 \n", | |
"1700025G04RIK 0.000027 -1.899860e-06 -3.007887e-05 \n", | |
"1810009A15RIK 0.000002 3.572182e-06 -5.549183e-07 \n", | |
"1810037I17RIK -0.000007 2.441690e-06 -3.517134e-05 \n", | |
"\n", | |
"[5 rows x 25 columns]" | |
] | |
}, | |
"execution_count": 133, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"components_flipped = components * multiplier\n", | |
"print(components_flipped.shape)\n", | |
"components_flipped.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 145, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x146451390>]" | |
] | |
}, | |
"execution_count": 145, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nP1BNTY0++ugj/f73v9err75KTWfh8ccfv2W5ZMuylJKSIuna8w6uXr0aq64lrNtrum7dOr322mv6\n5JNPtHwwjdhXAAABrUlEQVT5ch08eDCGvUssmZmZcjqd8vv9evHFF/XSSy9xjd6lSDWd6TWa1IE+\nkzXncWceeughPfnkk0pJSdFDDz2k++67Tz6fL9bdSng3fxYZCAR07733xrA3ZigpKdHatWvD/+7v\n749xjxLLxYsXtXPnTpWVlennP/8516gNbq/pTK/RpA70maw5jztz5MgRNTU1SZIuXbokv98vt9sd\n414lvtWrV+vUqVOSpM7OTv34xz+OcY8SX01Njc6ePStJ6urq0po1a2Lco8QxPDysZ555Rr/97W+1\nbds2SVyjdytSTWd6jSb10q/XZ7l//fXX4TXnCwoKYt2thBYMBvX666/rwoULSklJ0auvvqqioqJY\ndyshnT9/Xnv27FFbW5v+9a9/ae/evRofH9fDDz+s+vp6pabykKKZurmmfX19euutt7RgwQJlZWXp\nrbfeuuUjOEytvr5ef/nLX/Twww+H97355puqr6/nGp2lSDV96aWX9Pbbb9/xNZrUgQ4AgCmSesgd\nAABTEOgAABiAQAcAwAAEOgAABiDQAQAwAIEOAIABCHQAAAxAoAMAYID/D+xkJCK6fqoCAAAAAElF\nTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1464baa90>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"component_sizes = components.apply(np.linalg.norm)\n", | |
"\n", | |
"plt.plot(component_sizes, 'o')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 148, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"2 25.0\n", | |
"17 24.0\n", | |
"15 23.0\n", | |
"24 22.0\n", | |
"8 21.0\n", | |
"7 20.0\n", | |
"4 19.0\n", | |
"23 18.0\n", | |
"3 17.0\n", | |
"13 16.0\n", | |
"1 15.0\n", | |
"18 14.0\n", | |
"10 13.0\n", | |
"22 12.0\n", | |
"0 11.0\n", | |
"12 10.0\n", | |
"14 9.0\n", | |
"5 8.0\n", | |
"16 7.0\n", | |
"9 6.0\n", | |
"21 5.0\n", | |
"11 4.0\n", | |
"19 3.0\n", | |
"6 2.0\n", | |
"20 1.0\n", | |
"dtype: float64" | |
] | |
}, | |
"execution_count": 148, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"component_ranks = component_sizes.rank().sort_values(ascending=False)\n", | |
"component_ranks" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 154, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x1433c5128>]" | |
] | |
}, | |
"execution_count": 154, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x15a96a390>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.plot(component_sizes[component_ranks.index].values, 'o')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 136, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>...</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <td>784.0</td>\n", | |
" <td>818.0</td>\n", | |
" <td>681.0</td>\n", | |
" <td>795.0</td>\n", | |
" <td>624.0</td>\n", | |
" <td>652.0</td>\n", | |
" <td>798.0</td>\n", | |
" <td>668.0</td>\n", | |
" <td>705.0</td>\n", | |
" <td>636.0</td>\n", | |
" <td>...</td>\n", | |
" <td>224.0</td>\n", | |
" <td>377.0</td>\n", | |
" <td>638.0</td>\n", | |
" <td>703.0</td>\n", | |
" <td>610.0</td>\n", | |
" <td>580.0</td>\n", | |
" <td>731.0</td>\n", | |
" <td>661.0</td>\n", | |
" <td>556.0</td>\n", | |
" <td>633.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <td>851.0</td>\n", | |
" <td>1154.0</td>\n", | |
" <td>339.0</td>\n", | |
" <td>893.0</td>\n", | |
" <td>317.0</td>\n", | |
" <td>1148.0</td>\n", | |
" <td>1117.0</td>\n", | |
" <td>387.0</td>\n", | |
" <td>700.0</td>\n", | |
" <td>502.0</td>\n", | |
" <td>...</td>\n", | |
" <td>995.0</td>\n", | |
" <td>525.0</td>\n", | |
" <td>1054.0</td>\n", | |
" <td>306.0</td>\n", | |
" <td>337.0</td>\n", | |
" <td>1215.0</td>\n", | |
" <td>188.0</td>\n", | |
" <td>1160.0</td>\n", | |
" <td>850.0</td>\n", | |
" <td>1171.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <td>1091.0</td>\n", | |
" <td>552.0</td>\n", | |
" <td>519.0</td>\n", | |
" <td>960.0</td>\n", | |
" <td>1033.0</td>\n", | |
" <td>178.0</td>\n", | |
" <td>433.0</td>\n", | |
" <td>618.0</td>\n", | |
" <td>282.0</td>\n", | |
" <td>929.0</td>\n", | |
" <td>...</td>\n", | |
" <td>1072.0</td>\n", | |
" <td>1050.0</td>\n", | |
" <td>1095.0</td>\n", | |
" <td>346.0</td>\n", | |
" <td>1165.0</td>\n", | |
" <td>313.0</td>\n", | |
" <td>955.0</td>\n", | |
" <td>275.0</td>\n", | |
" <td>666.0</td>\n", | |
" <td>1032.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <td>1294.0</td>\n", | |
" <td>1005.0</td>\n", | |
" <td>449.0</td>\n", | |
" <td>1306.0</td>\n", | |
" <td>238.0</td>\n", | |
" <td>1209.0</td>\n", | |
" <td>51.0</td>\n", | |
" <td>588.0</td>\n", | |
" <td>845.0</td>\n", | |
" <td>1070.0</td>\n", | |
" <td>...</td>\n", | |
" <td>890.0</td>\n", | |
" <td>1101.0</td>\n", | |
" <td>542.0</td>\n", | |
" <td>1298.0</td>\n", | |
" <td>194.0</td>\n", | |
" <td>353.0</td>\n", | |
" <td>988.0</td>\n", | |
" <td>536.0</td>\n", | |
" <td>230.0</td>\n", | |
" <td>627.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <td>208.0</td>\n", | |
" <td>445.0</td>\n", | |
" <td>515.0</td>\n", | |
" <td>758.0</td>\n", | |
" <td>236.0</td>\n", | |
" <td>651.0</td>\n", | |
" <td>559.0</td>\n", | |
" <td>311.0</td>\n", | |
" <td>1160.0</td>\n", | |
" <td>227.0</td>\n", | |
" <td>...</td>\n", | |
" <td>654.0</td>\n", | |
" <td>1180.0</td>\n", | |
" <td>506.0</td>\n", | |
" <td>1061.0</td>\n", | |
" <td>215.0</td>\n", | |
" <td>658.0</td>\n", | |
" <td>866.0</td>\n", | |
" <td>836.0</td>\n", | |
" <td>272.0</td>\n", | |
" <td>1068.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 25 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4 5 6 7 \\\n", | |
"1500015O10RIK 784.0 818.0 681.0 795.0 624.0 652.0 798.0 668.0 \n", | |
"1500016L03RIK 851.0 1154.0 339.0 893.0 317.0 1148.0 1117.0 387.0 \n", | |
"1700025G04RIK 1091.0 552.0 519.0 960.0 1033.0 178.0 433.0 618.0 \n", | |
"1810009A15RIK 1294.0 1005.0 449.0 1306.0 238.0 1209.0 51.0 588.0 \n", | |
"1810037I17RIK 208.0 445.0 515.0 758.0 236.0 651.0 559.0 311.0 \n", | |
"\n", | |
" 8 9 ... 15 16 17 18 19 \\\n", | |
"1500015O10RIK 705.0 636.0 ... 224.0 377.0 638.0 703.0 610.0 \n", | |
"1500016L03RIK 700.0 502.0 ... 995.0 525.0 1054.0 306.0 337.0 \n", | |
"1700025G04RIK 282.0 929.0 ... 1072.0 1050.0 1095.0 346.0 1165.0 \n", | |
"1810009A15RIK 845.0 1070.0 ... 890.0 1101.0 542.0 1298.0 194.0 \n", | |
"1810037I17RIK 1160.0 227.0 ... 654.0 1180.0 506.0 1061.0 215.0 \n", | |
"\n", | |
" 20 21 22 23 24 \n", | |
"1500015O10RIK 580.0 731.0 661.0 556.0 633.0 \n", | |
"1500016L03RIK 1215.0 188.0 1160.0 850.0 1171.0 \n", | |
"1700025G04RIK 313.0 955.0 275.0 666.0 1032.0 \n", | |
"1810009A15RIK 353.0 988.0 536.0 230.0 627.0 \n", | |
"1810037I17RIK 658.0 866.0 836.0 272.0 1068.0 \n", | |
"\n", | |
"[5 rows x 25 columns]" | |
] | |
}, | |
"execution_count": 136, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"component_ranks = components_flipped.rank(ascending=False)\n", | |
"component_ranks.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 137, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>...</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>1500015O10RIK</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>...</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1500016L03RIK</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>...</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>...</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>...</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>...</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 25 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4 5 6 7 8 9 ... 15 16 17 18 19 \\\n", | |
"1500015O10RIK NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN \n", | |
"1500016L03RIK NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN \n", | |
"1700025G04RIK NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN \n", | |
"1810009A15RIK NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN \n", | |
"1810037I17RIK NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN \n", | |
"\n", | |
" 20 21 22 23 24 \n", | |
"1500015O10RIK NaN NaN NaN NaN NaN \n", | |
"1500016L03RIK NaN NaN NaN NaN NaN \n", | |
"1700025G04RIK NaN NaN NaN NaN NaN \n", | |
"1810009A15RIK NaN NaN NaN NaN NaN \n", | |
"1810037I17RIK NaN NaN NaN NaN NaN \n", | |
"\n", | |
"[5 rows x 25 columns]" | |
] | |
}, | |
"execution_count": 137, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"top_genes = component_ranks[component_ranks < 10]\n", | |
"top_genes.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 140, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"pd.options.display.max_columns = 50" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 141, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(126, 25)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>10</th>\n", | |
" <th>11</th>\n", | |
" <th>12</th>\n", | |
" <th>13</th>\n", | |
" <th>14</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>ACTB</th>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>8.0</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>AIPL1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ANK2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>APC</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>APLP2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \\\n", | |
"ACTB NaN 8.0 8.0 8.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"AIPL1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 9.0 NaN NaN NaN \n", | |
"ANK2 NaN NaN NaN NaN 9.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APC NaN NaN NaN NaN NaN NaN NaN 9.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APLP2 NaN NaN NaN 7.0 NaN 5.0 NaN NaN NaN NaN 9.0 NaN NaN NaN NaN NaN \n", | |
"\n", | |
" 16 17 18 19 20 21 22 23 24 \n", | |
"ACTB 7.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"AIPL1 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ANK2 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APC NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APLP2 NaN 9.0 NaN NaN NaN NaN NaN NaN NaN " | |
] | |
}, | |
"execution_count": 141, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"top_genes_dropna = top_genes.dropna(how='all')\n", | |
"print(top_genes_dropna.shape)\n", | |
"top_genes_dropna.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 156, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>10</th>\n", | |
" <th>11</th>\n", | |
" <th>12</th>\n", | |
" <th>13</th>\n", | |
" <th>14</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>ACTB</th>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>8.0</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>AIPL1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ANK2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>APC</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>APLP2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>APOE</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>APP</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>4.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ARR3</th>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ATP1A2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ATP1B1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ATP2B1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>BSG</th>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>BTG2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CABP5</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CALB1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CALB2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CALM1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CAR2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CAR8</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CARTPT</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CELF4</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CHGB</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>4.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CKB</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>COL4A1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>COL9A1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CPE</th>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CPLX2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CPLX3</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>4.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CST3</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>4.0</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>CXCL14</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>...</th>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" <td>...</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SAG</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SCG2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SEPT4</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SEPT7</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SLC17A6</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SLC25A4</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SLC4A3</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SLC6A1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SLC6A6</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SNAP25</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SNCG</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>4.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SNHG11</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SPARC</th>\n", | |
" <td>NaN</td>\n", | |
" <td>3.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SPARCL1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SPHKAP</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>STMN2</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>SYT1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>TFAP2B</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>THY1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>TMSB4X</th>\n", | |
" <td>NaN</td>\n", | |
" <td>4.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>9.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>TPM3</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>5.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>TRPM1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>1.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>TTC3</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>4.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>TTYH1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>4.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>TULP1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>UNC119</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>7.0</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>VIM</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>VIP</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>2.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ZFP36</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>8.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>ZFP36L1</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>6.0</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>126 rows × 25 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 \\\n", | |
"ACTB NaN 8.0 8.0 8.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"AIPL1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 9.0 NaN \n", | |
"ANK2 NaN NaN NaN NaN 9.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APC NaN NaN NaN NaN NaN NaN NaN 9.0 NaN NaN NaN NaN NaN NaN \n", | |
"APLP2 NaN NaN NaN 7.0 NaN 5.0 NaN NaN NaN NaN 9.0 NaN NaN NaN \n", | |
"APOE NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 7.0 NaN NaN NaN \n", | |
"APP NaN NaN NaN 6.0 NaN 9.0 NaN NaN NaN NaN 4.0 NaN NaN 9.0 \n", | |
"ARR3 8.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 7.0 NaN \n", | |
"ATP1A2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ATP1B1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 3.0 \n", | |
"ATP2B1 NaN NaN NaN NaN NaN 2.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"BSG NaN 2.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"BTG2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CABP5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CALB1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2.0 NaN NaN \n", | |
"CALB2 NaN NaN 5.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CALM1 NaN NaN NaN NaN NaN NaN NaN NaN NaN 6.0 NaN NaN NaN 1.0 \n", | |
"CAR2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2.0 \n", | |
"CAR8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CARTPT NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.0 3.0 NaN NaN NaN \n", | |
"CELF4 NaN NaN 6.0 NaN 3.0 NaN NaN 3.0 NaN NaN NaN NaN NaN NaN \n", | |
"CHGB NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 6.0 NaN NaN \n", | |
"CKB NaN NaN NaN NaN NaN 3.0 NaN 6.0 NaN 7.0 NaN NaN NaN 5.0 \n", | |
"COL4A1 NaN 9.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"COL9A1 NaN NaN NaN NaN NaN NaN NaN NaN 7.0 NaN NaN NaN NaN NaN \n", | |
"CPE 9.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CPLX2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CPLX3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 4.0 \n", | |
"CST3 NaN NaN 3.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CXCL14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"... ... ... ... ... ... ... .. ... ... ... ... ... ... ... \n", | |
"SAG NaN NaN NaN 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SCG2 NaN NaN NaN NaN 1.0 NaN NaN NaN NaN 8.0 NaN NaN NaN NaN \n", | |
"SEPT4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 3.0 NaN NaN \n", | |
"SEPT7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.0 NaN NaN \n", | |
"SLC17A6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SLC25A4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 7.0 \n", | |
"SLC4A3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 7.0 NaN NaN \n", | |
"SLC6A1 NaN NaN NaN NaN 7.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SLC6A6 NaN NaN NaN NaN NaN NaN NaN NaN 5.0 NaN NaN NaN NaN NaN \n", | |
"SNAP25 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SNCG NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SNHG11 NaN NaN NaN NaN NaN NaN NaN NaN NaN 3.0 2.0 NaN NaN NaN \n", | |
"SPARC NaN 3.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SPARCL1 NaN 6.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SPHKAP NaN NaN NaN NaN NaN NaN NaN 8.0 NaN NaN NaN NaN NaN NaN \n", | |
"STMN2 NaN NaN NaN NaN 6.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SYT1 NaN NaN 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TFAP2B NaN NaN NaN NaN 2.0 NaN NaN NaN NaN NaN NaN NaN NaN 8.0 \n", | |
"THY1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TMSB4X NaN 4.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TPM3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 5.0 NaN NaN \n", | |
"TRPM1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TTC3 NaN NaN 4.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TTYH1 NaN NaN NaN NaN NaN 4.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TULP1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 6.0 NaN \n", | |
"UNC119 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"VIM NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 8.0 NaN NaN \n", | |
"VIP NaN NaN 2.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ZFP36 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ZFP36L1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"\n", | |
" 14 15 16 17 18 19 20 21 22 23 24 \n", | |
"ACTB NaN NaN 7.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"AIPL1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ANK2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APC NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APLP2 NaN NaN NaN 9.0 NaN NaN NaN NaN NaN NaN NaN \n", | |
"APOE NaN 2.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"APP NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ARR3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ATP1A2 NaN 7.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"ATP1B1 NaN NaN NaN 1.0 NaN NaN 3.0 NaN NaN NaN 7.0 \n", | |
"ATP2B1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.0 \n", | |
"BSG NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"BTG2 NaN NaN NaN NaN NaN NaN NaN 9.0 NaN NaN NaN \n", | |
"CABP5 NaN NaN NaN NaN 5.0 NaN NaN NaN NaN NaN NaN \n", | |
"CALB1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CALB2 3.0 NaN NaN NaN 8.0 NaN 5.0 NaN NaN NaN NaN \n", | |
"CALM1 9.0 NaN NaN NaN 6.0 3.0 NaN NaN NaN NaN NaN \n", | |
"CAR2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 5.0 \n", | |
"CAR8 NaN NaN NaN NaN NaN 8.0 NaN NaN NaN NaN NaN \n", | |
"CARTPT NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CELF4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CHGB 8.0 NaN NaN 2.0 NaN 4.0 NaN NaN NaN NaN NaN \n", | |
"CKB NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"COL4A1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"COL9A1 NaN 5.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CPE NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CPLX2 NaN NaN NaN NaN NaN NaN NaN NaN 1.0 NaN NaN \n", | |
"CPLX3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"CST3 NaN 1.0 4.0 3.0 NaN NaN NaN NaN NaN NaN NaN \n", | |
"CXCL14 NaN NaN NaN NaN NaN NaN NaN NaN 2.0 NaN NaN \n", | |
"... ... ... ... ... ... ... ... ... ... ... ... \n", | |
"SAG NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SCG2 5.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SEPT4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SEPT7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SLC17A6 NaN NaN NaN NaN NaN NaN 8.0 NaN NaN NaN NaN \n", | |
"SLC25A4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SLC4A3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SLC6A1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SLC6A6 NaN 3.0 8.0 NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SNAP25 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 3.0 \n", | |
"SNCG NaN NaN NaN NaN NaN NaN 4.0 NaN NaN NaN NaN \n", | |
"SNHG11 2.0 NaN NaN NaN NaN NaN NaN NaN 3.0 NaN NaN \n", | |
"SPARC NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SPARCL1 7.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"SPHKAP NaN NaN NaN NaN 9.0 NaN NaN NaN NaN NaN NaN \n", | |
"STMN2 NaN NaN NaN NaN NaN NaN 7.0 NaN NaN NaN NaN \n", | |
"SYT1 6.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN 6.0 \n", | |
"TFAP2B NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 2.0 \n", | |
"THY1 NaN NaN NaN NaN NaN NaN 6.0 NaN NaN NaN NaN \n", | |
"TMSB4X NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 9.0 \n", | |
"TPM3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TRPM1 NaN NaN NaN NaN NaN 1.0 NaN NaN NaN NaN NaN \n", | |
"TTC3 NaN NaN NaN 7.0 NaN NaN NaN NaN NaN NaN NaN \n", | |
"TTYH1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"TULP1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"UNC119 NaN NaN NaN NaN NaN NaN NaN NaN NaN 7.0 NaN \n", | |
"VIM NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", | |
"VIP NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 8.0 \n", | |
"ZFP36 NaN NaN NaN NaN NaN NaN NaN 8.0 NaN NaN NaN \n", | |
"ZFP36L1 NaN NaN NaN NaN NaN NaN NaN 6.0 NaN NaN NaN \n", | |
"\n", | |
"[126 rows x 25 columns]" | |
] | |
}, | |
"execution_count": 156, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"top_genes_dropna" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 134, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(6020, 25)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>ICA Components</th>\n", | |
" <th>0</th>\n", | |
" <th>1</th>\n", | |
" <th>2</th>\n", | |
" <th>3</th>\n", | |
" <th>4</th>\n", | |
" <th>5</th>\n", | |
" <th>6</th>\n", | |
" <th>7</th>\n", | |
" <th>8</th>\n", | |
" <th>9</th>\n", | |
" <th>...</th>\n", | |
" <th>15</th>\n", | |
" <th>16</th>\n", | |
" <th>17</th>\n", | |
" <th>18</th>\n", | |
" <th>19</th>\n", | |
" <th>20</th>\n", | |
" <th>21</th>\n", | |
" <th>22</th>\n", | |
" <th>23</th>\n", | |
" <th>24</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GGCCGCAGTCCG</th>\n", | |
" <td>0.001749</td>\n", | |
" <td>0.005366</td>\n", | |
" <td>0.019152</td>\n", | |
" <td>0.000123</td>\n", | |
" <td>0.022360</td>\n", | |
" <td>0.037655</td>\n", | |
" <td>0.001717</td>\n", | |
" <td>0.036982</td>\n", | |
" <td>-0.027111</td>\n", | |
" <td>0.158742</td>\n", | |
" <td>...</td>\n", | |
" <td>-0.005785</td>\n", | |
" <td>-0.013217</td>\n", | |
" <td>0.049971</td>\n", | |
" <td>-0.006716</td>\n", | |
" <td>-0.008569</td>\n", | |
" <td>0.469579</td>\n", | |
" <td>-0.004635</td>\n", | |
" <td>-0.016037</td>\n", | |
" <td>-0.011403</td>\n", | |
" <td>-0.004986</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTGTGCGGGAA</th>\n", | |
" <td>0.013340</td>\n", | |
" <td>-0.041066</td>\n", | |
" <td>-0.173400</td>\n", | |
" <td>-0.009977</td>\n", | |
" <td>0.263543</td>\n", | |
" <td>-0.061787</td>\n", | |
" <td>0.000113</td>\n", | |
" <td>0.155227</td>\n", | |
" <td>-0.035293</td>\n", | |
" <td>-0.085544</td>\n", | |
" <td>...</td>\n", | |
" <td>-0.025165</td>\n", | |
" <td>-0.020038</td>\n", | |
" <td>0.285238</td>\n", | |
" <td>0.019992</td>\n", | |
" <td>0.020663</td>\n", | |
" <td>0.394908</td>\n", | |
" <td>-0.008130</td>\n", | |
" <td>0.018164</td>\n", | |
" <td>-0.008885</td>\n", | |
" <td>-0.009029</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCGCAACTGCTC</th>\n", | |
" <td>-0.004859</td>\n", | |
" <td>0.006940</td>\n", | |
" <td>-0.011786</td>\n", | |
" <td>0.001265</td>\n", | |
" <td>-0.144409</td>\n", | |
" <td>0.031326</td>\n", | |
" <td>0.006235</td>\n", | |
" <td>0.123605</td>\n", | |
" <td>0.053658</td>\n", | |
" <td>0.078483</td>\n", | |
" <td>...</td>\n", | |
" <td>0.031310</td>\n", | |
" <td>0.024500</td>\n", | |
" <td>-0.121823</td>\n", | |
" <td>-0.003878</td>\n", | |
" <td>-0.003526</td>\n", | |
" <td>0.408864</td>\n", | |
" <td>0.008606</td>\n", | |
" <td>-0.016183</td>\n", | |
" <td>0.020778</td>\n", | |
" <td>-0.006655</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GATTGGGAGGCA</th>\n", | |
" <td>0.000871</td>\n", | |
" <td>0.030478</td>\n", | |
" <td>0.099761</td>\n", | |
" <td>-0.003916</td>\n", | |
" <td>-0.052801</td>\n", | |
" <td>-0.019839</td>\n", | |
" <td>0.016535</td>\n", | |
" <td>-0.061601</td>\n", | |
" <td>0.015599</td>\n", | |
" <td>-0.051265</td>\n", | |
" <td>...</td>\n", | |
" <td>-0.031973</td>\n", | |
" <td>-0.006078</td>\n", | |
" <td>0.030763</td>\n", | |
" <td>-0.002424</td>\n", | |
" <td>0.006938</td>\n", | |
" <td>0.247995</td>\n", | |
" <td>0.001215</td>\n", | |
" <td>0.004926</td>\n", | |
" <td>-0.023806</td>\n", | |
" <td>0.001321</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTGCCGCCTCTC</th>\n", | |
" <td>0.040182</td>\n", | |
" <td>0.006984</td>\n", | |
" <td>0.015105</td>\n", | |
" <td>-0.042839</td>\n", | |
" <td>-0.001473</td>\n", | |
" <td>0.011268</td>\n", | |
" <td>0.297831</td>\n", | |
" <td>0.004125</td>\n", | |
" <td>-0.145610</td>\n", | |
" <td>-0.000073</td>\n", | |
" <td>...</td>\n", | |
" <td>0.055111</td>\n", | |
" <td>-0.006417</td>\n", | |
" <td>0.040814</td>\n", | |
" <td>-0.066454</td>\n", | |
" <td>-0.001088</td>\n", | |
" <td>0.005451</td>\n", | |
" <td>-0.014530</td>\n", | |
" <td>0.009073</td>\n", | |
" <td>0.110713</td>\n", | |
" <td>-0.015346</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 25 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
"ICA Components 0 1 2 3 4 5 \\\n", | |
"r1_GGCCGCAGTCCG 0.001749 0.005366 0.019152 0.000123 0.022360 0.037655 \n", | |
"r1_CTTGTGCGGGAA 0.013340 -0.041066 -0.173400 -0.009977 0.263543 -0.061787 \n", | |
"r1_GCGCAACTGCTC -0.004859 0.006940 -0.011786 0.001265 -0.144409 0.031326 \n", | |
"r1_GATTGGGAGGCA 0.000871 0.030478 0.099761 -0.003916 -0.052801 -0.019839 \n", | |
"r1_GTGCCGCCTCTC 0.040182 0.006984 0.015105 -0.042839 -0.001473 0.011268 \n", | |
"\n", | |
"ICA Components 6 7 8 9 ... 15 \\\n", | |
"r1_GGCCGCAGTCCG 0.001717 0.036982 -0.027111 0.158742 ... -0.005785 \n", | |
"r1_CTTGTGCGGGAA 0.000113 0.155227 -0.035293 -0.085544 ... -0.025165 \n", | |
"r1_GCGCAACTGCTC 0.006235 0.123605 0.053658 0.078483 ... 0.031310 \n", | |
"r1_GATTGGGAGGCA 0.016535 -0.061601 0.015599 -0.051265 ... -0.031973 \n", | |
"r1_GTGCCGCCTCTC 0.297831 0.004125 -0.145610 -0.000073 ... 0.055111 \n", | |
"\n", | |
"ICA Components 16 17 18 19 20 21 \\\n", | |
"r1_GGCCGCAGTCCG -0.013217 0.049971 -0.006716 -0.008569 0.469579 -0.004635 \n", | |
"r1_CTTGTGCGGGAA -0.020038 0.285238 0.019992 0.020663 0.394908 -0.008130 \n", | |
"r1_GCGCAACTGCTC 0.024500 -0.121823 -0.003878 -0.003526 0.408864 0.008606 \n", | |
"r1_GATTGGGAGGCA -0.006078 0.030763 -0.002424 0.006938 0.247995 0.001215 \n", | |
"r1_GTGCCGCCTCTC -0.006417 0.040814 -0.066454 -0.001088 0.005451 -0.014530 \n", | |
"\n", | |
"ICA Components 22 23 24 \n", | |
"r1_GGCCGCAGTCCG -0.016037 -0.011403 -0.004986 \n", | |
"r1_CTTGTGCGGGAA 0.018164 -0.008885 -0.009029 \n", | |
"r1_GCGCAACTGCTC -0.016183 0.020778 -0.006655 \n", | |
"r1_GATTGGGAGGCA 0.004926 -0.023806 0.001321 \n", | |
"r1_GTGCCGCCTCTC 0.009073 0.110713 -0.015346 \n", | |
"\n", | |
"[5 rows x 25 columns]" | |
] | |
}, | |
"execution_count": 134, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"smushed_flipped = smushed * multiplier\n", | |
"print(smushed_flipped.shape)\n", | |
"smushed_flipped.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 135, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x142fbef60>" | |
] | |
}, | |
"execution_count": 135, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nJCYmVrjvyP7N+GfObDbjp59+Qr169WzuO2W1+frrr9vcdxz5+0byuJYyERGRE7jMlDIREZErY4dL\nRETkBOxwiYiInIAdLhERkROwwyUiInICdrjkslq0aGH93mAwYObMmejVqxf69u2L2NhYnDhxotTj\nf/zxR7Ro0QJff/11hc+7adMmREREWBcSWLlypSLb70zvvfceDh8+XNWbQeTWXOY6XKLyWCwW/Otf\n/0J4eDg2bdoErVaL/fv341//+hc2b95sXVFo48aN6N69O9auXVvuNbjr1q3D2rVrsWzZMuuiCsOG\nDYOPjw8GDhzozJd1Rx06dKjcJRCJyDnY4ZLLO3DgAP7880+MHTvWuqpOhw4dkJycbC2jZjKZ8NVX\nX2H16tXWMnINGza87bnef/99pKSkWNey9ff3R0pKinUx/8zMTCQlJaG4uBhBQUGYNWsWGjVqhNjY\nWISGhmLfvn0oKipCQkICUlNTcfbsWQwdOhRDhw7FwoULcfHiRfz888/IyclBZGQkRowYAYvFgjlz\n5mDfvn1QqVTo06cPRo4ciQMHDmDZsmXw9vbGuXPn0KJFC8ybNw+enp7YtGkTVqxYAYvFggceeADT\np0+Hl5cXHn/8cXTv3h0ZGRnQaDR49913kZGRgePHjyMhIQGLFi3C999/jy+++AJqtRqtW7fGrFmz\nnPROEbk55xcoIrozQkJChBBC/N///Z8YN25chY/99ttvRUREhBBCiClTpoiUlJTbHpOdnS1CQkJE\nYWFhmc9RXFwsunTpIo4ePSqEEGLLli2if//+QgghXnjhBZGUlCSEEGLhwoXi6aefFgUFBeLXX38V\n7dq1E0II8d5774levXoJg8EgcnNzxdNPPy2OHz8uVq1aJV555RVhMplEQUGBiIiIEDt37hT79+8X\nbdq0Eb///rswm80iIiJCbN++Xfz4448iOjpaFBUVCSGEmDdvnli8eLH1d/Ltt98KIYRITk4WycnJ\n1u3bv3+/KCkpEeHh4cJoNAqz2SymTZsm/vjjDzt/40TkCB7DJZenVqttVjjauHEjevXqBQDo2bMn\nvvjiCxiNxtueB0C5z3Xx4kX4+/ujdevWAIAePXrg559/tlaOubkmcL169fDQQw/Bx8cH9evXL7XW\nb69evaDT6eDn54euXbti//79OHDgAPr16weNRgMfHx/07t0b+/btAwA0b94c99xzD9RqNZo2bYrr\n16/jwIEDyMrKwqBBg9C3b19s374d58+ft7Zxs9pU8+bNcf369VKvQavV4uGHH8aAAQOwaNEiDB48\nGF0gB8gAAAKASURBVMHBwRX+7ojozuCUMrm8Vq1a4dNPPy1VQg24UY/20UcfRfPmzZGeno7jx49j\n5cqVEEIgNzcX33zzjbUTBm5UvmnQoAGOHz+O9u3bW28/ePAg0tPTSz32JiGEtfiCh4eH9fby1rK+\ndZ1qi8UCjUZjnfYu6zlvrYOqUqms9/Xo0QMJCQkAblSvubUAxM3Mzcf/05IlS5CZmYn09HSMGDEC\n8+bNq7COLRHdGRzhkstr164datasiUWLFlk7nj179mDjxo1o1qwZvvrqK3To0AHp6enYsWMHdu7c\niVGjRmHdunW3Pdfw4cMxd+5ca3nDq1evYu7cuWjUqBHuu+8+5OTkWKvqbNmyBfXq1bO7uhIAbNu2\nDUajEdevX8fOnTvx+OOPo0OHDti0aRPMZjMKCwuRlpZW4QlO4eHh+Pbbb5GdnQ0hBGbMmIEVK1ZU\n2K5Go4HZbMbVq1fRo0cPhISEYNy4cXjsscdw5swZu7efiORxhEsuT6VSYcmSJUhOTkavXr2g1WoR\nFBSE5cuXo1atWti4cSPi4uJKZWJiYvB///d/OHfuHJo2bWq9PTo6GiUlJRg2bJh1hBgZGWk9Q3nB\nggWYPXs2CgsLERAQgAULFlRqW728vBATEwODwYCXX34ZzZo1Q6NGjXDx4kX07dsXJSUl6NOnD7p1\n62YtB/dPLVu2xJgxY/Diiy/CYrEgNDQUI0eOrLDdTp06Yfr06UhJSUFUVBQGDBgAHx8f1K1bF/36\n9avUayAiOawWROQkCxcuBABryTUici+cUiYiInICjnCJiIicgCNcIiIiJ2CHS0RE5ATscImIiJyA\nHS4REZETsMMlIiJyAna4RERETvD/AIpd69GwmlJhAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x142fe9940>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"mean = smushed_flipped.groupby(communities_combined).mean()\n", | |
"mean = mean.drop(-1)\n", | |
"mean.index.name = 'Community Mean'\n", | |
"\n", | |
"sns.heatmap(mean)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 158, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"False" | |
] | |
}, | |
"execution_count": 158, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"classifier.oob_score" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 159, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Index(['1700025G04RIK', '1810009A15RIK', '1810037I17RIK', '2010107E04RIK',\n", | |
" '2410066E13RIK', '2610017I09RIK', '2900011O08RIK', '4833424O15RIK',\n", | |
" '4930447C04RIK', '6330403K07RIK',\n", | |
" ...\n", | |
" 'ZFHX3', 'ZFHX4', 'ZFP36', 'ZFP365', 'ZFP36L1', 'ZFP804A', 'ZIC1',\n", | |
" 'ZMAT4', 'ZWINT', 'ZYX'],\n", | |
" dtype='object', length=1184)" | |
] | |
}, | |
"execution_count": 159, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"important_features" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 168, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(6020, 1184)\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style>\n", | |
" .dataframe thead tr:only-child th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: left;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>1700025G04RIK</th>\n", | |
" <th>1810009A15RIK</th>\n", | |
" <th>1810037I17RIK</th>\n", | |
" <th>2010107E04RIK</th>\n", | |
" <th>2410066E13RIK</th>\n", | |
" <th>2610017I09RIK</th>\n", | |
" <th>2900011O08RIK</th>\n", | |
" <th>4833424O15RIK</th>\n", | |
" <th>4930447C04RIK</th>\n", | |
" <th>6330403K07RIK</th>\n", | |
" <th>6430548M08RIK</th>\n", | |
" <th>8430419L09RIK</th>\n", | |
" <th>A030009H04RIK</th>\n", | |
" <th>A330050F15RIK</th>\n", | |
" <th>A730046J19RIK</th>\n", | |
" <th>A830010M20RIK</th>\n", | |
" <th>A930001A20RIK</th>\n", | |
" <th>A930011O12RIK</th>\n", | |
" <th>ABAT</th>\n", | |
" <th>ABCA8A</th>\n", | |
" <th>ABCB1A</th>\n", | |
" <th>ABHD10</th>\n", | |
" <th>ABHD2</th>\n", | |
" <th>ABHD4</th>\n", | |
" <th>ABLIM1</th>\n", | |
" <th>...</th>\n", | |
" <th>WASF2</th>\n", | |
" <th>WBSCR17</th>\n", | |
" <th>WDR1</th>\n", | |
" <th>WIPI1</th>\n", | |
" <th>WLS</th>\n", | |
" <th>WNK4</th>\n", | |
" <th>WWTR1</th>\n", | |
" <th>YWHAB</th>\n", | |
" <th>YWHAG</th>\n", | |
" <th>YWHAH</th>\n", | |
" <th>YWHAQ</th>\n", | |
" <th>ZBTB20</th>\n", | |
" <th>ZCCHC12</th>\n", | |
" <th>ZCCHC18</th>\n", | |
" <th>ZEB2</th>\n", | |
" <th>ZFHX3</th>\n", | |
" <th>ZFHX4</th>\n", | |
" <th>ZFP36</th>\n", | |
" <th>ZFP365</th>\n", | |
" <th>ZFP36L1</th>\n", | |
" <th>ZFP804A</th>\n", | |
" <th>ZIC1</th>\n", | |
" <th>ZMAT4</th>\n", | |
" <th>ZWINT</th>\n", | |
" <th>ZYX</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>r1_GGCCGCAGTCCG</th>\n", | |
" <td>0.454545</td>\n", | |
" <td>0.210526</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.848485</td>\n", | |
" <td>0.833333</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.767442</td>\n", | |
" <td>0.052632</td>\n", | |
" <td>0.5</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.175</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.666667</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.181818</td>\n", | |
" <td>0.210526</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.333333</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.25</td>\n", | |
" <td>0.294118</td>\n", | |
" <td>...</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.636364</td>\n", | |
" <td>0.142857</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.8250</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>1.00</td>\n", | |
" <td>0.0625</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.894737</td>\n", | |
" <td>0.307692</td>\n", | |
" <td>0.333333</td>\n", | |
" <td>0.214286</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.583333</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.777778</td>\n", | |
" <td>0.815385</td>\n", | |
" <td>0.00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_CTTGTGCGGGAA</th>\n", | |
" <td>0.818182</td>\n", | |
" <td>0.210526</td>\n", | |
" <td>0.571429</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.666667</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.1</td>\n", | |
" <td>0.842105</td>\n", | |
" <td>0.300</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.576923</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.363636</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.045455</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.333333</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.235294</td>\n", | |
" <td>...</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.5</td>\n", | |
" <td>0.181818</td>\n", | |
" <td>0.142857</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>1.0000</td>\n", | |
" <td>0.750000</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.85</td>\n", | |
" <td>0.0000</td>\n", | |
" <td>0.25</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.666667</td>\n", | |
" <td>0.571429</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.333333</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.555556</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.25</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GCGCAACTGCTC</th>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.052632</td>\n", | |
" <td>0.571429</td>\n", | |
" <td>0.787879</td>\n", | |
" <td>0.333333</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.697674</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.2</td>\n", | |
" <td>0.368421</td>\n", | |
" <td>0.125</td>\n", | |
" <td>0.333333</td>\n", | |
" <td>0.192308</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.545455</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.022727</td>\n", | |
" <td>0.315789</td>\n", | |
" <td>0.076923</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.666667</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.176471</td>\n", | |
" <td>...</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.6500</td>\n", | |
" <td>0.541667</td>\n", | |
" <td>0.896552</td>\n", | |
" <td>0.85</td>\n", | |
" <td>0.0625</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.894737</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.111111</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.166667</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.444444</td>\n", | |
" <td>0.584615</td>\n", | |
" <td>0.00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GATTGGGAGGCA</th>\n", | |
" <td>0.727273</td>\n", | |
" <td>0.105263</td>\n", | |
" <td>0.714286</td>\n", | |
" <td>0.424242</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.465116</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.210526</td>\n", | |
" <td>0.050</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.269231</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.363636</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.227273</td>\n", | |
" <td>0.052632</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.166667</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.294118</td>\n", | |
" <td>...</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.5</td>\n", | |
" <td>0.090909</td>\n", | |
" <td>0.285714</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.6500</td>\n", | |
" <td>0.416667</td>\n", | |
" <td>0.500000</td>\n", | |
" <td>0.30</td>\n", | |
" <td>0.0625</td>\n", | |
" <td>0.25</td>\n", | |
" <td>0.631579</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.888889</td>\n", | |
" <td>0.071429</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.083333</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.142857</td>\n", | |
" <td>0.333333</td>\n", | |
" <td>0.261538</td>\n", | |
" <td>0.00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>r1_GTGCCGCCTCTC</th>\n", | |
" <td>0.090909</td>\n", | |
" <td>1.000000</td>\n", | |
" <td>0.142857</td>\n", | |
" <td>0.393939</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.2</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.025</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.090909</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.818182</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.166667</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.50</td>\n", | |
" <td>0.058824</td>\n", | |
" <td>...</td>\n", | |
" <td>0.2</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.090909</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.25</td>\n", | |
" <td>0.0625</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.017241</td>\n", | |
" <td>0.10</td>\n", | |
" <td>0.1250</td>\n", | |
" <td>0.00</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.250000</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.0</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.000000</td>\n", | |
" <td>0.046154</td>\n", | |
" <td>0.00</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"<p>5 rows × 1184 columns</p>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" 1700025G04RIK 1810009A15RIK 1810037I17RIK 2010107E04RIK \\\n", | |
"r1_GGCCGCAGTCCG 0.454545 0.210526 1.000000 0.848485 \n", | |
"r1_CTTGTGCGGGAA 0.818182 0.210526 0.571429 1.000000 \n", | |
"r1_GCGCAACTGCTC 1.000000 0.052632 0.571429 0.787879 \n", | |
"r1_GATTGGGAGGCA 0.727273 0.105263 0.714286 0.424242 \n", | |
"r1_GTGCCGCCTCTC 0.090909 1.000000 0.142857 0.393939 \n", | |
"\n", | |
" 2410066E13RIK 2610017I09RIK 2900011O08RIK 4833424O15RIK \\\n", | |
"r1_GGCCGCAGTCCG 0.833333 0.0 0.767442 0.052632 \n", | |
"r1_CTTGTGCGGGAA 0.666667 0.0 1.000000 0.000000 \n", | |
"r1_GCGCAACTGCTC 0.333333 0.0 0.697674 0.000000 \n", | |
"r1_GATTGGGAGGCA 1.000000 0.0 0.465116 0.000000 \n", | |
"r1_GTGCCGCCTCTC 0.000000 0.0 0.000000 0.000000 \n", | |
"\n", | |
" 4930447C04RIK 6330403K07RIK 6430548M08RIK 8430419L09RIK \\\n", | |
"r1_GGCCGCAGTCCG 0.5 1.000000 0.175 0.000000 \n", | |
"r1_CTTGTGCGGGAA 0.1 0.842105 0.300 0.000000 \n", | |
"r1_GCGCAACTGCTC 0.2 0.368421 0.125 0.333333 \n", | |
"r1_GATTGGGAGGCA 0.0 0.210526 0.050 0.000000 \n", | |
"r1_GTGCCGCCTCTC 0.2 0.000000 0.025 0.000000 \n", | |
"\n", | |
" A030009H04RIK A330050F15RIK A730046J19RIK A830010M20RIK \\\n", | |
"r1_GGCCGCAGTCCG 1.000000 0.666667 0.0 1.000000 \n", | |
"r1_CTTGTGCGGGAA 0.576923 0.000000 0.0 0.363636 \n", | |
"r1_GCGCAACTGCTC 0.192308 0.000000 0.0 0.545455 \n", | |
"r1_GATTGGGAGGCA 0.269231 0.000000 0.0 0.363636 \n", | |
"r1_GTGCCGCCTCTC 0.000000 0.000000 0.0 0.090909 \n", | |
"\n", | |
" A930001A20RIK A930011O12RIK ABAT ABCA8A ABCB1A \\\n", | |
"r1_GGCCGCAGTCCG 0.0 0.181818 0.210526 0.000000 0.0 \n", | |
"r1_CTTGTGCGGGAA 0.0 0.045455 1.000000 0.000000 0.0 \n", | |
"r1_GCGCAACTGCTC 0.0 0.022727 0.315789 0.076923 0.0 \n", | |
"r1_GATTGGGAGGCA 0.0 0.227273 0.052632 0.000000 0.0 \n", | |
"r1_GTGCCGCCTCTC 0.0 0.818182 0.000000 0.000000 0.0 \n", | |
"\n", | |
" ABHD10 ABHD2 ABHD4 ABLIM1 ... WASF2 WBSCR17 \\\n", | |
"r1_GGCCGCAGTCCG 0.333333 0.0 0.25 0.294118 ... 0.0 0.0 \n", | |
"r1_CTTGTGCGGGAA 0.333333 0.0 0.00 0.235294 ... 0.0 0.5 \n", | |
"r1_GCGCAACTGCTC 0.666667 0.0 0.00 0.176471 ... 0.0 0.0 \n", | |
"r1_GATTGGGAGGCA 0.166667 0.0 0.00 0.294118 ... 0.0 0.5 \n", | |
"r1_GTGCCGCCTCTC 0.166667 0.0 0.50 0.058824 ... 0.2 0.0 \n", | |
"\n", | |
" WDR1 WIPI1 WLS WNK4 WWTR1 YWHAB YWHAG \\\n", | |
"r1_GGCCGCAGTCCG 0.636364 0.142857 0.0 0.0 0.00 0.8250 1.000000 \n", | |
"r1_CTTGTGCGGGAA 0.181818 0.142857 0.0 0.0 0.00 1.0000 0.750000 \n", | |
"r1_GCGCAACTGCTC 1.000000 0.000000 0.0 0.0 0.00 0.6500 0.541667 \n", | |
"r1_GATTGGGAGGCA 0.090909 0.285714 0.0 0.0 0.00 0.6500 0.416667 \n", | |
"r1_GTGCCGCCTCTC 0.090909 0.000000 0.0 0.0 0.25 0.0625 0.000000 \n", | |
"\n", | |
" YWHAH YWHAQ ZBTB20 ZCCHC12 ZCCHC18 ZEB2 \\\n", | |
"r1_GGCCGCAGTCCG 1.000000 1.00 0.0625 0.00 0.894737 0.307692 \n", | |
"r1_CTTGTGCGGGAA 1.000000 0.85 0.0000 0.25 1.000000 0.000000 \n", | |
"r1_GCGCAACTGCTC 0.896552 0.85 0.0625 0.00 0.894737 0.000000 \n", | |
"r1_GATTGGGAGGCA 0.500000 0.30 0.0625 0.25 0.631579 0.000000 \n", | |
"r1_GTGCCGCCTCTC 0.017241 0.10 0.1250 0.00 0.000000 0.000000 \n", | |
"\n", | |
" ZFHX3 ZFHX4 ZFP36 ZFP365 ZFP36L1 ZFP804A \\\n", | |
"r1_GGCCGCAGTCCG 0.333333 0.214286 0.0 0.583333 0.0 0.0 \n", | |
"r1_CTTGTGCGGGAA 0.666667 0.571429 0.0 0.333333 0.0 0.0 \n", | |
"r1_GCGCAACTGCTC 0.111111 0.000000 0.0 0.166667 0.0 0.0 \n", | |
"r1_GATTGGGAGGCA 0.888889 0.071429 0.0 0.083333 0.0 0.0 \n", | |
"r1_GTGCCGCCTCTC 0.000000 0.000000 0.0 0.250000 0.0 0.0 \n", | |
"\n", | |
" ZIC1 ZMAT4 ZWINT ZYX \n", | |
"r1_GGCCGCAGTCCG 0.000000 0.777778 0.815385 0.00 \n", | |
"r1_CTTGTGCGGGAA 0.000000 0.555556 1.000000 0.25 \n", | |
"r1_GCGCAACTGCTC 0.000000 0.444444 0.584615 0.00 \n", | |
"r1_GATTGGGAGGCA 0.142857 0.333333 0.261538 0.00 \n", | |
"r1_GTGCCGCCTCTC 0.000000 0.000000 0.046154 0.00 \n", | |
"\n", | |
"[5 rows x 1184 columns]" | |
] | |
}, | |
"execution_count": 168, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"counts_feature_scaled = classifier.feature_importances_ * counts\n", | |
"counts_feature_scaled = counts_feature_scaled.loc[:, is_feature_important]\n", | |
"counts_feature_scaled = counts_feature_scaled/counts_feature_scaled.max()\n", | |
"print(counts_feature_scaled.shape)\n", | |
"counts_feature_scaled.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 170, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.axes._subplots.AxesSubplot at 0x15c1f8780>" | |
] | |
}, | |
"execution_count": 170, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x162005128>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"mean = counts_feature_scaled.groupby(communities_combined).mean()\n", | |
"mean = mean.drop(-1)\n", | |
"mean.index.name = 'Community Mean'\n", | |
"\n", | |
"sns.heatmap(mean, vmax=0.01)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 172, | |
"metadata": { | |
"scrolled": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# sns.clustermap(counts_feature_scaled)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (cshl-sca-2017)", | |
"language": "python", | |
"name": "cshl-sca-2017" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.1" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment