{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualise KEGG Pathways with Custom Colours\n", "The goal is to colour nodes from BETS output with different colours in the KEGG pathway. Code adapted from [here](https://nbviewer.jupyter.org/github/widdowquinn/notebooks/blob/master/Biopython_KGML_intro.ipynb). " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from Bio import SeqIO\n", "from Bio.KEGG.REST import *\n", "from Bio.KEGG.KGML import KGML_parser\n", "from Bio.Graphics.KGML_vis import KGMLCanvas\n", "from Bio.Graphics.ColorSpiral import ColorSpiral\n", "\n", "from IPython.display import Image, HTML, IFrame\n", "\n", "import random\n", "import pandas as pd\n", "import networkx as nx\n", "import seaborn as sns\n", "import re\n", "import os\n", "sns.set()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us check the MAPK Signalling Pathway first. With `Bio.KEGG`, we can display it as an image." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in BETS\n", "Let us read in BETS graph and find nodes common with the MAPK Signalling pathway." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "gene_details = pd.read_csv('../../../data/gene_details.csv', index_col=0)\n", "results_file = '/mnt_volume/BETS/runs/arid_th1-0mean-reps-er-norm-enet-2-g/run_l-fdr/networks/arid_th1-0mean-reps-er-norm-enet-2-g-1-fdr-0.05-effect-matrix.txt'\n", "\n", "bets_graph = pd.read_csv(results_file, sep='\\t', index_col=0)\n", "node_names = list(bets_graph.columns)\n", "\n", "bets_graph = nx.from_numpy_matrix(bets_graph.to_numpy(), create_using=nx.DiGraph())\n", "\n", "mapping = {}\n", "for i in range(len(node_names)):\n", " try:\n", " entrez_name = 'mmu:' + str(int(gene_details.loc[node_names[i]].entrez))\n", " except ValueError: #nan\n", " entrez_name = node_names[i]\n", " mapping[i] = entrez_name\n", "\n", "bets_graph = nx.relabel_nodes(bets_graph, mapping)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get KEGG Pathway information" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pathway: MAPK signaling pathway\n", "KEGG ID: path:mmu04010\n", "Image file: http://www.kegg.jp/kegg/pathway/mmu/mmu04010.png\n", "Organism: mmu\n", "Entries: 132\n", "Entry types:\n", "\tgene: 119\n", "\tgroup: 1\n", "\tcompound: 5\n", "\tmap: 7\n", "\n" ] } ], "source": [ "pathway = KGML_parser.read(kegg_get(\"mmu04010\", \"kgml\"))\n", "print(pathway)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'mmu:13537 mmu:18218 mmu:19252 mmu:235584 mmu:240672 mmu:319520 mmu:63953 mmu:67603 mmu:70686 mmu:75590'" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pathway.genes[1].name" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Potential Problem\n", "\n", "Notice that one gene can have more than one Entrez IDs associated with it. This is a problem because in the BETS graph, each gene is uniquely associated with an Entrez ID. In this scenario, more than one vertex in the BETS graph can be associated with one gene in the KEGG Pathway. \n", "\n", "This can happen - In the BETS graph, we can have \n", "$$ G_1 \\rightarrow G_2 \\rightarrow G_3 $$\n", "but in the KEGG Pathway, $G_1$, $G_2$ and $G_3$ can map to the same gene.\n", "\n", "For a given gene from BETS, it's descendants may map to the same gene in the KEGG Pathway." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Colour Palette\n", "Choose Pastel Colour Palette from Seaborn" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAABECAYAAACF4e8fAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAADCElEQVR4nO3av2tdZRzH8U9686Md0oQ2tGZyaRdxDYikS/8DB0eRDp06FVMURMShSwwIgjh0KMXR/8GlGQoFF8e6dGmkpOEmDja9idfl4nCtd1CePvDl9VoOnIcLn7Mc3lzO3Hg8DgBAZWd6DwAAaE3wAADlCR4AoDzBAwCUNz/jbCnJRpK9JKdvZg4AwH8ySLKe5HGS4+nDWcGzkeRho1EAAC1cS7I7fXNW8OwlySffP8n+0ajVqK4efPpODr+70XtGMyu37ueLXz7rPaOJjx+c5MrOTn7d2uo9pYkrOzv54cufes9o5qOvrufenQ97z2jm5tc/5uk3j3rPaObt2+9le3u794wmPnj/MFc37+bJ7ue9pzRxdfNuvv35We8ZTSwvDnLj3cvJpF+mzQqe0yTZPxrl+bBm8CTJn4fPe09o6uDVi94TmhjtjybX/c5L2vn94I/eE5o6evFb7wlNnQz/8Y96KcPhsPeEJkYvDybXmu/OJDk8Lv+Vymsf0EfLAEB5ggcAKE/wAADlCR4AoDzBAwCUJ3gAgPIEDwBQnuABAMoTPABAeYIHAChP8AAA5QkeAKA8wQMAlCd4AIDyBA8AUJ7gAQDKEzwAQHmCBwAoT/AAAOUJHgCgPMEDAJQneACA8gQPAFCe4AEAyhM8AEB5ggcAKE/wAADlCR4AoDzBAwCUJ3gAgPIEDwBQnuABAMoTPABAeYIHAChP8AAA5QkeAKA8wQMAlCd4AIDyBA8AUJ7gAQDKEzwAQHmCBwAoT/AAAOUJHgCgPMEDAJQneACA8gQPAFCe4AEAyhM8AEB5ggcAKE/wAADlzc84GyTJ2vmFNzSljzMrl3pPaOrC4sXeE5pYWDuZXNc6L2ln+cK53hOaOn/xrd4TmppfXeo9oanV1dXeE5pYODs3udZ8dybJytKg94Qmlhf/fq7XPuDceDz+t99uJnnYYBMAQCvXkuxO35wVPEtJNpLsJTlttwsA4H8bJFlP8jjJ8fThrOABACjBR8sAQHmCBwAoT/AAAOUJHgCgvL8A85loG2pTlQoAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "current_palette = sns.color_palette('muted').as_hex()\n", "sns.palplot(current_palette)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generate new graph for each of these nodes with different color for anscenstor and descendants." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "pathway_stats_less = pd.read_csv('/mnt_volume/static/pathway_statistics_less.csv', index_col=0)\n", "lesser_pathways = list(pathway_stats_less[pathway_stats_less['p.val'] < 0.05]['id'])\n", "\n", "pathway_stats_greater = pd.read_csv('/mnt_volume/static/pathway_statistics_greater.csv', index_col=0)\n", "greater_pathways = list(pathway_stats_greater[pathway_stats_greater['p.val'] < 0.05]['id'])\n", "\n", "all_pathways = lesser_pathways + greater_pathways" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(14, 73, 87)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(greater_pathways), len(lesser_pathways), len(all_pathways)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def get_bets_graph():\n", " gene_details = pd.read_csv('/mnt_volume/tt-atac-causal/data/gene_details.csv', index_col=0)\n", " results_file = '/mnt_volume/BETS/runs/arid_th1-0mean-reps-er-norm-enet-2-g/run_l-fdr/networks/arid_th1-0mean-reps' \\\n", " '-er-norm-enet-2-g-1-fdr-0.05-effect-matrix.txt '\n", "\n", " bets_graph = pd.read_csv(results_file, sep='\\t', index_col=0)\n", " node_names = list(bets_graph.columns)\n", "\n", " bets_graph = nx.from_numpy_matrix(bets_graph.to_numpy(), create_using=nx.DiGraph())\n", "\n", " mapping = {}\n", " for i in range(len(node_names)):\n", " try:\n", " entrez_name = 'mmu:' + str(int(gene_details.loc[node_names[i]].entrez))\n", " except ValueError: # nan\n", " entrez_name = node_names[i]\n", " mapping[i] = entrez_name\n", "\n", " bets_graph = nx.relabel_nodes(bets_graph, mapping)\n", " return bets_graph\n", "\n", "\n", "def draw_bets_kegg_intersection(pathway, pathway_name):\n", " common_nodes_in_bets = []\n", " for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name in bets_graph.nodes():\n", " colour = current_palette[0]\n", " if bets_graph.in_degree(name) == 0 and bets_graph.out_degree(name) != 0:\n", " colour = current_palette[2]\n", " print(name)\n", " common_nodes_in_bets.append(name)\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = colour\n", " else:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = '#FFFFFF'\n", " \n", " # write to file\n", " write_directory = os.path.join('/mnt_volume/static/', pathway_name)\n", " if not os.path.exists(write_directory):\n", " os.makedirs(write_directory)\n", "\n", " filename = os.path.join(write_directory, pathway_name + \".pdf\")\n", " canvas = KGMLCanvas(pathway, import_imagemap=True)\n", " canvas.draw(filename)\n", " return common_nodes_in_bets\n", "\n", "\n", "def get_descendants(common_nodes_in_bets):\n", " genes_descendants = {}\n", " for node in common_nodes_in_bets:\n", " descendants = set(nx.descendants(bets_graph, node)) - {node} # remove self loops\n", " common = descendants.intersection(set(common_nodes_in_bets))\n", " if len(common) != 0:\n", " print('\\n************\\n' + node)\n", " print(common)\n", " genes_descendants[node] = common\n", " return genes_descendants\n", "\n", "\n", "def write_to_file(pathway, gene_name, genes_descendants, pathway_name):\n", " # make everything white\n", " for gene in pathway.genes:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = '#FFFFFF'\n", "\n", " for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name == gene_name:\n", " colour = current_palette[0]\n", " if bets_graph.in_degree(name) == 0 and bets_graph.out_degree(name) != 0:\n", " colour = current_palette[2]\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = colour\n", " elif name in genes_descendants[gene_name]:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = current_palette[-2]\n", " else:\n", " pass\n", "\n", " # write to file\n", " write_directory = os.path.join('/mnt_volume/static/', pathway_name)\n", " if not os.path.exists(write_directory):\n", " os.makedirs(write_directory)\n", "\n", " filename = os.path.join(write_directory, pathway_name + '_' + gene_name + \".pdf\")\n", "\n", " canvas = KGMLCanvas(pathway, import_imagemap=True)\n", " canvas.draw(filename)\n", "\n", "\n", "def get_pathway_per_gene_anscestor(kegg_pathway_code, pathway_name):\n", " pathway = KGML_parser.read(kegg_get(kegg_pathway_code, \"kgml\"))\n", "\n", " common_nodes_in_bets = draw_bets_kegg_intersection(pathway, pathway_name)\n", "\n", " genes_descendants = get_descendants(common_nodes_in_bets)\n", "\n", " for gene_name in genes_descendants:\n", " for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name == gene_name:\n", " temp = set(gene.name.split(' '))\n", " break\n", " print('Intersection', genes_descendants[gene_name].intersection(temp))\n", " genes_descendants[gene_name] = genes_descendants[gene_name] - temp\n", "\n", " write_to_file(pathway, gene_name, genes_descendants, pathway_name)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "###########\n", "Running for systemic-lupus-erythematosus\n", "mmu:26914\n", "mmu:319163\n", "mmu:319177\n", "mmu:319187\n", "mmu:319190\n", "mmu:78303\n", "mmu:319150\n", "mmu:319152\n", "mmu:97114\n", "mmu:319159\n", "mmu:326620\n", "mmu:97122\n", "\n", "************\n", "mmu:97114\n", "{'mmu:382523'}\n", "Intersection {'mmu:382523'}\n", "\n", "###########\n", "Running for ribosome\n", "\n", "###########\n", "Running for oxidative-phosphorylation\n", "mmu:407790\n", "mmu:407790\n", "mmu:407790\n", "\n", "###########\n", "Running for glycolysis--gluconeogenesis\n", "mmu:16828\n", "mmu:74551\n", "\n", "************\n", "mmu:56421\n", "{'mmu:68738'}\n", "Intersection set()\n", "\n", "###########\n", "Running for parkinsons-disease\n", "mmu:407790\n", "\n", "###########\n", "Running for huntingtons-disease\n", "mmu:407790\n", "mmu:21817\n", "mmu:208647\n", "mmu:52639\n", "mmu:12287\n", "\n", "************\n", "mmu:21817\n", "{'mmu:78330'}\n", "\n", "************\n", "mmu:52639\n", "{'mmu:67530'}\n", "Intersection set()\n", "Intersection set()\n", "\n", "###########\n", "Running for alzheimers-disease\n", "mmu:11820\n", "mmu:407790\n", "mmu:26417\n", "mmu:16956\n", "mmu:52639\n", "mmu:11911\n", "mmu:26417\n", "\n", "************\n", "mmu:11820\n", "{'mmu:67530', 'mmu:22147'}\n", "\n", "************\n", "mmu:14812\n", "{'mmu:16439'}\n", "\n", "************\n", "mmu:52639\n", "{'mmu:67530'}\n", "\n", "************\n", "mmu:22143\n", "{'mmu:12006'}\n", "\n", "************\n", "mmu:23797\n", "{'mmu:67530', 'mmu:22147'}\n", "Intersection set()\n", "Intersection set()\n", "Intersection set()\n", "Intersection set()\n", "Intersection set()\n", "\n", "###########\n", "Running for cysteine-and-methionine-metabolism\n", "mmu:229905\n", "mmu:70266\n", "mmu:229905\n", "mmu:70266\n", "mmu:16828\n", "mmu:12035\n", "mmu:229905\n", "mmu:70266\n", "\n", "###########\n", "Running for proteasome\n", "\n", "###########\n", "Running for pyruvate-metabolism\n", "mmu:74551\n", "mmu:109264\n", "mmu:16828\n", "\n", "###########\n", "Running for lysosome\n", "mmu:15211\n", "mmu:15932\n", "mmu:14667\n", "mmu:20661\n", "\n", "************\n", "mmu:140494\n", "{'mmu:11775'}\n", "\n", "************\n", "mmu:15211\n", "{'mmu:13032', 'mmu:11775', 'mmu:16792'}\n", "\n", "************\n", "mmu:16792\n", "{'mmu:11775'}\n", "\n", "************\n", "mmu:20661\n", "{'mmu:11775'}\n", "\n", "************\n", "mmu:52120\n", "{'mmu:11775'}\n", "\n", "************\n", "mmu:140494\n", "{'mmu:11775'}\n", "Intersection set()\n", "Intersection set()\n", "Intersection set()\n", "Intersection set()\n", "Intersection set()\n", "\n", "###########\n", "Running for pyrimidine-metabolism\n", "\n", "###########\n", "Running for valine-leucine-and-isoleucine-degradation\n", "mmu:12035\n", "mmu:12035\n", "mmu:66904\n", "mmu:268860\n", "mmu:12035\n", "\n", "###########\n", "Running for purine-metabolism\n", "mmu:110639\n", "mmu:78801\n", "mmu:18160\n", "mmu:78801\n", "\n", "###########\n", "Running for propanoate-metabolism\n", "mmu:268860\n", "mmu:66904\n", "mmu:16828\n", "\n", "###########\n", "Running for cell-adhesion-molecules-cams\n", "mmu:13003\n", "mmu:20971\n", "mmu:20971\n", "mmu:58235\n", "mmu:58235\n", "mmu:58235\n", "mmu:58235\n", "mmu:58235\n", "mmu:58235\n", "mmu:20971\n", "\n", "************\n", "mmu:20971\n", "{'mmu:20737'}\n", "\n", "************\n", "mmu:20971\n", "{'mmu:20737'}\n", "\n", "************\n", "mmu:20971\n", "{'mmu:20737'}\n", "Intersection set()\n", "\n", "###########\n", "Running for dna-replication\n", "mmu:18972\n", "\n", "###########\n", "Running for glycine-serine-and-threonine-metabolism\n", "\n", "************\n", "mmu:434437\n", "{'mmu:19193'}\n", "Intersection set()\n", "\n", "###########\n", "Running for bacterial-invasion-of-epithelial-cells\n", "mmu:216148\n", "\n", "###########\n", "Running for pentose-phosphate-pathway\n", "mmu:110639\n", "mmu:74419\n", "mmu:74419\n", "\n", "###########\n", "Running for fructose-and-mannose-metabolism\n", "\n", "###########\n", "Running for fatty-acid-metabolism\n", "\n", "###########\n", "Running for spliceosome\n", "mmu:668137\n", "mmu:100043292\n", "mmu:115490088\n", "mmu:97418\n", "\n", "###########\n", "Running for mismatch-repair\n", "mmu:18972\n", "\n", "###########\n", "Running for amyotrophic-lateral-sclerosis-als\n", "\n", "###########\n", "Running for citrate-cycle-tca-cycle\n", "mmu:74551\n", "\n", "###########\n", "Running for drug-metabolism--other-enzymes\n", "\n", "###########\n", "Running for cardiac-muscle-contraction\n", "mmu:319734\n", "mmu:11931\n", "mmu:232975\n", "\n", "************\n", "mmu:11931\n", "{'mmu:67530'}\n", "\n", "************\n", "mmu:232975\n", "{'mmu:12292', 'mmu:67530'}\n", "Intersection set()\n", "Intersection set()\n", "\n", "###########\n", "Running for peroxisome\n", "mmu:110959\n", "\n", "************\n", "mmu:51798\n", "{'mmu:19193'}\n", "Intersection set()\n", "\n", "###########\n", "Running for histidine-metabolism\n", "mmu:15109\n", "\n", "###########\n", "Running for galactose-metabolism\n", "\n", "###########\n", "Running for rna-transport\n", "mmu:668137\n", "mmu:100043292\n", "mmu:115490088\n", "mmu:97418\n", "\n", "###########\n", "Running for amino-sugar-and-nucleotide-sugar-metabolism\n", "mmu:15211\n", "\n", "###########\n", "Running for glyoxylate-and-dicarboxylate-metabolism\n", "mmu:66904\n", "\n", "************\n", "mmu:434437\n", "{'mmu:68738'}\n", "Intersection set()\n", "\n", "###########\n", "Running for cell-cycle\n", "mmu:12575\n", "mmu:12576\n", "mmu:12447\n", "\n", "************\n", "mmu:12575\n", "{'mmu:17869'}\n", "Intersection set()\n", "\n", "###########\n", "Running for arginine-and-proline-metabolism\n", "mmu:12716\n", "\n", "************\n", "mmu:12716\n", "{'mmu:11847', 'mmu:66988'}\n", "Intersection set()\n", "\n", "###########\n", "Running for tyrosine-metabolism\n", "\n", "###########\n", "Running for axon-guidance\n", "mmu:26417\n", "mmu:20564\n", "mmu:18479\n", "mmu:18208\n", "mmu:26417\n", "mmu:20349\n", "mmu:18479\n", "mmu:108058\n", "mmu:228026\n", "mmu:18479\n", "mmu:18479\n", "mmu:18479\n", "\n", "###########\n", "Running for adherens-junction\n", "mmu:26417\n", "mmu:58235\n", "mmu:58235\n", "\n", "###########\n", "Running for thyroid-cancer\n", "mmu:26417\n", "mmu:20181\n", "mmu:26417\n", "mmu:12575\n", "\n", "************\n", "mmu:12575\n", "{'mmu:17869'}\n", "Intersection set()\n", "\n", "###########\n", "Running for prion-diseases\n", "mmu:26417\n", "\n", "###########\n", "Running for notch-signaling-pathway\n", "mmu:13017\n", "mmu:15205\n", "mmu:19719\n", "\n", "###########\n", "Running for aminoacyltrna-biosynthesis\n", "\n", "###########\n", "Running for ppar-signaling-pathway\n", "mmu:74551\n", "mmu:20181\n", "mmu:20181\n", "mmu:20181\n", "mmu:16956\n", "mmu:109264\n", "\n", "###########\n", "Running for nitrogen-metabolism\n", "mmu:12351\n", "mmu:23831\n", "\n", "************\n", "mmu:23831\n", "{'mmu:76459'}\n", "Intersection {'mmu:76459'}\n", "\n", "###########\n", "Running for rna-polymerase\n", "\n", "###########\n", "Running for biosynthesis-of-unsaturated-fatty-acids\n", "\n", "###########\n", "Running for valine-leucine-and-isoleucine-biosynthesis\n", "mmu:12035\n", "mmu:12035\n", "mmu:12035\n", "\n", "###########\n", "Running for homologous-recombination\n", "mmu:18972\n", "\n", "###########\n", "Running for butanoate-metabolism\n", "mmu:69772\n", "mmu:268860\n", "\n", "###########\n", "Running for sulfur-relay-system\n", "\n", "###########\n", "Running for glycosaminoglycan-degradation\n", "mmu:15932\n", "mmu:15932\n", "mmu:15211\n", "mmu:15211\n", "mmu:15932\n", "mmu:15932\n", "mmu:15211\n", "mmu:15211\n", "\n", "###########\n", "Running for collecting-duct-acid-secretion\n", "\n", "###########\n", "Running for pantothenate-and-coa-biosynthesis\n", "mmu:12035\n", "\n", "###########\n", "Running for arrhythmogenic-right-ventricular-cardiomyopathy-arvc\n", "mmu:319734\n", "mmu:16399\n", "mmu:11472\n", "\n", "###########\n", "Running for leukocyte-transendothelial-migration\n", "\n", "###########\n", "Running for base-excision-repair\n", "mmu:18972\n", "mmu:382913\n", "mmu:18972\n", "\n", "###########\n", "Running for glycosphingolipid-biosynthesis--ganglio-series\n", "mmu:15211\n", "\n", "###########\n", "Running for pentose-and-glucuronate-interconversions\n", "\n", "###########\n", "Running for selenocompound-metabolism\n", "mmu:229905\n", "mmu:70266\n", "mmu:229905\n", "mmu:70266\n", "mmu:229905\n", "mmu:70266\n", "\n", "###########\n", "Running for proximal-tubule-bicarbonate-reclamation\n", "mmu:12351\n", "mmu:11931\n", "mmu:232975\n", "mmu:74551\n", "\n", "************\n", "mmu:11931\n", "{'mmu:54403'}\n", "Intersection set()\n", "\n", "###########\n", "Running for other-glycan-degradation\n", "mmu:15211\n", "mmu:15211\n", "mmu:15211\n", "mmu:15211\n", "\n", "###########\n", "Running for natural-killer-cell-mediated-cytotoxicity\n", "mmu:26417\n", "mmu:216148\n", "mmu:18479\n", "\n", "###########\n", "Running for phagosome\n", "\n", "************\n", "mmu:14963\n", "{'mmu:22143'}\n", "\n", "************\n", "mmu:14963\n", "{'mmu:22143'}\n", "\n", "************\n", "mmu:14963\n", "{'mmu:22143'}\n", "Intersection set()\n", "\n", "###########\n", "Running for nucleotide-excision-repair\n", "mmu:18972\n", "\n", "###########\n", "Running for one-carbon-pool-by-folate\n", "\n", "###########\n", "Running for glutathione-metabolism\n", "mmu:625249\n", "mmu:75475\n", "mmu:69065\n", "\n", "************\n", "mmu:14859\n", "{'mmu:66988'}\n", "Intersection set()\n", "\n", "###########\n", "Running for glycerolipid-metabolism\n", "mmu:67916\n", "mmu:16956\n", "\n", "###########\n", "Running for nicotinate-and-nicotinamide-metabolism\n", "\n", "###########\n", "Running for betaalanine-metabolism\n", "mmu:268860\n", "\n", "###########\n", "Running for protein-export\n", "\n", "###########\n", "Running for ribosome-biogenesis-in-eukaryotes\n", "\n", "###########\n", "Running for tight-junction\n", "mmu:21844\n", "mmu:102098\n", "mmu:19684\n", "mmu:227157\n", "mmu:16476\n", "mmu:17883\n", "\n", "************\n", "mmu:102098\n", "{'mmu:22147', 'mmu:14463'}\n", "Intersection set()\n", "\n", "###########\n", "Running for tgfbeta-signaling-pathway\n", "mmu:18119\n", "mmu:17131\n", "mmu:18741\n", "mmu:26417\n", "mmu:17131\n", "mmu:12159\n", "mmu:12159\n", "mmu:12159\n", "\n", "************\n", "mmu:18741\n", "{'mmu:17869'}\n", "\n", "************\n", "mmu:320202\n", "{'mmu:17869'}\n", "Intersection set()\n", "Intersection set()\n", "\n", "###########\n", "Running for vascular-smooth-muscle-contraction\n", "mmu:18784\n", "mmu:26417\n", "mmu:18160\n", "\n", "###########\n", "Running for vitamin-digestion-and-absorption\n", "\n", "###########\n", "Running for erbb-signaling-pathway\n", "mmu:12575\n", "mmu:12576\n", "mmu:18479\n", "mmu:100042150\n", "mmu:216148\n", "mmu:108058\n", "mmu:16476\n", "mmu:26417\n", "\n", "************\n", "mmu:12575\n", "{'mmu:17869'}\n", "Intersection set()\n", "\n", "###########\n", "Running for calcium-signaling-pathway\n", "mmu:108058\n", "mmu:18439\n", "mmu:12287\n", "mmu:12290\n", "\n", "###########\n", "Running for amoebiasis\n", "mmu:12826\n", "mmu:12826\n", "\n", "************\n", "mmu:16772\n", "{'mmu:11847'}\n", "Intersection set()\n", "\n", "###########\n", "Running for osteoclast-differentiation\n", "mmu:18035\n", "mmu:16451\n", "mmu:16476\n", "mmu:26417\n", "\n", "************\n", "mmu:16451\n", "{'mmu:19261'}\n", "\n", "************\n", "mmu:20963\n", "{'mmu:19261', 'mmu:14284', 'mmu:14282'}\n", "\n", "************\n", "mmu:26417\n", "{'mmu:14284'}\n", "Intersection set()\n", "Intersection set()\n", "Intersection set()\n", "\n", "###########\n", "Running for hedgehog-signaling-pathway\n", "mmu:14632\n", "mmu:14632\n", "mmu:14632\n", "mmu:14632\n", "mmu:14632\n", "mmu:14632\n", "\n", "###########\n", "Running for bile-secretion\n", "mmu:11931\n", "mmu:232975\n", "mmu:239273\n", "mmu:11931\n", "mmu:232975\n", "mmu:239273\n", "mmu:20181\n", "mmu:20181\n", "\n", "************\n", "mmu:11931\n", "{'mmu:54403'}\n", "\n", "************\n", "mmu:11931\n", "{'mmu:54403'}\n", "Intersection set()\n", "\n", "###########\n", "Running for gap-junction\n", "mmu:26417\n", "\n", "###########\n", "Running for jakstat-signaling-pathway\n", "mmu:16451\n", "mmu:12575\n", "mmu:16878\n", "mmu:239114\n" ] } ], "source": [ "# generate for all significant pathways\n", "all_pathways\n", "\n", "for path in all_pathways:\n", " temp = path.split()\n", " code = temp[0]\n", " temp = [re.sub(r'\\W+', '', _).lower() for _ in temp[1:]]\n", " name = '-'.join(temp)\n", " \n", " print('\\n###########\\nRunning for', name)\n", " get_pathway_per_gene_anscestor(code, name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### MAPK and BETS\n", "Let us colour all nodes in common with BETS in a different colour." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "common_nodes_in_bets = []\n", "for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name in bets_graph.nodes():\n", " common_nodes_in_bets.append(name)\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = current_palette[1]\n", " else:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = '#FFFFFF'\n", "\n", "canvas = KGMLCanvas(pathway, import_imagemap=True)\n", "canvas.draw(\"mapk_bets.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Descendant Relationship in BETS\n", "Check if any common nodes are descendants of each other." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "************\n", "mmu:20663\n", "{'mmu:26408'}\n", "\n", "************\n", "mmu:16590\n", "{'mmu:14184', 'mmu:14171', 'mmu:18212', 'mmu:17869', 'mmu:14164', 'mmu:12292'}\n", "\n", "************\n", "mmu:21687\n", "{'mmu:14184', 'mmu:14171', 'mmu:18212', 'mmu:17869', 'mmu:14164'}\n", "\n", "************\n", "mmu:23797\n", "{'mmu:14171'}\n", "\n", "************\n", "mmu:17869\n", "{'mmu:18212'}\n" ] } ], "source": [ "genes_descendants = {}\n", "for node in common_nodes_in_bets:\n", " descendants = set(nx.descendants(bets_graph, node))\n", " common = descendants.intersection(set(common_nodes_in_bets))\n", " if len(common)!=0:\n", " print('\\n************\\n'+node)\n", " print(common)\n", " genes_descendants[node] = common" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## List of Interesting Pathways\n", "Orange is the parent, and blue is the descendants.\n", "\n", "1. MAPK - https://129.70.51.142:5000/mapk-signaling-pathway/mapk-signaling-pathway_mmu%3A17869.pdf\n", "1. MAPK - https://129.70.51.142:5000/mapk-signaling-pathway/mapk-signaling-pathway_mmu%3A21687.pdf\n", "1. Amoebiasis - https://129.70.51.142:5000/amoebiasis/amoebiasis_mmu%3A16772.pdf\n", "1. Huntington's diesease - https://129.70.51.142:5000/huntingtons-disease/huntingtons-disease_mmu%3A21817.pdf\n", "1. Alzheimer's disease - https://129.70.51.142:5000/alzheimers-disease/alzheimers-disease_mmu%3A11820.pdf\n", "1. Alzheimer's disease - https://129.70.51.142:5000/alzheimers-disease/alzheimers-disease_mmu%3A14812.pdf\n", "1. Arginine and proline metabolism - https://129.70.51.142:5000/arginine-and-proline-metabolism/arginine-and-proline-metabolism_mmu%3A12716.pdf\n", "1. Bile secretion (interesting) - https://129.70.51.142:5000/bile-secretion/bile-secretion_mmu%3A11931.pdf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----------------" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'mmu:20663': {'mmu:26408'},\n", " 'mmu:16590': {'mmu:12292', 'mmu:14164', 'mmu:14171', 'mmu:17869'},\n", " 'mmu:21687': {'mmu:14164', 'mmu:14171', 'mmu:17869'},\n", " 'mmu:23797': {'mmu:14171'},\n", " 'mmu:17869': {'mmu:18212'}}" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "genes_descendants" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Intersection {'mmu:18212', 'mmu:14184'}\n" ] } ], "source": [ "gene_name = 'mmu:16590'\n", "\n", "for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name == gene_name:\n", " temp = set(gene.name.split(' '))\n", " break\n", "\n", "print('Intersection', genes_descendants[gene_name].intersection(temp))\n", "genes_descendants[gene_name] = genes_descendants[gene_name] - temp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Contradiction\n", "We have a problem here. The current gene (`mmu:16590`) has many different names associated with it. Some of the names associated with it are listed as descendants in the BETS graph.\n", "\n", "HACK - for now, remove the descendants which are also other names for the same gene." ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Descendants {'mmu:17869', 'mmu:14164', 'mmu:12292', 'mmu:14171'}\n" ] } ], "source": [ "gene_name = 'mmu:16590'\n", "print('Descendants', genes_descendants[gene_name])\n", "\n", "# make everything white\n", "for gene in pathway.genes:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = '#FFFFFF'\n", "\n", "for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name == gene_name:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = current_palette[1]\n", " elif name in genes_descendants[gene_name]:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = current_palette[0]\n", " else:\n", " pass" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "canvas = KGMLCanvas(pathway, import_imagemap=True)\n", "canvas.draw(\"mapk_bets_\"+gene_name+\".pdf\")" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Intersection {'mmu:18212', 'mmu:14184'}\n" ] } ], "source": [ "gene_name = 'mmu:21687'\n", "\n", "for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name == gene_name:\n", " temp = set(gene.name.split(' '))\n", " break\n", "\n", "print('Intersection', genes_descendants[gene_name].intersection(temp))\n", "genes_descendants[gene_name] = genes_descendants[gene_name] - temp" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'mmu:17869', 'mmu:14164', 'mmu:14171'}\n" ] } ], "source": [ "gene_name = 'mmu:21687'\n", "print(genes_descendants[gene_name])\n", "\n", "# make everything white\n", "for gene in pathway.genes:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = '#FFFFFF'\n", "\n", "for gene in pathway.genes:\n", " names = gene.name.split(' ')\n", " for name in names:\n", " if name == gene_name:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = current_palette[1]\n", " elif name in genes_descendants[gene_name]:\n", " for graphic in gene.graphics:\n", " graphic.bgcolor = current_palette[0]\n", " else:\n", " pass\n", " \n", "# write to file\n", "canvas = KGMLCanvas(pathway, import_imagemap=True)\n", "canvas.draw(\"mapk_bets_\"+gene_name+\".pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "------------" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "kegg Kyoto Encyclopedia of Genes and Genomes\n", "kegg Release 94.0+/04-16, Apr 20\n", " Kanehisa Laboratories\n", " pathway 701,754 entries\n", " brite 246,899 entries\n", " module 463 entries\n", " orthology 23,318 entries\n", " genome 6,830 entries\n", " genes 31,407,917 entries\n", " compound 18,699 entries\n", " glycan 11,039 entries\n", " reaction 11,414 entries\n", " rclass 3,165 entries\n", " enzyme 7,736 entries\n", " network 1,125 entries\n", " variant 416 entries\n", " disease 2,417 entries\n", " drug 11,255 entries\n", " dgroup 2,276 entries\n", " environ 864 entries\n", "\n" ] } ], "source": [ "# Kyoto Encyclopedia of Genes and Genomes\n", "print(kegg_info(\"kegg\").read())" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "path:mmu00010\tGlycolysis / Gluconeogenesis - Mus musculus (mouse)\n", "path:mmu00020\tCitrate cycle (TCA cycle) - Mus musculus (mouse)\n", "path:mmu00030\tPentose phosphate pathway - Mus musculus (mouse)\n", "path:mmu00040\tPentose and glucuronate interconversions - Mus musculus (mouse)\n", "path:mmu00051\tFructose and mannose metabolism - Mus musculus (mouse)\n", "path:mmu00052\tGalactose metabolism - Mus musculus (mouse)\n", "path:mmu00053\tAscorbate and aldarate metabolism - Mus musculus (mouse)\n", "path:mmu00061\tFatty acid biosynthesis - Mus musculus (mouse)\n", "path:mmu00062\tFatty acid elongation - Mus musculus (mouse)\n", "path:mmu00071\tFatty acid degradation - Mus musculus (mouse)\n", "[...]\n" ] } ], "source": [ "head(kegg_list('pathway', 'mmu').read())" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ENTRY mmu00010 Pathway\n", "NAME Glycolysis / Gluconeogenesis - Mus musculus (mouse)\n", "DESCRIPTION Glycolysis is the process of converting glucose into pyruvate and generating small amounts of ATP (energy) and NADH (reducing power). It is a central pathway that produces important precursor metabolites: six-carbon compounds of glucose-6P and fructose-6P and three-carbon compounds of glycerone-P, glyceraldehyde-3P, glycerate-3P, phosphoenolpyruvate, and pyruvate [MD:M00001]. Acetyl-CoA, another important precursor metabolite, is produced by oxidative decarboxylation of pyruvate [MD:M00307]. When the enzyme genes of this pathway are examined in completely sequenced genomes, the reaction steps of three-carbon compounds from glycerone-P to pyruvate form a conserved core module [MD:M00002], which is found in almost all organisms and which sometimes contains operon structures in bacterial genomes. Gluconeogenesis is a synthesis pathway of glucose from noncarbohydrate precursors. It is essentially a reversal of glycolysis with minor variations of alternative paths [MD:M00003].\n", "CLASS Metabolism; Carbohydrate metabolism\n", "PATHWAY_MAP mmu00010 Glycolysis / Gluconeogenesis\n", "MODULE mmu_M00001 Glycolysis (Embden-Meyerhof pathway), glucose => pyruvate [PATH:mmu00010]\n", " mmu_M00002 Glycolysis, core module involving three-carbon compounds [PATH:mmu00010]\n", " mmu_M00003 Gluconeogenesis, oxaloacetate => fructose-6P [PATH:mmu00010]\n", " mmu_M00307 Pyruvate oxidation, pyruvate => acetyl-CoA [PATH:mmu00010]\n", "DBLINKS GO: 0006096 0006094\n", "[...]\n" ] } ], "source": [ "head(kegg_get(\"path:mmu00010\").read())" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "canvas = KGMLCanvas(pathway)\n", "canvas.draw(\"fab_map.pdf\")" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "canvas.import_imagemap = True\n", "canvas.draw(\"fab_map_with_image.pdf\")" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "def draw_kegg_map(map_id):\n", " \"\"\" Render a local PDF of a KEGG map with the passed map ID\n", " \"\"\"\n", " # Get the background image first\n", " pathway = KGML_parser.read(kegg_get(map_id, \"kgml\"))\n", " canvas = KGMLCanvas(pathway, import_imagemap=True)\n", " img_filename = \"%s.pdf\" % map_id\n", " canvas.draw(img_filename)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rasgrf1, AI844718, CDC25, CDC25Mm, Gnrp, Grf1, Grfbeta, P190-A, Ras-GRF1, p190, p190RhoGEF...\n" ] } ], "source": [ "print(pathway.genes[0].graphics[0].name)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Rasgrf1, AI844718, CDC25, CDC25Mm, Gnrp, Grf1, Grfbeta, P190-A, Ras-GRF1, p190, p190RhoGEF...\n", "392.0\n", "236.0\n", "None\n", "rectangle\n", "46.0\n", "17.0\n", "#000000\n", "#BFFFBF\n", "[(369.0, 227.5), (415.0, 244.5)]\n", "(392.0, 236.0)\n" ] } ], "source": [ "element = pathway.genes[0].graphics[0]\n", "attrs = [element.name, element.x, element.y, element.coords, element.type, \n", " element.width, element.height, element.fgcolor, element.bgcolor, \n", " element.bounds, element.centre]\n", "print('\\n'.join([str(attr) for attr in attrs]))" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "# Helper function to convert colour as RGB tuple to hex string\n", "def rgb_to_hex(rgb):\n", " rgb = tuple([int(255*val) for val in rgb])\n", " return '#' + ''.join([hex(val)[2:] for val in rgb]).upper()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "# Define arbitrary colours\n", "colorspiral = ColorSpiral()\n", "colorlist = colorspiral.get_colors(len(pathway.genes))\n", "\n", "# Change the colours of ortholog elements\n", "for color, element in zip(colorlist, pathway.genes):\n", " for graphic in element.graphics:\n", " graphic.bgcolor = rgb_to_hex(color)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", " \"\n", " frameborder=\"0\"\n", " allowfullscreen\n", " >\n", " " ], "text/plain": [ "" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "canvas = KGMLCanvas(pathway, import_imagemap=True)\n", "canvas.draw(\"fab_map_new_colours.pdf\")\n", "PDF(\"./fab_map_new_colours.pdf\")" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'#a1c9f4'" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "current_palette[0]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(kegg_get(\"mmu04010\", \"image\").read())" ] } ], "metadata": { "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.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }