{ "cells": [ { "cell_type": "markdown", "id": "9d7aa72c", "metadata": {}, "source": [ "# Constructing 10-10 coordinates on segmented MRI scans" ] }, { "cell_type": "code", "execution_count": 1, "id": "3829e351", "metadata": { "execution": { "iopub.execute_input": "2024-09-02T16:02:21.533329Z", "iopub.status.busy": "2024-09-02T16:02:21.533171Z", "iopub.status.idle": "2024-09-02T16:02:23.064208Z", "shell.execute_reply": "2024-09-02T16:02:23.063693Z" } }, "outputs": [], "source": [ "import cedalion\n", "import cedalion.io\n", "import cedalion.geometry.segmentation\n", "import cedalion.geometry.landmarks\n", "from cedalion.datasets import get_colin27_segmentation\n", "import os.path\n", "import pyvista\n", "\n", "#pyvista.set_jupyter_backend(\"html\")\n", "pyvista.set_jupyter_backend(\"static\")" ] }, { "cell_type": "markdown", "id": "2f7a2803", "metadata": {}, "source": [ "## Load segmentation masks\n", "\n", "This example constructs the 10-10 system on the Colin27 average brain." ] }, { "cell_type": "code", "execution_count": 2, "id": "269644f0", "metadata": { "execution": { "iopub.execute_input": "2024-09-02T16:02:23.066636Z", "iopub.status.busy": "2024-09-02T16:02:23.066270Z", "iopub.status.idle": "2024-09-02T16:02:26.005300Z", "shell.execute_reply": "2024-09-02T16:02:26.004790Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading file 'colin27_segmentation.zip' from 'https://doc.ml.tu-berlin.de/cedalion/datasets/colin27_segmentation.zip' to '/home/runner/.cache/cedalion'.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Unzipping contents of '/home/runner/.cache/cedalion/colin27_segmentation.zip' to '/home/runner/.cache/cedalion/colin27_segmentation.zip.unzip'\n" ] } ], "source": [ "SEG_DATADIR, mask_files, landmarks_files = get_colin27_segmentation()\n", "masks, t_ijk2ras = cedalion.io.read_segmentation_masks(SEG_DATADIR, mask_files)" ] }, { "cell_type": "markdown", "id": "dbe0c701", "metadata": {}, "source": [ "## Load hand-picked landmarks" ] }, { "cell_type": "code", "execution_count": 3, "id": "4d7746e2", "metadata": { "execution": { "iopub.execute_input": "2024-09-02T16:02:26.007548Z", "iopub.status.busy": "2024-09-02T16:02:26.007358Z", "iopub.status.idle": "2024-09-02T16:02:26.019331Z", "shell.execute_reply": "2024-09-02T16:02:26.018916Z" } }, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray (label: 4, aligned: 3)> Size: 96B\n", "<Quantity([[-4.99239750e-02 7.97894669e+01 -3.61411209e+01]\n", " [ 1.75606728e+00 -1.00949997e+02 -5.48579865e+01]\n", " [-7.19499969e+01 -1.61194057e+01 -5.46569786e+01]\n", " [ 7.59499969e+01 -1.30380936e+01 -5.40778427e+01]], 'millimeter')>\n", "Coordinates:\n", " * label (label) <U3 48B 'Nz' 'Iz' 'LPA' 'RPA'\n", " type (label) object 32B PointType.LANDMARK ... PointType.LANDMARK\n", "Dimensions without coordinates: aligned
<xarray.DataArray (label: 73, aligned: 3)> Size: 2kB\n", "<Quantity([[-4.99239750e-02 7.97894669e+01 -3.61411209e+01]\n", " [ 1.75606728e+00 -1.00949997e+02 -5.48579865e+01]\n", " [-7.19499969e+01 -1.61194057e+01 -5.46569786e+01]\n", " [ 7.59499969e+01 -1.30380936e+01 -5.40778427e+01]\n", " [ 1.48924732e+00 -2.80293236e+01 8.91000061e+01]\n", " [ 6.12858720e-02 8.11088104e+01 7.37103820e-01]\n", " [ 2.87298560e-01 7.13674164e+01 3.77344780e+01]\n", " [ 6.55276775e-01 4.53056488e+01 6.68061066e+01]\n", " [ 1.07111287e+00 1.00979099e+01 8.20730667e+01]\n", " [ 1.85324764e+00 -6.58003693e+01 8.12256699e+01]\n", " [ 2.05901766e+00 -9.44351578e+01 5.45259399e+01]\n", " [ 2.09403157e+00 -1.09099968e+02 2.00678768e+01]\n", " [ 1.99313700e+00 -1.12099998e+02 -1.88979530e+01]\n", " [-7.40999985e+01 -1.95488510e+01 -1.85347042e+01]\n", " [ 7.71044159e+01 -1.64808197e+01 -1.70659504e+01]\n", " [-2.78219814e+01 7.71388321e+01 -3.02536416e+00]\n", " [-4.96633530e+01 6.04367256e+01 -7.37024927e+00]\n", " [-6.30418015e+01 3.72775650e+01 -1.13610516e+01]\n", " [-6.90998383e+01 1.09453211e+01 -1.47975235e+01]\n", " [-7.24252396e+01 -4.38436012e+01 -2.08314400e+01]\n", "...\n", " [ 3.38006325e+01 6.86656570e+01 2.46341743e+01]\n", " [ 4.37709770e+01 6.53327713e+01 9.80877018e+00]\n", " [-7.11000137e+01 -5.21063499e+01 1.62688789e+01]\n", " [-6.04117126e+01 -5.93472214e+01 4.92480507e+01]\n", " [-3.35214653e+01 -6.43834763e+01 7.31401901e+01]\n", " [ 3.70119171e+01 -6.36731415e+01 7.34150696e+01]\n", " [ 6.40872269e+01 -5.81273575e+01 4.98854256e+01]\n", " [ 7.49943771e+01 -5.05679817e+01 1.65376186e+01]\n", " [-6.02266083e+01 -7.88670959e+01 6.22620153e+00]\n", " [-4.79947624e+01 -8.71012192e+01 3.13694839e+01]\n", " [-2.63569469e+01 -9.27776489e+01 4.89596596e+01]\n", " [ 3.03763351e+01 -9.22147827e+01 4.83610687e+01]\n", " [ 5.25887566e+01 -8.63931656e+01 3.11849651e+01]\n", " [ 6.40652771e+01 -7.80682831e+01 6.22846365e+00]\n", " [-4.19541206e+01 -9.81257248e+01 -7.08912945e+00]\n", " [-3.21703415e+01 -1.03932159e+02 6.96908283e+00]\n", " [-1.80093327e+01 -1.08100220e+02 1.72244530e+01]\n", " [ 2.07628002e+01 -1.08123955e+02 1.81712074e+01]\n", " [ 3.61665001e+01 -1.03939384e+02 8.55530739e+00]\n", " [ 4.61439362e+01 -9.79618149e+01 -5.45690823e+00]], 'millimeter')>\n", "Coordinates:\n", " * label (label) <U3 876B 'Nz' 'Iz' 'LPA' 'RPA' ... 'PO1' 'PO2' 'PO4' 'PO6'\n", " type (label) object 584B PointType.LANDMARK ... PointType.LANDMARK\n", "Dimensions without coordinates: aligned