{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# What is the contribution of paralogs to SL pairs that share protein domains?" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from intermine.webservice import Service\n", "import numpy as np\n", "import scipy.io\n", "import seaborn as sns\n", "from scipy import stats, optimize, interpolate\n", "import pandas as pd\n", "from collections import defaultdict \n", "import math\n", "import matplotlib.pyplot as plt\n", "from scipy.stats import norm, lognorm\n", "from scipy import stats\n", "import matplotlib.cm as cm\n", "import matplotlib.mlab as mlab\n", "import os, fnmatch" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "script_dir = os.path.dirname('__file__') #<-- absolute dir the script is in\n", "rel_path_sl=\"datasets/data-synthetic-lethals.xlsx\"\n", "rel_path_paralogs='datasets/paralogs-all-unique-SL-pairs.xlsx'\n", "\n", "abs_file_path_sl = os.path.join(script_dir, rel_path_sl)\n", "abs_file_path_paralogs = os.path.join(script_dir, rel_path_paralogs)\n", "\n", "# os.chdir('../') #<-- for binder os.chdir('../')\n", "\n", "data_sl=pd.read_excel(abs_file_path_sl,header=0)\n", "all_paralogs_from_sl=pd.read_excel(abs_file_path_paralogs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Inspecting the paralogs pairs\n", "\n", "- this is the first check to analyze if the reason why a SL pair shares domains is because they are also paralogs." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "query_paralogs_pd=all_paralogs_from_sl.drop(columns='Unnamed: 0')\n", "query_paralogs_pd.columns=['name-gene','name-paralogue']\n", "query_paralogs_pd_withoutnan=query_paralogs_pd.dropna()\n", "query_paralogs_pd_withoutnan.index=np.arange(0,len(query_paralogs_pd_withoutnan))\n", "query_paralogs_pd=query_paralogs_pd_withoutnan" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Taking the indexes of the paralogs pairs that are also synthetic lethal" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "indexes_sl_query=[]\n", "\n", "for i in np.arange(0,len(query_paralogs_pd)):\n", " paralog_target=query_paralogs_pd[query_paralogs_pd['name-gene']==query_paralogs_pd['name-gene'][i]]['name-paralogue'].tolist()[0]\n", " list_targets_sl=data_sl[data_sl['gene-query-name']==query_paralogs_pd['name-gene'][i]]['gene-target-name'].tolist()\n", "\n", "\n", " \n", " if paralog_target in list_targets_sl:\n", " indexes_sl_query.append(query_paralogs_pd[query_paralogs_pd['name-paralogue']==paralog_target].index[0])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Putting 1's if the paralog pair is also SL" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "sL_values=np.zeros_like(query_paralogs_pd['name-gene'])\n", "for i in np.arange(0,len(query_paralogs_pd)):\n", " if i in indexes_sl_query:\n", " sL_values[i]=1\n", "query_paralogs_pd['sL']=sL_values\n", "\n", "paralogs_sl_pd=query_paralogs_pd" ] }, { "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", "
name-genename-paraloguesL
2ADE16ADE171
6AFT1AFT21
8AGA1FIG21
11AIR1AIR21
16ALP1CAN11
\n", "
" ], "text/plain": [ " name-gene name-paralogue sL\n", "2 ADE16 ADE17 1\n", "6 AFT1 AFT2 1\n", "8 AGA1 FIG2 1\n", "11 AIR1 AIR2 1\n", "16 ALP1 CAN1 1" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sl_that_are_paralogs=paralogs_sl_pd[paralogs_sl_pd['sL']==1]\n", "sl_that_are_paralogs.head()" ] }, { "cell_type": "code", "execution_count": 7, "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", "
name-genename-paraloguesL
0ADE16ADE171
1AFT1AFT21
2AGA1FIG21
3AIR1AIR21
4ALP1CAN11
............
171YCK1YCK21
172YPC1YDC11
173YPK1YPK21
174YPS1MKC71
175YPT31YPT321
\n", "

176 rows × 3 columns

\n", "
" ], "text/plain": [ " name-gene name-paralogue sL\n", "0 ADE16 ADE17 1\n", "1 AFT1 AFT2 1\n", "2 AGA1 FIG2 1\n", "3 AIR1 AIR2 1\n", "4 ALP1 CAN1 1\n", ".. ... ... ..\n", "171 YCK1 YCK2 1\n", "172 YPC1 YDC1 1\n", "173 YPK1 YPK2 1\n", "174 YPS1 MKC7 1\n", "175 YPT31 YPT32 1\n", "\n", "[176 rows x 3 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sl_that_are_paralogs.set_index(np.arange(0,len(sl_that_are_paralogs)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What is the contribution of paralogs to SL that share protein domains?" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "pairs_sL=np.load('pairs-sL-that-share-domains.npy')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "shared_sL_paralogs=[]\n", "for i in np.arange(0,len(sl_that_are_paralogs)):\n", " for j in np.arange(0,len(pairs_sL)):\n", " if set(sl_that_are_paralogs.iloc[i,0:2].tolist())==set(pairs_sL[j]):\n", " shared_sL_paralogs.append(pairs_sL[j])\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The contribution of paralogs to the SL pairs that shared domains is = 1.6042780748663101 %\n", "Only 12 out of 176 paralogs that are SL , share annotated protein domains.\n", "The number of paralogs that are SL out of the total number of paralogs is 176 out of 720 = 24.444444444444443 %\n", "The contribution of paralogs to the total number of SL pairs is = 0.9848357674444631 %\n", "The number of SL that share domains out of the total number of SL pairs is = 4.185552011638968 %\n" ] } ], "source": [ "print('The contribution of paralogs to the SL pairs that shared domains is =', 100*len(shared_sL_paralogs)/len(pairs_sL),'%')\n", "print('Only',len(shared_sL_paralogs),'out of',len(sl_that_are_paralogs),'paralogs that are SL , share annotated protein domains.')\n", "\n", "print('The number of paralogs that are SL out of the total number of paralogs is',len(sl_that_are_paralogs),'out of',len(paralogs_sl_pd),'=',100*len(sl_that_are_paralogs)/len(paralogs_sl_pd),'%')\n", "\n", "print('The contribution of paralogs to the total number of SL pairs is =', 100*len(sl_that_are_paralogs)/17871,'%')\n", "print('The number of SL that share domains out of the total number of SL pairs is =',100*len(pairs_sL)/17871,'%')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# Pie chart\n", "labels = ['SL-paralogs','Paralogs non SL']\n", "sizes = [len(sl_that_are_paralogs)/len(paralogs_sl_pd),len(paralogs_sl_pd)/len(paralogs_sl_pd)-len(sl_that_are_paralogs)/len(paralogs_sl_pd)]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { "image/png": "C:\\Users\\linigodelacruz\\Documents\\PhD_2018\\Documentation\\jupyter-book-deployment\\jupyter-book\\mini_book\\docs\\_build\\jupyter_execute\\paralogs-and-SL-pairs_16_0.png" } }, "output_type": "display_data" } ], "source": [ "#colors\n", "colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']\n", " \n", "fig1, ax1 = plt.subplots()\n", "patches, texts, autotexts = ax1.pie(sizes, colors = colors, labels=labels, autopct='%1.1f%%', startangle=90)\n", "for text in texts:\n", " text.set_color('grey')\n", "for autotext in autotexts:\n", " autotext.set_color('grey')\n", "# Equal aspect ratio ensures that pie is drawn as a circle\n", "ax1.axis('equal') \n", "plt.tight_layout()" ] } ], "metadata": { "jupytext": { "text_representation": { "extension": ".md", "format_name": "myst" } }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.8" }, "source_map": [ 10, 14, 31, 43, 50, 56, 60, 72, 76, 86, 91, 93, 97, 102, 112, 123, 129 ] }, "nbformat": 4, "nbformat_minor": 4 }