{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tube segmentation" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/Users/thomasathey/Documents/mimlab/mouselight/env/lib/python3.8/site-packages/python_jsonschema_objects/__init__.py:50: UserWarning: Schema version http://json-schema.org/draft-04/schema not recognized. Some keywords and features may not be supported.\n warnings.warn(\n" ] } ], "source": [ "from brainlit.utils import session\n", "from brainlit.feature_extraction import *\n", "import napari" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "url = \"s3://open-neurodata/brainlit/brain1\"\n", "sess = session.NeuroglancerSession(url=url, url_segments=url + \"_segments\", mip=0)\n", "SEGLIST = [\n", " 101,\n", " 103,\n", " 106,\n", " 107,\n", " 109,\n", " 11,\n", " 111,\n", " 112,\n", " 115,\n", " 11,\n", " 12,\n", " 120,\n", " 124,\n", " 126,\n", " 127,\n", " 129,\n", " 13,\n", " 132,\n", " 133,\n", " 136,\n", " 137,\n", " 14,\n", " 140,\n", " 141,\n", " 142,\n", " 143,\n", " 144,\n", " 145,\n", " 146,\n", " 147,\n", " 149,\n", " 150,\n", "]\n", "SEGLIST = SEGLIST[:1]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "Downloading: 100%|██████████| 1/1 [00:00<00:00, 9.18it/s]\n", "Downloading: 0%| | 0/1 [00:00\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
SegmentVertexLabel0123456...17181920212223242526
01010128778301113012028438299093009228315...28751303833068329420295653076929762288652936429687
11010012290120901222212340122151237612185...12208121441184512030126821234012336121941238312067
21011115429165581758715353166621745915462...18105149261644117088151871671217474154011693918366
31011012166122901218012162121291212412058...12297120901203812144119591192912116120931229812407
41012113005125351233312903126601240212846...12502123881240412471128601252612441129511277112571
\n

5 rows × 30 columns

\n" }, "metadata": {}, "execution_count": 5 } ], "source": [ "data.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler\n", "\n", "X = data.iloc[:, 3:]\n", "X = StandardScaler().fit_transform(X)\n", "\n", "y = data[\"Label\"]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [] }, "outputs": [], "source": [ "from sklearn.neural_network import MLPClassifier\n", "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=1)\n", "clf = MLPClassifier(\n", " hidden_layer_sizes=4, activation=\"logistic\", alpha=1, max_iter=1000\n", ").fit(X_train, y_train)\n", "y_score = clf.predict_proba(X_test)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-04-29T19:42:25.299133\n image/svg+xml\n \n \n Matplotlib v3.3.2, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import matplotlib.pyplot as plt\n", "from sklearn.metrics import roc_curve, auc\n", "\n", "fpr, tpr, _ = roc_curve(y_test, y_score[:, 1])\n", "roc_auc = auc(fpr, tpr)\n", "\n", "plt.figure()\n", "lw = 2\n", "plt.plot(\n", " fpr, tpr, color=\"darkorange\", lw=lw, label=\"ROC curve (area = %0.2f)\" % roc_auc\n", ")\n", "plt.plot([0, 1], [0, 1], color=\"navy\", lw=lw, linestyle=\"--\")\n", "plt.xlim([0.0, 1.0])\n", "plt.ylim([0.0, 1.05])\n", "plt.xlabel(\"False Positive Rate\")\n", "plt.ylabel(\"True Positive Rate\")\n", "plt.title(\"MLP ROC\")\n", "plt.legend(loc=\"lower right\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from brainlit.feature_extraction.neighborhood import subsample" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "(20, 27)" ] }, "metadata": {}, "execution_count": 11 } ], "source": [ "X.shape" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LogisticRegression\n", "\n", "Xc_train, Xc_test, yc_train, yc_test = train_test_split(\n", " X, y, stratify=y, random_state=1\n", ")\n", "clf = LogisticRegression(random_state=1, max_iter=2000).fit(Xc_train, yc_train)\n", "yc_score = clf.predict_proba(Xc_test)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\n\n\n\n \n \n \n \n 2021-04-29T19:43:42.656215\n image/svg+xml\n \n \n Matplotlib v3.3.2, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "fpr_c, tpr_c, _ = roc_curve(yc_test, yc_score[:, 1])\n", "roc_auc_c = auc(fpr_c, tpr_c)\n", "\n", "plt.figure()\n", "lw = 2\n", "plt.plot(\n", " fpr_c,\n", " tpr_c,\n", " color=\"darkorange\",\n", " lw=lw,\n", " label=\"ROC curve (area = %0.2f)\" % roc_auc_c,\n", ")\n", "plt.plot([0, 1], [0, 1], color=\"navy\", lw=lw, linestyle=\"--\")\n", "plt.xlim([0.0, 1.0])\n", "plt.ylim([0.0, 1.05])\n", "plt.xlabel(\"False Positive Rate\")\n", "plt.ylabel(\"True Positive Rate\")\n", "plt.title(\"LogRegression Receiver operating characteristic\")\n", "plt.legend(loc=\"lower right\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "name": "python386jvsc74a57bd0c48f87b51193a18c36f6ec1b39da40df380a4c3fb2fa54b3e413dc2378ec9052", "display_name": "Python 3.8.6 64-bit ('env')" }, "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.6" } }, "nbformat": 4, "nbformat_minor": 2 }