{ "metadata": { "name": "", "signature": "sha256:63965211d1a2df80a4fb8ffb05e3cf6da1c698eff5c94ad6309549c5f2fdc730" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

HNSCC HPV- Cohort Statistical Analysis of TP53-3p Interaction

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "####Import Data and Packages \n", "For full list of data and packages imported see the [Imports](../Analysis_Notebooks/Imports.ipynb) notebook." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import NotebookImport\n", "from Imports import *" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "importing IPython notebook from Imports.ipynb\n", "Populating the interactive namespace from numpy and matplotlib" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "changing to source dirctory" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "populating namespace with data" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Extract genomic variables of interest" ] }, { "cell_type": "code", "collapsed": false, "input": [ "p53_mut = mut.features.ix['TP53'].ix[keepers_o].dropna() > 0\n", "del_3p = cn.features.ix['Deletion'].ix['3p14.2'].ix[0].ix[keepers_o].dropna()\n", "p53_mut.name = 'TP53'\n", "del_3p.name = 'del_3p'\n", "\n", "combo = combine(p53_mut==1, del_3p==-1)\n", "two_hit = combo=='both'\n", "two_hit.name = 'two_hit'\n", "\n", "old = age > 75\n", "old.name = 'old'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate deletion and amplification rates" ] }, { "cell_type": "code", "collapsed": false, "input": [ "cn_by_gene = FH.get_gistic_gene_matrix(run.data_path, cancer.name)\n", "cn_by_gene = cn_by_gene.ix[[i for i in cn_by_gene.index if i[2] in rna.df.index]]\n", "pct_del = (cn_by_gene < 0).sum() / (1.*len(cn_by_gene))\n", "pct_amp = (cn_by_gene > 0).sum() / (1.*len(cn_by_gene))\n", "pct_altered = pct_amp + pct_del\n", "pct_altered.name = 'CIN'\n", "\n", "pct_del.name = 'pct_del'\n", "pct_altered.name = 'pct_altered'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define competing models" ] }, { "cell_type": "code", "collapsed": false, "input": [ "f0 = robjects.Formula('event ~ old')\n", "f1 = robjects.Formula('event ~ TP53 + old')\n", "f2 = robjects.Formula('event ~ del_3p + old')\n", "f3 = robjects.Formula('event ~ TP53 + del_3p + old')\n", "f8 = robjects.Formula('event ~ TP53 + del_3p + pct_del + old')\n", "f4 = robjects.Formula('event ~ TP53 + del_3p + two_hit + old')\n", "f5 = robjects.Formula('event ~ two_hit + old')\n", "f6 = robjects.Formula('event ~ TP53 + del_3p + pct_del + TP53:pct_del + old')\n", "f7 = robjects.Formula('event ~ TP53 + del_3p + pct_del + two_hit + TP53:pct_del + old')\n", "\n", "formulas = [f0, f1, f2, f3, f8, f7]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Preform Leave on out cross-validation on various logistic models to test for the TP53-3p interaction." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To convert the survival data into a binary classification problem, we organized patients into two classes depending on whether they were surviving or deceased at T years after surgery. In this analysis, the ratio of deceased to surviving patients is artificially high due to the ability to observe a death in a shorter followup than the full time interval required to annotate a patient as surviving (i.e. the basis of the Cox censorship problem). To reduce this bias, we removed patients with an observed death but a time of surgery after a set year (2013 \u2013 (T \u2013 1))." ] }, { "cell_type": "code", "collapsed": false, "input": [ "year = clinical.clinical.yearofinitialpathologicdiagnosis.astype(float)\n", "year.max()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "2013.0" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "def surv_to_binary(surv, t, year):\n", " last_collection = year.max()\n", " ss = surv.unstack()\n", " ss = ss[(ss.days >= (365*t)) | (ss.event == 1)]\n", " ss = ss.ix[ti(year < (last_collection - (t-1)))]\n", " event = ss.ix[ss.index.intersection(keepers_o)].dropna().days >= (365*t)\n", " event = event.astype(float)\n", " event.name = 'event'\n", " return event" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sample size for each time point" ] }, { "cell_type": "code", "collapsed": false, "input": [ "e2 = pd.concat({t: surv_to_binary(clinical.survival.survival, t, year).value_counts() \n", " for t in range(1,6)}, axis=1)\n", "e2.index = ['Deceased', 'Alive']" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "fig, ax = subplots(figsize=(3,2))\n", "e2.T.plot(kind='bar', stacked=True, ax=ax, rot=0, fontsize=11)\n", "ax.legend(frameon=False)\n", "prettify_ax(ax)\n", "ax.set_ylabel('# of Patients')\n", "ax.set_xlabel('Time Cutoff (Years)')\n", "fig.tight_layout()\n", "fig.savefig(FIGDIR + '/CV_sample_size.pdf')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n3rxpU1tbK9nY2EhkMplC586dW9rXtslkco6urm4WDodjiYiINNvZ2UU/f/7cxMnJKbK3bPxSLU1/\nEBYW5iovL18ZFxdnLUjBAADIyspSg4KC1jMYDHxrayv22rVr8wQxi9D169dt8/LytHJycsiHDh3a\nPnfu3P8JQjAAAP7+/pvWrFlzCgCgpaVF+NatW7M44fq9xS8nGkF3BCQlJU1MSkqaSCaTczgpNDR0\nnSBs29jY3LSwsEjW0tLKMzQ0TJeSkqrx8PA4IQjb3Ajymm/cuDGARqOJqqmpUbS1td/q6em9Wbx4\n8YXetMFzskAEAtE5v1xLg0D0FCQaBKKLINEgEF0EiQaB6CJINDwYPnx4Ph6PZ+DxeAYWi23l/BYW\nFm4pLi5WwePxjM+fP8v1he3q6mrptWvXnlRUVKwQFxevNzExeR4dHW33PWXV1NQoz58/N+F3nKen\n5zEikdj4zz//TElKSpqooKDwcenSpec6OzYzM1Pfzc0t5Nq1a/OkpaWrq6qqZLjz7ezsoh0cHKK+\n7+y6zrJly/7+8OGDal/V32UEOZzjR00YDKa1srJyiCBssVgsrLGx8fPp06cn5ObmjmCxWNhHjx5Z\nKCkplUVFRdnzK6+mplaUmpo6lt9xw4YNK0xMTJzGZrNh7969exwdHS/yOnbatGmJBQUF6mw2G6ys\nrOLd3d2DOHmPHj2yEBcXrysvL1fsq2uSkpJiumjRogv9fR9wUr878COkzkSDwWBaP378KB8eHu5s\nY2Nzw87O7qqYmFi9jY3NjRs3btioqakVDRkypDI6Ono+p8zZs2ddlJWVS4hEIm316tWnmEwmrqOt\nv//+20lBQaGCRqMRufdHRUXZr1+/PpDNZsPEiRMfXr582YGTx9meOXPmLQwG04rH41ueP39u3NjY\nSFi2bFmEqKhog4qKyoerV6/asdltIuAcFxkZuRSLxbKwWCxryZIl5zr6k56ebmBubp7M2c7Pz9cQ\nExOrz83NHdHa2ooZM2bMC39/f08mk4nz8PA4LiUl9UVGRoZ68uTJNZwy58+fX6yurl4gIiLSZGxs\n/JwTvh4eHu5sa2v7v3nz5sXMmTPnenV19eAZM2bEiYqKNpBIpOJLly4t5NShp6eXWVRUpNbf9wKb\njUTTI9FUVlYOCQ8Pd8bhcMyoqCj76urqwSQSqdjQ0DDt06dPcpcvX3aQk5P7xGazITk52ZxEIhVn\n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\nAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn.metrics import roc_curve, auc, precision_recall_curve\n", "\n", "def as_FV(s):\n", " '''\n", " Convert a Series to R FloatVector object.\n", " '''\n", " fv = robjects.FloatVector(s)\n", " fv.names = list(s.index)\n", " return fv" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "accuracy = {}\n", "predictions = {}\n", "error = {}\n", "roc_area = {}\n", "aupur = {}\n", "\n", "for t in [1,2,3,4,5]:\n", " event = surv_to_binary(clinical.survival.survival, t, year)\n", "\n", " df = pd.concat([p53_mut, del_3p<0, event, old, two_hit, pct_del, age], axis=1).dropna()\n", " df_r = convert_to_r_dataframe(df)\n", "\n", " outcome = event.map(len(event) - event.value_counts())\n", " outcome = outcome / sum(outcome)\n", "\n", " prediction = {}\n", " for i,p in enumerate(df.index):\n", " pt = df.index[[i]]\n", " df_r = convert_to_r_dataframe(df.ix[df.index.diff(pt)])\n", " o2 = outcome.ix[outcome.index.diff(pt)]\n", " models = [robjects.r.glm(f, family='binomial', weights=as_FV(o2), \n", " data=df_r) \n", " for f in formulas]\n", " df_p = convert_to_r_dataframe(df.ix[pt])\n", " prediction[p] = [robjects.r.predict(m, df_p, type='response')[0] for m \n", " in models]\n", " prediction = pd.DataFrame(prediction).T\n", " prediction.columns = ['1','TP53','3p',\n", " 'TP53 + 3p',\n", " 'TP53 + 3p + TP53:3p',\n", " 'TP53 + 3p + pct_del + TP53:3p + TP53:pct_del']\n", " \n", " accuracy[t] = ((((prediction.T >= .5)) == (df.event == 1)) * outcome).sum(1)\n", " predictions[t] = prediction\n", "\n", " error[t] = ((prediction.T - df.event).abs() * outcome).sum(1)\n", " \n", " fpr = {}\n", " tpr = {}\n", " roc_auc = {}\n", " aupur_auc = {}\n", " for m,v in prediction.iteritems():\n", " a,b = match_series(v, df.event)\n", " fpr, tpr, thresh = roc_curve(b, a)\n", " roc_auc[m] = auc(fpr, tpr)\n", " precision, recall, thresh = precision_recall_curve(b, a)\n", " aupur_auc[m] = auc(recall, precision)\n", " roc_area[t] = roc_auc\n", " aupur[t] = aupur_auc\n", "roc_area = pd.DataFrame(roc_area).T\n", "aupur = pd.DataFrame(aupur).T" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "fig, axs = subplots(1,2, figsize=(10,3.5))\n", "ax = axs[0]\n", "roc_area.columns = ['m0','m1','m2','m3','m4','m5']\n", "roc_area.plot(kind='bar', legend=False, ax=ax)\n", "ax.legend(loc='lower left')\n", "ax.set_xticklabels([1,2,3,4,5], rotation=0)\n", "#ax.set_ylim(0.35,0.52)\n", "ax.set_ylabel('AUROC')\n", "ax.set_xlabel('Time (years)')\n", "prettify_ax(ax)\n", "\n", "ax = axs[1]\n", "aupur.columns = ['m0','m1','m2','m3','m4','m5']\n", "aupur.plot(kind='bar', legend=False, ax=ax)\n", "#ax.legend(loc='lower right')\n", "ax.set_xticklabels([1,2,3,4,5], rotation=0)\n", "#ax.set_ylim(0.5,0.72)\n", "ax.set_ylabel('AUPUR')\n", "ax.set_xlabel('Time (years)')\n", "prettify_ax(ax)\n", "fig.tight_layout()\n", "fig.savefig(FIGDIR + 'CV_supp_AUC.pdf')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "pd.concat([roc_area, aupur], axis=0, keys=['AUROC','AUPUR'])" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
m0m1m2m3m4m5
AUROC1 0.19 0.36 0.32 0.43 0.43 0.66
2 0.13 0.34 0.34 0.43 0.49 0.62
3 0.14 0.39 0.36 0.49 0.68 0.69
4 0.16 0.42 0.40 0.52 0.69 0.70
5 0.19 0.41 0.41 0.51 0.71 0.73
AUPUR1 0.59 0.74 0.72 0.78 0.79 0.86
2 0.29 0.48 0.46 0.55 0.57 0.66
3 0.20 0.39 0.34 0.47 0.56 0.61
4 0.17 0.34 0.30 0.43 0.50 0.54
5 0.16 0.28 0.26 0.34 0.43 0.52
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ " m0 m1 m2 m3 m4 m5\n", "AUROC 1 0.19 0.36 0.32 0.43 0.43 0.66\n", " 2 0.13 0.34 0.34 0.43 0.49 0.62\n", " 3 0.14 0.39 0.36 0.49 0.68 0.69\n", " 4 0.16 0.42 0.40 0.52 0.69 0.70\n", " 5 0.19 0.41 0.41 0.51 0.71 0.73\n", "AUPUR 1 0.59 0.74 0.72 0.78 0.79 0.86\n", " 2 0.29 0.48 0.46 0.55 0.57 0.66\n", " 3 0.20 0.39 0.34 0.47 0.56 0.61\n", " 4 0.17 0.34 0.30 0.43 0.50 0.54\n", " 5 0.16 0.28 0.26 0.34 0.43 0.52" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "fig, axs = subplots(1,2, figsize=(10,3.5))\n", "ax = axs[0]\n", "ct = pd.concat(error, axis=1).T\n", "ct.columns = ['m0','m1','m2','m3','m4','m5']\n", "ct.plot(kind='bar', legend=False, ax=ax)\n", "ax.legend(loc='lower left')\n", "ax.set_xticklabels([1,2,3,4,5], rotation=0)\n", "ax.set_ylim(0.35,0.52)\n", "ax.set_ylabel('Linear Prediction Error')\n", "ax.set_xlabel('Time (years)')\n", "prettify_ax(ax)\n", "\n", "ax = axs[1]\n", "ct = pd.concat(accuracy, axis=1).T\n", "ct.columns = ['m0','m1','m2','m3','m4','m5']\n", "ct.plot(kind='bar', legend=False, ax=ax)\n", "#ax.legend(loc='lower right')\n", "ax.set_xticklabels([1,2,3,4,5], rotation=0)\n", "ax.set_ylim(0.5,0.72)\n", "ax.set_ylabel('Weighted Accuracy')\n", "ax.set_xlabel('Time (years)')\n", "prettify_ax(ax)\n", "fig.tight_layout()\n", "fig.savefig(FIGDIR + 'CV_supp.pdf')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n3+nq6hYJBIK83bt3K2/+QSMWFBREQ4YMoYEDB5KdnR3169ePZs+eTdbW1uTr60upqalVrm/dujWZ\nm5tTcXEx+fn5qShqAKgvT548aefu7i5q27btUwsLi1upqanWVlZWaTdv3uym6tgAAJobhUnxjh07\nJl+/fr1nRkaGWUhISFjPnj2v29nZXV26dOma2vpUVFSou7m5xc+dO3dzfn6+ob6+/uOAgICNNV1b\nWlqq4+/vv1W+LTo62i8hIaF/enq6pUgkcp83b96mW7duWbz74zVt9vb2b16z2WyysPjfvwJtbe23\nKkxcunSJTp8+TT179iRnZ2cSi8UNFitAc8Nm01vbl+rp8Rs0Bg8Pj0M9evS48ezZszZqamqVdnZ2\nVwMDAyN8fHx2NWggAAAtgMLpEyYmJtl79+6dQPR6JfSYMWMOy2QyFpfLLamtT2JiohOHw5EwReeF\nQmGwlZVVmlQq1dDQ0KiSyQUFBYV7enoejIiICGTa9u/f77V48eJvDAwMHhoYGDx0d3cXHTp0yGPZ\nsmWr3/9Rmx42W3FxkCtXrpCamhrZ2dmRmZkZmZmZkbW1NbVr146uXLlCAwYMaIBIAZqf8nIimcy+\nShuLldygMVy6dOnjEydODNXU1HzFtE2ePHkHdrEDAKh/CkeKy8rKtBYsWLChU6dO93R0dErv3LnT\n1dPT82B+fr5hbX1SUlJsrK2t33y3LxAI8jgcjiQjI8NM/rpz5871u3nzZrcZM2b8KN+emppqLd/f\nzs7uakpKis27PVrLEBcXR4GBgVXaiouLiYhIXx+bDgI0ZWZmZhmnT58eKN926dKlj7t27XpHVTEB\nADRXCpPiSZMm7SkqKtI9f/68MxFRjx49bvTu3fvKl19+WWtds5KSEi6Px6vy3T2PxxMXFxe/+e6x\nrKxMa86cOZHbt2+fXr2/WCzmyffncrkl8n1bIplMRjKZ7K32CRMmUGJiIq1evZpu3bpFCQkJNH78\nePr000+pR48eKogUAOpLTEzMVD8/v+hRo0b9Wl5ezh43btzPY8aMObx+/fqFqo4NAKC5Ufj9/IkT\nJ4Y+fvxYn5kuwWazy5cvX75KV1e31h0weDyeWCwW8+TbxGIxj8/nFzPnwcHBQi8vr/1mZmYZWVlZ\nnWvqb2homF9T3+pCQ0PfvHZxcSEXFxdFj9XosVist85rauvTpw/Fx8dTSEgICYVC4nK5NHz4cFq/\n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\njobp2gD+iin1YULQiwlBL2bSkH/NMxhOSUnJtIsXL77Y++1XFEXRdXV141xdXZuZrO1ZCw4OLoyO\njk6fO3fuablcbj116tQrP/7444LB8teroVEURTNdgyG98cYbGTdv3pzg7+9/WaVSmc+bN+/UgQMH\n3mK6LoC/Y0p9mBD0YvRiZlE0bdTnHwAAAADgb+H2CQAAAAAweRgUAwAAAIDJw6AYAAAAAEweBsUA\nAAAAYPIwKIZBZfz48be4XK6ay+WqWSyWTv/ZzMysp6mpyY3L5arv37/vaKj9r1y5MrupqcnNUNv/\nK+Hh4V/fvn3bnYl9AwD0hl6MXmyKMCiGQeXWrVvj1Wo1V61WcwkhpKWlxUWtVnN7enrM3NzcmtRq\nNdfR0fG+IfZ94cKFGWw2W+vm5tZkiO3/nejo6PQPPvhgJxP7BgDoDb0YvdgUYVAMQwqLxdJJpVLn\nI0eORIhEovylS5fmWltby0UiUf6JEycWjhkzpsHZ2Vmal5cn1q+TkZHxhqura/OwYcO633rrrQNa\nrZbd37aTkpJiIyIijuh0Opazs7P0559//jf9dytXrsxOSEjYptVq2e++++5eW1vbdgcHh7bez1fM\nzs5eOW7cuDoLCwvl9OnTf6upqfEihJAjR45ELF68+HuxWJy3aNGi4+3t7bZCobDAysqqy83NrSkn\nJ2cFIYQEBgYWV1ZWejc2NgoMdgIBAJ4B9GIwSky/ZxpBnhSKonRSqdSpv3kZGRkRbDZbc/To0WUy\nmczW1dW1ydfXt7S1tdUxJydnuaOjYytN0+T8+fMzXV1dm6qrq73a2trs582bV5iamrqh7766u7st\nra2tO3t6erg0TZM1a9YciImJSaZpmmi1WpaDg8P98vJynx07dnz42muvnW5ra7OvqamZJBAIGioq\nKrzlcrmVnZ3dg+rqai+VSmX29ttvfyEWi4/RNE0yMjIiOByO+ocfflig0+mozZs3J8XExCRrNBp2\ncXFxgK2trUypVJrTNE1iY2M/++yzz2KZPvcIgiD6oBcjphJcKYYhy8fHp2LZsmXf2tratk+ePLk6\nMjLysKOj4/2goKCf2traHHp6esyysrJWvfPOO//h5eVVY29v/2DLli17cnNzl/bd1pUrV6aOGTOm\nQf/WqMWLF39fWFgYTAghxcXFgXw+v9PHx6ciKytr1a5du+Ls7e0fTJo06Vp4ePjXubm5Szkcjubs\n2bNzvLy8atrb220tLS0fPXjwwF6//WnTppUsWLDgR4qi6K6uLqv6+vqxFRUVPv7+/pfr6urGmZmZ\n9RBCiJ+f39WioqKZA3UOAQCeFnoxGAsMimHIcnZ2lvae5vP5nYQQwmaztYQQQtM01dTU5BYXF7eL\nx+MpeDyeIjg4uFAikYzqu627d++OdHBwaNNPz5kz56xEIhnV2NgoKCgoEC5atOg4Ib+/k37GjBkX\n9NvbvXv31paWFhcWi6VLSkqKdXd3v71ixYqcyspK796v67SxsenQf05MTIx3dHS8P3/+/JMjR468\nm5SUFKtf1sHBoa2lpcXlWZ8rAABDQS8GY4FBMRg1R0fH+ykpKZsUCgVPoVDw2traHE6cOLGw73IU\nRdEsFkunnzYzM+uZP3/+yYKCAmFBQYFw6dKlufrtlZaWPq/fXmNjo2D79u3bMzMzw5qbm10bGxsF\n586de2X58uVHaZqm+quppKRk2t69e9+VSCSjCgsLgzMyMt7Q3zOn0+nw/yQAGB30YhgK8B8djEbf\nxkdRFC0Wi/P279//dmNjo6Crq8tq3bp1X6SkpGzqu+7IkSPvymQyu97zFi9e/P1XX331pkwmswsM\nDCwmhBCxWJy3Y8eOjzo7O/lNTU1uQqGwoKioaKZKpTJXq9VcpVJpce3atUmpqakbVSqVeX91Jicn\nb967d++7Go2GY2Nj00HTNDVixIh7hBDS2trqNGrUKMmzOysAAAMLvRiGKgyKYdDq/U9efedRFEX3\n/b73tP6zSCTKDw0N/WbmzJlFTk5OrXK53DopKSm273b9/Pyu1tfXj9U/fogQQoKDgwtramq8xGJx\nnn7ejh07PmKz2VqBQNDo6+tbJhQKC0JDQ79ZtWpVFo/HU9jb2z948803v/rkk08+rKurG5eenh7d\nt9a0tLQNhYWFwcOHD3/40ksvnY+Li9s1efLkakIIqays9J4xY8aFpztzAADPDnoxmAymf+mHIIMl\nYrH42KlTp+b2nufp6Xntt99+8x+oGgICAopra2vHM30uEARBmAp6McJUcKUY4P+8//77nx46dCiK\nEEIePXpkWVRUNJPFYun8/f0vD8T+KysrvUeMGHFv/PjxtwZifwAAgxF6MTCFw3QBAIPF9OnTf7Oy\nsuqqr68fm5OTs2L37t1bs7KyVg3U/lNSUjZ9+umn7w/U/gAABiP0YmAKRdN/ulUIAAAAAMCk4PYJ\nAAAAADB5GBQDAAAAgMnDoBgAAAAATB4GxQAAAABg8jAoBgAAAACTh0ExAAAAAJi8/wWSy4tNEC7L\nlgAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "ct1= pd.concat(accuracy, axis=1)\n", "ct2 = pd.concat(error, axis=1)\n", "ct = pd.concat([ct1, ct2], keys=['Weighted Accuracy', 'Linear Prediction Error'], axis=0)\n", "ct.columns = ['1y','2y','3y','4y','5y']\n", "ct.columns.name = 'Time Cutoff'\n", "ct" ], "language": "python", "metadata": {}, "outputs": [ { "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", "
Time Cutoff1y2y3y4y5y
Weighted Accuracy1 0.56 0.52 0.53 0.54 0.58
TP53 0.20 0.60 0.60 0.62 0.63
3p 0.58 0.60 0.63 0.64 0.62
TP53 + 3p 0.61 0.63 0.67 0.68 0.67
TP53 + 3p + TP53:3p 0.56 0.63 0.66 0.64 0.66
TP53 + 3p + pct_del + TP53:3p + TP53:pct_del 0.63 0.62 0.69 0.68 0.71
Linear Prediction Error1 0.49 0.50 0.50 0.50 0.48
TP53 0.49 0.48 0.47 0.46 0.45
3p 0.46 0.47 0.44 0.44 0.45
TP53 + 3p 0.46 0.46 0.43 0.42 0.44
TP53 + 3p + TP53:3p 0.47 0.46 0.43 0.42 0.43
TP53 + 3p + pct_del + TP53:3p + TP53:pct_del 0.45 0.45 0.42 0.41 0.40
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "Time Cutoff 1y 2y 3y 4y 5y\n", "Weighted Accuracy 1 0.56 0.52 0.53 0.54 0.58\n", " TP53 0.20 0.60 0.60 0.62 0.63\n", " 3p 0.58 0.60 0.63 0.64 0.62\n", " TP53 + 3p 0.61 0.63 0.67 0.68 0.67\n", " TP53 + 3p + TP53:3p 0.56 0.63 0.66 0.64 0.66\n", " TP53 + 3p + pct_del + TP53:3p + TP53:pct_del 0.63 0.62 0.69 0.68 0.71\n", "Linear Prediction Error 1 0.49 0.50 0.50 0.50 0.48\n", " TP53 0.49 0.48 0.47 0.46 0.45\n", " 3p 0.46 0.47 0.44 0.44 0.45\n", " TP53 + 3p 0.46 0.46 0.43 0.42 0.44\n", " TP53 + 3p + TP53:3p 0.47 0.46 0.43 0.42 0.43\n", " TP53 + 3p + pct_del + TP53:3p + TP53:pct_del 0.45 0.45 0.42 0.41 0.40" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Analysis of top model with full censored data " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we test two hypotheses: \n", "* Does the model imporove on an additive model of TP53, 3p and age (we would include deletion rate as well but this was dropped in model selection) \n", "* Does the addition of the TP53-3p interaction term improve the fit of the model (drop-1 test)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fmla0 = 'Surv(days, event) ~ TP53 + del_3p + old'\n", "fmla1 = 'Surv(days, event) ~ TP53 + del_3p + pct_del + TP53:pct_del + old'\n", "fmla2 = 'Surv(days, event) ~ TP53 + del_3p + pct_del + two_hit + TP53:pct_del + old'\n", "\n", "m0 = get_cox_ph(surv, covariates=[p53_mut, del_3p < 0, two_hit, old, age, pct_del], formula=fmla0)\n", "m1 = get_cox_ph(surv, covariates=[p53_mut, del_3p < 0, two_hit, old, age, pct_del], formula=fmla1)\n", "m2 = get_cox_ph(surv, covariates=[p53_mut, del_3p < 0, two_hit, old, age, pct_del], formula=fmla2)\n", "LR_test(m2,m0), LR_test(m2, m1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "(0.016999296949315183, 0.022793238361218802)" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is the full model" ] }, { "cell_type": "code", "collapsed": false, "input": [ "get_cox_ph(surv, covariates=[p53_mut, del_3p < 0, two_hit, old, age, pct_del], \n", " formula=fmla2, print_desc=True);" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", " coef exp(coef) se(coef) z p\n", "TP53 -0.568 0.567 0.3940 -1.44 0.1500\n", "del_3p -0.693 0.500 0.5359 -1.29 0.2000\n", "pct_del 0.222 1.249 0.1434 1.55 0.1200\n", "two_hit 1.411 4.100 0.6665 2.12 0.0340\n", "old 0.281 1.325 0.0868 3.24 0.0012\n", "TP53:pct_del -0.631 0.532 0.2130 -2.96 0.0030\n", "\n", "Likelihood ratio test=41.3 on 6 df, p=2.48e-07 n= 250, number of events= 102 \n", "\n" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Forest plots of the models" ] }, { "cell_type": "code", "collapsed": false, "input": [ "fig, axs = subplots(3,1, figsize=(6,5), sharex=True)\n", "\n", "ax = axs[0]\n", "ci = convert_robj(robjects.r.summary(m0)[7])\n", "haz = ci['exp(coef)']\n", "for j,h in enumerate(haz):\n", " ax.scatter(h, j, marker='s', s=100, color='grey', \n", " edgecolors=['black'], zorder=10)\n", " ax.plot(*zip(*((ci.iloc[j]['lower .95'],j), (ci.iloc[j]['upper .95'],j))), \n", " lw=3, ls='-', marker='o', dash_joinstyle='bevel', color='grey')\n", "ax.axvline(1, ls='--', color='black')\n", "ax.set_xbound(.5,3.5)\n", "ax.set_ybound(-.5,len(ci.index) - .5)\n", "\n", "ax.set_yticks(range(len(ci.index)))\n", "ax.set_yticklabels(ci.index)\n", "\n", "ax = axs[1]\n", "ci = convert_robj(robjects.r.summary(m1)[7])\n", "ci = ci.ix[['TP53','del_3p','pct_del','TP53:pct_del']][::-1]\n", "haz = ci['exp(coef)']\n", "for j,h in enumerate(haz):\n", " ax.scatter(h, j, marker='s', s=100, color='grey', \n", " edgecolors=['black'], zorder=10)\n", " ax.plot(*zip(*((ci.iloc[j]['lower .95'],j), (ci.iloc[j]['upper .95'],j))), \n", " lw=3, ls='-', marker='o', dash_joinstyle='bevel', color='grey')\n", "ax.axvline(1, ls='--', color='black')\n", "ax.set_xbound(.5,3.5)\n", "ax.set_ybound(-.5,len(ci.index) - .5)\n", "ax.set_yticks(range(len(ci.index)))\n", "ax.set_yticklabels(ci.index)\n", "\n", "ax = axs[2]\n", "ci = convert_robj(robjects.r.summary(m2)[7])\n", "ci = ci.ix[['TP53','del_3p','pct_del','TP53:pct_del','two_hit']][::-1]\n", "haz = ci['exp(coef)']\n", "for j,h in enumerate(haz):\n", " ax.scatter(h, j, marker='s', s=100, color='grey', \n", " edgecolors=['black'], zorder=10)\n", " ax.plot(*zip(*((ci.iloc[j]['lower .95'],j), (ci.iloc[j]['upper .95'],j))), \n", " lw=3, ls='-', marker='o', dash_joinstyle='bevel', color='grey')\n", "ax.axvline(1, ls='--', color='black')\n", "ax.set_xbound(.5,3.5)\n", "ax.set_ybound(-.5,len(ci.index) - .5)\n", "\n", "ax.set_yticks(range(len(ci.index)))\n", "ax.set_yticklabels(ci.index)\n", "\n", "for ax in axs:\n", " prettify_ax(ax)\n", " ax.set_xscale('log')\n", " ax.set_xticks([.25, .5, 1, 1.5, 2, 4,8,16])\n", " ax.set_xticklabels([.25, .5, 1, 1.5, 2, 4,8,16])\n", "ax.set_xlabel('Hazard Ratio')\n", "ax.set_xbound(.15, 17) \n", "fig.tight_layout()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n0D98DwlAT65evUqurq40YMAAte0yMjJIIpHoJigAPWL9CCk9Pd3Xy8vr3Lx58762tLSscHd3z7lx\n40ZfIqI1a9Ys79KlywMHB4eSNWvWLL9//37XMWPG/Hzz5s0+AwcOvKSu39raWpPw8PDtFhYWle7u\n7jnXrl17TfVcVVWV+fTp05MsLCwqBQJBYWsWVQXQhLm5OXXq1EntZmpqqu8wAXTCIEZIFy9efOO9\n9977/unTp9ZffvllZHBw8L6lS5eu/+GHH6bk5OS4KxQK7ogRI06PGzfuRFpamt/8+fO3Xrp0aaC6\nPv/1r3/9/ebNm32Kiop6lJWV2fr4+JwZNGhQLhHR4sWLv+BwOPXFxcXdrl69+vrEiRMPjxgx4rRu\nzhYMBdvLibM9PoCXGURCsra2frpo0aJNRESLFi3aFB8fH7tz586Zy5YtW9e9e/d7RM/LSJibm1ep\niu015+jRowFRUVEbrK2tn1pbWz+dOXPmzuzs7MFKpZJJTk4OvXv3bk9LS8uKYcOG/frWW2/9dPjw\n4YkuLi6/t+V5guFQlRNvWApCJBLpMaIXqYsPSQnYyiASkqpcuYqNjc2TzMxM74SEhBjVvlGjRmUQ\nEd2/f7+rJn0+fPjQzt7e/o9iPE5OTtKLFy++UVpaai+Tyfg9evQoUj2nVCoZZ2fnO0hIoKKuNL2v\nr69GExvasoQ7yp2DITKIhKQqV070/N5PSUmJg7Oz852ioqI/VuZMTk4OdXNzu61pn46OjgVSqdTJ\n29s7U3UMhmGUtra2ZUZGRs8eP37cic/ny4iICgoKHE1NTWsa3md6WcOpvr6+vi9UjYX2R11pejb8\n7lHuHAwR6yc1ED0f9WzatGmRTCbjr1279uPhw4efnTt37rbPPvvsw+Li4m5Xrlzpv3jx4i9sbGye\ncLlchUwm4yuVSrWL+IWGhiZv2LAhqqSkxOHmzZt9vvnmmzlERDweT/7222//Jy4uLq66utrs2rVr\nr40aNSojPz+/l7r+miphDu0T20vTo9w5GCKDGCE5OzvfycjIGLVs2bJ1Hh4evx08ePBdOzu7h1Kp\n1Mnd3T2Hz+fL1q5d+7Gbm9ttOzu7h0ZGRs+GDBly/sKFC02WIn3//fe/u3bt2mu9e/e+ZW1t/fT9\n99//Ljs7ezAR0ddffz1vzpw53zg4OJSYmZlVr1y5cvWwYcN+TU9P99WkLDq0f9ooTd+WJdxR7hwM\nEevLT6Snp/tGRERsuX79ej99x9IUlJ/omF61nHhbl3BHuXNgoY5boM/V1TVPKpU6vbx/yJAh5zMz\nM731ERO0H69aTtzU1JQyMjLowoULats9ffqUjI2NW9w/yp2DoTGIhNTay2R5eXmu2o4FoDmqe4nN\n2bBhA3344Yca9ens7PyKUQGwH+sv2RkCXLKDhhiGaXIWHkAHh4qxAADAfkhIAADACkhIAADACkhI\nAADACkhIAFoWGxur7xAADBJm2WkBZtkBAGik9bPsXF1d83g8npzH48k5HE696mcejyfv1atXvpGR\n0TPVY1tb27KwsLDdVVVV5kREMTExCaampjV8Pl/G5/NlvXv3vqXqd9u2bXO7d+9+z9ra+mlgYOCB\nhw8f2mnjTOPi4uIiIiK2tPR1M2bM2LVu3bplbdE3aO7s2bPE5XKJYZhmt+DgYH2HCwBapvaLsQ2/\nWMrhcOqLiop6dOnS5QER0Ztvvvl/a9eu/TgoKGg/EdHdu3d7Tpgw4djatWs/XrVq1Sd5eXmuqamp\n40ePHn2qYZ+5ubmDli9fvubEiRPj3NzcboeHh2+Pjo5O3L59e3hbnKAmGIZRNvflW6xh1/aePHlC\n/fr1o7/97W9q2+Xl5VFRUZHaNgBgeLR2D6lnz553/f39xbm5uYOIiPLz83s1Vj8oLS3NLzAw8MDg\nwYOzLS0tK8LCwnb/9ttvHkRECQkJMWPHjj1J9HxEMnv27G99fX3TzczMqidPnnyooqLCkoiosrLS\nYtq0aXssLCwq3dzcbh8/fvyv+/fvD1q1atUn27Ztm7tw4cLN6mItKirqMWrUqAxzc/Oqd95550hF\nRYWlanXwvLw8Vx8fnzN8Pl/m7u6ec/v2bTdtvUfQPE1GRwDQPr3S0kENSzwUFhYKUlNTxwcHB+8j\nep6QwsPDt2dlZQ3t27fvjU2bNi3y9PS8sHjx4i9Ur6murjbbu3fv1OHDh58len6Zr2H/KSkpIWlp\naX4DBw68NGvWrB0rVqz4dNOmTYv+8Y9/fM7n82UlJSUO586d8woJCUkpLCwUxMTEJNy/f7/r5s2b\nF6qLOzw8fLunp+eFtLQ0vxMnToybNGnSj15eXufq6+s5b7/99n8WL178xcmTJ8d+//33702dOnXv\nhQsXPJsrZ9HedZRy2B3lPAHYqNUjJKVSyYSFhe1W3SPy9PS84OPjcyYqKmpDTU2NqUAgKIyMjPyy\n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\nqZ47ePDgZE0uPWKEZADc3d1zcnNzB6ke3717t6dMJuOr/jdLRPT48eNOI0eO/MXT0/PC1atXXx83\nbtwJIqLKykqLNWvWLG/Y37Nnz4wsLCwqdXcGL9LkfPbs2TPt8uXLA1SPnz17ZmRubl6l61gNhTbe\nr7q6OmN/f3+xqalpze3bt91CQ0OTtR9p2zl16tTopKSk6aqZpEREQqFQcvjw4Yn6jk1T9fX1nNra\nWpOG+zgcTn1zla/ZxsnJSdpwVl1tba2JRpd+9Z1VsTW/yeVyI0dHR+m2bdvCy8rKbN5///1d06ZN\n+75hm4SEhE9CQ0P3vPxahULBcXZ2zv/8888X19TUmJw5c8bb1tb28ZUrV15n8/nExMTEv/nmm2kl\nJSVdS0tL7caNG5e6dOnSdfr+XWi66XqEpI33a/fu3dNHjBjxi77fO21thjip4fLly/0tLS3LT5w4\n4V9TU2Py5ZdfLvD09Dyv77g02Rp+Nnfs2DFzwIABl/Lz852Li4sdhg4d+uu//vWvRc31ofeTwKbZ\ndv78ec8BAwZcMjMzq/rLX/5y/NGjR52+++67MFdX19tKpZLeeeedw1wu95mRkZFctfF4vDqlUkm/\n/fabu5eXV5apqanM1dX1NhsuxTR3PnV1dbzZs2d/Y21t/cTGxqYsPDx8m0wmM9V33JpuukhI2n6/\nFi1a9C8Oh6N4+TNUUFDQU9/vZ2s2Q5z2rVQq6d///negm5vbLRMTk5o333wzTSKROOk7Jk22lz/z\nn3zySYKtre1jW1vbx//4xz8+06QPrGUHAACsgHtIAADACkhIAADACkhIAADACkhIAADACkhIAFok\nkUiEfD5f9vL+uLi4uIiIiC26jmfXrl0z/vrXvx5/eX96erovh8Op5/F4ch6PJzc2Nq7r2rXr/YUL\nF25WKBTc5vrlcDj1qpW03dzcbhvKitTAbkb6DgCgI2Bjmfs+ffrcvH79ej/VY4lEIhwxYsRpJycn\nqSbLDin//3I2DdcgBHgVGCEB6JhEIhG++eab/2dhYVHZvXv3e19++WUk0fMFKVUjFh6PJ+dwOPWz\nZs3aQfR8JQYXF5ffTU1Na7y8vM5du3btNaLnI6DJkycfCgwMPDBp0qQf6+rqjMPDw7dbWFhUuru7\n56jaaUIoFEqGDRv26507d5yJiLKzswcPGTLkvJmZWXWvXr3y//3vf/+NiKh///5XiIh69ux598GD\nB12EQqHk3LlzXkREJ06cGOfq6ppnZmZWHRgYeKC8/P+1d38xTV1hAMDPoeCluvZKa10DTDr+dFgz\n1wR5wIGlCy+YzgmNYdR1pWZK8GG8NMZuMYwswiR9wWRjf8xabWgkA43DuBdjayHuwZHgDDCRrjDp\nVoEC3obdXlru2cNys4awDTOinX6/5CS9N/fc8/X04cvtOfccRrqxvQeeaU/7ZSooUJ6lEgwGVZmZ\nmezq8y0tLR81NTV9RghB9fX1nra2Nns8Hk8fHBx8XSQSJRiGkSRfPzo6upOm6cWBgYHyaDT6gkwm\ni4yMjGg4jtt0/PjxT41GYy8hBDmdzob09PR4f3+/ged5fObMmRMVFRX+xcVFOhgMqrKzs0PV1dXX\nVsfj9Xori4uLx1a3qVQqf+vt7TUSQlBZWdktt9v9TiKREHk8nvrktfEwxvzMzIyCkL9eiAwGgyqa\nphd9Pp8uFotRjY2Nnx88ePDy0/5NoPx/CvxlB8AG4ziOWj2OlEgk0o8ePfoVQgidPHnyk6Kiovux\nWCwzLS2NJ4TghYWFLGG9MpZlxXV1dT02m81RXl4+GIvFMm/cuPGGRqMZffjw4YubN2/+PRKJyIV7\n79mz5weDwXAVIYT6+/vftNlsDpqmH9E0/chqtTqHhoZK1opzfHxcLcTJ83xaPB7P0Ov1XqPR2IcQ\nQp2dnc0lJSVD0WhUkpGREV+9qy9JWoGaEIK7u7sPG43GPp1OdxMhhDo6Ok4oFIrZ+fl5mUwmm9+I\nvgXPNkhIAGwwiqI4lmXFyedaW1tbwuGwEiGE7ty581ptbe0liUQS1Wq1wyKRaCX52ubm5k6FQjEr\n7G+FMSYOh8Pm9/v35efn/0xRFJc8JrV169ZF4fPc3Nw2hUIxKxzn5eVN/V1CUqvV48ljSMPDw9rK\nykqf1+vV6/V6r8/nqzx06NA327dvn1Gr1eP/9r1DoVBO8p43UqmUkcvlkVAolAMJCawHJCQAngBC\nCMYYk6WlpS3Hjh378u7du68WFhZOLC8vb0reMLGnp6fuypUrbyWvhu52u80PHjx4aXJyUoUxJk6n\n03rhwoV312pnx44dv0xNTeXt3bv3FkIICUlwPbRa7XBpaent6enp3ImJicK2trYPAoFAgUwmmw8G\ngy97PB7TP9XPzc2dDgQCBcIxwzDSSCQiz8nJCa03BvB8g0kNADwhhBDM83za8vLypqWlpS0Mw0jt\ndns7z/NpLMuKA4FAQWNj4xcul6tBqVSGhXocx1HxeDwjFotljo2N7Tx79uz7q7coEJhMJo/D4bCF\nw2HlvXv3Xjl37tx7jzPDj6IoTtgCYWVlRcSyrHh2dlZx6tSpj4VYEPpz2nc0GpUI9TDGxGQyefr6\n+owDAwMVHMdRdru9ff/+/dfg6QisFyQkADbYWgkAY0wwxkQikUTb29vtOp3upkajGS0qKrpfW1t7\nyWKxnO/u7j7MMIz0wIED3woz7aqrq78zm81usVjMyuXyyJEjR74+ffr0h4FAoKCrq6tJuK/QjsVi\nOV9VVXVdrVaPV1VVXTebze7HiTM7O/tXv9+/b9euXSNWq9VZXFz8U1lZ2fc1NTWXS0tLb1sslvMI\nIWQwGK7u3r37x7m5uW1CXZVKNXnx4sW3GxoaXFlZWQuhUCjH5XI1/OcOBc8NWO0bAABASoAnJAAA\nACkBEhIAAICUAAkJAABASoCEBAAAICVAQgIAAJASICEBAABICX8AQeqkEkcCAXcAAAAASUVORK5C\nYII=\n", "text": [ "" ] } ], "prompt_number": 17 } ], "metadata": {} } ] }