{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from scipy import stats, sparse\n", "import bottleneck\n", "\n", "def run_egad(go, nw, **kwargs):\n", " \"\"\"EGAD running function\n", " \n", " Wrapper to lower level functions for EGAD\n", "\n", " EGAD measures modularity of gene lists in co-expression networks. \n", "\n", " This was translated from the MATLAB version, which does tiled Cross Validation\n", " \n", " The useful kwargs are:\n", " int - nFold : Number of CV folds to do, default is 3, \n", " int - {min,max}_count : limits for number of terms in each gene list, these are exclusive values\n", "\n", "\n", " Arguments:\n", " go {pd.DataFrame} -- dataframe of genes x terms of values [0,1], where 1 is included in gene lists\n", " nw {pd.DataFrame} -- dataframe of co-expression network, genes x genes\n", " **kwargs \n", " \n", " Returns:\n", " pd.DataFrame -- dataframe of terms x metrics where the metrics are \n", " ['AUC', 'AVG_NODE_DEGREE', 'DEGREE_NULL_AUC', 'P_Value']\n", " \"\"\"\n", " assert nw.shape[0] == nw.shape[1] , 'Network is not square'\n", " #print(nw.index)\n", " #nw.columns = nw.columns.astype(int)\n", " #print(nw.columns.astype(int))\n", " assert np.all(nw.index == nw.columns) , 'Network index and columns are not in the same order'\n", "\n", " #nw_mask = nw.isna().sum(axis=1) != nw.shape[1]\n", " #nw = nw.loc[nw_mask, nw_mask].astype('float')\n", " #np.fill_diagonal(nw.values, 1)\n", " return _runNV(go, nw, **kwargs)\n", "\n", "def _runNV(go, nw, nFold=3, min_count=20, max_count=1000):\n", "\n", " #Make sure genes are same in go and nw\n", " #go.index = go.index.map(str) \n", " #nw.index = nw.index.map(str)\n", " #nw.index = nw.index.str.replace('_', '')\n", " #go.index = go.index.str.replace('_', '')\n", " #print (nw)\n", " genes_intersect = go.index.intersection(nw.index)\n", "\n", "\n", " #print (genes_intersect)\n", " go = go.loc[genes_intersect, :]\n", " nw = nw.loc[genes_intersect, genes_intersect]\n", " #print (go)\n", " print (nw.shape)\n", " print (go.shape)\n", " sparsity = 1.0 - np.count_nonzero(go) / go.size\n", " print (sparsity)\n", " sparsity = 1.0 - np.count_nonzero(nw) / nw.size\n", " print (sparsity)\n", " #print(nw\n", " #print(go\n", " nw_mask = nw.isna().sum(axis=1) != nw.shape[1]\n", " nw = nw.loc[nw_mask, nw_mask].astype('float')\n", " np.fill_diagonal(nw.values, 1)\n", " #Make sure there aren't duplicates\n", " duplicates = nw.index.duplicated(keep='first')\n", " nw = nw.loc[~duplicates, ~duplicates]\n", "\n", " go = go.loc[:, (go.sum(axis=0) > min_count) & (go.sum(axis=0) < max_count)]\n", " go = go.loc[~go.index.duplicated(keep='first'), :]\n", " #print(go)\n", "\n", " roc = _new_egad(go.values, nw.values, nFold)\n", "\n", " col_names = ['AUC', 'AVG_NODE_DEGREE', 'DEGREE_NULL_AUC', 'P_Value']\n", " #Put output in dataframe\n", " return pd.DataFrame(dict(zip(col_names, roc)), index=go.columns)\n", "\n", "def _new_egad(go, nw, nFold):\n", "\n", " #Build Cross validated Positive\n", " x, y = np.where(go)\n", " #print(x, y)\n", " cvgo = {}\n", " for i in np.arange(nFold):\n", " a = x[i::nFold]\n", " #print(a)\n", " b = y[i::nFold]\n", " dat = np.ones_like(a)\n", " mask = sparse.coo_matrix((dat, (a, b)), shape=go.shape)\n", " cvgo[i] = go - mask.toarray()\n", "\n", " CVgo = np.concatenate(list(cvgo.values()), axis=1)\n", " #print(CVgo)\n", "\n", " sumin = np.matmul(nw.T, CVgo)\n", "\n", " degree = np.sum(nw, axis=0)\n", " #print(degree)\n", " #print(degree[:, None])\n", "\n", " predicts = sumin / degree[:, None]\n", " #print(predicts)\n", "\n", " np.place(predicts, CVgo > 0, np.nan)\n", "\n", " #print(predicts)\n", "\n", " #Calculate ranks of positives\n", " rank_abs = lambda x: stats.rankdata(np.abs(x))\n", " predicts2 = np.apply_along_axis(rank_abs, 0, predicts)\n", " #print(predicts2)\n", "\n", " #Masking Nans that were ranked (how tiedrank works in matlab)\n", " predicts2[np.isnan(predicts)] = np.nan\n", " #print(predicts2)\n", "\n", " filtering = np.tile(go, nFold)\n", " #print(filtering)\n", "\n", " #negatives :filtering == 0\n", " #Sets Ranks of negatives to 0\n", " np.place(predicts2, filtering == 0, 0)\n", "\n", " #Sum of ranks for each prediction\n", " p = bottleneck.nansum(predicts2, axis=0)\n", " n_p = np.sum(filtering, axis=0) - np.sum(CVgo, axis=0)\n", "\n", " #Number of negatives\n", " #Number of GO terms - number of postiive\n", " n_n = filtering.shape[0] - np.sum(filtering, axis=0)\n", "\n", " roc = (p / n_p - (n_p + 1) / 2) / n_n\n", " U = roc * n_p * n_n\n", " Z = (np.abs(U - (n_p * n_n / 2))) / np.sqrt(n_p * n_n *(n_p + n_n + 1) / 12)\n", " roc = roc.reshape(nFold, go.shape[1])\n", " Z = Z.reshape(nFold, go.shape[1])\n", " #Stouffer Z method\n", " Z = bottleneck.nansum(Z, axis=0) / np.sqrt(nFold)\n", " #Calc ROC of Neighbor Voting\n", " roc = bottleneck.nanmean(roc, axis=0)\n", " P = stats.norm.sf(Z)\n", "\n", " #Average degree for nodes in each go term\n", " avg_degree = degree.dot(go) / np.sum(go, axis=0)\n", "\n", " #Calc null auc for degree\n", " ranks = np.tile(stats.rankdata(degree), (go.shape[1], 1)).T\n", "\n", " np.place(ranks, go == 0, 0)\n", "\n", " n_p = bottleneck.nansum(go, axis=0)\n", " nn = go.shape[0] - n_p\n", " p = bottleneck.nansum(ranks, axis=0)\n", "\n", " roc_null = (p / n_p - ((n_p + 1) / 2)) / nn\n", " #print(roc)\n", " return roc, avg_degree, roc_null, P\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--2022-05-18 21:02:42-- http://session.asuscomm.com/database.php\n", "Resolving session.asuscomm.com (session.asuscomm.com)... 178.55.16.55\n", "Connecting to session.asuscomm.com (session.asuscomm.com)|178.55.16.55|:80... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: unspecified [text/html]\n", "Saving to: ‘database.php’\n", "\n", "database.php [ <=> ] 49.98K 177KB/s in 0.3s \n", "\n", "2022-05-18 21:02:42 (177 KB/s) - ‘database.php’ saved [51176]\n", "\n" ] } ], "source": [ "!wget http://session.asuscomm.com/database.php" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":2: ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support skipfooter; you can avoid this warning by specifying engine='python'.\n", " df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/scType_marker_genes.csv', header=1, usecols=[0,1,2,3], skipfooter=2)\n" ] } ], "source": [ "import pandas as pd\n", "df = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/data_human/scType_marker_genes.csv', header=1, usecols=[0,1,2,3], skipfooter=2)\n", "\n", "\n", "tissue_type_list = df['Tissue'].drop_duplicates().tolist()\n", "\n", "all_gene_list = df['Marker genes'].str.cat(sep=',').split(\",\")\n", "\n", "data_tissue = df.groupby(['Tissue']).apply(lambda grp: grp['Marker genes'].str.cat(sep=',').split(\",\"))\n", "\n", "all_gene_list = list(set(all_gene_list))\n", "\n", "nested_gene_marker_tissue_list = []\n", "\n", "for i in tissue_type_list:\n", " gene_for_given_tissue = data[data.index ==i][0]\n", " particular_gene_tissue = [ 1 if x in gene_for_given_tissue else 0 for x in all_gene_list]\n", " nested_gene_marker_tissue_list.append(particular_gene_tissue)\n", "\n", " \n", "\n", "pd.DataFrame(nested_gene_marker_tissue_list, columns = all_gene_list, index=tissue_type_list)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "ename": "JSONDecodeError", "evalue": "Expecting value: line 1 column 1 (char 0)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mJSONDecodeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mencoding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_content_charset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'utf8'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# JSON default\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m#print(raw_data) #this is data in string format\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mraw_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#this would be your json data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/json/__init__.py\u001b[0m in \u001b[0;36mloads\u001b[0;34m(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)\u001b[0m\n\u001b[1;32m 355\u001b[0m \u001b[0mparse_int\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mparse_float\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 356\u001b[0m parse_constant is None and object_pairs_hook is None and not kw):\n\u001b[0;32m--> 357\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_default_decoder\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 358\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcls\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 359\u001b[0m \u001b[0mcls\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mJSONDecoder\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/json/decoder.py\u001b[0m in \u001b[0;36mdecode\u001b[0;34m(self, s, _w)\u001b[0m\n\u001b[1;32m 335\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 336\u001b[0m \"\"\"\n\u001b[0;32m--> 337\u001b[0;31m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraw_decode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0midx\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0m_w\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 338\u001b[0m \u001b[0mend\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_w\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 339\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mend\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/.conda/envs/hicexplorer/lib/python3.8/json/decoder.py\u001b[0m in \u001b[0;36mraw_decode\u001b[0;34m(self, s, idx)\u001b[0m\n\u001b[1;32m 353\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mscan_once\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0midx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 354\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 355\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mJSONDecodeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Expecting value\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 356\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mJSONDecodeError\u001b[0m: Expecting value: line 1 column 1 (char 0)" ] } ], "source": [ "import json\n", "import urllib.request\n", "url = \"http://session.asuscomm.com/database.php\"\n", "x = urllib.request.urlopen(url)\n", "raw_data = x.read()\n", "encoding = x.info().get_content_charset('utf8') # JSON default\n", "#print(raw_data) #this is data in string format\n", "data = json.loads(raw_data)\n", "print(data) #this would be your json data" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Gene stable IDGene name
0ENSG00000210049MT-TF
1ENSG00000211459MT-RNR1
2ENSG00000210077MT-TV
3ENSG00000210082MT-RNR2
4ENSG00000209082MT-TL1
.........
68011ENSG00000163263CFAP141
68012ENSG00000143612C1orf43
68013ENSG00000143569UBAP2L
68014ENSG00000201129SNORA58B
68015ENSG00000143575HAX1
\n", "

68016 rows × 2 columns

\n", "
" ], "text/plain": [ " Gene stable ID Gene name\n", "0 ENSG00000210049 MT-TF\n", "1 ENSG00000211459 MT-RNR1\n", "2 ENSG00000210077 MT-TV\n", "3 ENSG00000210082 MT-RNR2\n", "4 ENSG00000209082 MT-TL1\n", "... ... ...\n", "68011 ENSG00000163263 CFAP141\n", "68012 ENSG00000143612 C1orf43\n", "68013 ENSG00000143569 UBAP2L\n", "68014 ENSG00000201129 SNORA58B\n", "68015 ENSG00000143575 HAX1\n", "\n", "[68016 rows x 2 columns]" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_gene_list" ] }, { "cell_type": "code", "execution_count": 151, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 155, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ENSG00000188612',\n", " 'ENSG00000163331',\n", " 'ENSG00000184302',\n", " 'ENSG00000163631',\n", " 'del',\n", " 'ENSG00000068305',\n", " 'ENSG00000112559',\n", " 'ENSG00000136153',\n", " 'ENSG00000125780',\n", " 'ENSG00000124253',\n", " 'ENSG00000154358',\n", " 'ENSG00000157404',\n", " 'ENSG00000140263',\n", " 'ENSG00000063127',\n", " 'ENSG00000107984',\n", " 'ENSG00000008196',\n", " 'ENSG00000120156',\n", " 'ENSG00000138722',\n", " 'ENSG00000115290',\n", " 'ENSG00000156222',\n", " 'ENSG00000154553',\n", " 'ENSG00000111199',\n", " 'ENSG00000139549',\n", " 'ENSG00000010278',\n", " 'ENSG00000112562',\n", " 'ENSG00000115008',\n", " 'ENSG00000113327',\n", " 'ENSG00000275395',\n", " 'del',\n", " 'ENSG00000154330',\n", " 'ENSG00000136352',\n", " 'ENSG00000134762',\n", " 'ENSG00000180879',\n", " 'ENSG00000130513',\n", " 'ENSG00000125820',\n", " 'del',\n", " 'del',\n", " 'del',\n", " 'ENSG00000112175',\n", " 'del',\n", " 'ENSG00000104921',\n", " 'ENSG00000088386',\n", " 'del',\n", " 'ENSG00000114115',\n", " 'ENSG00000172238',\n", " 'ENSG00000102554',\n", " 'ENSG00000204482',\n", " 'del',\n", " 'ENSG00000187098',\n", " 'ENSG00000107447',\n", " 'ENSG00000163563',\n", " 'del',\n", " 'ENSG00000185010',\n", " 'del',\n", " 'ENSG00000105221',\n", " 'ENSG00000157005',\n", " 'ENSG00000162551',\n", " 'ENSG00000183421',\n", " 'ENSG00000120437',\n", " 'ENSG00000166959',\n", " 'ENSG00000182968',\n", " 'ENSG00000115041',\n", " 'ENSG00000169903',\n", " 'ENSG00000144366',\n", " 'ENSG00000117707',\n", " 'ENSG00000171564',\n", " 'ENSG00000224389',\n", " 'ENSG00000100079',\n", " 'del',\n", " 'ENSG00000109452',\n", " 'del',\n", " 'ENSG00000099958',\n", " 'ENSG00000258947',\n", " 'ENSG00000003436',\n", " 'ENSG00000125845',\n", " 'ENSG00000204262',\n", " 'del',\n", " 'ENSG00000169429',\n", " 'ENSG00000274736',\n", " 'ENSG00000183036',\n", " 'ENSG00000132821',\n", " 'ENSG00000169398',\n", " 'ENSG00000106631',\n", " 'del',\n", " 'ENSG00000127124',\n", " 'ENSG00000142789',\n", " 'ENSG00000143297',\n", " 'ENSG00000107562',\n", " 'ENSG00000123364',\n", " 'ENSG00000182667',\n", " 'ENSG00000122180',\n", " 'ENSG00000177425',\n", " 'ENSG00000284862',\n", " 'ENSG00000129226',\n", " 'ENSG00000138379',\n", " 'del',\n", " 'ENSG00000197614',\n", " 'ENSG00000254709',\n", " 'ENSG00000170180',\n", " 'ENSG00000165215',\n", " 'ENSG00000164893',\n", " 'ENSG00000006468',\n", " 'del',\n", " 'ENSG00000103546',\n", " 'ENSG00000148826',\n", " 'ENSG00000170835',\n", " 'ENSG00000165646',\n", " 'ENSG00000170561',\n", " 'ENSG00000186951',\n", " 'ENSG00000111665',\n", " 'ENSG00000181195',\n", " 'ENSG00000196352',\n", " 'ENSG00000115844',\n", " 'ENSG00000136231',\n", " 'ENSG00000110848',\n", " 'ENSG00000152592',\n", " 'ENSG00000175535',\n", " 'ENSG00000145824',\n", " 'ENSG00000134852',\n", " 'ENSG00000106546',\n", " 'ENSG00000133636',\n", " 'ENSG00000138363',\n", " 'ENSG00000107295',\n", " 'ENSG00000170962',\n", " 'ENSG00000272573',\n", " 'ENSG00000184005',\n", " 'ENSG00000248329',\n", " 'ENSG00000160808',\n", " 'ENSG00000150093',\n", " 'ENSG00000076555',\n", " 'ENSG00000182871',\n", " 'ENSG00000157554',\n", " 'del',\n", " 'ENSG00000123384',\n", " 'ENSG00000164400',\n", " 'ENSG00000131477',\n", " 'ENSG00000196549',\n", " 'ENSG00000153944',\n", " 'ENSG00000198467',\n", " 'ENSG00000137709',\n", " 'ENSG00000134028',\n", " 'ENSG00000197405',\n", " 'ENSG00000077279',\n", " 'ENSG00000078081',\n", " 'ENSG00000116473',\n", " 'ENSG00000091010',\n", " 'ENSG00000070031',\n", " 'ENSG00000150054',\n", " 'del',\n", " 'ENSG00000162654',\n", " 'ENSG00000166819',\n", " 'ENSG00000171533',\n", " 'ENSG00000076706',\n", " 'ENSG00000136111',\n", " 'ENSG00000104888',\n", " 'ENSG00000130649',\n", " 'ENSG00000124664',\n", " 'ENSG00000121577',\n", " 'ENSG00000167434',\n", " 'ENSG00000148965',\n", " 'ENSG00000117322',\n", " 'ENSG00000178301',\n", " 'ENSG00000169245',\n", " 'ENSG00000163221',\n", " 'del',\n", " 'ENSG00000182698',\n", " 'ENSG00000163599',\n", " 'ENSG00000124107',\n", " 'ENSG00000211695',\n", " 'ENSG00000119927',\n", " 'ENSG00000103449',\n", " 'del',\n", " 'ENSG00000112299',\n", " 'ENSG00000130707',\n", " 'ENSG00000185002',\n", " 'ENSG00000125207',\n", " 'ENSG00000211895',\n", " 'ENSG00000072274',\n", " 'ENSG00000178828',\n", " 'del',\n", " 'del',\n", " 'ENSG00000075711',\n", " 'ENSG00000085978',\n", " 'ENSG00000183625',\n", " 'ENSG00000109787',\n", " 'ENSG00000102970',\n", " 'del',\n", " 'ENSG00000145244',\n", " 'ENSG00000086991',\n", " 'ENSG00000130787',\n", " 'ENSG00000116260',\n", " 'ENSG00000149948',\n", " 'ENSG00000169174',\n", " 'ENSG00000197921',\n", " 'ENSG00000185291',\n", " 'del',\n", " 'ENSG00000175592',\n", " 'del',\n", " 'del',\n", " 'del',\n", " 'ENSG00000112992',\n", " 'ENSG00000187714',\n", " 'ENSG00000111701',\n", " 'ENSG00000119917',\n", " 'ENSG00000275302',\n", " 'ENSG00000149596',\n", " 'ENSG00000177989',\n", " 'ENSG00000173786',\n", " 'ENSG00000197181',\n", " 'ENSG00000173578',\n", " 'del',\n", " 'del',\n", " 'ENSG00000153395',\n", " 'ENSG00000127831',\n", " 'del',\n", " 'ENSG00000151690',\n", " 'ENSG00000205038',\n", " 'ENSG00000125798',\n", " 'ENSG00000145113',\n", " 'ENSG00000151715',\n", " 'ENSG00000115935',\n", " 'ENSG00000273706',\n", " 'ENSG00000128591',\n", " 'ENSG00000168542',\n", " 'ENSG00000024422',\n", " 'ENSG00000148803',\n", " 'ENSG00000154118',\n", " 'ENSG00000185985',\n", " 'ENSG00000178257',\n", " 'ENSG00000188554',\n", " 'ENSG00000122420',\n", " 'ENSG00000138083',\n", " 'ENSG00000170324',\n", " 'ENSG00000010327',\n", " 'ENSG00000182010',\n", " 'del',\n", " 'ENSG00000186451',\n", " 'ENSG00000068971',\n", " 'ENSG00000159674',\n", " 'ENSG00000276409',\n", " 'ENSG00000275385',\n", " 'del',\n", " 'del',\n", " 'ENSG00000138798',\n", " 'del',\n", " 'ENSG00000146425',\n", " 'ENSG00000135517',\n", " 'ENSG00000166825',\n", " 'ENSG00000169083',\n", " 'ENSG00000115165',\n", " 'ENSG00000156113',\n", " 'ENSG00000179454',\n", " 'ENSG00000099250',\n", " 'ENSG00000135919',\n", " 'ENSG00000137726',\n", " 'ENSG00000127955',\n", " 'ENSG00000226674',\n", " 'ENSG00000102265',\n", " 'ENSG00000166949',\n", " 'ENSG00000165061',\n", " 'ENSG00000013725',\n", " 'ENSG00000236333',\n", " 'ENSG00000104760',\n", " 'ENSG00000128052',\n", " 'ENSG00000124205',\n", " 'ENSG00000242574',\n", " 'ENSG00000147257',\n", " 'ENSG00000121966',\n", " 'ENSG00000116039',\n", " 'ENSG00000186510',\n", " 'ENSG00000159216',\n", " 'ENSG00000176887',\n", " 'ENSG00000179751',\n", " 'ENSG00000171522',\n", " 'ENSG00000185052',\n", " 'ENSG00000239474',\n", " 'ENSG00000174156',\n", " 'ENSG00000165475',\n", " 'ENSG00000182963',\n", " 'ENSG00000145649',\n", " 'ENSG00000115138',\n", " 'ENSG00000134013',\n", " 'ENSG00000155366',\n", " 'ENSG00000168994',\n", " 'ENSG00000067606',\n", " 'ENSG00000189334',\n", " 'del',\n", " 'ENSG00000135378',\n", " 'ENSG00000130176',\n", " 'ENSG00000134363',\n", " 'ENSG00000116824',\n", " 'ENSG00000111799',\n", " 'ENSG00000223609',\n", " 'ENSG00000152591',\n", " 'ENSG00000172183',\n", " 'ENSG00000161270',\n", " 'ENSG00000160181',\n", " 'ENSG00000134438',\n", " 'del',\n", " 'ENSG00000006210',\n", " 'ENSG00000179914',\n", " 'ENSG00000151418',\n", " 'ENSG00000129514',\n", " 'ENSG00000151090',\n", " 'ENSG00000164600',\n", " 'ENSG00000140488',\n", " 'ENSG00000172016',\n", " 'ENSG00000166278',\n", " 'ENSG00000160654',\n", " 'ENSG00000168925',\n", " 'del',\n", " 'ENSG00000122188',\n", " 'ENSG00000136826',\n", " 'ENSG00000112818',\n", " 'ENSG00000112972',\n", " 'del',\n", " 'ENSG00000185745',\n", " 'ENSG00000161849',\n", " 'del',\n", " 'ENSG00000038382',\n", " 'del',\n", " 'ENSG00000016490',\n", " 'ENSG00000196126',\n", " 'ENSG00000133019',\n", " 'ENSG00000162618',\n", " 'ENSG00000163814',\n", " 'ENSG00000189058',\n", " 'ENSG00000163421',\n", " 'ENSG00000087842',\n", " 'ENSG00000089041',\n", " 'ENSG00000118271',\n", " 'ENSG00000072195',\n", " 'ENSG00000089356',\n", " 'ENSG00000164764',\n", " 'ENSG00000148737',\n", " 'ENSG00000196154',\n", " 'ENSG00000197818',\n", " 'ENSG00000105894',\n", " 'ENSG00000104731',\n", " 'del',\n", " 'ENSG00000134539',\n", " 'ENSG00000181885',\n", " 'ENSG00000186395',\n", " 'ENSG00000080166',\n", " 'ENSG00000147403',\n", " 'ENSG00000198373',\n", " 'ENSG00000232810',\n", " 'ENSG00000110852',\n", " 'ENSG00000072571',\n", " 'del',\n", " 'ENSG00000166828',\n", " 'ENSG00000124564',\n", " 'ENSG00000162951',\n", " 'ENSG00000144711',\n", " 'ENSG00000163751',\n", " 'ENSG00000112964',\n", " 'ENSG00000197249',\n", " 'ENSG00000174236',\n", " 'ENSG00000043355',\n", " 'ENSG00000197561',\n", " 'del',\n", " 'ENSG00000172425',\n", " 'ENSG00000231389',\n", " 'ENSG00000118407',\n", " 'ENSG00000118777',\n", " 'ENSG00000204444',\n", " 'ENSG00000197273',\n", " 'del',\n", " 'ENSG00000185760',\n", " 'ENSG00000106633',\n", " 'ENSG00000012124',\n", " 'ENSG00000180209',\n", " 'ENSG00000021300',\n", " 'ENSG00000239697',\n", " 'ENSG00000096717',\n", " 'ENSG00000107485',\n", " 'ENSG00000144229',\n", " 'ENSG00000118137',\n", " 'ENSG00000134250',\n", " 'ENSG00000070193',\n", " 'ENSG00000143878',\n", " 'ENSG00000159200',\n", " 'ENSG00000145321',\n", " 'ENSG00000106853',\n", " 'ENSG00000043039',\n", " 'ENSG00000211679',\n", " 'ENSG00000154645',\n", " 'del',\n", " 'ENSG00000168269',\n", " 'ENSG00000135437',\n", " 'ENSG00000123836',\n", " 'ENSG00000167741',\n", " 'ENSG00000159224',\n", " 'ENSG00000172023',\n", " 'ENSG00000175161',\n", " 'del',\n", " 'ENSG00000124701',\n", " 'ENSG00000213996',\n", " 'ENSG00000103365',\n", " 'ENSG00000021826',\n", " 'ENSG00000166927',\n", " 'ENSG00000104537',\n", " 'ENSG00000130037',\n", " 'ENSG00000101311',\n", " 'ENSG00000147862',\n", " 'ENSG00000144476',\n", " 'ENSG00000138207',\n", " 'ENSG00000160013',\n", " 'del',\n", " 'del',\n", " 'ENSG00000183023',\n", " 'ENSG00000143921',\n", " 'del',\n", " 'del',\n", " 'ENSG00000174944',\n", " 'ENSG00000179059',\n", " 'del',\n", " 'ENSG00000169562',\n", " 'ENSG00000021645',\n", " 'ENSG00000247809',\n", " 'ENSG00000170365',\n", " 'ENSG00000100453',\n", " 'ENSG00000128567',\n", " 'ENSG00000277893',\n", " 'ENSG00000169252',\n", " 'ENSG00000182732',\n", " 'ENSG00000249459',\n", " 'del',\n", " 'ENSG00000105697',\n", " 'ENSG00000148400',\n", " 'ENSG00000170293',\n", " 'del',\n", " 'del',\n", " 'del',\n", " 'del',\n", " 'ENSG00000163431',\n", " 'ENSG00000175792',\n", " 'ENSG00000198788',\n", " 'ENSG00000065675',\n", " 'ENSG00000101439',\n", " 'ENSG00000113734',\n", " 'ENSG00000113296',\n", " 'ENSG00000138675',\n", " 'ENSG00000185737',\n", " 'ENSG00000204983',\n", " 'del',\n", " 'ENSG00000197702',\n", " 'del',\n", " 'ENSG00000141504',\n", " 'ENSG00000136542',\n", " 'del',\n", " 'ENSG00000132470',\n", " 'ENSG00000137166',\n", " 'ENSG00000136048',\n", " 'ENSG00000071991',\n", " 'ENSG00000145384',\n", " 'ENSG00000198846',\n", " 'ENSG00000145708',\n", " 'ENSG00000161544',\n", " 'ENSG00000196975',\n", " 'ENSG00000160180',\n", " 'ENSG00000100292',\n", " 'ENSG00000179981',\n", " 'ENSG00000150510',\n", " 'del',\n", " 'ENSG00000111049',\n", " 'ENSG00000157890',\n", " 'ENSG00000171346',\n", " 'del',\n", " 'ENSG00000187479',\n", " 'ENSG00000129167',\n", " 'ENSG00000135821',\n", " 'del',\n", " 'ENSG00000167972',\n", " 'ENSG00000196415',\n", " 'ENSG00000106819',\n", " 'ENSG00000112837',\n", " 'ENSG00000137860',\n", " 'ENSG00000058085',\n", " 'ENSG00000111245',\n", " 'ENSG00000170558',\n", " 'ENSG00000095637',\n", " 'ENSG00000154188',\n", " 'ENSG00000233041',\n", " 'ENSG00000138772',\n", " 'ENSG00000074803',\n", " 'ENSG00000008517',\n", " 'del',\n", " 'ENSG00000134285',\n", " 'ENSG00000277734',\n", " 'del',\n", " 'del',\n", " 'ENSG00000106991',\n", " 'ENSG00000148584',\n", " 'del',\n", " 'ENSG00000135374',\n", " 'ENSG00000165685',\n", " 'ENSG00000244734',\n", " 'ENSG00000163497',\n", " 'ENSG00000160862',\n", " 'ENSG00000104856',\n", " 'ENSG00000114166',\n", " 'ENSG00000137673',\n", " 'ENSG00000173991',\n", " 'ENSG00000188517',\n", " 'del',\n", " 'ENSG00000196660',\n", " 'ENSG00000113140',\n", " 'ENSG00000189013',\n", " 'ENSG00000100439',\n", " 'ENSG00000188786',\n", " 'ENSG00000055917',\n", " 'ENSG00000152689',\n", " 'ENSG00000164825',\n", " 'ENSG00000006327',\n", " 'ENSG00000163739',\n", " 'del',\n", " 'ENSG00000119457',\n", " 'ENSG00000157851',\n", " 'ENSG00000150347',\n", " 'ENSG00000069399',\n", " 'ENSG00000106089',\n", " 'ENSG00000129910',\n", " 'ENSG00000176884',\n", " 'ENSG00000165379',\n", " 'ENSG00000188257',\n", " 'ENSG00000182533',\n", " 'ENSG00000148200',\n", " 'ENSG00000106018',\n", " 'ENSG00000204531',\n", " 'ENSG00000196344',\n", " 'ENSG00000143153',\n", " 'ENSG00000203727',\n", " 'del',\n", " 'ENSG00000119139',\n", " 'ENSG00000100526',\n", " 'ENSG00000158516',\n", " 'ENSG00000066279',\n", " 'ENSG00000146555',\n", " 'ENSG00000171444',\n", " 'ENSG00000081051',\n", " 'ENSG00000171236',\n", " 'ENSG00000126785',\n", " 'ENSG00000105852',\n", " 'ENSG00000107731',\n", " 'del',\n", " 'ENSG00000127588',\n", " 'ENSG00000196139',\n", " 'ENSG00000149591',\n", " 'ENSG00000128322',\n", " 'del',\n", " 'ENSG00000115850',\n", " 'ENSG00000115738',\n", " 'ENSG00000109132',\n", " 'ENSG00000140937',\n", " 'del',\n", " 'ENSG00000127920',\n", " 'ENSG00000137699',\n", " 'ENSG00000065613',\n", " 'del',\n", " 'ENSG00000132170',\n", " 'ENSG00000129538',\n", " 'ENSG00000170577',\n", " 'ENSG00000241404',\n", " 'ENSG00000198759',\n", " 'ENSG00000095303',\n", " 'ENSG00000087303',\n", " 'ENSG00000104332',\n", " 'ENSG00000243290',\n", " 'ENSG00000173762',\n", " 'ENSG00000179915',\n", " 'ENSG00000163286',\n", " 'ENSG00000173406',\n", " 'ENSG00000169710',\n", " 'ENSG00000145198',\n", " 'ENSG00000119514',\n", " 'ENSG00000166928',\n", " 'del',\n", " 'ENSG00000198523',\n", " 'ENSG00000149516',\n", " 'ENSG00000110777',\n", " 'ENSG00000146457',\n", " 'ENSG00000198947',\n", " 'del',\n", " 'ENSG00000160255',\n", " 'ENSG00000170890',\n", " 'ENSG00000147872',\n", " 'ENSG00000102145',\n", " 'ENSG00000120436',\n", " 'ENSG00000128881',\n", " 'ENSG00000177301',\n", " 'ENSG00000153253',\n", " 'ENSG00000131095',\n", " 'ENSG00000189056',\n", " 'ENSG00000134827',\n", " 'ENSG00000104219',\n", " 'ENSG00000107165',\n", " 'ENSG00000198216',\n", " 'ENSG00000109047',\n", " 'del',\n", " 'ENSG00000145721',\n", " 'ENSG00000198821',\n", " 'ENSG00000113492',\n", " 'ENSG00000138030',\n", " 'del',\n", " 'del',\n", " 'ENSG00000171109',\n", " 'ENSG00000136011',\n", " 'del',\n", " 'del',\n", " 'ENSG00000050628',\n", " 'ENSG00000008256',\n", " 'ENSG00000162761',\n", " 'ENSG00000219073',\n", " 'ENSG00000164265',\n", " 'ENSG00000185633',\n", " 'ENSG00000168878',\n", " 'ENSG00000075891',\n", " 'ENSG00000062038',\n", " 'del',\n", " 'del',\n", " 'ENSG00000123838',\n", " 'ENSG00000128683',\n", " 'ENSG00000158122',\n", " 'ENSG00000151704',\n", " 'ENSG00000149564',\n", " 'ENSG00000104312',\n", " 'ENSG00000112033',\n", " 'del',\n", " 'ENSG00000129194',\n", " 'ENSG00000080709',\n", " 'ENSG00000135298',\n", " 'ENSG00000085063',\n", " 'del',\n", " 'ENSG00000081479',\n", " 'ENSG00000116745',\n", " 'ENSG00000092295',\n", " 'ENSG00000130702',\n", " 'ENSG00000125851',\n", " 'ENSG00000096088',\n", " 'del',\n", " 'ENSG00000137642',\n", " 'ENSG00000075426',\n", " 'del',\n", " 'ENSG00000215644',\n", " 'ENSG00000262179',\n", " 'ENSG00000060566',\n", " 'ENSG00000118526',\n", " 'ENSG00000138639',\n", " 'ENSG00000163623',\n", " 'ENSG00000165272',\n", " 'ENSG00000007171',\n", " 'ENSG00000178394',\n", " 'ENSG00000188993',\n", " 'ENSG00000099953',\n", " 'del',\n", " 'del',\n", " 'ENSG00000106004',\n", " 'ENSG00000067798',\n", " 'ENSG00000164434',\n", " 'ENSG00000205927',\n", " 'ENSG00000110195',\n", " 'ENSG00000120937',\n", " 'ENSG00000119121',\n", " 'ENSG00000121361',\n", " 'ENSG00000184292',\n", " 'ENSG00000060709',\n", " 'ENSG00000170476',\n", " 'ENSG00000181449',\n", " 'ENSG00000169189',\n", " 'ENSG00000158669',\n", " 'ENSG00000115884',\n", " 'ENSG00000105355',\n", " 'del',\n", " 'ENSG00000176396',\n", " 'ENSG00000110911',\n", " 'ENSG00000056736',\n", " 'ENSG00000100490',\n", " 'ENSG00000174827',\n", " 'ENSG00000105392',\n", " 'ENSG00000088305',\n", " 'ENSG00000112769',\n", " 'ENSG00000233670',\n", " 'ENSG00000163072',\n", " 'ENSG00000102837',\n", " 'ENSG00000158481',\n", " 'ENSG00000122585',\n", " 'ENSG00000159197',\n", " 'ENSG00000112902',\n", " 'ENSG00000170482',\n", " 'ENSG00000108846',\n", " 'ENSG00000178878',\n", " 'ENSG00000143248',\n", " 'ENSG00000235984',\n", " 'ENSG00000197594',\n", " 'ENSG00000119125',\n", " 'ENSG00000154175',\n", " 'ENSG00000183733',\n", " 'ENSG00000165474',\n", " 'ENSG00000145692',\n", " 'ENSG00000100625',\n", " 'del',\n", " 'ENSG00000173253',\n", " 'ENSG00000152270',\n", " 'ENSG00000179639',\n", " 'ENSG00000176387',\n", " 'ENSG00000115665',\n", " 'del',\n", " 'ENSG00000163207',\n", " 'ENSG00000140545',\n", " 'ENSG00000229314',\n", " 'ENSG00000245848',\n", " 'ENSG00000122786',\n", " 'del',\n", " 'ENSG00000086159',\n", " 'ENSG00000121440',\n", " 'ENSG00000105205',\n", " 'del',\n", " 'ENSG00000162676',\n", " 'ENSG00000147459',\n", " 'ENSG00000112378',\n", " 'del',\n", " 'ENSG00000124225',\n", " 'ENSG00000117592',\n", " 'ENSG00000106331',\n", " 'ENSG00000009709',\n", " 'ENSG00000170312',\n", " 'ENSG00000143632',\n", " 'del',\n", " 'del',\n", " 'ENSG00000101680',\n", " 'ENSG00000133063',\n", " 'ENSG00000180176',\n", " 'ENSG00000176153',\n", " 'ENSG00000117595',\n", " 'ENSG00000007516',\n", " 'ENSG00000149534',\n", " 'ENSG00000179388',\n", " 'ENSG00000099260',\n", " 'del',\n", " 'ENSG00000182742',\n", " 'ENSG00000104879',\n", " 'ENSG00000239839',\n", " 'ENSG00000143226',\n", " 'ENSG00000173020',\n", " 'ENSG00000036828',\n", " 'ENSG00000171476',\n", " 'ENSG00000165621',\n", " 'ENSG00000110492',\n", " 'ENSG00000148346',\n", " 'del',\n", " 'ENSG00000261371',\n", " 'ENSG00000169605',\n", " 'ENSG00000169442',\n", " 'ENSG00000126705',\n", " 'ENSG00000131067',\n", " 'ENSG00000203724',\n", " 'ENSG00000157388',\n", " 'ENSG00000135903',\n", " 'ENSG00000177590',\n", " 'ENSG00000121060',\n", " 'ENSG00000169856',\n", " 'ENSG00000152092',\n", " 'ENSG00000187134',\n", " 'ENSG00000092067',\n", " 'ENSG00000167995',\n", " 'ENSG00000180509',\n", " 'ENSG00000133256',\n", " 'ENSG00000156265',\n", " 'ENSG00000240583',\n", " 'ENSG00000186868',\n", " 'ENSG00000162366',\n", " 'ENSG00000138795',\n", " 'ENSG00000169031',\n", " 'ENSG00000105447',\n", " 'del',\n", " 'ENSG00000143799',\n", " 'ENSG00000139629',\n", " 'ENSG00000134884',\n", " 'ENSG00000175567',\n", " 'ENSG00000102854',\n", " 'ENSG00000012223',\n", " 'ENSG00000113722',\n", " 'ENSG00000152672',\n", " 'ENSG00000248746',\n", " 'del',\n", " 'ENSG00000129757',\n", " 'ENSG00000171885',\n", " 'del',\n", " 'ENSG00000169594',\n", " 'del',\n", " 'ENSG00000109205',\n", " 'del',\n", " 'ENSG00000167281',\n", " 'ENSG00000122859',\n", " 'ENSG00000167772',\n", " 'ENSG00000079841',\n", " 'ENSG00000164175',\n", " 'ENSG00000184221',\n", " 'ENSG00000121351',\n", " 'ENSG00000144908',\n", " 'ENSG00000215846',\n", " 'ENSG00000173546',\n", " 'del',\n", " 'ENSG00000137561',\n", " 'ENSG00000140519',\n", " 'ENSG00000173320',\n", " 'ENSG00000082175',\n", " 'ENSG00000118520',\n", " 'ENSG00000142627',\n", " 'ENSG00000166710',\n", " 'del',\n", " 'ENSG00000273079',\n", " 'ENSG00000189001',\n", " 'ENSG00000103569',\n", " 'ENSG00000165655',\n", " 'ENSG00000143839',\n", " 'ENSG00000215148',\n", " 'ENSG00000157765',\n", " 'del',\n", " 'ENSG00000136944',\n", " 'ENSG00000165521',\n", " 'ENSG00000198682',\n", " 'ENSG00000105329',\n", " 'ENSG00000164404',\n", " 'ENSG00000115271',\n", " 'ENSG00000169218',\n", " 'ENSG00000012779',\n", " 'ENSG00000127528',\n", " 'ENSG00000100311',\n", " 'ENSG00000160211',\n", " 'ENSG00000090339',\n", " 'ENSG00000103375',\n", " 'ENSG00000166426',\n", " 'del',\n", " 'ENSG00000109511',\n", " 'ENSG00000205213',\n", " 'ENSG00000173702',\n", " 'ENSG00000177468',\n", " 'ENSG00000169474',\n", " 'ENSG00000150961',\n", " 'ENSG00000124102',\n", " 'del',\n", " 'ENSG00000138794',\n", " 'ENSG00000089685',\n", " 'ENSG00000282608',\n", " 'ENSG00000214128',\n", " 'ENSG00000135097',\n", " 'ENSG00000198178',\n", " 'ENSG00000127616',\n", " 'ENSG00000243566',\n", " 'ENSG00000158955',\n", " 'ENSG00000187017',\n", " 'ENSG00000126337',\n", " 'ENSG00000126778',\n", " 'ENSG00000112782',\n", " 'ENSG00000091879',\n", " 'ENSG00000168610',\n", " 'del',\n", " 'ENSG00000106799',\n", " 'ENSG00000196104',\n", " 'ENSG00000164120',\n", " 'del',\n", " 'ENSG00000163950',\n", " 'ENSG00000100285',\n", " 'ENSG00000139352',\n", " 'ENSG00000036565',\n", " 'del',\n", " 'ENSG00000183662',\n", " 'ENSG00000095917',\n", " 'ENSG00000123095',\n", " 'ENSG00000130598',\n", " 'ENSG00000161055',\n", " 'del',\n", " 'del',\n", " 'del',\n", " 'ENSG00000007062',\n", " 'ENSG00000148848',\n", " 'ENSG00000186832',\n", " 'ENSG00000105357',\n", " 'ENSG00000154678',\n", " 'ENSG00000018280',\n", " 'ENSG00000166523',\n", " 'ENSG00000102038',\n", " 'ENSG00000049768',\n", " 'ENSG00000099194',\n", " 'ENSG00000102879',\n", " 'ENSG00000131142',\n", " 'ENSG00000177575',\n", " 'ENSG00000121879',\n", " 'ENSG00000154864',\n", " 'ENSG00000211772',\n", " 'ENSG00000211689',\n", " 'ENSG00000113593',\n", " 'ENSG00000124731',\n", " 'del',\n", " 'del',\n", " 'ENSG00000243649',\n", " 'ENSG00000174099',\n", " 'ENSG00000198910',\n", " 'del',\n", " 'ENSG00000160339',\n", " 'ENSG00000204257',\n", " 'ENSG00000119922',\n", " 'ENSG00000179348',\n", " 'ENSG00000095981',\n", " 'ENSG00000137462',\n", " 'ENSG00000132693',\n", " 'ENSG00000180155',\n", " 'ENSG00000136235',\n", " 'ENSG00000183963',\n", " 'ENSG00000170549',\n", " 'ENSG00000144648',\n", " 'ENSG00000172209',\n", " 'ENSG00000166143',\n", " 'ENSG00000187021',\n", " 'ENSG00000147571',\n", " 'ENSG00000175084',\n", " 'ENSG00000164916',\n", " 'ENSG00000120341',\n", " 'ENSG00000077522',\n", " 'ENSG00000244405',\n", " 'ENSG00000102760',\n", " 'ENSG00000172232',\n", " 'ENSG00000099985',\n", " 'ENSG00000039600',\n", " 'ENSG00000178764',\n", " 'ENSG00000047457',\n", " 'ENSG00000066405',\n", " 'ENSG00000175793',\n", " 'ENSG00000161798',\n", " 'ENSG00000002586',\n", " 'ENSG00000089199',\n", " 'ENSG00000050767',\n", " 'ENSG00000144810',\n", " 'ENSG00000167244',\n", " 'ENSG00000091138',\n", " 'ENSG00000133048',\n", " 'ENSG00000106404',\n", " 'ENSG00000243955',\n", " 'ENSG00000172164',\n", " 'ENSG00000160200',\n", " 'ENSG00000015520',\n", " 'ENSG00000142319',\n", " 'ENSG00000174059',\n", " 'ENSG00000110245',\n", " 'ENSG00000182492',\n", " 'ENSG00000130226',\n", " 'ENSG00000113494',\n", " 'ENSG00000173372',\n", " 'del',\n", " 'del',\n", " 'ENSG00000050165',\n", " 'ENSG00000249669',\n", " 'ENSG00000051523',\n", " 'ENSG00000104783',\n", " 'ENSG00000145777',\n", " 'ENSG00000175538',\n", " 'ENSG00000164081',\n", " 'ENSG00000120885',\n", " 'ENSG00000123560',\n", " 'ENSG00000100031',\n", " 'ENSG00000144668',\n", " 'ENSG00000010319',\n", " 'ENSG00000083457',\n", " 'ENSG00000188229',\n", " 'ENSG00000152778',\n", " 'ENSG00000198728',\n", " 'ENSG00000196792',\n", " 'del',\n", " 'ENSG00000145287',\n", " 'ENSG00000112149',\n", " 'del',\n", " 'ENSG00000162614',\n", " 'ENSG00000172137',\n", " 'ENSG00000019991',\n", " 'ENSG00000134627',\n", " 'ENSG00000128218',\n", " 'ENSG00000180900',\n", " 'ENSG00000111913',\n", " 'ENSG00000168903',\n", " 'ENSG00000114200',\n", " 'ENSG00000141646',\n", " 'ENSG00000123096',\n", " 'ENSG00000184481',\n", " 'ENSG00000196878',\n", " 'ENSG00000162998',\n", " 'ENSG00000067048',\n", " 'ENSG00000157992',\n", " 'ENSG00000187513',\n", " 'ENSG00000181649',\n", " 'ENSG00000178538',\n", " 'ENSG00000125872',\n", " 'ENSG00000177455',\n", " 'ENSG00000166402',\n", " 'ENSG00000116690',\n", " 'ENSG00000126460',\n", " 'ENSG00000162747',\n", " 'ENSG00000127329',\n", " 'ENSG00000211821',\n", " ...]" ] }, "execution_count": 155, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[dict_gene_name_to_ensg[x] if x in dict_gene_name_to_ensg.keys() else 'del' for x in all_gene_list ]" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "from hicmatrix import HiCMatrix as hm\n", "from hicmatrix.lib import MatrixFileHandler\n", "SRP_name='aggregates'\n", "resolution='40kbp_raw'\n", "exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/aggregates/40kbp_raw/max/pcc/0/all_bins/KR_KR/hic_gene_corr_gw.h5'\n", "\n", "pcc_sim = hm.hiCMatrix(exp_file_path)\n", "all_pcc_genes = [x[3].decode() for x in pcc_sim.cut_intervals]\n", "pcc_sim_matrix = pcc_sim.matrix.toarray()\n", "df_pcc_sim = pd.DataFrame(pcc_sim_matrix, index=all_pcc_genes, columns = all_pcc_genes)\n" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ " pcc_sim_matrix = pcc_sim.matrix.toarray()\n", " df_pcc_sim = pd.DataFrame(pcc_sim_matrix, index=all_pcc_genes, columns = all_pcc_genes)" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(92, 92)\n", "(92, 22996)\n", "0.9942792508337934\n", "0.0\n" ] } ], "source": [ "df_2d_pcc = run_egad(go_table_marker, df_pcc_sim )" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.4710205388227698" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_2d_pcc['AUC'].mean()" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1621, 1621)\n", "(1621, 22996)\n", "0.9944747250520944\n", "0.0\n" ] } ], "source": [ "df_2d_pcc_marker = run_egad(go_table_marker, df_pcc_sim)" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
GO:0000002GO:0000003GO:0000009GO:0000010GO:0000012GO:0000014GO:0000015GO:0000016GO:0000017GO:0000018...GO:2001293GO:2001294GO:2001295GO:2001300GO:2001301GO:2001302GO:2001303GO:2001304GO:2001306GO:2001311
NetworkIDs
ENSMUSG000000015200.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000019880.01.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000034110.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000036570.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000043660.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
..................................................................
ENSMUSG000000688590.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000708800.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000752700.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000900630.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000969140.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", "

96 rows × 22996 columns

\n", "
" ], "text/plain": [ " GO:0000002 GO:0000003 GO:0000009 GO:0000010 \\\n", "NetworkIDs \n", "ENSMUSG00000001520 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000001988 0.0 1.0 0.0 0.0 \n", "ENSMUSG00000003411 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000003657 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000004366 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "ENSMUSG00000068859 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000070880 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000075270 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000090063 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000096914 0.0 0.0 0.0 0.0 \n", "\n", " GO:0000012 GO:0000014 GO:0000015 GO:0000016 \\\n", "NetworkIDs \n", "ENSMUSG00000001520 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000001988 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000003411 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000003657 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000004366 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "ENSMUSG00000068859 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000070880 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000075270 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000090063 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000096914 0.0 0.0 0.0 0.0 \n", "\n", " GO:0000017 GO:0000018 ... GO:2001293 GO:2001294 \\\n", "NetworkIDs ... \n", "ENSMUSG00000001520 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000001988 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000003411 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000003657 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000004366 0.0 0.0 ... 0.0 0.0 \n", "... ... ... ... ... ... \n", "ENSMUSG00000068859 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000070880 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000075270 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000090063 0.0 0.0 ... 0.0 0.0 \n", "ENSMUSG00000096914 0.0 0.0 ... 0.0 0.0 \n", "\n", " GO:2001295 GO:2001300 GO:2001301 GO:2001302 \\\n", "NetworkIDs \n", "ENSMUSG00000001520 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000001988 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000003411 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000003657 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000004366 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "ENSMUSG00000068859 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000070880 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000075270 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000090063 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000096914 0.0 0.0 0.0 0.0 \n", "\n", " GO:2001303 GO:2001304 GO:2001306 GO:2001311 \n", "NetworkIDs \n", "ENSMUSG00000001520 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000001988 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000003411 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000003657 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000004366 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "ENSMUSG00000068859 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000070880 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000075270 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000090063 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000096914 0.0 0.0 0.0 0.0 \n", "\n", "[96 rows x 22996 columns]" ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "go_table_marker" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5100544514893378" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_2d_pcc_marker['AUC'].mean()" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [], "source": [ " from hicmatrix import HiCMatrix as hm\n", " from hicmatrix.lib import MatrixFileHandler\n", " \n", "\n", "\n", " exp_file = hm.hiCMatrix('/grid/gillis/data/lohia/hi_c_data_processing/software/CoCoCoNet/networks/mouse_prioAggNet.h5')\n", " #chr_list_1 = exp_file.getChrNames()\n", " \n", " exp_matrix = exp_file.matrix.toarray()\n", " exp_genes_all = [x[3].decode() for x in exp_file.cut_intervals]\n", " df_exp = pd.DataFrame(exp_matrix , index=exp_genes_all , columns = exp_genes_all)\n", " " ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(96, 96)\n", "(96, 22996)\n", "0.9943604322490868\n", "0.0\n" ] } ], "source": [ "df_2d = run_egad(go_table_marker, df_exp)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ " df = pd.read_csv(f'/grid/gillis/data/lohia/hi_c_data_processing/software/CoCoCoNet/gene2go/mouse_gene2go.csv', delim_whitespace=True)\n", "\n", " df['val'] = 1\n", "\n", " go_table = pd.pivot_table(df, index=['NetworkIDs'],columns=['GO_term'])\n", "\n", " go_table = go_table.fillna(0)\n", " \n", " go_table = pd.DataFrame(go_table.values , index=go_table.index , columns = [x[1] for x in go_table.columns])\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from hicmatrix import HiCMatrix as hm\n", "from hicmatrix.lib import MatrixFileHandler\n", "SRP_name='aggregates'\n", "resolution='40kbp_raw'\n", "exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/aggregates/10kbp_raw/max/hic_gene_inter_KR.h5'\n", "\n", "jac_sim = hm.hiCMatrix(exp_file_path)\n", "all_genes = [x[3].decode() for x in jac_sim.cut_intervals]\n", "jac_sim_matrix = jac_sim.matrix.toarray()\n", "df_jac_sim = pd.DataFrame(jac_sim_matrix, index=all_genes, columns = all_genes)\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(92, 92)\n", "(92, 22996)\n", "0.9942792508337934\n", "0.07230623818525517\n" ] } ], "source": [ "df_2d_jac = run_egad(go_table_marker, df_jac_sim)" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5231521483736035" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_2d_jac['AUC'].mean()" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "#plt.plot(data=df_2d, x='AUC', y='DEGREE_NULL_AUC')\n", "plt.scatter(df_2d_pcc['AUC'], df_2d_pcc['DEGREE_NULL_AUC'])\n", "plt.plot([0, 1], [0, 1], c='black')\n", "plt.axvline(x=df_2d['AUC'].mean(),c='black',ls='--')\n", "plt.axhline(y=df_2d['DEGREE_NULL_AUC'].mean(), c='black', ls='--')" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "#plt.plot(data=df_2d, x='AUC', y='DEGREE_NULL_AUC')\n", "plt.scatter(df_2d['AUC'], df_2d['DEGREE_NULL_AUC'])\n", "plt.plot([0, 1], [0, 1], c='black')\n", "plt.axvline(x=df_2d['AUC'].mean(),c='black',ls='--')\n", "plt.axhline(y=df_2d['DEGREE_NULL_AUC'].mean(), c='black', ls='--')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "GO_groups = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/genomes_jlee/aug4.GOslim')\n", "df_slim = df_2d[df_2d.index.isin(GO_groups['go_id'].tolist())]" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "#plt.plot(data=df_2d_pcc_marker, x='AUC', y='DEGREE_NULL_AUC')\n", "plt.scatter(df_2d_pcc_marker['AUC'], df_2d_pcc_marker['DEGREE_NULL_AUC'])\n", "plt.plot([0, 1], [0, 1], c='black')\n", "plt.axvline(x=df_2d_pcc_marker['AUC'].mean(),c='black',ls='--')\n", "plt.axhline(y=df_2d_pcc_marker['DEGREE_NULL_AUC'].mean(), c='black', ls='--')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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nswLL7yAzWZj5MiR9O3bF4vFc2tQIbQ89dRTACxbtqzUNm/TI92FM1wJplGBkKsM9yO5NtLSM93aYlQcZCvQxR64ty0ABN+RtMUo5tdff+Xmm2+mZ8+etGzZkk2bNtG/f38R8yjGXTgjUILpqULTkwfuabiE4D8i6FFIQUEBb731Fk2aNGHDhg1MnDiRb7/9lksvvdRs04Qg405MXQlpQpw1IOew42kKUTBmhQpFSMglytiyZQvJycn8+OOP3HnnnYwfP566deuabZYQIjyFMypViCn24BPirAzu3BgoPZyhSPg1eQZZLp48fW+acJnRuKo8IB56lHD69GleffVVWrZsyW+//cb06dOZO3euiHk5w5UXfmOj2gycs7lEvPzkGbF25TEPv7epX6ER8cDNQ2mTGvy0bt1ar1+/3pRzRxs//vgjycnJbNmyhYcffph33nmHWrVqmW2W4CNLliwB4JZbbinTcYxSGF1NuU+Mj3WbteJNOqQQWpRSG7TWrQ23iaBHLrm5ubz88suMHj2a888/nwkTJnDnnXeabZYQhlyUMt8wc0VBcUMtITJwJ+gScolQvvvuO5o0acJbb71Fjx492Lp1q4h5hJORkUFGRkZQju1poVKIDrwSdKVUJ6XUTqXULqVUisH2R5RSm878t0opFb3j300mJyeHnj17ctNNN6GU4rvvvmPChAlUr17dbNOEMtK3b1/69u0blGNLqmD5wKOgK6UswFjgNiAJeEgpleS02+/ADVrrpsDrwKRAGyrAvHnzSEpKYsqUKQwYMIBNmzbRoUMHs80SIgBZqCwfeJO22AbYpbX+DUAp9RlwN7DNvoPWepXD/msASa0IIFlZWTz33HN89tlnNGnShC+//JLWrQ1DaILgEkkVjH68CbkkAnsdft535jVXJAMLjTYopXoqpdYrpdZnZYV/j2ez0Vrz6aefcsUVVzB79mxee+011q9fL2IuCIIh3gi60SRaw9QYpdSNFAn6f4y2a60naa1ba61b164dGVNYzGLv3r107tyZbt26cemll5Kens7LL78snREFQXCJNyGXfYDjqPe6wH7nnZRSTYHJwG1a60OBMa/8UVhYyKRJk/j3v/9NQUEBb7/9Ns8++6z0XykHDBs2zGwThAjHG0FfB1ymlLoIyAQeBB523EEpVR+YAzyqtf454FaWE3755Rd69OjB8uXLufnmm5k0aRIXX3yx2WYJIeKaa64x2wQhwvEYctFa5wN9gMXAdmCm1nqrUqqXUqrXmd1eAWoC45RSGUopqRjygfz8fFJTU2natCkZGRlMmTKFb775RsS8nLFq1SpWrVrleUdBcIFUiprMxo0bSU5OZsOGDdx9992MGzeOCy64wGyzBBOwp6Aa9UMXBDtSKRqGnDp1ipdffpnWrVuzd+9eZs6cyRdffCFiLgiC30j7XBNYvXo1ycnJbN++nUcffZS3336bmjVrmm2WIAgRjgh6CDlx4gQvvvgi7777LnXr1mXBggXcdtttZpslCIKPhGsXShH0ELFkyRJ69OjB7t276d27N8OHD+ecc84x2yxBEHzE3dxWs0VdBD3IZGdn079/fz744AMuu+wyvv/+e6677jqzzRLCkNGjR5ttguAF7ua2ehL0YHv2IuhBJC0tjd69e/P333+TkpLCK6+8QmystCsVjGnevLnZJghe4GkItitC4dlLlksQ+Ouvv3jggQe45557qFOnDmvXrmX48OEi5oJblixZUjy1SAhfPPWWT0vPpP2IpVyUMp/2I5aSlp4JuPfsA4V46AFEa820adPo27cvJ06c4I033mDAgAFYrb5NVRfKJ0OHDgXKPoJOCC7uhmC788L99ex9QQQ9QOzZs4ennnqKRYsWcfXVVzNlyhSuuOIKs80SBCHA2MMjRrHw9iOWGnrhfWdkYFGKAoNCzkBOjRJBLyOFhYWMHz+elJQUtNa8++679O7dW5ppCUIU46q3vDtv20jMAz01SgS9DOzcuZPu3bvzww8/8H//939MmjSJBg0amG2WIAgmcUF8LJkeQigWpSjUWrJcwgWbzcaoUaMYMmQIsbGxfPjhh/zzn/9EKaPW8YIglBeM4uvOFGrN7yPuCMr5RdB9JD09neTkZNLT07n33nsZO3Ys5513ntlmCVHAxIkTzTZBKCOO8XVXnnogY+bOSNqil5w8eZIXX3yRq666iv379zNr1ixmz54tYi4EjIYNG9KwYeDiqYI5dGmRyMqUmxjdtTmx1pJraYGOmTsjHroXrFy5kuTkZHbu3Mk///lP3nrrLWrUqGG2WUKUMW/ePAA6d+5ssiVCIHCXDRMsRNDdcPz4cQYNGsSYMWOoX78+ixYtomPHjmabJUQpo0aNAkTQowlX2TDBQkIuLli8eDFXXnklY8aMoU+fPmzZskXEXBCEsEYE3YnDhw/z+OOP06lTJypXrsyKFSt49913qVq1qtmmCYIguEUE3YHZs2eTlJTEJ598wqBBg8jIyKB9+/ZmmyUIguAVEkMHDhw4QJ8+fZgzZw4tWrRg0aJF0vlOEISIo1wLutaajz76iOeff568vDxGjBhBv379pJmWYArTpk0z2wQhwim3gr5792569uzJN998w7XXXsvkyZMlB1gwlXr16pltghDhlLsYekFBAe+99x5XXnklq1evZuzYsSxfvlzEXDCdGTNmMGPGDLPNECKYcuWhb9++ne7du7Nq1So6derEhAkTuPDCC802SxAAGD9+PABdu3Y12RIhUikXHrrNZuONN96gefPm7Nixg48//pgFCxaImAuCEFVEvYf+008/8eSTT7Jx40b+8Y9/8N5773HuueeabZYgCELAiVoPPS8vj5SUFNq0acNff/3FnDlzmDlzpoi5IAhRS1R66CtWrKB79+78/PPPJCcnk5qaSkJCgtlmCYIgBJWoEvSjR48ycOBAxo0bR4MGDfjmm29k4K4QMcyaNctsE4QIJ2oEfeHChTz11FPs27ePvn37MnToUKpUqWK2WYLgNbVq1TLbBCHCifgY+qFDh3jssce4/fbbqVq1KitXruTtt98WMRcijqlTpzJ16lSzzRAiGK8EXSnVSSm1Uym1SymVYrBdKaXePbN9k1KqZeBNLYnWmpkzZ3LFFVcwffp0Xn75ZdLT07n66quDfWpBCAoi6EJZ8RhyUUpZgLHA/wH7gHVKqbla620Ou90GXHbmv7bA+DP/Dwr79+/nmWeeIS0tjVatWrFkyRKaNm0arNMJgiBEBN546G2AXVrr37TWp4HPgLud9rkb+FgXsQaIV0qdH2BbAViwYAFJSUksWrSIN998kzVr1oiYC4Ig4J2gJwJ7HX7ed+Y1X/dBKdVTKbVeKbU+KyvLV1sBuPzyy7n66qvZtGkTAwYMoEKFqFnXFQRBKBPeqKEyeE37sQ9a60nAJIDWrVuX2u4Nl156KQsXLvTnrYIgCFGNN4K+D3Ds61kX2O/HPoIguGHBggVmmyBEON6EXNYBlymlLlJKVQQeBOY67TMXeOxMtks7IEdrfSDAtgpCVBMXF0dcXJzZZggRjEcPXWudr5TqAywGLMAHWuutSqleZ7ZPABYAtwO7gFzgieCZLAjRybhx4wDo3bu3yZYIkYrS2q9Qdplp3bq1Xr9+vSnnFoRwpEOHDgAsW7bMVDuE8EYptUFr3dpoW8RXigqCIAhFiKALgiBECSLogiAIUYIIuiAIQpRg2qKoUioL+MPPt9cCDgbQnEhArrl8INdcPijLNV+ota5ttME0QS8LSqn1rlZ5oxW55vKBXHP5IFjXLCEXQRCEKEEEXRAEIUqIVEGfZLYBJiDXXD6Qay4fBOWaIzKGLgiCIJQmUj10QRAEwQkRdEEQhCghrAU9HIdTBxsvrvmRM9e6SSm1SinVzAw7A4mna3bY7yqlVIFS6v5Q2hcMvLlmpVQHpVSGUmqrUmp5qG0MNF58tqsrpeYppTaeueaI7tqqlPpAKfW3UmqLi+2B1y+tdVj+R1Gr3l+Bi4GKwEYgyWmf24GFFE1MagesNdvuEFzzNUDCmX/fVh6u2WG/pRS1ar7fbLtD8HeOB7YB9c/8XMdsu0NwzYOA/575d23gMFDRbNvLcM3XAy2BLS62B1y/wtlDD6vh1CHC4zVrrVdprY+c+XENRdOhIhlv/s4AzwKzgb9DaVyQ8OaaHwbmaK33AGitI/26vblmDVRTSimgKkWCnh9aMwOH1vp7iq7BFQHXr3AW9IANp44gfL2eZIru8JGMx2tWSiUC9wATQmhXMPHm73w5kKCUWqaU2qCUeixk1gUHb655DHAFReMrNwP/0loXhsY8Uwi4fnkzU9QsAjacOoLw+nqUUjdSJOjXBtWi4OPNNY8G/qO1Lihy3iIeb665AtAKuBmIBVYrpdZorX8OtnFBwptr7ghkADcBlwDfKKVWaK2PBtk2swi4foWzoJfH4dReXY9SqikwGbhNa30oRLYFC2+uuTXw2RkxrwXcrpTK11qnhcTCwOPtZ/ug1voEcEIp9T3QDIhUQffmmp8ARuiiAPMupdTvQCPgx9CYGHICrl/hHHIpj8OpPV6zUqo+MAd4NIK9NUc8XrPW+iKtdQOtdQNgFtA7gsUcvPtsfwlcp5SqoJSKA9oC20NsZyDx5pr3UPREglLqXKAh8FtIrQwtAdevsPXQdTkcTu3lNb8C1ATGnfFY83UEd6rz8pqjCm+uWWu9XSm1CNgEFAKTtdaG6W+RgJd/59eBqUqpzRSFI/6jtY7YtrpKqelAB6CWUmofMBiwQvD0S0r/BUEQooRwDrkIgiAIPiCCLgiCECWIoAuCIEQJIuiCIAhRggi6IAhClCCCLgiCECWIoAuCIEQJ/w8kR8YzVmkA+QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "#plt.plot(data=df_2d, x='AUC', y='DEGREE_NULL_AUC')\n", "plt.scatter(df_2d['AUC'], df_2d['DEGREE_NULL_AUC'])\n", "plt.plot([0, 1], [0, 1], c='black')\n", "plt.axvline(x=df_2d['AUC'].mean(),c='black',ls='--')\n", "plt.axhline(y=df_2d['DEGREE_NULL_AUC'].mean(), c='black', ls='--')" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AUCAVG_NODE_DEGREEDEGREE_NULL_AUCP_Value
GO:00000020.36512919.6030630.5067720.017060
GO:00000180.55247324.2371660.5805850.022531
GO:00000270.50010724.4615630.6009000.175725
GO:00000280.43234431.4982790.7163990.136796
GO:00000300.53237218.9212800.5023400.272772
...............
GO:20012510.49963223.0311820.5677700.293245
GO:20012520.49903121.8374830.5333570.094241
GO:20012570.52281418.7202780.4829620.150789
GO:20012580.45781518.7788350.4864790.036969
GO:20012590.53903218.1032870.4739040.114798
\n", "

5533 rows × 4 columns

\n", "
" ], "text/plain": [ " AUC AVG_NODE_DEGREE DEGREE_NULL_AUC P_Value\n", "GO:0000002 0.365129 19.603063 0.506772 0.017060\n", "GO:0000018 0.552473 24.237166 0.580585 0.022531\n", "GO:0000027 0.500107 24.461563 0.600900 0.175725\n", "GO:0000028 0.432344 31.498279 0.716399 0.136796\n", "GO:0000030 0.532372 18.921280 0.502340 0.272772\n", "... ... ... ... ...\n", "GO:2001251 0.499632 23.031182 0.567770 0.293245\n", "GO:2001252 0.499031 21.837483 0.533357 0.094241\n", "GO:2001257 0.522814 18.720278 0.482962 0.150789\n", "GO:2001258 0.457815 18.778835 0.486479 0.036969\n", "GO:2001259 0.539032 18.103287 0.473904 0.114798\n", "\n", "[5533 rows x 4 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_2d" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import seaborn" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from hicmatrix import HiCMatrix as hm\n", "from hicmatrix.lib import MatrixFileHandler\n", "SRP_name='aggregates'\n", "resolution='40kbp_raw'\n", "exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_mouse/aggregates/40kbp_raw/max/pcc/0/all_bins/KR_KR/hic_gene_corr_gw.h5'\n", "\n", "pcc_sim = hm.hiCMatrix(exp_file_path)\n", "all_pcc_genes = [x[3].decode() for x in pcc_sim.cut_intervals]\n", "pcc_sim_matrix = pcc_sim.matrix.toarray()\n", "df_pcc_sim = pd.DataFrame(pcc_sim_matrix, index=all_pcc_genes, columns = all_pcc_genes)\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ENSMUSG00000102693ENSMUSG00000064842ENSMUSG00000051951ENSMUSG00000102851ENSMUSG00000103377ENSMUSG00000104017ENSMUSG00000103025ENSMUSG00000089699ENSMUSG00000103201ENSMUSG00000103147...ENSMUSG00000024997ENSMUSG00000003228ENSMUSG00000096578ENSMUSG00000088894ENSMUSG00000074733ENSMUSG00000070263ENSMUSG00000094649ENSMUSG00000069475ENSMUSG00000059326ENSMUSG00000095993
ENSMUSG000001026931.0000000.5712570.5055230.6388820.5372950.5372950.4429600.4276620.4168630.412963...-0.001455-0.001262-0.001243-0.001231-0.001103-0.000789-0.000789-0.000789-0.000853-0.000940
ENSMUSG000000648420.5712571.0000000.5197880.6719240.5545780.5545780.4557760.4390550.4252400.420280...-0.001193-0.001049-0.000989-0.001026-0.000567-0.000496-0.000496-0.000496-0.000529-0.000626
ENSMUSG000000519510.5055230.5197881.0000000.6117460.6127940.6127940.7104650.7343280.7087550.714727...-0.001094-0.000870-0.000900-0.000883-0.000497-0.000611-0.000611-0.000611-0.000707-0.000704
ENSMUSG000001028510.6388820.6719240.6117461.0000000.8673080.8673080.7793320.7487510.7410940.729829...-0.001573-0.001405-0.001275-0.001307-0.000594-0.000760-0.000760-0.000760-0.001115-0.001000
ENSMUSG000001033770.5372950.5545780.6127940.8673081.0000001.0000000.8145320.7948820.8454490.831854...-0.001317-0.001101-0.000989-0.000979-0.000999-0.000678-0.000678-0.000678-0.000690-0.000806
..................................................................
ENSMUSG00000070263-0.000789-0.000496-0.000611-0.000760-0.000678-0.000678-0.000522-0.000493-0.000439-0.000602...0.6146520.6448820.6140070.6697020.5221781.0000001.0000001.0000000.5373420.626563
ENSMUSG00000094649-0.000789-0.000496-0.000611-0.000760-0.000678-0.000678-0.000522-0.000493-0.000439-0.000602...0.6146520.6448820.6140070.6697020.5221781.0000001.0000001.0000000.5373420.626563
ENSMUSG00000069475-0.000789-0.000496-0.000611-0.000760-0.000678-0.000678-0.000522-0.000493-0.000439-0.000602...0.6146520.6448820.6140070.6697020.5221781.0000001.0000001.0000000.5373420.626563
ENSMUSG00000059326-0.000853-0.000529-0.000707-0.001115-0.000690-0.000690-0.000491-0.000612-0.000632-0.000558...0.5455700.6238420.5157800.5437180.7974470.5373420.5373420.5373421.0000000.700237
ENSMUSG00000095993-0.000940-0.000626-0.000704-0.001000-0.000806-0.000806-0.000655-0.000598-0.000574-0.000606...0.4275230.4845230.3959560.4130000.5811450.6265630.6265630.6265630.7002371.000000
\n", "

50225 rows × 50225 columns

\n", "
" ], "text/plain": [ " ENSMUSG00000102693 ENSMUSG00000064842 \\\n", "ENSMUSG00000102693 1.000000 0.571257 \n", "ENSMUSG00000064842 0.571257 1.000000 \n", "ENSMUSG00000051951 0.505523 0.519788 \n", "ENSMUSG00000102851 0.638882 0.671924 \n", "ENSMUSG00000103377 0.537295 0.554578 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000789 -0.000496 \n", "ENSMUSG00000094649 -0.000789 -0.000496 \n", "ENSMUSG00000069475 -0.000789 -0.000496 \n", "ENSMUSG00000059326 -0.000853 -0.000529 \n", "ENSMUSG00000095993 -0.000940 -0.000626 \n", "\n", " ENSMUSG00000051951 ENSMUSG00000102851 \\\n", "ENSMUSG00000102693 0.505523 0.638882 \n", "ENSMUSG00000064842 0.519788 0.671924 \n", "ENSMUSG00000051951 1.000000 0.611746 \n", "ENSMUSG00000102851 0.611746 1.000000 \n", "ENSMUSG00000103377 0.612794 0.867308 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000611 -0.000760 \n", "ENSMUSG00000094649 -0.000611 -0.000760 \n", "ENSMUSG00000069475 -0.000611 -0.000760 \n", "ENSMUSG00000059326 -0.000707 -0.001115 \n", "ENSMUSG00000095993 -0.000704 -0.001000 \n", "\n", " ENSMUSG00000103377 ENSMUSG00000104017 \\\n", "ENSMUSG00000102693 0.537295 0.537295 \n", "ENSMUSG00000064842 0.554578 0.554578 \n", "ENSMUSG00000051951 0.612794 0.612794 \n", "ENSMUSG00000102851 0.867308 0.867308 \n", "ENSMUSG00000103377 1.000000 1.000000 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000678 -0.000678 \n", "ENSMUSG00000094649 -0.000678 -0.000678 \n", "ENSMUSG00000069475 -0.000678 -0.000678 \n", "ENSMUSG00000059326 -0.000690 -0.000690 \n", "ENSMUSG00000095993 -0.000806 -0.000806 \n", "\n", " ENSMUSG00000103025 ENSMUSG00000089699 \\\n", "ENSMUSG00000102693 0.442960 0.427662 \n", "ENSMUSG00000064842 0.455776 0.439055 \n", "ENSMUSG00000051951 0.710465 0.734328 \n", "ENSMUSG00000102851 0.779332 0.748751 \n", "ENSMUSG00000103377 0.814532 0.794882 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000522 -0.000493 \n", "ENSMUSG00000094649 -0.000522 -0.000493 \n", "ENSMUSG00000069475 -0.000522 -0.000493 \n", "ENSMUSG00000059326 -0.000491 -0.000612 \n", "ENSMUSG00000095993 -0.000655 -0.000598 \n", "\n", " ENSMUSG00000103201 ENSMUSG00000103147 ... \\\n", "ENSMUSG00000102693 0.416863 0.412963 ... \n", "ENSMUSG00000064842 0.425240 0.420280 ... \n", "ENSMUSG00000051951 0.708755 0.714727 ... \n", "ENSMUSG00000102851 0.741094 0.729829 ... \n", "ENSMUSG00000103377 0.845449 0.831854 ... \n", "... ... ... ... \n", "ENSMUSG00000070263 -0.000439 -0.000602 ... \n", "ENSMUSG00000094649 -0.000439 -0.000602 ... \n", "ENSMUSG00000069475 -0.000439 -0.000602 ... \n", "ENSMUSG00000059326 -0.000632 -0.000558 ... \n", "ENSMUSG00000095993 -0.000574 -0.000606 ... \n", "\n", " ENSMUSG00000024997 ENSMUSG00000003228 \\\n", "ENSMUSG00000102693 -0.001455 -0.001262 \n", "ENSMUSG00000064842 -0.001193 -0.001049 \n", "ENSMUSG00000051951 -0.001094 -0.000870 \n", "ENSMUSG00000102851 -0.001573 -0.001405 \n", "ENSMUSG00000103377 -0.001317 -0.001101 \n", "... ... ... \n", "ENSMUSG00000070263 0.614652 0.644882 \n", "ENSMUSG00000094649 0.614652 0.644882 \n", "ENSMUSG00000069475 0.614652 0.644882 \n", "ENSMUSG00000059326 0.545570 0.623842 \n", "ENSMUSG00000095993 0.427523 0.484523 \n", "\n", " ENSMUSG00000096578 ENSMUSG00000088894 \\\n", "ENSMUSG00000102693 -0.001243 -0.001231 \n", "ENSMUSG00000064842 -0.000989 -0.001026 \n", "ENSMUSG00000051951 -0.000900 -0.000883 \n", "ENSMUSG00000102851 -0.001275 -0.001307 \n", "ENSMUSG00000103377 -0.000989 -0.000979 \n", "... ... ... \n", "ENSMUSG00000070263 0.614007 0.669702 \n", "ENSMUSG00000094649 0.614007 0.669702 \n", "ENSMUSG00000069475 0.614007 0.669702 \n", "ENSMUSG00000059326 0.515780 0.543718 \n", "ENSMUSG00000095993 0.395956 0.413000 \n", "\n", " ENSMUSG00000074733 ENSMUSG00000070263 \\\n", "ENSMUSG00000102693 -0.001103 -0.000789 \n", "ENSMUSG00000064842 -0.000567 -0.000496 \n", "ENSMUSG00000051951 -0.000497 -0.000611 \n", "ENSMUSG00000102851 -0.000594 -0.000760 \n", "ENSMUSG00000103377 -0.000999 -0.000678 \n", "... ... ... \n", "ENSMUSG00000070263 0.522178 1.000000 \n", "ENSMUSG00000094649 0.522178 1.000000 \n", "ENSMUSG00000069475 0.522178 1.000000 \n", "ENSMUSG00000059326 0.797447 0.537342 \n", "ENSMUSG00000095993 0.581145 0.626563 \n", "\n", " ENSMUSG00000094649 ENSMUSG00000069475 \\\n", "ENSMUSG00000102693 -0.000789 -0.000789 \n", "ENSMUSG00000064842 -0.000496 -0.000496 \n", "ENSMUSG00000051951 -0.000611 -0.000611 \n", "ENSMUSG00000102851 -0.000760 -0.000760 \n", "ENSMUSG00000103377 -0.000678 -0.000678 \n", "... ... ... \n", "ENSMUSG00000070263 1.000000 1.000000 \n", "ENSMUSG00000094649 1.000000 1.000000 \n", "ENSMUSG00000069475 1.000000 1.000000 \n", "ENSMUSG00000059326 0.537342 0.537342 \n", "ENSMUSG00000095993 0.626563 0.626563 \n", "\n", " ENSMUSG00000059326 ENSMUSG00000095993 \n", "ENSMUSG00000102693 -0.000853 -0.000940 \n", "ENSMUSG00000064842 -0.000529 -0.000626 \n", "ENSMUSG00000051951 -0.000707 -0.000704 \n", "ENSMUSG00000102851 -0.001115 -0.001000 \n", "ENSMUSG00000103377 -0.000690 -0.000806 \n", "... ... ... \n", "ENSMUSG00000070263 0.537342 0.626563 \n", "ENSMUSG00000094649 0.537342 0.626563 \n", "ENSMUSG00000069475 0.537342 0.626563 \n", "ENSMUSG00000059326 1.000000 0.700237 \n", "ENSMUSG00000095993 0.700237 1.000000 \n", "\n", "[50225 rows x 50225 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pcc_sim" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "from hicmatrix import HiCMatrix as hm\n", "from hicmatrix.lib import MatrixFileHandler\n", "SRP_name='aggregates'\n", "resolution='40kbp_raw'\n", "exp_file_path=f'/grid/gillis/data/lohia/hi_c_data_processing/data_human/aggregates/100kbp_raw/max/pcc/0/all_bins/KR_KR/hic_gene_corr_gw.h5'\n", "\n", "pcc_sim = hm.hiCMatrix(exp_file_path)\n", "all_pcc_genes = [x[3].decode() for x in pcc_sim.cut_intervals]\n", "pcc_sim_matrix_human = pcc_sim.matrix.toarray()\n", "df_pcc_sim_human = pd.DataFrame(pcc_sim_matrix_human, index=all_pcc_genes, columns = all_pcc_genes)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "ENSG00000119946 - neuron CNNM1 10 \n", "CNR1 - ENSG00000166589 16 \n", "CNTN1 - ENSG00000018236 12 \n", "\n", "epithilal cells\n", "RND3 - ENSG00000115963 2\n", "ASS1 - ENSG00000130707 9 \n", "KRT5 - ENSG00000186081 12 \n", "\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.0009672968385351642" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pcc_sim_human['ENSG00000130707']['ENSG00000115963']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "#import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "ax = sns.histplot(df_pcc_sim_human)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "\n", "df_jac_corr = pd.DataFrame(jac_sim.matrix.toarray() , index=all_genes, columns = all_genes)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ENSMUSG00000102693ENSMUSG00000064842ENSMUSG00000051951ENSMUSG00000102851ENSMUSG00000103377ENSMUSG00000104017ENSMUSG00000103025ENSMUSG00000089699ENSMUSG00000103201ENSMUSG00000103147...ENSMUSG00000024997ENSMUSG00000003228ENSMUSG00000096578ENSMUSG00000088894ENSMUSG00000074733ENSMUSG00000070263ENSMUSG00000094649ENSMUSG00000069475ENSMUSG00000059326ENSMUSG00000095993
ENSMUSG000001026931.0000000.5712570.5055230.6388820.5372950.5372950.4429600.4276620.4168630.412963...-0.001455-0.001262-0.001243-0.001231-0.001103-0.000789-0.000789-0.000789-0.000853-0.000940
ENSMUSG000000648420.5712571.0000000.5197880.6719240.5545780.5545780.4557760.4390550.4252400.420280...-0.001193-0.001049-0.000989-0.001026-0.000567-0.000496-0.000496-0.000496-0.000529-0.000626
ENSMUSG000000519510.5055230.5197881.0000000.6117460.6127940.6127940.7104650.7343280.7087550.714727...-0.001094-0.000870-0.000900-0.000883-0.000497-0.000611-0.000611-0.000611-0.000707-0.000704
ENSMUSG000001028510.6388820.6719240.6117461.0000000.8673080.8673080.7793320.7487510.7410940.729829...-0.001573-0.001405-0.001275-0.001307-0.000594-0.000760-0.000760-0.000760-0.001115-0.001000
ENSMUSG000001033770.5372950.5545780.6127940.8673081.0000001.0000000.8145320.7948820.8454490.831854...-0.001317-0.001101-0.000989-0.000979-0.000999-0.000678-0.000678-0.000678-0.000690-0.000806
..................................................................
ENSMUSG00000070263-0.000789-0.000496-0.000611-0.000760-0.000678-0.000678-0.000522-0.000493-0.000439-0.000602...0.6146520.6448820.6140070.6697020.5221781.0000001.0000001.0000000.5373420.626563
ENSMUSG00000094649-0.000789-0.000496-0.000611-0.000760-0.000678-0.000678-0.000522-0.000493-0.000439-0.000602...0.6146520.6448820.6140070.6697020.5221781.0000001.0000001.0000000.5373420.626563
ENSMUSG00000069475-0.000789-0.000496-0.000611-0.000760-0.000678-0.000678-0.000522-0.000493-0.000439-0.000602...0.6146520.6448820.6140070.6697020.5221781.0000001.0000001.0000000.5373420.626563
ENSMUSG00000059326-0.000853-0.000529-0.000707-0.001115-0.000690-0.000690-0.000491-0.000612-0.000632-0.000558...0.5455700.6238420.5157800.5437180.7974470.5373420.5373420.5373421.0000000.700237
ENSMUSG00000095993-0.000940-0.000626-0.000704-0.001000-0.000806-0.000806-0.000655-0.000598-0.000574-0.000606...0.4275230.4845230.3959560.4130000.5811450.6265630.6265630.6265630.7002371.000000
\n", "

50225 rows × 50225 columns

\n", "
" ], "text/plain": [ " ENSMUSG00000102693 ENSMUSG00000064842 \\\n", "ENSMUSG00000102693 1.000000 0.571257 \n", "ENSMUSG00000064842 0.571257 1.000000 \n", "ENSMUSG00000051951 0.505523 0.519788 \n", "ENSMUSG00000102851 0.638882 0.671924 \n", "ENSMUSG00000103377 0.537295 0.554578 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000789 -0.000496 \n", "ENSMUSG00000094649 -0.000789 -0.000496 \n", "ENSMUSG00000069475 -0.000789 -0.000496 \n", "ENSMUSG00000059326 -0.000853 -0.000529 \n", "ENSMUSG00000095993 -0.000940 -0.000626 \n", "\n", " ENSMUSG00000051951 ENSMUSG00000102851 \\\n", "ENSMUSG00000102693 0.505523 0.638882 \n", "ENSMUSG00000064842 0.519788 0.671924 \n", "ENSMUSG00000051951 1.000000 0.611746 \n", "ENSMUSG00000102851 0.611746 1.000000 \n", "ENSMUSG00000103377 0.612794 0.867308 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000611 -0.000760 \n", "ENSMUSG00000094649 -0.000611 -0.000760 \n", "ENSMUSG00000069475 -0.000611 -0.000760 \n", "ENSMUSG00000059326 -0.000707 -0.001115 \n", "ENSMUSG00000095993 -0.000704 -0.001000 \n", "\n", " ENSMUSG00000103377 ENSMUSG00000104017 \\\n", "ENSMUSG00000102693 0.537295 0.537295 \n", "ENSMUSG00000064842 0.554578 0.554578 \n", "ENSMUSG00000051951 0.612794 0.612794 \n", "ENSMUSG00000102851 0.867308 0.867308 \n", "ENSMUSG00000103377 1.000000 1.000000 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000678 -0.000678 \n", "ENSMUSG00000094649 -0.000678 -0.000678 \n", "ENSMUSG00000069475 -0.000678 -0.000678 \n", "ENSMUSG00000059326 -0.000690 -0.000690 \n", "ENSMUSG00000095993 -0.000806 -0.000806 \n", "\n", " ENSMUSG00000103025 ENSMUSG00000089699 \\\n", "ENSMUSG00000102693 0.442960 0.427662 \n", "ENSMUSG00000064842 0.455776 0.439055 \n", "ENSMUSG00000051951 0.710465 0.734328 \n", "ENSMUSG00000102851 0.779332 0.748751 \n", "ENSMUSG00000103377 0.814532 0.794882 \n", "... ... ... \n", "ENSMUSG00000070263 -0.000522 -0.000493 \n", "ENSMUSG00000094649 -0.000522 -0.000493 \n", "ENSMUSG00000069475 -0.000522 -0.000493 \n", "ENSMUSG00000059326 -0.000491 -0.000612 \n", "ENSMUSG00000095993 -0.000655 -0.000598 \n", "\n", " ENSMUSG00000103201 ENSMUSG00000103147 ... \\\n", "ENSMUSG00000102693 0.416863 0.412963 ... \n", "ENSMUSG00000064842 0.425240 0.420280 ... \n", "ENSMUSG00000051951 0.708755 0.714727 ... \n", "ENSMUSG00000102851 0.741094 0.729829 ... \n", "ENSMUSG00000103377 0.845449 0.831854 ... \n", "... ... ... ... \n", "ENSMUSG00000070263 -0.000439 -0.000602 ... \n", "ENSMUSG00000094649 -0.000439 -0.000602 ... \n", "ENSMUSG00000069475 -0.000439 -0.000602 ... \n", "ENSMUSG00000059326 -0.000632 -0.000558 ... \n", "ENSMUSG00000095993 -0.000574 -0.000606 ... \n", "\n", " ENSMUSG00000024997 ENSMUSG00000003228 \\\n", "ENSMUSG00000102693 -0.001455 -0.001262 \n", "ENSMUSG00000064842 -0.001193 -0.001049 \n", "ENSMUSG00000051951 -0.001094 -0.000870 \n", "ENSMUSG00000102851 -0.001573 -0.001405 \n", "ENSMUSG00000103377 -0.001317 -0.001101 \n", "... ... ... \n", "ENSMUSG00000070263 0.614652 0.644882 \n", "ENSMUSG00000094649 0.614652 0.644882 \n", "ENSMUSG00000069475 0.614652 0.644882 \n", "ENSMUSG00000059326 0.545570 0.623842 \n", "ENSMUSG00000095993 0.427523 0.484523 \n", "\n", " ENSMUSG00000096578 ENSMUSG00000088894 \\\n", "ENSMUSG00000102693 -0.001243 -0.001231 \n", "ENSMUSG00000064842 -0.000989 -0.001026 \n", "ENSMUSG00000051951 -0.000900 -0.000883 \n", "ENSMUSG00000102851 -0.001275 -0.001307 \n", "ENSMUSG00000103377 -0.000989 -0.000979 \n", "... ... ... \n", "ENSMUSG00000070263 0.614007 0.669702 \n", "ENSMUSG00000094649 0.614007 0.669702 \n", "ENSMUSG00000069475 0.614007 0.669702 \n", "ENSMUSG00000059326 0.515780 0.543718 \n", "ENSMUSG00000095993 0.395956 0.413000 \n", "\n", " ENSMUSG00000074733 ENSMUSG00000070263 \\\n", "ENSMUSG00000102693 -0.001103 -0.000789 \n", "ENSMUSG00000064842 -0.000567 -0.000496 \n", "ENSMUSG00000051951 -0.000497 -0.000611 \n", "ENSMUSG00000102851 -0.000594 -0.000760 \n", "ENSMUSG00000103377 -0.000999 -0.000678 \n", "... ... ... \n", "ENSMUSG00000070263 0.522178 1.000000 \n", "ENSMUSG00000094649 0.522178 1.000000 \n", "ENSMUSG00000069475 0.522178 1.000000 \n", "ENSMUSG00000059326 0.797447 0.537342 \n", "ENSMUSG00000095993 0.581145 0.626563 \n", "\n", " ENSMUSG00000094649 ENSMUSG00000069475 \\\n", "ENSMUSG00000102693 -0.000789 -0.000789 \n", "ENSMUSG00000064842 -0.000496 -0.000496 \n", "ENSMUSG00000051951 -0.000611 -0.000611 \n", "ENSMUSG00000102851 -0.000760 -0.000760 \n", "ENSMUSG00000103377 -0.000678 -0.000678 \n", "... ... ... \n", "ENSMUSG00000070263 1.000000 1.000000 \n", "ENSMUSG00000094649 1.000000 1.000000 \n", "ENSMUSG00000069475 1.000000 1.000000 \n", "ENSMUSG00000059326 0.537342 0.537342 \n", "ENSMUSG00000095993 0.626563 0.626563 \n", "\n", " ENSMUSG00000059326 ENSMUSG00000095993 \n", "ENSMUSG00000102693 -0.000853 -0.000940 \n", "ENSMUSG00000064842 -0.000529 -0.000626 \n", "ENSMUSG00000051951 -0.000707 -0.000704 \n", "ENSMUSG00000102851 -0.001115 -0.001000 \n", "ENSMUSG00000103377 -0.000690 -0.000806 \n", "... ... ... \n", "ENSMUSG00000070263 0.537342 0.626563 \n", "ENSMUSG00000094649 0.537342 0.626563 \n", "ENSMUSG00000069475 0.537342 0.626563 \n", "ENSMUSG00000059326 1.000000 0.700237 \n", "ENSMUSG00000095993 0.700237 1.000000 \n", "\n", "[50225 rows x 50225 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_jac_corr" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [], "source": [ "marker_list = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/notebooks/class_level_markers.csv')\n", "marker_list['gene'] = marker_list['gene'].str.upper()\n", "df_ensg_name = pd.read_csv('/grid/gillis/data/lohia/hi_c_data_processing/genomes_jlee/mouse_geneid_symbol.txt',sep='\\t', names=['gene_id', 'gene'])\n", "df_ensg_name['gene'] = df_ensg_name['gene'].str.upper()\n", "marker_list = marker_list.merge(df_ensg_name, right_on='gene', left_on='gene') " ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
groupcell_typerankgenerecurrenceaurocfold_changefold_change_detectionexpressionprecision...population_sizen_datasetsscSSsnSSscCv2snCv2snCv3MscCv3snCv3Zgene_id
0allGABAergic1GAD170.941159116.9604729.289078820.4634860.659089...10207.0000007TrueTrueTrueTrueTrueTrueTrueENSMUSG00000070880
1allGABAergic2GAD270.928440139.81141513.987046659.1515660.730005...10207.0000007TrueTrueTrueTrueTrueTrueTrueENSMUSG00000026787
2allGABAergic3ERBB470.92144981.7173835.7364152257.1677530.514809...10207.0000007TrueTrueTrueTrueTrueTrueTrueENSMUSG00000062209
3allGABAergic4KCNIP170.91691932.25203810.796420588.5719930.687830...10207.0000007TrueTrueTrueTrueTrueTrueTrueENSMUSG00000053519
4allGABAergic5RBMS370.90209317.0388693.607831340.7017980.442861...10207.0000007TrueTrueTrueTrueTrueTrueTrueENSMUSG00000039607
..................................................................
294allNon-Neuronal96MAG60.648512165.82008116.747920456.9553700.370001...8908.8571437FalseTrueTrueTrueTrueTrueTrueENSMUSG00000036634
295allNon-Neuronal97FNBP160.6480285.5928860.955553454.9319250.063414...8908.8571437FalseTrueTrueTrueTrueTrueTrueENSMUSG00000075415
296allNon-Neuronal98FRMD4B60.6478059.0505472.335387192.1510030.124702...8908.8571437FalseTrueTrueTrueTrueTrueTrueENSMUSG00000030064
297allNon-Neuronal99PLLP60.64554061.88454812.642643190.0391320.314672...8908.8571437FalseTrueTrueTrueTrueTrueTrueENSMUSG00000031775
298allNon-Neuronal100PRR5L60.645414187.90618530.603359334.9964040.447383...8908.8571437FalseTrueTrueTrueTrueTrueTrueENSMUSG00000032841
\n", "

299 rows × 21 columns

\n", "
" ], "text/plain": [ " group cell_type rank gene recurrence auroc fold_change \\\n", "0 all GABAergic 1 GAD1 7 0.941159 116.960472 \n", "1 all GABAergic 2 GAD2 7 0.928440 139.811415 \n", "2 all GABAergic 3 ERBB4 7 0.921449 81.717383 \n", "3 all GABAergic 4 KCNIP1 7 0.916919 32.252038 \n", "4 all GABAergic 5 RBMS3 7 0.902093 17.038869 \n", ".. ... ... ... ... ... ... ... \n", "294 all Non-Neuronal 96 MAG 6 0.648512 165.820081 \n", "295 all Non-Neuronal 97 FNBP1 6 0.648028 5.592886 \n", "296 all Non-Neuronal 98 FRMD4B 6 0.647805 9.050547 \n", "297 all Non-Neuronal 99 PLLP 6 0.645540 61.884548 \n", "298 all Non-Neuronal 100 PRR5L 6 0.645414 187.906185 \n", "\n", " fold_change_detection expression precision ... population_size \\\n", "0 9.289078 820.463486 0.659089 ... 10207.000000 \n", "1 13.987046 659.151566 0.730005 ... 10207.000000 \n", "2 5.736415 2257.167753 0.514809 ... 10207.000000 \n", "3 10.796420 588.571993 0.687830 ... 10207.000000 \n", "4 3.607831 340.701798 0.442861 ... 10207.000000 \n", ".. ... ... ... ... ... \n", "294 16.747920 456.955370 0.370001 ... 8908.857143 \n", "295 0.955553 454.931925 0.063414 ... 8908.857143 \n", "296 2.335387 192.151003 0.124702 ... 8908.857143 \n", "297 12.642643 190.039132 0.314672 ... 8908.857143 \n", "298 30.603359 334.996404 0.447383 ... 8908.857143 \n", "\n", " n_datasets scSS snSS scCv2 snCv2 snCv3M scCv3 snCv3Z \\\n", "0 7 True True True True True True True \n", "1 7 True True True True True True True \n", "2 7 True True True True True True True \n", "3 7 True True True True True True True \n", "4 7 True True True True True True True \n", ".. ... ... ... ... ... ... ... ... \n", "294 7 False True True True True True True \n", "295 7 False True True True True True True \n", "296 7 False True True True True True True \n", "297 7 False True True True True True True \n", "298 7 False True True True True True True \n", "\n", " gene_id \n", "0 ENSMUSG00000070880 \n", "1 ENSMUSG00000026787 \n", "2 ENSMUSG00000062209 \n", "3 ENSMUSG00000053519 \n", "4 ENSMUSG00000039607 \n", ".. ... \n", "294 ENSMUSG00000036634 \n", "295 ENSMUSG00000075415 \n", "296 ENSMUSG00000030064 \n", "297 ENSMUSG00000031775 \n", "298 ENSMUSG00000032841 \n", "\n", "[299 rows x 21 columns]" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "marker_list " ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "marker_list = marker_list.merge(df_ensg_name, right_on='gene', left_on='gene') " ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [], "source": [ "marker_gene_list = marker_list[marker_list['cell_type']=='GABAergic']['gene_id'].to_list()" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [], "source": [ "go_table_marker = go_table[go_table.index.isin(marker_gene_list)]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cell_typeAstroEndoL2/3 ITL4/5 ITL5 ITL5 PTL5/6 NPL6 CTL6 ITL6 IT Car3...Micro-PVMOligoPeriPvalbSMCSncgSstSst ChodlVLMCVip
gene_id
ENSMUSG00000000093NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaN96.0NaNNaNNaNNaNNaN
ENSMUSG00000000126NaNNaNNaN93.0NaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ENSMUSG0000000020280.0NaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ENSMUSG00000000305NaNNaNNaNNaNNaNNaNNaNNaN72.0NaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ENSMUSG00000000392NaNNaNNaNNaNNaNNaNNaNNaNNaN21.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
ENSMUSG00000116022NaNNaNNaNNaNNaNNaNNaNNaNNaN95.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ENSMUSG00000116076NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ENSMUSG00000116258NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...67.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
ENSMUSG00000116470NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...27.0NaNNaNNaNNaNNaNNaNNaNNaNNaN
ENSMUSG00000116510NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaN49.0NaN
\n", "

1748 rows × 23 columns

\n", "
" ], "text/plain": [ "cell_type Astro Endo L2/3 IT L4/5 IT L5 IT L5 PT L5/6 NP \\\n", "gene_id \n", "ENSMUSG00000000093 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000000126 NaN NaN NaN 93.0 NaN NaN NaN \n", "ENSMUSG00000000202 80.0 NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000000305 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000000392 NaN NaN NaN NaN NaN NaN NaN \n", "... ... ... ... ... ... ... ... \n", "ENSMUSG00000116022 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116076 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116258 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116470 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116510 NaN NaN NaN NaN NaN NaN NaN \n", "\n", "cell_type L6 CT L6 IT L6 IT Car3 ... Micro-PVM Oligo Peri \\\n", "gene_id ... \n", "ENSMUSG00000000093 NaN NaN NaN ... NaN NaN NaN \n", "ENSMUSG00000000126 NaN NaN NaN ... NaN NaN NaN \n", "ENSMUSG00000000202 NaN NaN NaN ... NaN NaN NaN \n", "ENSMUSG00000000305 NaN 72.0 NaN ... NaN NaN NaN \n", "ENSMUSG00000000392 NaN NaN 21.0 ... NaN NaN NaN \n", "... ... ... ... ... ... ... ... \n", "ENSMUSG00000116022 NaN NaN 95.0 ... NaN NaN NaN \n", "ENSMUSG00000116076 NaN NaN NaN ... NaN NaN NaN \n", "ENSMUSG00000116258 NaN NaN NaN ... 67.0 NaN NaN \n", "ENSMUSG00000116470 NaN NaN NaN ... 27.0 NaN NaN \n", "ENSMUSG00000116510 NaN NaN NaN ... NaN NaN NaN \n", "\n", "cell_type Pvalb SMC Sncg Sst Sst Chodl VLMC Vip \n", "gene_id \n", "ENSMUSG00000000093 NaN 96.0 NaN NaN NaN NaN NaN \n", "ENSMUSG00000000126 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000000202 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000000305 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000000392 NaN NaN NaN NaN NaN NaN NaN \n", "... ... ... ... ... ... ... ... \n", "ENSMUSG00000116022 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116076 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116258 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116470 NaN NaN NaN NaN NaN NaN NaN \n", "ENSMUSG00000116510 NaN NaN NaN NaN NaN 49.0 NaN \n", "\n", "[1748 rows x 23 columns]" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "marker_list.pivot(index='gene_id', columns='cell_type', values='rank')" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "marker_table = marker_list.pivot(index='gene_id', columns='cell_type', values='rank')" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "marker_table.fillna(0, inplace=True)" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [], "source": [ "marker_list['gene_2'] = marker_list['gene_id']" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
cell_typeAstroEndoL2/3 ITL4/5 ITL5 ITL5 PTL5/6 NPL6 CTL6 ITL6 IT Car3...Micro-PVMOligoPeriPvalbSMCSncgSstSst ChodlVLMCVip
gene_id
ENSMUSG000000000930.00.00.00.00.00.00.00.00.00.0...0.00.00.00.01.00.00.00.00.00.0
ENSMUSG000000001260.00.00.01.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000002021.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000003050.00.00.00.00.00.00.00.01.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000003920.00.00.00.00.00.00.00.00.01.0...0.00.00.00.00.00.00.00.00.00.0
..................................................................
ENSMUSG000001160220.00.00.00.00.00.00.00.00.01.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000001160760.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000001162580.00.00.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.00.0
ENSMUSG000001164700.00.00.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.00.0
ENSMUSG000001165100.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.01.00.0
\n", "

1748 rows × 23 columns

\n", "
" ], "text/plain": [ "cell_type Astro Endo L2/3 IT L4/5 IT L5 IT L5 PT L5/6 NP \\\n", "gene_id \n", "ENSMUSG00000000093 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000000126 0.0 0.0 0.0 1.0 0.0 0.0 0.0 \n", "ENSMUSG00000000202 1.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000000305 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000000392 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... ... ... \n", "ENSMUSG00000116022 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116076 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116258 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116470 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116510 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "\n", "cell_type L6 CT L6 IT L6 IT Car3 ... Micro-PVM Oligo Peri \\\n", "gene_id ... \n", "ENSMUSG00000000093 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n", "ENSMUSG00000000126 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n", "ENSMUSG00000000202 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n", "ENSMUSG00000000305 0.0 1.0 0.0 ... 0.0 0.0 0.0 \n", "ENSMUSG00000000392 0.0 0.0 1.0 ... 0.0 0.0 0.0 \n", "... ... ... ... ... ... ... ... \n", "ENSMUSG00000116022 0.0 0.0 1.0 ... 0.0 0.0 0.0 \n", "ENSMUSG00000116076 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n", "ENSMUSG00000116258 0.0 0.0 0.0 ... 1.0 0.0 0.0 \n", "ENSMUSG00000116470 0.0 0.0 0.0 ... 1.0 0.0 0.0 \n", "ENSMUSG00000116510 0.0 0.0 0.0 ... 0.0 0.0 0.0 \n", "\n", "cell_type Pvalb SMC Sncg Sst Sst Chodl VLMC Vip \n", "gene_id \n", "ENSMUSG00000000093 0.0 1.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000000126 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000000202 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000000305 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000000392 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... ... ... \n", "ENSMUSG00000116022 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116076 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116258 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116470 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000116510 0.0 0.0 0.0 0.0 0.0 1.0 0.0 \n", "\n", "[1748 rows x 23 columns]" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "marker_table" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.0" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "marker_table.sum(axis=1).max()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "marker_table[marker_table != 0] = 1" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1686, 1686)\n", "(1686, 23)\n", "0.9434473154881634\n", "0.00015267734141610756\n" ] } ], "source": [ "df_2d_marker = run_egad(marker_table, df_jac_sim)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'seaborn'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mseaborn\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msns\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'seaborn'" ] } ], "source": [ "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "#plt.plot(data=df_2d_marker, x='AUC', y='DEGREE_NULL_AUC')\n", "plt.scatter(df_2d_marker['AUC'], df_2d_marker['DEGREE_NULL_AUC'])\n", "plt.plot([0, 1], [0, 1], c='black')\n", "plt.axvline(x=df_2d_marker['AUC'].mean(),c='black',ls='--')\n", "plt.axhline(y=df_2d_marker['DEGREE_NULL_AUC'].mean(), c='black', ls='--')" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AUCAVG_NODE_DEGREEDEGREE_NULL_AUCP_Value
cell_type
Astro0.5032101.9137910.4787750.391881
Endo0.5158182.1708900.5741700.296932
L2/3 IT0.5215181.7746650.4246000.161082
L4/5 IT0.5440231.9449300.5037520.068288
L5 IT0.6236931.9177190.4886620.000173
L5 PT0.5053242.0077710.5220820.010282
L5/6 NP0.4814461.9582540.4938980.193746
L6 CT0.5301661.9278220.4867920.164214
L6 IT0.5278011.9742290.5139810.172077
L6 IT Car30.5946221.7678280.4297820.000774
L6b0.5942252.0993370.5364060.001011
Lamp50.5446321.8421100.4504680.014267
Meis20.5728951.7886340.4248240.007227
Micro-PVM0.4834502.1464250.5585340.173389
Oligo0.4477672.0501760.5274280.041854
Peri0.4826232.1311280.5619210.069004
Pvalb0.4915731.9973020.5092450.350954
SMC0.5371132.0713640.5360030.105072
Sncg0.5385481.8338580.4625460.098128
Sst0.6372081.8523870.4471680.000003
Sst Chodl0.5717571.9042020.4769540.006663
VLMC0.5148681.8189410.4438880.314480
Vip0.5364601.8862730.4847170.116352
\n", "
" ], "text/plain": [ " AUC AVG_NODE_DEGREE DEGREE_NULL_AUC P_Value\n", "cell_type \n", "Astro 0.503210 1.913791 0.478775 0.391881\n", "Endo 0.515818 2.170890 0.574170 0.296932\n", "L2/3 IT 0.521518 1.774665 0.424600 0.161082\n", "L4/5 IT 0.544023 1.944930 0.503752 0.068288\n", "L5 IT 0.623693 1.917719 0.488662 0.000173\n", "L5 PT 0.505324 2.007771 0.522082 0.010282\n", "L5/6 NP 0.481446 1.958254 0.493898 0.193746\n", "L6 CT 0.530166 1.927822 0.486792 0.164214\n", "L6 IT 0.527801 1.974229 0.513981 0.172077\n", "L6 IT Car3 0.594622 1.767828 0.429782 0.000774\n", "L6b 0.594225 2.099337 0.536406 0.001011\n", "Lamp5 0.544632 1.842110 0.450468 0.014267\n", "Meis2 0.572895 1.788634 0.424824 0.007227\n", "Micro-PVM 0.483450 2.146425 0.558534 0.173389\n", "Oligo 0.447767 2.050176 0.527428 0.041854\n", "Peri 0.482623 2.131128 0.561921 0.069004\n", "Pvalb 0.491573 1.997302 0.509245 0.350954\n", "SMC 0.537113 2.071364 0.536003 0.105072\n", "Sncg 0.538548 1.833858 0.462546 0.098128\n", "Sst 0.637208 1.852387 0.447168 0.000003\n", "Sst Chodl 0.571757 1.904202 0.476954 0.006663\n", "VLMC 0.514868 1.818941 0.443888 0.314480\n", "Vip 0.536460 1.886273 0.484717 0.116352" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_2d_pcc" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ENSMUSG00000102693ENSMUSG00000064842ENSMUSG00000051951ENSMUSG00000102851ENSMUSG00000103377ENSMUSG00000104017ENSMUSG00000103025ENSMUSG00000089699ENSMUSG00000103201ENSMUSG00000103147...non-genenon-genenon-genenon-genenon-genenon-genenon-genenon-genenon-genenon-gene
ENSMUSG000000259020.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000024590.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000259050.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000337740.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000337400.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...0.00.00.00.00.00.00.00.00.00.0
..................................................................
ENSMUSG000000337170.3661660.2296271.1789690.0000000.9186160.0000000.1841680.8291700.4955070.624326...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000250851.3655591.4785652.4912481.0604221.5030661.0248281.0157932.4912482.2438461.349966...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000250891.2693981.5891142.3596331.1413122.1941951.0221591.3633942.0281712.0281711.242715...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000870950.5746530.6234931.8370310.8522650.8294311.3940880.6235781.0440950.5592500.847598...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000439690.0000000.0000001.6847550.2361730.8294311.3797400.9153740.9358360.5592500.258592...0.00.00.00.00.00.00.00.00.00.0
\n", "

1686 rows × 156467 columns

\n", "
" ], "text/plain": [ " ENSMUSG00000102693 ENSMUSG00000064842 \\\n", "ENSMUSG00000025902 0.000000 0.000000 \n", "ENSMUSG00000002459 0.000000 0.000000 \n", "ENSMUSG00000025905 0.000000 0.000000 \n", "ENSMUSG00000033774 0.000000 0.000000 \n", "ENSMUSG00000033740 0.000000 0.000000 \n", "... ... ... \n", "ENSMUSG00000033717 0.366166 0.229627 \n", "ENSMUSG00000025085 1.365559 1.478565 \n", "ENSMUSG00000025089 1.269398 1.589114 \n", "ENSMUSG00000087095 0.574653 0.623493 \n", "ENSMUSG00000043969 0.000000 0.000000 \n", "\n", " ENSMUSG00000051951 ENSMUSG00000102851 \\\n", "ENSMUSG00000025902 0.000000 0.000000 \n", "ENSMUSG00000002459 0.000000 0.000000 \n", "ENSMUSG00000025905 0.000000 0.000000 \n", "ENSMUSG00000033774 0.000000 0.000000 \n", "ENSMUSG00000033740 0.000000 0.000000 \n", "... ... ... \n", "ENSMUSG00000033717 1.178969 0.000000 \n", "ENSMUSG00000025085 2.491248 1.060422 \n", "ENSMUSG00000025089 2.359633 1.141312 \n", "ENSMUSG00000087095 1.837031 0.852265 \n", "ENSMUSG00000043969 1.684755 0.236173 \n", "\n", " ENSMUSG00000103377 ENSMUSG00000104017 \\\n", "ENSMUSG00000025902 0.000000 0.000000 \n", "ENSMUSG00000002459 0.000000 0.000000 \n", "ENSMUSG00000025905 0.000000 0.000000 \n", "ENSMUSG00000033774 0.000000 0.000000 \n", "ENSMUSG00000033740 0.000000 0.000000 \n", "... ... ... \n", "ENSMUSG00000033717 0.918616 0.000000 \n", "ENSMUSG00000025085 1.503066 1.024828 \n", "ENSMUSG00000025089 2.194195 1.022159 \n", "ENSMUSG00000087095 0.829431 1.394088 \n", "ENSMUSG00000043969 0.829431 1.379740 \n", "\n", " ENSMUSG00000103025 ENSMUSG00000089699 \\\n", "ENSMUSG00000025902 0.000000 0.000000 \n", "ENSMUSG00000002459 0.000000 0.000000 \n", "ENSMUSG00000025905 0.000000 0.000000 \n", "ENSMUSG00000033774 0.000000 0.000000 \n", "ENSMUSG00000033740 0.000000 0.000000 \n", "... ... ... \n", "ENSMUSG00000033717 0.184168 0.829170 \n", "ENSMUSG00000025085 1.015793 2.491248 \n", "ENSMUSG00000025089 1.363394 2.028171 \n", "ENSMUSG00000087095 0.623578 1.044095 \n", "ENSMUSG00000043969 0.915374 0.935836 \n", "\n", " ENSMUSG00000103201 ENSMUSG00000103147 ... non-gene \\\n", "ENSMUSG00000025902 0.000000 0.000000 ... 0.0 \n", "ENSMUSG00000002459 0.000000 0.000000 ... 0.0 \n", "ENSMUSG00000025905 0.000000 0.000000 ... 0.0 \n", "ENSMUSG00000033774 0.000000 0.000000 ... 0.0 \n", "ENSMUSG00000033740 0.000000 0.000000 ... 0.0 \n", "... ... ... ... ... \n", "ENSMUSG00000033717 0.495507 0.624326 ... 0.0 \n", "ENSMUSG00000025085 2.243846 1.349966 ... 0.0 \n", "ENSMUSG00000025089 2.028171 1.242715 ... 0.0 \n", "ENSMUSG00000087095 0.559250 0.847598 ... 0.0 \n", "ENSMUSG00000043969 0.559250 0.258592 ... 0.0 \n", "\n", " non-gene non-gene non-gene non-gene non-gene \\\n", "ENSMUSG00000025902 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000002459 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000025905 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000033774 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000033740 0.0 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... \n", "ENSMUSG00000033717 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000025085 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000025089 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000087095 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000043969 0.0 0.0 0.0 0.0 0.0 \n", "\n", " non-gene non-gene non-gene non-gene \n", "ENSMUSG00000025902 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000002459 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000025905 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000033774 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000033740 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "ENSMUSG00000033717 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000025085 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000025089 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000087095 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000043969 0.0 0.0 0.0 0.0 \n", "\n", "[1686 rows x 156467 columns]" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ENSMUSG00000102693ENSMUSG00000064842ENSMUSG00000051951ENSMUSG00000102851ENSMUSG00000103377ENSMUSG00000104017ENSMUSG00000103025ENSMUSG00000089699ENSMUSG00000103201ENSMUSG00000103147...non-genenon-genenon-genenon-genenon-genenon-genenon-genenon-genenon-genenon-gene
ENSMUSG000001026930.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000648420.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000000519510.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000001028510.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
ENSMUSG000001033770.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
..................................................................
non-gene0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
non-gene0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
non-gene0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
non-gene0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
non-gene0.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", "

156467 rows × 156467 columns

\n", "
" ], "text/plain": [ " ENSMUSG00000102693 ENSMUSG00000064842 \\\n", "ENSMUSG00000102693 0.0 0.0 \n", "ENSMUSG00000064842 0.0 0.0 \n", "ENSMUSG00000051951 0.0 0.0 \n", "ENSMUSG00000102851 0.0 0.0 \n", "ENSMUSG00000103377 0.0 0.0 \n", "... ... ... \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "\n", " ENSMUSG00000051951 ENSMUSG00000102851 \\\n", "ENSMUSG00000102693 0.0 0.0 \n", "ENSMUSG00000064842 0.0 0.0 \n", "ENSMUSG00000051951 0.0 0.0 \n", "ENSMUSG00000102851 0.0 0.0 \n", "ENSMUSG00000103377 0.0 0.0 \n", "... ... ... \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "\n", " ENSMUSG00000103377 ENSMUSG00000104017 \\\n", "ENSMUSG00000102693 0.0 0.0 \n", "ENSMUSG00000064842 0.0 0.0 \n", "ENSMUSG00000051951 0.0 0.0 \n", "ENSMUSG00000102851 0.0 0.0 \n", "ENSMUSG00000103377 0.0 0.0 \n", "... ... ... \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "\n", " ENSMUSG00000103025 ENSMUSG00000089699 \\\n", "ENSMUSG00000102693 0.0 0.0 \n", "ENSMUSG00000064842 0.0 0.0 \n", "ENSMUSG00000051951 0.0 0.0 \n", "ENSMUSG00000102851 0.0 0.0 \n", "ENSMUSG00000103377 0.0 0.0 \n", "... ... ... \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "non-gene 0.0 0.0 \n", "\n", " ENSMUSG00000103201 ENSMUSG00000103147 ... non-gene \\\n", "ENSMUSG00000102693 0.0 0.0 ... 0.0 \n", "ENSMUSG00000064842 0.0 0.0 ... 0.0 \n", "ENSMUSG00000051951 0.0 0.0 ... 0.0 \n", "ENSMUSG00000102851 0.0 0.0 ... 0.0 \n", "ENSMUSG00000103377 0.0 0.0 ... 0.0 \n", "... ... ... ... ... \n", "non-gene 0.0 0.0 ... 0.0 \n", "non-gene 0.0 0.0 ... 0.0 \n", "non-gene 0.0 0.0 ... 0.0 \n", "non-gene 0.0 0.0 ... 0.0 \n", "non-gene 0.0 0.0 ... 0.0 \n", "\n", " non-gene non-gene non-gene non-gene non-gene \\\n", "ENSMUSG00000102693 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000064842 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000051951 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000102851 0.0 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000103377 0.0 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... ... \n", "non-gene 0.0 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 0.0 \n", "\n", " non-gene non-gene non-gene non-gene \n", "ENSMUSG00000102693 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000064842 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000051951 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000102851 0.0 0.0 0.0 0.0 \n", "ENSMUSG00000103377 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "non-gene 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 \n", "non-gene 0.0 0.0 0.0 0.0 \n", "\n", "[156467 rows x 156467 columns]" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_jac_sim" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [], "source": [ "df_jac_sim_subset_matrix = df_jac_sim[df_jac_sim.index.isin(marker_table.index)]\n", "df_jac_sim_subset_genes = df_jac_sim_subset_matrix.index.tolist()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import h5py\n", "import logging\n", "import numpy as np\n", "import pandas as pd\n", "from hicmatrix import HiCMatrix as hm\n", "from hicmatrix.lib import MatrixFileHandler\n", "from scipy.sparse import csr_matrix, dia_matrix, triu, tril, coo_matrix\n", "import scipy.stats as stats\n", "import os.path\n", "\n", " \n", "def calc_auc(exp_file, jac_sim, outfile, auc_type, given_top_percentile=1 ,jac_sim_species='a', exp_file_species='a', ortho_genes=\"ortho_genes\"):\n", " \n", " exp_genes_all = [x[3].decode() for x in exp_file.cut_intervals]\n", " exp_matrix = exp_file.matrix\n", " \n", " \n", " all_genes_all = [x[3].decode() for x in jac_sim.cut_intervals]\n", " \n", " entire_matrix = jac_sim.matrix\n", " entire_matrix = entire_matrix.astype('float32')\n", " \n", " \n", " \n", " if jac_sim_species != exp_file_species:\n", " df_1_1 = pd.read_csv(ortho_genes)\n", " df_1_1 = df_1_1.drop_duplicates(subset=[jac_sim_species], keep=False)\n", " df_1_1 = df_1_1.drop_duplicates(subset=[exp_file_species], keep=False)\n", " jac_sim_species_ortho_subset = list (set(all_genes_all) & set(df_1_1[jac_sim_species].tolist()))\n", " df_1_1 = df_1_1[df_1_1[jac_sim_species].isin(jac_sim_species_ortho_subset)]\n", " exp_file_species_ortho_subset = list (set(exp_genes_all) & set(df_1_1[exp_file_species].tolist()))\n", " df_1_1 = df_1_1[df_1_1[exp_file_species].isin(exp_file_species_ortho_subset)]\n", " subset_genes_exp_file = df_1_1[exp_file_species].tolist()\n", " subset_genes_jac_sim = df_1_1[jac_sim_species].tolist()\n", " \n", " else:\n", " subset_genes_exp_file = list (set(all_genes_all) & set(exp_genes_all))\n", " subset_genes_jac_sim = list (set(all_genes_all) & set(exp_genes_all))\n", " \n", " exp_genes_index_list = [i for i, value in enumerate(exp_genes_all) if value in subset_genes_exp_file]\n", " exp_genes = [value for i, value in enumerate(exp_genes_all) if value in subset_genes_exp_file]\n", " exp_matrix = csr_matrix(exp_matrix)[exp_genes_index_list, :][:, exp_genes_index_list]\n", " \n", " updated_cut_intervals = [exp_file.cut_intervals[x] for x in exp_genes_index_list]\n", " exp_file.update_matrix(exp_matrix, updated_cut_intervals)\n", " \n", " exp_matrix = exp_matrix.toarray()\n", " \n", " \n", "\n", " rank_abs = lambda x: stats.rankdata(x, method='ordinal')\n", " exp_matrix = np.apply_along_axis(rank_abs, 1, exp_matrix)\n", " \n", " exp_matrix = exp_matrix * 1.0\n", " \n", " exp_matrix = exp_matrix.astype('float32')\n", " \n", " \n", " \n", " \n", " chr_list_2 = exp_file.getChrNames()\n", "\n", " \n", " all_gene_index_list = [i for i, value in enumerate(all_genes_all) if value in subset_genes_jac_sim]\n", " all_genes = [value for i, value in enumerate(all_genes_all) if value in subset_genes_jac_sim]\n", " \n", " entire_matrix = csr_matrix(entire_matrix)[all_gene_index_list, :][:, all_gene_index_list]\n", " \n", " updated_cut_intervals = [jac_sim.cut_intervals[x] for x in all_gene_index_list]\n", " jac_sim.update_matrix(entire_matrix, updated_cut_intervals)\n", " \n", " entire_matrix = entire_matrix.toarray()\n", " entire_matrix = entire_matrix.astype('float32')\n", " \n", " chr_list_1 = jac_sim.getChrNames()\n", "\n", " max_value = entire_matrix.max() + 1 + exp_matrix.max()\n", " max_value = max_value.astype('float32')\n", "\n", " if auc_type == 'inter_only':\n", " \n", " for chrom in chr_list_1:\n", "\n", " start, end = jac_sim.getChrBinRange(chrom)\n", " \n", " entire_matrix[start: end, start: end] = max_value \n", " \n", "\n", " \n", "\n", " \n", " \n", " elif auc_type == 'intra_only':\n", "\n", "\n", " for chrom in chr_list_2:\n", "\n", " start, end = exp_file.getChrBinRange(chrom)\n", " \n", " coordinate_matrix[start: end, start: end] = max_value\n", " \n", " inter_coodinates = np.where(coordinate_matrix != max_value)\n", " x_inter = inter_coodinates[0].tolist()\n", " y_inter = inter_coodinates[1].tolist()\n", " exp_matrix[x_inter, y_inter] = max_value\n", " np.fill_diagonal(exp_matrix , max_value)\n", " #exp_matrix.setdiag(max_value, k=0)\n", "\n", "\n", " else:\n", "\n", " np.fill_diagonal(entire_matrix , max_value)\n", "\n", " np.fill_diagonal(exp_matrix , max_value)\n", " #exp_matrix.setdiag(max_value, k=0)\n", " #entire_matrix.setdiag(max_value, k=0)\n", "\n", "\n", " df_jac = pd.DataFrame(entire_matrix , index=all_genes, columns = all_genes)\n", " df_exp = pd.DataFrame(exp_matrix , index=exp_genes, columns = exp_genes)\n", "\n", "\n", " df_jac_subset = df_jac.loc[subset_genes_jac_sim, subset_genes_jac_sim]\n", "\n", "\n", " coodinates_1 = np.where(df_jac_subset == max_value)\n", "\n", "\n", " x_coo = coodinates_1[0].tolist()\n", " y_coo = coodinates_1[1].tolist() \n", "\n", " df_jac_subset.to_numpy()[x_coo, y_coo] = max_value\n", "\n", "\n", " \n", " rank_abs = lambda x: stats.rankdata(x)\n", " predicts2 = np.apply_along_axis(rank_abs, 1, df_jac_subset)\n", " predicts2 = predicts2.astype('float')\n", " \n", " predicts2[x_coo, y_coo] = np.nan\n", " \n", " top_percentile = 100 - given_top_percentile\n", " \n", " exp_upper = lambda x: np.where(x < np.percentile(x[~np.isnan(x)] , top_percentile), 0, 1.0) if x[~np.isnan(x)].shape[0] > 0 else np.zeros(x.shape[0])\n", " tp = np.apply_along_axis(exp_upper, 1, df_exp_subset)\n", " tp[x_coo, y_coo] = np.nan\n", " exp_upper = lambda x: np.where(x >= np.percentile(x[~np.isnan(x)] , top_percentile), 0, 1.0) if x[~np.isnan(x)].shape[0] > 0 else np.zeros(x.shape[0])\n", " tn = np.apply_along_axis(exp_upper, 1, df_exp_subset)\n", " tn[x_coo, y_coo] = np.nan\n", " pos_rank_sum = tp * predicts2\n", " auc_array = (((np.nansum(pos_rank_sum, axis=1) / (np.nansum(tp, axis=1)) )- (np.nansum(tp, axis=1) + 1)/2)) / np.nansum(tn, axis=1)\n", " \n", " df = pd.DataFrame(columns = ['gene_id_jac_sim', 'chrom_jac_sim', 'gene_id_exp_file', 'chrom_exp_file', 'auc']) \n", " df['auc'] = auc_array.tolist()\n", " df['gene_id_exp_file'] = subset_genes_exp_file\n", " df['gene_id_jac_sim'] = subset_genes_jac_sim\n", " \n", " gene_list = [x[3].decode() for x in jac_sim.cut_intervals]\n", " _chrom_list = [x[0] for x in jac_sim.cut_intervals]\n", " df['chrom_jac_sim'] = [_chrom_list[gene_list.index(x)] for x in df['gene_id_jac_sim']]\n", "\n", " gene_list = [x[3].decode() for x in exp_file.cut_intervals]\n", " _chrom_list = [x[0] for x in exp_file.cut_intervals]\n", " df['chrom_exp_file'] = [_chrom_list[gene_list.index(x)] for x in df['gene_id_exp_file']]\n", " df.to_csv(outfile, sep='\\t', index=False)\n", " \n", " \n", "if __name__ == '__main__':\n", "\n", " \n", " import argparse\n", " parser = argparse.ArgumentParser()\n", "\n", " parser.add_argument('--outfile', default='tss',\n", " help='tss or tss_max')\n", " parser.add_argument('--exp_file_path', default='tss',\n", " help='tss or tss_max')\n", " parser.add_argument('--jac_sim_path', default='tss',\n", " help='tss or tss_max')\n", " parser.add_argument('--auc_type', default='intra_only',\n", " help='tss or tss_max')\n", " parser.add_argument('--jac_sim_species', default='a',\n", " help='tss or tss_max')\n", " parser.add_argument('--exp_file_species', default='a',\n", " help='tss or tss_max')\n", " parser.add_argument('--ortho_genes', default='b',\n", " help='tss or tss_max')\n", " parser.add_argument('--given_top_percentile', default=1,\n", " help='tss or tss_max')\n", " \n", "\n", "\n", " args = parser.parse_args()\n", " \n", " if not os.path.isfile(args.outfile):\n", "\n", " \n", " jac_sim = hm.hiCMatrix(args.jac_sim_path)\n", " exp_file = hm.hiCMatrix(args.exp_file_path)\n", "\n", " print (args.jac_sim_path)\n", " print (args.exp_file_path)\n", "\n", " calc_auc(exp_file, jac_sim, args.outfile, args.auc_type, given_top_percentile=int(args.given_top_percentile), jac_sim_species=args.jac_sim_species, exp_file_species=args.exp_file_species, ortho_genes=args.ortho_genes)\n" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "ename": "ImportError", "evalue": "cannot import name 'UMAP' from 'umap' (/grid/gillis/home/lohia/.conda/envs/hicexplorer/lib/python3.8/site-packages/umap/__init__.py)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mumap\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mUMAP\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;31m#import plotly.express as px\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mreducer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mUMAP\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_components\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minit\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'random'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrandom_state\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mImportError\u001b[0m: cannot import name 'UMAP' from 'umap' (/grid/gillis/home/lohia/.conda/envs/hicexplorer/lib/python3.8/site-packages/umap/__init__.py)" ] } ], "source": [ "from umap import UMAP\n", "#import plotly.express as px\n", "reducer = UMAP(n_components=2, init='random', random_state=0)" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
groupcell_typerankgenerecurrenceaurocfold_changefold_change_detectionexpressionprecision...population_sizen_datasetsscSSsnSSscCv2snCv2snCv3MscCv3snCv3Zgene_id
0Non-NeuronalAstro1SLC1A260.99576979.3279703.9252416011.8769200.627385...2775.1428577FalseTrueTrueTrueTrueTrueTrueENSMUSG00000005089
1Non-NeuronalAstro2NTM60.97897718.6718753.0942783039.7153100.591128...2775.1428577FalseTrueTrueTrueTrueTrueTrueENSMUSG00000059974
2Non-NeuronalAstro3SLC1A360.97247016.1644213.7156633039.4917780.620450...2775.1428577FalseTrueTrueTrueTrueTrueTrueENSMUSG00000005360
3Non-NeuronalAstro4GABRB160.95802648.2320325.0035641849.9133500.683010...2775.1428577FalseTrueTrueTrueTrueTrueTrueENSMUSG00000029212
4Non-NeuronalAstro5TSPAN760.95618612.6827712.1627952402.9567820.507171...2775.1428577FalseTrueTrueTrueTrueTrueTrueENSMUSG00000058254
..................................................................
2263Non-NeuronalVLMC95GM3062420.63182617.6777369.8740280.0000000.384595...473.0000005FalseNaNTrueFalseTrueNaNFalseENSMUSG00000112430
2264Non-NeuronalVLMC96SH3PXD2A20.6309812.4103482.1168790.0000000.127298...473.0000005FalseNaNFalseFalseTrueNaNTrueENSMUSG00000053617
2265Non-NeuronalVLMC97NXN20.6294920.5829570.2565020.0000000.054695...473.0000005FalseNaNFalseFalseTrueNaNTrueENSMUSG00000020844
2266Non-NeuronalVLMC98PRDM620.62541613.18969212.1744970.000000NaN...473.0000005FalseNaNFalseFalseTrueNaNTrueENSMUSG00000069378
2267Non-NeuronalVLMC100SNED120.6134291.2942670.9016680.000000NaN...473.0000005FalseNaNFalseFalseTrueNaNTrueENSMUSG00000047793
\n", "

2268 rows × 21 columns

\n", "
" ], "text/plain": [ " group cell_type rank gene recurrence auroc \\\n", "0 Non-Neuronal Astro 1 SLC1A2 6 0.995769 \n", "1 Non-Neuronal Astro 2 NTM 6 0.978977 \n", "2 Non-Neuronal Astro 3 SLC1A3 6 0.972470 \n", "3 Non-Neuronal Astro 4 GABRB1 6 0.958026 \n", "4 Non-Neuronal Astro 5 TSPAN7 6 0.956186 \n", "... ... ... ... ... ... ... \n", "2263 Non-Neuronal VLMC 95 GM30624 2 0.631826 \n", "2264 Non-Neuronal VLMC 96 SH3PXD2A 2 0.630981 \n", "2265 Non-Neuronal VLMC 97 NXN 2 0.629492 \n", "2266 Non-Neuronal VLMC 98 PRDM6 2 0.625416 \n", "2267 Non-Neuronal VLMC 100 SNED1 2 0.613429 \n", "\n", " fold_change fold_change_detection expression precision ... \\\n", "0 79.327970 3.925241 6011.876920 0.627385 ... \n", "1 18.671875 3.094278 3039.715310 0.591128 ... \n", "2 16.164421 3.715663 3039.491778 0.620450 ... \n", "3 48.232032 5.003564 1849.913350 0.683010 ... \n", "4 12.682771 2.162795 2402.956782 0.507171 ... \n", "... ... ... ... ... ... \n", "2263 17.677736 9.874028 0.000000 0.384595 ... \n", "2264 2.410348 2.116879 0.000000 0.127298 ... \n", "2265 0.582957 0.256502 0.000000 0.054695 ... \n", "2266 13.189692 12.174497 0.000000 NaN ... \n", "2267 1.294267 0.901668 0.000000 NaN ... \n", "\n", " population_size n_datasets scSS snSS scCv2 snCv2 snCv3M scCv3 \\\n", "0 2775.142857 7 False True True True True True \n", "1 2775.142857 7 False True True True True True \n", "2 2775.142857 7 False True True True True True \n", "3 2775.142857 7 False True True True True True \n", "4 2775.142857 7 False True True True True True \n", "... ... ... ... ... ... ... ... ... \n", "2263 473.000000 5 False NaN True False True NaN \n", "2264 473.000000 5 False NaN False False True NaN \n", "2265 473.000000 5 False NaN False False True NaN \n", "2266 473.000000 5 False NaN False False True NaN \n", "2267 473.000000 5 False NaN False False True NaN \n", "\n", " snCv3Z gene_id \n", "0 True ENSMUSG00000005089 \n", "1 True ENSMUSG00000059974 \n", "2 True ENSMUSG00000005360 \n", "3 True ENSMUSG00000029212 \n", "4 True ENSMUSG00000058254 \n", "... ... ... \n", "2263 False ENSMUSG00000112430 \n", "2264 True ENSMUSG00000053617 \n", "2265 True ENSMUSG00000020844 \n", "2266 True ENSMUSG00000069378 \n", "2267 True ENSMUSG00000047793 \n", "\n", "[2268 rows x 21 columns]" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "marker_list[['gene_id', 'cell_type']]" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ENSMUSG00000102693ENSMUSG00000064842ENSMUSG00000051951ENSMUSG00000102851ENSMUSG00000103377ENSMUSG00000104017ENSMUSG00000103025ENSMUSG00000089699ENSMUSG00000103201ENSMUSG00000103147...ENSMUSG00000096578ENSMUSG00000088894ENSMUSG00000074733ENSMUSG00000070263ENSMUSG00000094649ENSMUSG00000069475ENSMUSG00000059326ENSMUSG00000095993gene_idcell_type
00.1781460.1667130.1607930.2017590.2098730.2098730.1657550.1595540.1597540.163636...-0.000373-0.000444-0.000516-0.000346-0.000346-0.000346-0.000409-0.000384ENSMUSG00000025902Endo
10.1080310.0975230.0819690.1185870.1198690.1198690.0955990.0944660.0948760.093490...-0.000413-0.000351-0.0003550.0000590.0000590.000059-0.000428-0.000219ENSMUSG00000002459Astro
20.1245280.1189700.0958820.1404690.1338040.1338040.1065760.1025040.1020560.103876...-0.001213-0.001144-0.001116-0.000780-0.000780-0.000780-0.001023-0.000859ENSMUSG00000025905L5 IT
30.1245280.1189700.0958820.1404690.1338040.1338040.1065760.1025040.1020560.103876...-0.001213-0.001144-0.001116-0.000780-0.000780-0.000780-0.001023-0.000859ENSMUSG00000025905L6 IT
40.1245280.1189700.0958820.1404690.1338040.1338040.1065760.1025040.1020560.103876...-0.001213-0.001144-0.001116-0.000780-0.000780-0.000780-0.001023-0.000859ENSMUSG00000025905L6 IT Car3
..................................................................
2188-0.001659-0.001450-0.001149-0.001612-0.001151-0.001151-0.000950-0.000977-0.000920-0.000996...0.0323680.0314940.0283450.0320370.0320370.0320370.0288040.028606ENSMUSG00000033717L6b
2189-0.002251-0.002021-0.001267-0.002103-0.002146-0.002146-0.001643-0.001495-0.001412-0.001449...0.0458090.0448040.0417110.0452280.0452280.0452280.0404450.039271ENSMUSG00000025085Endo
2190-0.001260-0.000996-0.000322-0.001172-0.000955-0.000955-0.000665-0.000767-0.0007670.000069...0.0509670.0503580.0460300.0498950.0498950.0498950.0435350.043980ENSMUSG00000025089L6 IT Car3
2191-0.001703-0.001529-0.001257-0.001613-0.001380-0.001380-0.001215-0.001186-0.001096-0.001132...0.1291760.1266050.1146280.1229670.1229670.1229670.1059430.103637ENSMUSG00000087095L2/3 IT
2192-0.001687-0.001485-0.001246-0.001549-0.001315-0.001315-0.001153-0.001147-0.001077-0.001097...0.1311760.1289060.1182430.1253120.1253120.1253120.1088400.107101ENSMUSG00000043969L2/3 IT
\n", "

2193 rows × 50227 columns

\n", "
" ], "text/plain": [ " ENSMUSG00000102693 ENSMUSG00000064842 ENSMUSG00000051951 \\\n", "0 0.178146 0.166713 0.160793 \n", "1 0.108031 0.097523 0.081969 \n", "2 0.124528 0.118970 0.095882 \n", "3 0.124528 0.118970 0.095882 \n", "4 0.124528 0.118970 0.095882 \n", "... ... ... ... \n", "2188 -0.001659 -0.001450 -0.001149 \n", "2189 -0.002251 -0.002021 -0.001267 \n", "2190 -0.001260 -0.000996 -0.000322 \n", "2191 -0.001703 -0.001529 -0.001257 \n", "2192 -0.001687 -0.001485 -0.001246 \n", "\n", " ENSMUSG00000102851 ENSMUSG00000103377 ENSMUSG00000104017 \\\n", "0 0.201759 0.209873 0.209873 \n", "1 0.118587 0.119869 0.119869 \n", "2 0.140469 0.133804 0.133804 \n", "3 0.140469 0.133804 0.133804 \n", "4 0.140469 0.133804 0.133804 \n", "... ... ... ... \n", "2188 -0.001612 -0.001151 -0.001151 \n", "2189 -0.002103 -0.002146 -0.002146 \n", "2190 -0.001172 -0.000955 -0.000955 \n", "2191 -0.001613 -0.001380 -0.001380 \n", "2192 -0.001549 -0.001315 -0.001315 \n", "\n", " ENSMUSG00000103025 ENSMUSG00000089699 ENSMUSG00000103201 \\\n", "0 0.165755 0.159554 0.159754 \n", "1 0.095599 0.094466 0.094876 \n", "2 0.106576 0.102504 0.102056 \n", "3 0.106576 0.102504 0.102056 \n", "4 0.106576 0.102504 0.102056 \n", "... ... ... ... \n", "2188 -0.000950 -0.000977 -0.000920 \n", "2189 -0.001643 -0.001495 -0.001412 \n", "2190 -0.000665 -0.000767 -0.000767 \n", "2191 -0.001215 -0.001186 -0.001096 \n", "2192 -0.001153 -0.001147 -0.001077 \n", "\n", " ENSMUSG00000103147 ... ENSMUSG00000096578 ENSMUSG00000088894 \\\n", "0 0.163636 ... -0.000373 -0.000444 \n", "1 0.093490 ... -0.000413 -0.000351 \n", "2 0.103876 ... -0.001213 -0.001144 \n", "3 0.103876 ... -0.001213 -0.001144 \n", "4 0.103876 ... -0.001213 -0.001144 \n", "... ... ... ... ... \n", "2188 -0.000996 ... 0.032368 0.031494 \n", "2189 -0.001449 ... 0.045809 0.044804 \n", "2190 0.000069 ... 0.050967 0.050358 \n", "2191 -0.001132 ... 0.129176 0.126605 \n", "2192 -0.001097 ... 0.131176 0.128906 \n", "\n", " ENSMUSG00000074733 ENSMUSG00000070263 ENSMUSG00000094649 \\\n", "0 -0.000516 -0.000346 -0.000346 \n", "1 -0.000355 0.000059 0.000059 \n", "2 -0.001116 -0.000780 -0.000780 \n", "3 -0.001116 -0.000780 -0.000780 \n", "4 -0.001116 -0.000780 -0.000780 \n", "... ... ... ... \n", "2188 0.028345 0.032037 0.032037 \n", "2189 0.041711 0.045228 0.045228 \n", "2190 0.046030 0.049895 0.049895 \n", "2191 0.114628 0.122967 0.122967 \n", "2192 0.118243 0.125312 0.125312 \n", "\n", " ENSMUSG00000069475 ENSMUSG00000059326 ENSMUSG00000095993 \\\n", "0 -0.000346 -0.000409 -0.000384 \n", "1 0.000059 -0.000428 -0.000219 \n", "2 -0.000780 -0.001023 -0.000859 \n", "3 -0.000780 -0.001023 -0.000859 \n", "4 -0.000780 -0.001023 -0.000859 \n", "... ... ... ... \n", "2188 0.032037 0.028804 0.028606 \n", "2189 0.045228 0.040445 0.039271 \n", "2190 0.049895 0.043535 0.043980 \n", "2191 0.122967 0.105943 0.103637 \n", "2192 0.125312 0.108840 0.107101 \n", "\n", " gene_id cell_type \n", "0 ENSMUSG00000025902 Endo \n", "1 ENSMUSG00000002459 Astro \n", "2 ENSMUSG00000025905 L5 IT \n", "3 ENSMUSG00000025905 L6 IT \n", "4 ENSMUSG00000025905 L6 IT Car3 \n", "... ... ... \n", "2188 ENSMUSG00000033717 L6b \n", "2189 ENSMUSG00000025085 Endo \n", "2190 ENSMUSG00000025089 L6 IT Car3 \n", "2191 ENSMUSG00000087095 L2/3 IT \n", "2192 ENSMUSG00000043969 L2/3 IT \n", "\n", "[2193 rows x 50227 columns]" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pcc_sim.merge(marker_list[['gene_id', 'cell_type']], left_on=df_pcc_sim.index, right_on='gene_id')" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.00000000e+00, 1.00000000e+00],\n", " [ 5.71256919e-01, 5.71256919e-01],\n", " [ 5.05523164e-01, 5.05523164e-01],\n", " ...,\n", " [-7.89479182e-04, -7.89479182e-04],\n", " [-8.52762882e-04, -8.52762882e-04],\n", " [-9.40203123e-04, -9.40203123e-04]])" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pcc_sim[\n", " [\n", " \"ENSMUSG00000102693\",\n", " \"ENSMUSG00000102693\",\n", " ]\n", "].values" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 1.00000000e+00, 5.71256919e-01, 5.05523164e-01, ...,\n", " -7.89479182e-04, -8.52762882e-04, -9.40203123e-04],\n", " [ 5.71256919e-01, 1.00000000e+00, 5.19787869e-01, ...,\n", " -4.96218317e-04, -5.28529783e-04, -6.26098922e-04],\n", " [ 5.05523164e-01, 5.19787869e-01, 1.00000000e+00, ...,\n", " -6.11435339e-04, -7.07052226e-04, -7.03668866e-04],\n", " ...,\n", " [-7.89479182e-04, -4.96218317e-04, -6.11435339e-04, ...,\n", " 1.00000000e+00, 5.37342233e-01, 6.26562922e-01],\n", " [-8.52762882e-04, -5.28529783e-04, -7.07052226e-04, ...,\n", " 5.37342233e-01, 1.00000000e+00, 7.00236598e-01],\n", " [-9.40203123e-04, -6.26098922e-04, -7.03668866e-04, ...,\n", " 6.26562922e-01, 7.00236598e-01, 1.00000000e+00]])" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_pcc_sim.values" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "hicexp", "language": "python", "name": "hicexp" }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 4 }