{ "cells": [ { "cell_type": "markdown", "id": "authentic-stevens", "metadata": { "lines_to_next_cell": 0 }, "source": [ "# Matching the C. elegans connectomes\n", "Here we compare performance on matching the C. elegans male and hermaphrodite\n", "chemical connectomes. The connectomes have been reduced to the intersection of their\n", "largest connected components prior to loading in, so they share the same node set." ] }, { "cell_type": "code", "execution_count": 1, "id": "historic-emerald", "metadata": { "execution": { "iopub.execute_input": "2021-03-16T13:58:33.499334Z", "iopub.status.busy": "2021-03-16T13:58:33.498615Z", "iopub.status.idle": "2021-03-16T13:58:33.785169Z", "shell.execute_reply": "2021-03-16T13:58:33.784757Z" }, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "import datetime\n", "import time\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "from scipy.optimize import quadratic_assignment\n", "\n", "from pkg.data import load_c_elegans\n", "from pkg.gmp import quadratic_assignment_ot\n", "from pkg.io import savefig\n", "\n", "t0 = time.time()\n", "\n", "\n", "def stashfig(name, **kwargs):\n", " savefig(name, foldername=\"elegans\", print_out=False, **kwargs)" ] }, { "cell_type": "markdown", "id": "corporate-imagination", "metadata": {}, "source": [ "## Load the data" ] }, { "cell_type": "code", "execution_count": 2, "id": "welcome-distinction", "metadata": { "execution": { "iopub.execute_input": "2021-03-16T13:58:33.788139Z", "iopub.status.busy": "2021-03-16T13:58:33.787621Z", "iopub.status.idle": "2021-03-16T13:58:33.929214Z", "shell.execute_reply": "2021-03-16T13:58:33.929638Z" }, "tags": [ "hide-input" ] }, "outputs": [], "source": [ "male_adj, herm_adj, cell_names = load_c_elegans()" ] }, { "cell_type": "markdown", "id": "naked-skiing", "metadata": { "lines_to_next_cell": 0 }, "source": [ "## Run the graph matching experiment" ] }, { "cell_type": "code", "execution_count": 3, "id": "loaded-navigation", "metadata": { "execution": { "iopub.execute_input": "2021-03-16T13:58:33.935728Z", "iopub.status.busy": "2021-03-16T13:58:33.935100Z", "iopub.status.idle": "2021-03-16T14:08:37.026018Z", "shell.execute_reply": "2021-03-16T14:08:37.026432Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "603.042 seconds elapsed.\n" ] }, { "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", "
col_indfunnitmatch_ratiomethodreg
0[355, 354, 66, 3, 4, 62, 6, 7, 8, 9, 10, 11, 1...466202.0500.657277vanillaNone
1[289, 0, 275, 3, 281, 75, 10, 38, 8, 9, 285, 1...413488.0220.528169goat100
2[42, 228, 2, 3, 4, 5, 6, 38, 8, 10, 285, 11, 1...449849.0420.591549goat300
3[1, 163, 2, 3, 4, 267, 9, 38, 8, 10, 285, 12, ...454419.0310.586854goat500
4[2, 163, 62, 3, 4, 75, 5, 38, 8, 10, 9, 12, 11...469003.0380.624413goat700
\n", "
" ], "text/plain": [ " col_ind fun nit \\\n", "0 [355, 354, 66, 3, 4, 62, 6, 7, 8, 9, 10, 11, 1... 466202.0 50 \n", "1 [289, 0, 275, 3, 281, 75, 10, 38, 8, 9, 285, 1... 413488.0 22 \n", "2 [42, 228, 2, 3, 4, 5, 6, 38, 8, 10, 285, 11, 1... 449849.0 42 \n", "3 [1, 163, 2, 3, 4, 267, 9, 38, 8, 10, 285, 12, ... 454419.0 31 \n", "4 [2, 163, 62, 3, 4, 75, 5, 38, 8, 10, 9, 12, 11... 469003.0 38 \n", "\n", " match_ratio method reg \n", "0 0.657277 vanilla None \n", "1 0.528169 goat 100 \n", "2 0.591549 goat 300 \n", "3 0.586854 goat 500 \n", "4 0.624413 goat 700 " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "correct_inds = np.arange(len(herm_adj))\n", "\n", "\n", "def compute_match_ratio(inds, correct_inds):\n", " matched = inds == correct_inds\n", " return np.mean(matched)\n", "\n", "\n", "vanilla_options = dict(maximize=True, maxiter=150, tol=1e-5, shuffle_input=True)\n", "goat_options = dict(maximize=True, maxiter=150, tol=1e-5, shuffle_input=True)\n", "currtime = time.time()\n", "n_init = 50\n", "rows = []\n", "for i in range(n_init):\n", " res = quadratic_assignment(male_adj, herm_adj, options=vanilla_options)\n", " res[\"match_ratio\"] = compute_match_ratio(res[\"col_ind\"], correct_inds)\n", " res[\"method\"] = \"vanilla\"\n", " res[\"reg\"] = \"None\"\n", " rows.append(res)\n", " for reg in [100, 300, 500, 700]: # above 700 usually breaks\n", " goat_options[\"reg\"] = reg\n", " res = quadratic_assignment_ot(male_adj, herm_adj, options=goat_options)\n", " res[\"match_ratio\"] = compute_match_ratio(res[\"col_ind\"], correct_inds)\n", " res[\"method\"] = \"goat\"\n", " res[\"reg\"] = reg\n", " rows.append(res)\n", "print(f\"{time.time() - currtime:.3f} seconds elapsed.\")\n", "results = pd.DataFrame(rows)\n", "results.head()" ] }, { "cell_type": "markdown", "id": "pressing-jerusalem", "metadata": { "lines_to_next_cell": 0 }, "source": [ "## Plot results" ] }, { "cell_type": "code", "execution_count": 4, "id": "average-capital", "metadata": { "execution": { "iopub.execute_input": "2021-03-16T14:08:37.030201Z", "iopub.status.busy": "2021-03-16T14:08:37.029520Z", "iopub.status.idle": "2021-03-16T14:08:37.833337Z", "shell.execute_reply": "2021-03-16T14:08:37.833766Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sns.set_context(\"talk\")\n", "fig, ax = plt.subplots(1, 1, figsize=(8, 6))\n", "sns.scatterplot(data=results, x=\"fun\", y=\"match_ratio\", hue=\"reg\", ax=ax)\n", "stashfig(\"elegans-fun-vs-match\")" ] }, { "cell_type": "markdown", "id": "amazing-capital", "metadata": { "lines_to_next_cell": 0 }, "source": [ "## End" ] }, { "cell_type": "code", "execution_count": 5, "id": "western-begin", "metadata": { "execution": { "iopub.execute_input": "2021-03-16T14:08:37.837435Z", "iopub.status.busy": "2021-03-16T14:08:37.836856Z", "iopub.status.idle": "2021-03-16T14:08:37.870225Z", "shell.execute_reply": "2021-03-16T14:08:37.870629Z" }, "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "----\n", "Script took 0:10:04.088688\n", "Completed at 2021-03-16 10:08:37.867158\n", "----\n" ] } ], "source": [ "elapsed = time.time() - t0\n", "delta = datetime.timedelta(seconds=elapsed)\n", "print(\"----\")\n", "print(f\"Script took {delta}\")\n", "print(f\"Completed at {datetime.datetime.now()}\")\n", "print(\"----\")" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-all", "main_language": "python", "notebook_metadata_filter": "-all" }, "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.8" } }, "nbformat": 4, "nbformat_minor": 5 }