{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial: Computing with shapes of landmarks in Kendall shape spaces" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this tutorial, we show how to use geomstats to perform a shape data analysis. Specifically, we aim to study the difference between two groups of data:\n", "- optical nerve heads that correspond to normal eyes,\n", "- optical nerve heads that correspond to glaucoma eyes.\n", "\n", "We wish to investigate if there is a difference in these two groups, and if this difference is a difference in sizes of the optical nerve heads, or a difference in shapes (where the size has been quotiented out)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set up" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "import sys\n", "import warnings\n", "\n", "sys.path.append(os.path.dirname(os.getcwd()))\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO: Using numpy backend\n" ] } ], "source": [ "%matplotlib inline\n", "import matplotlib.colors as colors\n", "import matplotlib.patches as mpatches\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n", "\n", "import geomstats.backend as gs\n", "import geomstats.datasets.utils as data_utils\n", "from geomstats.geometry.pre_shape import PreShapeSpace, KendallShapeMetric" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We import the dataset of the optical nerve heads from 22 images of Rhesus monkeys’ eyes (11 monkeys), available in [[PE2015]](#References). \n", "\n", "For each monkey, an experimental glaucoma was introduced in one eye, while the second\n", "eye was kept as control. One seeks to observe differences between the glaucoma and the\n", "control eyes. On each image, 5 anatomical landmarks were recorded: \n", "- 1st landmark: superior aspect of the retina, \n", "- 2nd landmark: side of the retina closest to the temporal bone of the skull,\n", "- 3rd landmark: nose side of the retina, \n", "- 4th landmark: inferior point,\n", "- 5th landmark: optical nerve head deepest point.\n", "\n", "Label 0 refers to a normal eye, and Label 1 to an eye with glaucoma." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(22, 5, 3)\n", "[0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1]\n", "[ 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10]\n" ] } ], "source": [ "nerves, labels, monkeys = data_utils.load_optical_nerves()\n", "print(nerves.shape)\n", "print(labels)\n", "print(monkeys)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We extract the landmarks' sets corresponding to the two eyes' nerves of the first monkey, with their corresponding labels." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2, 5, 3)\n", "[0 1]\n" ] } ], "source": [ "two_nerves = nerves[monkeys==0]\n", "print(two_nerves.shape)\n", "\n", "two_labels = labels[monkeys==0]\n", "print(two_labels)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "label_to_str = {0: 'Normal nerve', 1: 'Glaucoma nerve'}\n", "label_to_color = {0: (102/255, 178/255, 255/255, 1.), 1: (255/255, 178/255, 102/255, 1.)}\n", "\n", "fig = plt.figure()\n", "ax = Axes3D(fig)\n", "ax.set_xlim((2000, 4000))\n", "ax.set_ylim((1000, 5000))\n", "ax.set_zlim((-600, 200))\n", "\n", "for nerve, label in zip(two_nerves, two_labels):\n", " x = nerve[:, 0]\n", " y = nerve[:, 1]\n", " z = nerve[:, 2]\n", "\n", " verts = [list(zip(x,y,z))]\n", " \n", " poly = Poly3DCollection(verts, alpha=0.5)\n", " color = label_to_color[int(label)]\n", " poly.set_color(colors.rgb2hex(color))\n", " poly.set_edgecolor('k')\n", " ax.add_collection3d(poly)\n", "\n", "patch_0 = mpatches.Patch(color=label_to_color[0], label=label_to_str[0], alpha=0.5)\n", "patch_1 = mpatches.Patch(color=label_to_color[1], label=label_to_str[1], alpha=0.5)\n", "plt.legend(handles=[patch_0, patch_1], prop={'size': 14})\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first try to detect if there are two groups of optical nerve heads, based on the 3D coordinates of the landmarks sets." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from geomstats.geometry.euclidean import EuclideanMetric\n", "\n", "nerves_vec = nerves.reshape(22, -1)\n", "\n", "eucl_metric = EuclideanMetric(nerves_vec.shape[-1])\n", "\n", "eucl_dist = eucl_metric.dist_pairwise(nerves_vec)\n", "\n", "plt.figure()\n", "plt.imshow(eucl_dist);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We do not see any two clear clusters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to investigate if there is a difference between these two groups of shapes - normal nerve versus glaucoma nerve - or if the main difference is merely relative to the global size of the landmarks' sets." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "m_ambient = 3\n", "k_landmarks = 5\n", "\n", "preshape = PreShapeSpace(m_ambient=m_ambient, k_landmarks=k_landmarks)\n", "matrices_metric = preshape.embedding_metric\n", "\n", "sizes = matrices_metric.norm(preshape.center(nerves))\n", "\n", "plt.figure(figsize=(6, 4))\n", "for label, col in label_to_color.items():\n", " label_sizes = sizes[labels==label]\n", " plt.hist(label_sizes, color=col, label=label_to_str[label], alpha=0.5, bins=10)\n", " plt.axvline(gs.mean(label_sizes), color=col)\n", "plt.legend(fontsize=14)\n", "plt.title('Sizes of optical nerves', fontsize=14);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The vertical lines represent the sample mean of each group (normal/glaucoma)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAf8AAAEJCAYAAACaOi66AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgBklEQVR4nO3debgdVZmo8fcjBHC2NVEwEIIGEUSZwnSdEEQjInQL1wsqCrZGbWkVtVXUZrJtZ3FAhSg0oFwVcUorasPVOLSCBhoZBaMiBFDCIIMEMPrdP9Y6pFLsMw87nHp/z7Ofs6tq7VWrqtZaX9Wq2vtEZiJJkrpjvX4XQJIkTS2DvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxExr8I2JpRJzQmH5wRJwVEbdFREbEvF7zJrIM64KIODQi7pzkdZwaEd+azHWMoAzrRcRJEXFzPZZ7TPH696jrnTWBeWZEHDhR+a0LpuM2TYaIuDoi3trvckxHEXFnRBza73JMpKno5yfTsMG/Bpmsr79ExI0R8YOIeH1EzGwlfxFwZGP6lcAzgacDmwDXDjJvuvky8PhJXscbgZdN8jqGsw9wGPBCyrH86WStaJCO+ad1vTdP1npVRMQxEXFpv8shaWKsP8J05wKHADOA2cCewLHAIRGxV2b+GSAzb2l9bj5wRWZeMjAjIu43bywiYmZm/mU8eUyWzFwFrJrkddw2mfmP0HzghsyctKA/lMy8F/hDP9Y90dbl+iw9UNmuhpCZQ76AU4Fv9Zi/LXAvcGxj3lLghMb7bLyW9ppX024AfABYAdwF/AJ4XiPfPWr6fYCf1/XuCwTwNuA3lGB7CfCyxufm1c8dAJxT874c2Lu1LU8ClgC3AXcCPwOe0lh+WP3c3cBVwBHAekPss0OBOxvTxwCXAgfVst4BfAOYNcy+Pwr4PXAPJcid3uu4NPZP+7W0kf5/AT+s++A64DPAw4dZ/zOB8+t2/xE4Htigsf7muq4eSz6NunIi8HHg1vr60MA+7lFvsrXdsxp57QZ8H/hzPZ7fBx5Xly0EflzzvwX4HrB1q6wJHDhce6CMvFxX8/oP4MGNNCOtlwfX8q0C3lD/vrC1vucCfwEeU6fnAF9q7KdvA1sOcxwTOLymvavWqZe10gyaL6U+t+vWocD7ge828nhVXXZQY95PgHc3pl8IXFDrwu+A97bqwkj7gr0odeouYBmw4zD74LGUNr6qbv9hlDZ5TCPN1cBbG9NvBi6udek64HPAIwdr52OskxsCH6O0i7uB84Cn98jv+XW/raLU4U2BZwG/pPRZ3wIe3fjczsB/ATcBt9fjsPsw++gJwDcpfc2fgQuBfVtprgbeDZxU810B/EsrzXxKm70buJLSV98JHDrOdjXSfdWOE0sp/d1HKO1+ZV3PhsCngD8B1wCHtMr0/lr+VXW7PwhsNNTx77FdjwAWAzdS+v0fAgvqsofUfXhg6zN7U9r8Y0fS5oHN6nG7hdIefkWjDQ5atmETDBL867IlwKWN6aWsCf6PAk6hDM1uXKfvN6+mPaMeyGdShssPrwduu9ZBvYTSGT6eMgLx3npwFgJbAC+hVNoXtDrZX1E6nS2B0yjDxA+taR5HaSDfBHYBnkgZTt++Ln81cANwYF3HCymN4/Ah9tlalYIS/O8Evg48Fdid0gGdNEQeB9SK8QJgLrCguU7WDv4b1P058NqpVpJj6vKn1PW/pe6DXSknOGcNsf45dV+eCGxNaUR/AD7SqNTHUm7bbAzMHks+jXpzB/BJyonYiymd5Jsbdenaur6NgY17dbTAdpSGuhjYvq7vNcDcxj49oO6DpwJnAstZO/iMJPjfBny25v9cSudxZCPNSOvl1aypV5vW8nyptb7TgLPr+wdTTj5PreV/EiUg/Z5GJ9mjzEmp86+h1O93AX9jTSc0ZL7Ag4APU9rRQB17UN2+O4D1az5foHSsJzbyvYfaQQPPo9TpwyiB5tl1P324UdaR9gU/r59/EuUk7goghtgH36UEyt1r3fh/texDBf83UUY551EC7cXA54fq/Bl9nfw4pX95QV32WUpb3aTH9j6jHp9Lgf+u27ArpW/4HfDJRjn2pIzWbl330QmUPuHRQ+yj7YDXUvqL+ZR6ci/wpNY+urkel/nAP9fy7V6Xr0fpp38E7AA8jXJy9heGD/7DtauR7qt2nFhKqXfHUNr+W2q671BOAuYD76HU1U0a6/vXWv55lBOKa4D3DHX8W9sUlJOub1Niy8B6bm+U+SRq+2587ovA10fa5oH/pFzcbkfpSxYCCwcr133rGTbB0MH//cBdrU78hMb0CTSuPnvNo3QCf6M2hsb8bwCfbh3UAxrLH0JpVM9ofe5jrOks59XPvaaxfE6dN9AhvbfuyA0G2cZeZ4RvAi4fYp+tVSlqpbsbeERj3ruA5UPk8WZKxzhzNMeF0ikvA75G7QyB04GTW+m2r/vhMYPk/17g1zRGOOp23dOodG9liCv+UeSzlFLBo5Hm3cCKxvTVNDrmVr0Y6GjPAH42XJ1u1aG/svbVw0iC/7XAjMa8zwLnjqFevqWVZj/KmfvDGsfyduAldfqVdV8299MMSmf84iHKnMBnW/POBb4w0nxrHb60lcdDKZ36QMd/LfB24Mo6/RzKSc/AaNGPgH9t5fH3lA48GF1f0BwNeFqdt+kg279VXb5bY95m9dgfM1Qda+WzkFJvB0akDmX44D9onax15V7g5a39/hvg34bY3sPrvB0b8+53fFrrCkrgfNlgaQb53HmsPXJzNfDFVppfD6ShBN2/No8h5fmuZPjgP1y7Gum+OqCV99LmMaj7YiWwpDFvZs1/qLb/Whp9dq/j30q/J6VuP6g1/yLgbfX9AmA1MKdO/x2l/9h3FG3zYuDo0RzXzBzxPf/BRN3Z47FjzefyiGjO35AyPNa0rPF+G2Aj4LsR0SzDTEoFbbq48f76+vcx9e8OwE+y3D9eS0TMpnQSJ0XEZxqL1q9lHo3f59r36a9vlKGXr1DOSn8XEd+jXLksycx7BvtAlB14KqVyHJK1ZlBGAuZHxP9pJq9/n0AZkmrbGjgvM//WmPcTyijDfNbep0MZaT7nNcoLZWTiPRHx8My8fYTr2oEyutJTRDyBcua9K+WKYL36mjvC/Adcnpl/bUxfX/OE0dXLZa3p71CC/z9QTtj2oxynb9TlO1HO7O9otZUHU47jUH7WY/oF48k3M++MiAuAPSJiJWU06FPAMRGxCaUz/lmjbe0E7BIRb29ksx7lJGdjRtcXDNamV/Qo6pMoJxX37e/MvDYiru+R9j4RsSflAeat67bNYM0o25CfbRiqTj6BUi/+u1Guv0bEzyj1qKm5vX+sfy9pzbuvP4mIx1Dq+rMptzxmUPbzoHU9Ih4CHE0Znduklm0j7t/W29PNvmxr4LrMvKax/HzK/h/OUO1qNPuq3a7WKnNmZkTcSGP/ZeZfIuJW1t6HB1Iu9OZTTnRn1NdI7URpQytb9Xmjuj1k5rKIuAR4BfDvlFHCWyh9wUAew7XNjwMnRsRCymjQ1zPzguEKN97gvw3w23HmsR7lBGJnylVEU/uhuT+3PgdlGP6aVrp2PvdN1wPf/PxwZYNyxjfeh9raZcqhylA7p60o9zafQ7lfdXRE7Jr1AcsejqIMl+7cSrMeZajo+B6fuW6E5W+XfSJMVD4j9S1KcHgNZbtXU57l2GCU+Qx1LEdTL9c6jrUDOhN4KSX4v5TSkO9q5H0R5dmRtvbDtqMxnnyXUgLMSuDH9YTg/DpvD8pJa3M9x1JObNtWMrq+oLl8oB5N2FeXI2JzynDtZynt6mbKyckXWVNf/sb9LwLa34Aaq3bbuN/25toPsrX7k9MoQf8IyknnPZTAMFRd/zBldOOtlKvNuyj1sP2ZUfVlozDWfNv7qlf/2CvvQdcXEbtR7rMfS9mHf6KcjH94BOUZsB7lpOwZPZY1L2g+R7nQ+3fKlf5pjZOgYdtmZp5cLxD3ocSKn0bE+zLzmKEKN+bgHxHbUirKv401j+p/KA1o48z8wSg+dzmlQm+eme2rgtGu/2URsUH76j8z/1ivDp6QmaePYx1jkpl3Uzqgb0fE+yn3yp9GeZBnLfUs9W3AszOzffVzIfDkzFw+itVfAbw4ItZrXLU/nTI09ptJyGfXiIjG1f9uwPWNq/57Gf6s+38oQ233ExGPplwB/tNAPYuIHRn/CXDbeOvlF4AfRcQ2lPa1b2PZhZSHBG/KzD+NMt/dKM/bNKevGEW+g+3/pZT7vrfW9wPzXkAJ4u9opL2Qcv+4Zz2MiLH2BcP5FaUT3YlyFUpEbEp53mcwCyhB74iBjjgi9m2lWQk8uDU6tX0rzaB1klL/76W06d/UdcygPJfwf4fdqqE9HXhDZn675vtYytX8cJ85PTO/Wj8zcIV61SjWewUwJyI2y8yBr3HvwvhPDiZzX/XyNMoIxnsGZtQTwtG4kHIC9rfMHOoi+QzgQxFxOOUEsxnoR9Tma5+/GFhcR9beSLkVNKiRHpANI2LjiHhcRGwXEW+mNPALGN2Z0P1k5lWUjT81Ig6MiMdHxIKIeGtEvGiIz91R1/3hiHhlRMyPiO0j4rURsWgURfg0ZUjnzIjYueZzcERsX5cfDbwtIo6IiK0iYtuIeHlEHDlojhOg/oDEqyLiKRGxBeUhqb9QzsjbabelnOm/E7imHquNI+JRNckHKMOtJ0bEDnUb942Ik4YowqcpneOnI2LriHgB5RmPExpXoiMx0nweB3ys7uMDgX9h7ZGKq4FnRMScGPxHfT4E7BARi2s93aruw7mU4HQT8Oq6/c+iPIS4ehTbMqzx1sssX5v8PaVDu4lytTbgDMqVxDcj4lkRsUVEPDMiPhIRWw6T9Ysi4tURsWWtu3tRnkMYab5XA5tHxI4RMSsiNqzzB27hvAgYCNhLKQ9trqY8qDbgOOAlEXFcbUdPqm3+g3Xbx9QXDCczr6Q8FHhiROxW2/Z/UK5sBxt9+jWlf3xT3R8HU4aAm86nXGW+rx7nA4B/aqUZtE7W0bnPAB+IiH0iYus6/VhKuxmPqygXNdtExM6Uq9j73drs8Zl/qMf4KZQT0Y1Gud5zKSdbp9d6vzulHY+rnU3yvurlKspJzEtrPXwdJQiPxrmU2xTfjIjn13q0e0QcGxH3jQbUoP4VyujujzKz2ccP2zYj4uMRsbCWc3vKRcPlw5ZuuIcCWPsrXaspHdJSykMnG7TSLmWUD/zlmoctjqHcQhj47vYSYKfs8RBN43NBueoYuNpaSXnqce+6fF793ILW55LGgx3Ak4GzKQ9n3EEZ4t+2sfxgyhnY3ZQg8hOG+CoFg3zVb6g0PfL4e8p92T9ROphf0PjaDWs/7X9o4xg1X0sb6RdQhmBvr/ldAhw3zLEf+IrePaz5it6GjeXDPvA3wnyWUgLxCXV7b6U0hObDP7tRnta+m6G/6vd0yoNlq2pe57Lmydo9KU9K313/Po/WV5DadWOQ9vCt1ry1ji9jrJeNzx9Xl3+0x7LHUgLXjTXv31Gu6Af92ihrvur33bpfrgFeMZp8Kffdz6rHJlv77Ly6r2fU6Y3qPj63R1meS/mq2l21Li5j7W+xjLovGG5/1jQbU56Kvrtu/6GUK8i3N9JczdpP+7+BcntoFeUk7MV1PfMaafanBIpVlBOMl/Uo31B1svn1tXsY/OtrzfwOpLaBxrzXUq4OB6a3o7S5VXU7D6H11cYe+2jzWrY/U26PvZVyq+zUwfZRo/02+/0nUr7Sdg/lJGo/RvhVv2Ha1aj3Va/y1Xn32xe0vsUFvI/Sdu+kPED9uuZ+Z2Rf9XsY5Z78Ckp9vpZyIvaEVrpn1rK/vEcew7XNT9b9fHct75eoDxAO9Rp4Glzqm4hYSmnkh/e7LOqGOnp0PXBw1mFuqV+iPIx9EuX3H0YzsjpmE32/U5LWOVGe3H8YZcTrMZSvoN7E2g8kSlMqIh5MGZV6J+XruFMS+MH/6iepG2ZSHk6+hDL8fxfwzBz8mzPSVHgb5fdcbqF8NXPKOOwvSVLHeOUvSVLHeM9/ks2aNSvnzZvX72JI6qArr7wSgK222qrPJRm9Cy644KbMnN3vckxXBv9JNm/ePJYt6/Vrk5I0ufbYYw8Ali5d2tdyjEVE/L7fZZjOHPaXJKljDP6SJHWMwV+SpI4x+EuS1DEGf0mSOsbgL0lSxxj8q4jYKCJ+HhG/jIjLIuLYHmk2jIgvR8TyiDg/Iub1oaiSJI2LwX+Ne4A9M3M7YHtgYUTs1krzj8CtmTmf8m9pPzC1RZQkafwM/lUWd9bJmfXV/scH+wOn1fdnAXtFRExRESVJmhD+wl9DRMwALgDmA5/KzPNbSeYA1wJk5uqIuA14NOVfgzbzWQQsApg7d+5kF1vSA8Dx51w15etccesqNv27B035erXu88q/ITP/mpnbA5sCu0TEtmPMZ3FmLsjMBbNn+9PUkqR1i8G/h8z8E/ADYGFr0XXAZgARsT7wCODmKS2cJEnjZPCvImJ2RDyyvn8QsDfwq1ayJcAr6vsDge9nZvu5AEmS1mne819jE+C0et9/PeDMzPxWRBwHLMvMJcDJwOcjYjlwC3BQ/4orSdLYGPyrzLwY2KHH/KMa7+8G/vdUlkuSpInmsL8kSR1j8JckqWMM/pIkdYzBX5KkjjH4S5LUMQZ/SZI6xuAvSVLHGPwlSeoYg78kSR1j8JckqWMM/pIkdYzBX5KkjjH4S5LUMQZ/SZI6xuAvSVLHGPwlSeoYg78kSR1j8JckqWMM/pIkdYzBX5KkjjH4S5LUMQZ/SZI6xuAvSVLHGPwlSeoYg78kSR1j8K8iYrOI+EFEXB4Rl0XEG3uk2SMibouIi+rrqH6UVZKk8Vi/3wVYh6wG3pKZF0bEw4ALIuKczLy8le7HmblvH8onSdKE8Mq/yswbMvPC+v4O4ApgTn9LJUnSxDP49xAR84AdgPN7LN49In4ZEd+JiCcP8vlFEbEsIpatXLlyMosqSdKoGfxbIuKhwFeBN2Xm7a3FFwKbZ+Z2wCeBb/TKIzMXZ+aCzFwwe/bsSS2vJEmjZfBviIiZlMB/RmZ+rb08M2/PzDvr+7OBmRExa4qLKUnSuBj8q4gI4GTgisz86CBpNq7piIhdKPvv5qkrpSRJ4+fT/ms8DTgEuCQiLqrz3gnMBcjME4EDgddFxGpgFXBQZmYfyipJ0pgZ/KvM/AkQw6Q5AThhakokSdLkcNhfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBv8qIjaLiB9ExOURcVlEvLFHmoiIT0TE8oi4OCJ27EdZJUkaj/X7XYB1yGrgLZl5YUQ8DLggIs7JzMsbaZ4PbFlfuwKfqX8lSXrA8Mq/yswbMvPC+v4O4ApgTivZ/sDpWZwHPDIiNpniokqSNC5e+fcQEfOAHYDzW4vmANc2plfUeTe0Pr8IWAQwd+7cSSvndHT8OVf1bd1H7P3Evq1bmiwrbl3Vt3Zlm1p3eeXfEhEPBb4KvCkzbx9LHpm5ODMXZOaC2bNnT2wBJUkaJ4N/Q0TMpAT+MzLzaz2SXAds1pjetM6TJOkBw+BfRUQAJwNXZOZHB0m2BHh5fep/N+C2zLxhkLSSJK2TvOe/xtOAQ4BLIuKiOu+dwFyAzDwROBvYB1gO3AUcNvXFlCRpfAz+VWb+BIhh0iTw+qkpkSRJk8Nhf0mSOsbgL0lSxxj8JUnqGIO/JEkdY/CXJKljDP6SJHWMwV+SpI4x+EuS1DEGf0mSOsbgL0lSxxj8JUnqGIO/JEkdY/CXJKljDP6SJHWMwV+SpI4x+EuS1DEGf0mSOsbgL0lSxxj8JUnqGIO/JEkdY/CXJKljDP6SJHWMwV+SpI4x+EuS1DEGf0mSOsbgX0XEKRFxY0RcOsjyPSLitoi4qL6OmuoySpI0EdbvdwHWIacCJwCnD5Hmx5m579QUR5KkyeGVf5WZPwJu6Xc5JEmabAb/0dk9In4ZEd+JiCcPligiFkXEsohYtnLlyqksnyRJwzL4j9yFwOaZuR3wSeAbgyXMzMWZuSAzF8yePXuqyidJ0ogY/EcoM2/PzDvr+7OBmRExq8/FkiRp1Az+IxQRG0dE1Pe7UPbdzf0tlSRJo+fT/lVEfBHYA5gVESuAo4GZAJl5InAg8LqIWA2sAg7KzOxTcSVJGjODf5WZBw+z/ATKVwElSXpAc9hfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBv8qIk6JiBsj4tJBlkdEfCIilkfExRGx41SXUZKkiWDwX+NUYOEQy58PbFlfi4DPTEGZJEmacAb/KjN/BNwyRJL9gdOzOA94ZERsMjWlkyRp4qzf7wI8gMwBrm1Mr6jzbmgnjIhFlNEB5s6dO+YVHn/OVWP+rDQS/apjR+z9xL6s1zYlFV75T4LMXJyZCzJzwezZs/tdHEmS1mLwH7nrgM0a05vWeZIkPaAY/EduCfDy+tT/bsBtmXm/IX9JktZ13vOvIuKLwB7ArIhYARwNzATIzBOBs4F9gOXAXcBh/SmpJEnjY/CvMvPgYZYn8PopKo4kSZPGYX9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4N8QEQsj4sqIWB4R7+ix/NCIWBkRF9XXq/pRTkmSxmP9fhdgXRERM4BPAXsDK4BfRMSSzLy8lfTLmXn4lBdQkqQJ4pX/GrsAyzPzt5l5L/AlYP8+l0mSpAln8F9jDnBtY3pFndd2QERcHBFnRcRmvTKKiEURsSwilq1cuXIyyipJ0pgZ/EfnP4F5mflU4BzgtF6JMnNxZi7IzAWzZ8+e0gJKkjQcg/8a1wHNK/lN67z7ZObNmXlPnfwcsNMUlU2SpAlj8F/jF8CWEbFFRGwAHAQsaSaIiE0ak/sBV0xh+SRJmhA+7V9l5uqIOBz4HjADOCUzL4uI44BlmbkEeENE7AesBm4BDu1bgSVJGiODf0Nmng2c3Zp3VOP9kcCRU10uSZImksP+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfhLktQxBn9JkjrG4C9JUscY/CVJ6hiDvyRJHWPwlySpYwz+kiR1jMFfkqSOMfg3RMTCiLgyIpZHxDt6LN8wIr5cl58fEfP6UExJksbF4F9FxAzgU8DzgW2AgyNim1ayfwRuzcz5wPHAB6a2lJIkjZ/Bf41dgOWZ+dvMvBf4ErB/K83+wGn1/VnAXhERU1hGSZLGbf1+F2AdMge4tjG9Ath1sDSZuToibgMeDdzUTBQRi4BFdfLOiLhyUko8OWbR2p4OmAXc9OZ+l2Jq9fU492lfd7FuA8x683O36st2j/M4bz4xpVAvBv9JkJmLgcX9LsdYRMSyzFzQ73JMJbe5G7q4zdDd7dbQHPZf4zpgs8b0pnVezzQRsT7wCODmKSmdJEkTxOC/xi+ALSNii4jYADgIWNJKswR4RX1/IPD9zMwpLKMkSePmsH9V7+EfDnwPmAGckpmXRcRxwLLMXAKcDHw+IpYDt1BOEKabB+TtinFym7uhi9sM3d1uDSG8cJUkqVsc9pckqWMM/pIkdYzBX0TE9hFxXkRcFBHLImKXOj8i4hP154wvjogd+13WiRYR/xwRv4qIyyLig435R9btvjIintfPMk6GiHhLRGREzKrT0/ZYR8SH6jG+OCK+HhGPbCybtsd5uJ8rV7cZ/AXwQeDYzNweOKpOQ/mp4y3raxHwmb6UbpJExLMpv9q4XWY+Gfhwnb8N5WHOJwMLgU/Xn3+eFiJiM+C5wDWN2dP5WJ8DbJuZTwWuAo6E6X2cR/hz5eowg78AEnh4ff8I4Pr6fn/g9CzOAx4ZEZv0o4CT5HXA+zPzHoDMvLHO3x/4Umbek5m/A5ZTfv55ujgeeBvluA+Ytsc6M/8rM1fXyfMov+EB0/s4j+TnytVhBn8BvAn4UERcS7n6PbLO7/WTx3OmtmiT6onAM+p/aPxhROxc50/b7Y6I/YHrMvOXrUXTdptbXgl8p76fzts8nbdNE8Dv+XdERJwLbNxj0buAvYAjMvOrEfFiyu8ZPGcqyzdZhtnu9YFHAbsBOwNnRsTjp7B4k2KYbX4nZch/WhlqmzPzmzXNu4DVwBlTWTZpXWTw74jMHDSYR8TpwBvr5FeAz9X3I/nJ43XaMNv9OuBr9Vcafx4Rf6P885cH9HYPts0R8RRgC+CX9Z9RbgpcWB/wnJbbPCAiDgX2BfZq/CrnA3qbhzGdt00TwGF/QbnH/6z6fk/g1/X9EuDl9Unw3YDbMvOGfhRwknwDeDZARDwR2IDyX9+WAAdFxIYRsQXlIbif96uQEyUzL8nMx2TmvMycRxkK3jEz/8A0PtYRsZDyjMN+mXlXY9G0PM7VSH6uXB3mlb8AXg18vP6zortZ8++Izwb2oTwIdRdwWH+KN2lOAU6JiEuBe4FX1KvCyyLiTOByyjDx6zPzr30s51SYzsf6BGBD4Jw64nFeZr62/nz3tDzOg/1ceZ+LpXWIP+8rSVLHOOwvSVLHGPwlSeoYg78kSR1j8JckqWMM/pIkdYzBX5KkjjH4S5LUMf8fo6HQzkJMpK0AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(6, 4))\n", "plt.hist(sizes[labels==1] - sizes[labels==0], alpha=0.5)\n", "plt.axvline(0, color='black')\n", "plt.title('Difference in size of optical nerve between glaucoma and normal eyes', fontsize=14);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We perform a hypothesis test, testing if the two samples of sizes have the same average. We use the t-test for related samples, since the sample elements are paired: two eyes for each monkey." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] } ], "source": [ "from scipy import stats\n", "\n", "signif_level = 0.05\n", "\n", "tstat, pvalue = stats.ttest_rel(sizes[labels==0], sizes[labels==1])\n", "print(pvalue < signif_level)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is a significative difference, in optical nerve eyes' sizes, between the glaucoma and normal eye." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to investigate if there is a difference in shapes, where the size component has been quotiented out. \n", "\n", "We project the data to the Kendall pre-shape space, which:\n", "- centers the nerve landmark sets so that they share the same barycenter,\n", "- normalizes the sizes of the landmarks' sets to 1." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(22, 5, 3)\n", "[ True True True True True True True True True True True True\n", " True True True True True True True True True True]\n", "[ True True True True True True True True True True True True\n", " True True True True True True True True True True]\n" ] } ], "source": [ "nerves_preshape = preshape.projection(nerves)\n", "print(nerves_preshape.shape)\n", "print(preshape.belongs(nerves_preshape))\n", "print(gs.isclose(matrices_metric.norm(nerves_preshape), 1.))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to quotient out the 3D orientation component, we align the landmark sets in the preshape space. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "base_point = nerves_preshape[0]\n", "\n", "nerves_shape = preshape.align(point=nerves_preshape, base_point=base_point)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Kendall metric is a Riemannian metric that takes this alignment into account. It corresponds to the metric of the Kendall shape space, which is the manifold defined as the preshape space quotient by the action of the rotation in m_ambient dimensions, here in 3 dimensions." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "kendall_metric = KendallShapeMetric(m_ambient=m_ambient, k_landmarks=k_landmarks)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use it to perform a tangent PCA in the Kendall shape space, and determine if we see a difference in the shapes of the optical nerves." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from geomstats.learning.pca import TangentPCA\n", "\n", "tpca = TangentPCA(kendall_metric)\n", "tpca.fit(nerves_shape)\n", "\n", "plt.plot(\n", " tpca.explained_variance_ratio_)\n", "plt.xlabel(\"Number of principal tangent components\", size=14)\n", "plt.ylabel(\"Fraction of explained variance\", size=14);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Two principal components already describe around 60% of the variance. We plot the data projected in the tangent space defined by these two principal components." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtEAAAKsCAYAAAAqdeEYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAACM90lEQVR4nOzdd1hUV/4G8PfMDE1AECkqWClKEVGIGMUawZpo1NiNxiSauskvm91kU1ezu9FNMXU3JjHGbpotdmM3sQRrEMQeBQ0gVUHKzJzfH4Os6FAGZuYyw/t5Hh7g3nPuvOwa+HI4RUgpQUREREREtadROgDVnxDCCUAbAC4ARBXNygBkSimvWS0YERERkZ0SHIm2XUII54CAgHGtWrXqFRkZqfb29oZarb7r/1Appbh586Y8efKkOi0t7UJycvIyKeU5JTITERER2QOORNsoIYRjhw4dnpkxY0b4zJkz0z09PbU19dHr9di9e7f3m2+++VchxFwp5XlrZCUiIiKyNyyibVfE/fff3/kvf/nLBZVKVasOKpUK/fv3z9Fqtd7PP//8WABzLBuRiIiIyD7VrvqiBic4OLhnQkLCjdoW0Lfr379/tp+fX4gQwtP8yYiIiIjsH4toG+Xm5tY+IiLiel36ajQaGRISogfgY+ZYRERERI2CTS4s9Pb2lu3atVM6hqKklHjkkUfg6Oho9L5er8e//vUveHp64plnnrnr/s6dO3HixAm4uLhYOioRERGRTTp8+PA1KaXRQUebnBPdrl07JCYmKh1DUXPnzsX06dPRpEkTo/fff/99xMXFoaCgADNmzLjrvoeHB15//XWEhYVZOioRERGRTRJC/F7VPU7nsENpaWnYsGEDHnvsMaWjEBEREdklFtF26Pnnn8e///1v1GXRIRERERHVjFWWnVm/fj18fX0RHR2tdBQiIiIiu8Ui2s78/PPPWLduHdq1a4fx48djx44dmDx5stKxiIiIiOwKi2g78/bbbyMtLQ0XL17EypUrMWDAACxdulTpWERERER2xSZ35yAiIiLbpNfrkZaWhsLCQqWjEMHV1RUBAQF1WkfGItqO9evXD/369VM6BhERUYVr165BCIGOHTtyATwpSq/XIz09HdeuXYOvr6/J/fmvl4iIiKwmLy8Pfn5+LKBJcSqVCn5+fsjPz69bfzPnIStRq9XQ6XR17q/T6aBWq82YiIiIqGY6nQ4ODg5KxyACADg4OECr1dapL4toG+Xh4YFr167Vqa+UEtnZ2fDw8DBzKiIiopoJIZSOQASgfv8WWUTbqE6dOiE5OblOfTMyMqDT6eDn52fmVERERESNA4toGxUZGYmUlBSTC+nCwkKsWrUKsbGxHAkgIiKyc+3atcO7776rdAy7xN05bJSHhwcmT56MZcuW4ZdffkHHjh3h5uZmdKGGlBKlpaW4fPkyzpw5gx49eqBHjx7Ys2cPWrdujfbt2yvwFRAREdmGadOmYdGiRZg9ezZef/31iuu7du1C//79kZWVBW9vbwUTkhJYRNuwFi1a4Pnnn8eFCxdw/vx5ZGdnQ0pptK2joyPatGmDQYMGwc3NDQCQlpaGqVOnYt++ffD397dmdCIiojrJKgS2nQMOpgPFWsBZA8T6A/GBgI+r5V7X2dkZ77zzDp544gn4+PiY7bmlpaVwdHQ02/MaCnv9um7H6Rw2Tq1WIygoCAkJCRg5ciQefPBBo2/Dhg3DPffcU1FAA8DEiRPxxBNPICEhATk5OQp+FURERDVLygBm7wb2XTIU0IDh/b5LhutJGZZ77f79+6Ndu3Z46623qm23Z88exMbGwtnZGX5+fvi///s/lJaWVtzv168fnnzySbz44ovw8fFBr169sGvXLgghsGnTJkRHR8PFxQW9e/dGWloadu/ejS5dusDNzQ3Dhw9HdnZ2xbN+/fVXJCQkwNvbG02bNkVcXBz2799v0tf197//HREREVi5ciUCAwPh7u6OkSNH3rV5wcKFCxEWFgZnZ2eEhIRg3rx50Ov1FfeFEPj0008xatQouLq64uWXX0br1q3x8ccfV3rO6dOnIYTAkSNHAAD5+fmYMWMGfH194e7ujr59+yIxMdGkr0EpLKIbuZdeegnDhg3D0KFDcePGDaXjEBERGZVVCMw/DJTqAN0df3TVScP1+YcN7SxBpVJhzpw5+Oyzz3Du3DmjbdLT0zFkyBB07doVR48exYIFC7BixQr87W9/q9Ru6dKlkFJi7969WLx4ccX1N998Ex988AEOHjyI3NxcjBs3DrNnz8bnn3+OXbt24eTJk/j73/9e0f769euYMmUK9u7di0OHDiEqKgpDhw6tVGjXxsWLF/HNN99g9erV2Lp1K44ePYpXX3214v4XX3yBV155BbNnz0ZKSgree+89zJ07F//5z38qPWfWrFkYOnQofvvtNzz77LOYMGECli1bVqnNsmXLEBoaim7dukFKiWHDhiE9PR3r16/H0aNH0adPHwwYMABXr1416WtQhJTS5t6io6MlmY9er5fTp0+X8fHxsri4WOk4RERkx5KTk+vUb9lxKZ/8UcoZ66p+e/JHQztzmzp1qhw2bJiUUsp+/frJcePGSSml3LlzpwQgs7KypJRSvvLKKzIoKEjqdLqKvgsXLpSOjo6ysLBQSill3759ZefOnSs9/9ZzNm/eXHHt448/lgDk4cOHK669+eabMjw8vMqcer1etmjRQi5ZsqTiWtu2beU777xTZZ8333xTOjk5yby8vIpr//jHP2RgYGDF561bt5aLFy+u1G/evHkyNDS04nMA8plnnqnU5vjx4xKAPHv2bMW1oKAg+c9//lNKKeX27dulq6urLCoqqtSvS5cucu7cuVVmNrfq/k0CSJRV1KMciSYIITB//ny4ublhypQp9TrEhYiIyBIOpt89An0nnTS0s6S5c+fiu+++w+HDh++6l5KSgh49elRa5B8XF4fS0lKcPXu24lp0dLTRZ0dGRlZ8fGsb2s6dO1e6lpmZWfF5ZmYmZs6ciZCQEHh4eMDd3R2ZmZm4dOmSSV9T27ZtK50d0apVq4rXycrKwuXLlzFz5ky4ublVvL388st3jcjHxMTc9fV07ty5YjT64MGDOHfuHCZNmgQAOHz4MIqKiuDj41Pp2UlJSVWO9jckXFhIAACNRoPly5dj2LBheOqpp/DZZ59xCzwiImowimt5qFxJ3Q6fq7Xu3btj9OjR+Otf/1ppp46a3P4z1dXV+ArI209yvNX+zmu3z0OeOnUqMjIyMG/ePLRr1w5OTk647777Ks3Bro07T5C8/XVuvf/ss8/Qs2fPap9j7OuaPHkyFixYgDfeeAPLli1DXFwc2rZtW/FsPz8/7N27965+TZs2NelrUAJHoqmCs7Mz1qxZg6NHj+K1115TOg4REVEF51oO+zlZYXjwX//6F/bu3YvNmzdXuh4aGooDBw5UKnT37dsHR0dHBAYGmj3Hvn378Oyzz2LYsGEIDw+Hu7u72ecS+/n5oVWrVjh37hyCgoLueqvJxIkTcfbsWRw4cADffPMNJk+eXHGvW7duyMjIgEqluuu5vr6+Zv06LIFFNFXi7u6OjRs3YtWqVXj//feVjkNERATAsI2duoY/kKqFoZ2lBQUFYcaMGfjwww8rXX/qqadw5coVPPXUU0hJScGGDRvw8ssv45lnnkGTJk3MniMkJARLly5FcnIyfv31V4wfP94i28rNmjUL//73vzFv3jykpqYiKSkJixcvxttvv11j34CAAPTt2xdPPPEE8vPz8dBDD1XcGzhwIHr16oURI0Zg06ZNuHDhAvbv348333zT6Oh0Q8Mimu7i7e2NrVu34qOPPsLChQshpUTPnj1N/vMQERGRucQHAuoaqha1ytDOGt544w1oNJWHvf39/bFp0yYcPXoUUVFRmD59OiZMmIB//etfFsnw1Vdf4caNG4iOjsb48eMxffp0tGvXzuyv89hjj+Grr77CkiVL0KVLF/Tu3Ruff/55rQ9rmzx5Mo4fP46hQ4eiWbNmFdeFENi4cSMGDBiAxx9/HB07dsTYsWORmpqKVq1amf3rMDchqzicoyGLiYmRtrKHoC1LTU1Fv3798N///hdvv/023n77bQwYMEDpWEREZMNSUlIQGhpap75JGYZt7HT6yosM1cJQQM+MBiL8zBSUGo3q/k0KIQ5LKWOM3ePCQqqSo6Mj1q5di+HDh2Po0KH4fu1G/OE9wOqnRBEREQGGAvmNvv87sbBEa5gDzZ9FpAQW0VSlZ555BseOHUN8fDy+/2EV1K7eQPy7Fb/93zolan8af/snIiLr8HEFJkYa3oiUxDnRVKUNGzZg69at8PRphTKpRkHGBWRdTKrUxhqnRBERERE1NGYpooUQg4UQqUKIs0KIl43cf0EIkSyEOCGE2C6EaHvbvalCiDPlb1PNkYfMJzw8HL2mv4NHlmWh758WomlL49vZ6PSGP68RERERNQb1LqKFEGoAnwIYAiAMwAQhRNgdzY4CiJFSRgL4HsC/y/t6AXgTQCyA7gDeFEI0AzUoB9MBqdKg48Bp0Dg6G21jjVOiiIiIiBoKc4xEdwdwVkp5XkpZCmAlgBG3N5BS7pRSFpV/egBAQPnHgwBsk1LmSClzAWwDMNgMmciMGsopUUREREQNhTmKaH8Al2/7PK38WlUeBbCpjn1JAQ3plCgiIiKihsCqCwuFEJMBxAB4pw59ZwghEoUQiVlZWeYPR1VqSKdEERERETUE5iii0wG0vu3zgPJrlQghBgJ4FcADUsoSU/oCgJTycylljJQyxsfHxwyxqbYa2ilRREREREozRxH9K4BgIUR7IYQjgPEA1t3eQAjRFcB8GArozNtubQGQIIRoVr6gMKH8GjUgPq6GfaAd1XePSKuF4frMaG5yT0RE1K5dO7z77rtKxyArqHcRLaXUAngGhuI3BcC3UsqTQojZQogHypu9A8ANwHdCiGNCiHXlfXMAvAVDIf4rgNnl16iBuXVKVFwbwxxpAcP7uDaG6zxohYiI7FlGRgb+7//+D8HBwXB2doavry969uyJjz/+GDdu3FA6HinALEvBpJQbAWy849obt308sJq+XwH4yhw5yLJ4ShQRESmuMAs4tw1IPwhoiwGNM+AfCwTGA66Wme558eJF9OrVC02bNsVbb72FyMhIuLi44OTJk/jyyy/RvHlzTJw40SKvTQalpaVwdHRUOkYlPLGQiIiIbENGErB7NnBpn6GABgzvL+0zXM9Iqr5/HT355JNQqVRITEzE+PHjERYWhvbt22P48OFYs2YNJkyYUGXf999/H5GRkXB1dYW/vz8ee+wx5OXlVdz/+uuv4ebmVqnPrl27IITAtWvXKq4dOHAAAwYMgKurKzw8PDBgwABcuXIFAFBSUoLnn38efn5+cHZ2Ro8ePbBv3767nrdp0yZER0fDxcUFvXv3RlpaGnbv3o0uXbrAzc0Nw4cPR3Z2dkW/X3/9FQkJCfD29kbTpk0RFxeH/fv3V/u/1d///ndERERg5cqVCAwMhLu7O0aOHFnpawGAhQsXIiwsDM7OzggJCcG8efOg1+sr7gsh8Omnn2LUqFFwdXXFyy+/jNatW+Pjjz+u9JzTp09DCIEjR44AAPLz8zFjxgz4+vrC3d0dffv2RWJiYrWZ64pFNBERETV8hVnA4fmArhSQusr3pM5w/fB8Qzszys7OxpYtW/D000/D1dX44h8hqt7CSqVS4YMPPsDJkyexfPlyHDp0CM8++6xJGY4fP47+/fsjKCgIP//8Mw4cOIBx48ZBqzUc0PDXv/4V33zzDb766iscPXoUnTt3xuDBg3H16tVKz3nzzTfxwQcf4ODBg8jNzcW4ceMwe/ZsfP7559i1axdOnjyJv//97xXtr1+/jilTpmDv3r04dOgQoqKiMHTo0EqFtjEXL17EN998g9WrV2Pr1q04evQoXn311Yr7X3zxBV555RXMnj0bKSkpeO+99zB37lz85z//qfScWbNmYejQofjtt9/w7LPPYsKECVi2bFmlNsuWLUNoaCi6desGKSWGDRuG9PR0rF+/HkePHkWfPn0wYMCAu/63MAsppc29RUdHSyIiIrI9ycnJdet4fJmUPz4p5boZVb/9+KShnRkdOHBAApCrVq2qdN3f31+6urpKV1dXOXPmzIrrbdu2le+8806Vz9u0aZN0dHSUOp1OSinlwoULpaura6U2O3fulABkVlaWlFLKiRMnyh49ehh93o0bN6SDg4NctGhRxTWtVis7dOggX3311UrP27x5c0Wbjz/+WAKQhw8frrj25ptvyvDw8Cqz6/V62aJFC7lkyZIq27z55pvSyclJ5uXlVVz7xz/+IQMDAys+b926tVy8eHGlfvPmzZOhoaEVnwOQzzzzTKU2x48flwDk2bNnK64FBQXJf/7zn1JKKbdv3y5dXV1lUVFRpX5dunSRc+fOrTJzdf8mASTKKupRjkQTERFRw5d+8O4R6DtJnaGdFezduxfHjh1D9+7dUVxcXGW7HTt2ID4+HgEBAXB3d8eoUaNQWlqKP/74o9avdfToUQwYMMDovXPnzqGsrAy9evWquKZWq3HvvfciOTm5UtvIyP8tavLzM+wI0Llz50rXMjP/t4laZmYmZs6ciZCQEHh4eMDd3R2ZmZm4dOlStXnbtm0LDw+Pis9btWpV8dysrCxcvnwZM2fOhJubW8Xbyy+/jHPnzlV6TkxMzF35O3fuXDEaffDgQZw7dw6TJk0CABw+fBhFRUXw8fGp9OykpKS7nm0OPGOOiIiIGj5t1YVq5XYlNbcxQVBQEIQQOHXqVKXr7du3BwA0adKkyr6///47hg0bhscffxyzZ89G8+bNceTIEUyYMAGlpaUADNM9DAOe/1NWVmaW7HdOM3FwcLjr3p3Xbp+XPHXqVGRkZGDevHlo164dnJyccN9991Vkr8rtz7zzubfef/bZZ+jZs2e1zzE2fWby5MlYsGAB3njjDSxbtgxxcXFo27ZtxbP9/Pywd+/eu/o1bdq02teqC45EExERUcOnca5lOyezvmzz5s2RkJCATz75xOSt7BITE1FaWop58+bh3nvvRUhISMViwFt8fHxQVFSEgoKCimvHjh2r1KZr167YsWOH0dcIDAyEo6Mjfv7554prOp0O+/fvR1hYmEl577Rv3z48++yzGDZsGMLDw+Hu7l7vucV+fn5o1aoVzp07h6CgoLveajJx4kScPXsWBw4cwDfffIPJkydX3OvWrRsyMjKgUqnueq6vr2+9chvDIpqIiIgaPv9YQKirbyPUhnZm9p///Ad6vR7R0dFYsWIFkpOTcfr0aaxYsQLHjx+HWm08V3BwMPR6PT744ANcuHABK1aswAcffFCpTWxsLFxdXfG3v/0NZ8+exQ8//HDXAru//OUvOHr0KGbMmIHjx48jNTUVX375JS5dugRXV1c8+eSTeOmll7Bx40akpKTgySefREZGBp566ql6fd0hISFYunQpkpOT8euvv2L8+PFm2WZu1qxZ+Pe//4158+YhNTUVSUlJWLx4Md5+++0a+wYEBKBv37544oknkJ+fj4ceeqji3sCBA9GrVy+MGDECmzZtwoULF7B//368+eabRken64tFNBERETV8gfGAqoYiWqU2tDOzDh064OjRoxg8eDBef/11dO3aFd26dcP777+Pp5566q7C+JbIyEh8+OGHeP/99xEWFoYvv/zyrtMMvby8sGzZMmzbtg2dO3fG559/jrfeeqtSm6ioKPz00084deoUevTogdjYWKxcubJi2sTcuXMxbtw4PPLII4iKisKJEyewefNmtGzZsl5f91dffYUbN24gOjoa48ePx/Tp09GuXbt6PRMAHnvsMXz11VdYsmQJunTpgt69e+Pzzz+vmCJTk8mTJ+P48eMYOnQomjVrVnFdCIGNGzdiwIABePzxx9GxY0eMHTsWqampaNWqVb1z30ncOQ/HFsTExEhL7flHRERElpOSkoLQ0NC6dc5IMmxjp9dVXmQo1IYCOnom4BdhnqDUaFT3b1IIcVhKGWPsHhcWEhERkW3wiwD6vnHbiYUlhjnQFj6xkMgYFtFERERkO1x9gMiJhjciBXFONBERERGRiVhEExERERGZiEU0EREREZGJWEQTERGRVdnizmBkn+rzb5FFNBEREVmNWq0227HWRPVVVlYGjaZu+2ywiCYiIiKr8fT0REZGBvR6vdJRqJHT6/XIyMiAh4dHnfpzizsiIiKyGm9vb6SlpSE1NVXpKERwdXWFt7d3nfqyiCYiIiKrUalUaNOmjdIxiOqN0zmIiIiIiEzEIpqIiIiIyEQsoomIiIiITMQimoiIiIjIRCyiiYiIiIhMxCKaiIiIiMhELKKJiIiIiEzEIpqIiIiIyEQsoomIiIiITMQimoiIiIjI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pdOSvWIRTURERDbl5s2bmD17NnJzc6EXGqRfvoT1+0/DvVUIAEMhve8SsD8NmBkNRPgpHJjsEqdzEBERkU0ZNWoUjh07hoUr18IzYjAggJSfvq7URieBUh0w/zCQVahMTrJvHIkmIiIim/SHaxR6P/Epejz2EYTK+LigTg9sOwdMjLRyOLJ7HIkmIiIim3Qw3TDirFKrq9ziTicN7YjMjUU0ERER2aRibe3aldSyHZEpWEQTERGRTXKu5aRUJ05eJQtgEU1EREQ2KdYfUNdwUKFaGNoRmRuLaCIiIrJJ8YGAuoZKRq0ytCMyNxbRREREZJN8XA37QDuq7x6RVgvD9ZnRPHCFLIOzhIiIiMhmRfgBb/Q1bGN3MN2wiNCJJxaSFbCIJiIiIpvm42rYB5p7QZM1cToHEREREZGJWEQTEREREZmIRTQRERERkYlYRBMRERERmYhFNBERERGRiVhEExERERGZiEU0EREREZGJWEQTEREREZmIRTQRERERkYlYRBMRERERmYhFNBERERGRiVhEExERERGZiEU0EREREZGJWEQTEREREZmIRTQRERERkYlYRBMRERERmYhFNBERERGRiVhEExERERGZiEU0EREREZGJWEQTEREREZmIRTQRERERkYlYRBMRERERmYhFNBERERGRiVhEExERERGZiEU0EREREZGJWEQTEREREZmIRTQRERERkYlYRBMRERERmYhFNBERERGRiVhEExERERGZiEU0EREREZGJWEQTEREREZmIRTQRERERkYlYRBMRERERmYhFNBERERGRiVhEExERERGZiEU0EREREZGJWEQTEREREZmIRTQRERERkYlYRBMRERERmUijdACqHSklLl++jNTUVFy/fh16vd5oO7VajWbNmiE0NBS+vr4QQlg5KREREZH9YxFtA27cuIElS5YAAEJDQxEYGAi1Wm20bVlZGTIzM7F8+XL4+flh7Nix0Gj4fzMRERGRObG6auB0Oh0WLVqE8PBw9OvXr9b94uPj8cMPP2D16tV46KGHLBeQiIiIqBHinOgG7sKFC3BycjKpgAYAlUqFBx98EOfPn8f169ctE46IiIiokTJLES2EGCyESBVCnBVCvGzkfh8hxBEhhFYIMeaOe1OFEGfK36aaI489SU1NRVhYWJ36ajQaBAcHIzU11cypiIiIiBq3ehfRQgg1gE8BDAEQBmCCEOLOqu8SgGkAlt/R1wvAmwBiAXQH8KYQoll9M9mTgoICeHl51bl/8+bNUVBQYMZERERERGSOkejuAM5KKc9LKUsBrAQw4vYGUsqLUsoTAO7cUmIQgG1SyhwpZS6AbQAGmyGT3dDpdFUuIty8eTM6duyIoKAgzJkzx2gbtVoNnU5nyYhEREREjY45imh/AJdv+zyt/Jql+zZqOp0OTz/9NDZt2oTk5GSsWLECycnJSsciIiIiahRsZmGhEGKGECJRCJGYlZWldBzFHTp0CEFBQejQoQMcHR0xfvx4rF27VulYRERERI2COYrodACtb/s8oPyaWftKKT+XUsZIKWN8fHzqFNSepKeno3Xr//1PFxAQgPT02v7PTkRERET1YY4i+lcAwUKI9kIIRwDjAayrZd8tABKEEM3KFxQmlF8jIiIiImqw6l1ESym1AJ6BofhNAfCtlPKkEGK2EOIBABBC3COESAPwEID5QoiT5X1zALwFQyH+K4DZ5deoBv7+/rh8+X/TydPS0uDvz+nkRERERNZglhMLpZQbAWy849obt338KwxTNYz1/QrAV+bI0Zjcc889OHPmDC5cuAB/f3+sXLkSy5cvr7kjEREREdUbj/22URqNBp988gkGDRoEnU6H6dOnIzw8XOlYRERERI0Ci2gbNnToUAwdOlTpGERERESNjs1scUdERERE1FCwiG7gHBwcUFZWVuf+paWlcHR0NGMiIiIiImIR3cD5+vpW2oXDVGlpafD19TVjIiIiIiJiEd3AhYeH4+TJkygtLTW5b25uLq5cuYKgoCALJCMiIiJqvFhEN3A+Pj4IDg7G0qVLkZNTuy20pZRIT0/H4sWLMWDAADg4OFg4JREREVHjwt05GjghBIYPH46dO3diwYIFcHd3R7NmzaBWq422LysrQ2ZmJoQQ6N27N7p164YdO3YgMTERf/3rX62cnoiIiMg+sYi2AUIIDBgwAP369UN6ejquX78OvV5vtK1arUazZs3g5+cHIQQAIDIyEk8//TTUajX+/Oc/WzM6ERERkV1iEW1DVCoVWrdubXI/b29vbN26FXFxcfDy8sIjjzxigXREREREjQeL6EaidevW2Lp1K/r164dmzZph5MiRSkciIiIislksohuRjh07Yv369RgyZAg8PDzQv39/pSMRERklpcQff/yBU6dOIT8/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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X = tpca.transform(nerves_shape)\n", "\n", "plt.figure(figsize=(12, 12))\n", "\n", "for label, col in label_to_color.items():\n", " mask = labels == label\n", " plt.scatter(X[mask, 0], X[mask, 1], color=col, s=100, label=label_to_str[label]);\n", "plt.legend(fontsize=14);\n", " \n", "for label, x, y in zip(monkeys, X[:, 0], X[:, 1]):\n", " plt.annotate(\n", " label,\n", " xy=(x, y), xytext=(-20, 20),\n", " textcoords='offset points', ha='right', va='bottom',\n", " bbox=dict(boxstyle='round,pad=0.5', fc='white', alpha=0.5),\n", " arrowprops=dict(arrowstyle = '->', connectionstyle='arc3,rad=0'))\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The indices represent the monkeys' indices. \n", "\n", "In contrast to the above study focusing on the optical nerves' sizes, visual inspection does not reveal any clusters between the glaucoma and normal optical nerves' shapes. We also do not see any obvious pattern between the two optical nerves of the same monkey.\n", "\n", "This shows that the difference between the optical nerve heads mainly resides in the over sizes of the optical nerves." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(22, 22)\n" ] } ], "source": [ "dist_pairwise = kendall_metric.dist_pairwise(nerves_shape)\n", "print(dist_pairwise .shape)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.imshow(dist_pairwise);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We try a agglomerative hierarchical clustering to investigate if we can cluster in the Kendall shape space." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True labels: [0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1]\n", "Predicted labels: [0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1]\n", "Accuracy: 0.55\n" ] } ], "source": [ "from geomstats.learning.agglomerative_hierarchical_clustering import AgglomerativeHierarchicalClustering\n", "\n", "clustering = AgglomerativeHierarchicalClustering(distance='precomputed', n_clusters=2)\n", "clustering.fit(dist_pairwise)\n", "predicted_labels = clustering.labels_\n", "\n", "print('True labels:', labels)\n", "print('Predicted labels:', predicted_labels)\n", "\n", "accuracy = gs.sum(labels==predicted_labels) / len(labels)\n", "print(f'Accuracy: {accuracy:.2f}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The accuracy is barely above the accuracy of a random classifier, that would assign 0 or 1 with probably 0.5 to each of the shapes. This confirms that the difference that exists between the two groups is mostly due to the landmarks' set size and not their shapes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", ".. [PE2015] Patrangenaru and L. Ellingson. Nonparametric Statistics on Manifolds and Their Applications to Object Data, 2015. https://doi.org/10.1201/b18969" ] } ], "metadata": { "celltoolbar": "Edit 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.9" } }, "nbformat": 4, "nbformat_minor": 4 }