From 1ac4ebfc86e2c7e5b44dbe281c4ac63a073f84bd Mon Sep 17 00:00:00 2001 From: Michael Joseph Date: Thu, 2 Dec 2021 16:03:14 -0500 Subject: [PATCH] update model --- docs/notebooks/Testing GP model.ipynb | 341 ++++++++++++-------------- eddymotion/model.py | 45 ++-- 2 files changed, 176 insertions(+), 210 deletions(-) diff --git a/docs/notebooks/Testing GP model.ipynb b/docs/notebooks/Testing GP model.ipynb index 6568122c..ebf1fafd 100644 --- a/docs/notebooks/Testing GP model.ipynb +++ b/docs/notebooks/Testing GP model.ipynb @@ -2,10 +2,19 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "b395dedd-ae15-4788-9911-b9050e3ff784", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/.pyenv/versions/3.9.8/envs/ohbm_venv/lib/python3.9/site-packages/pandas/compat/__init__.py:124: UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.\n", + " warnings.warn(msg)\n" + ] + } + ], "source": [ "import numpy as np\n", "from pathlib import Path\n", @@ -13,6 +22,7 @@ "import warnings\n", "\n", "from dipy.core.gradients import gradient_table\n", + "from sklearn.gaussian_process import GaussianProcessRegressor\n", "\n", "from eddymotion import dmri\n", "from eddymotion.viz import plot_dwi\n", @@ -22,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "750f9a01-aac3-452e-8fec-0fcc4034d448", "metadata": {}, "outputs": [], @@ -33,67 +43,41 @@ "\n", "dwi_file = bids_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_dwi.nii.gz\"\n", "bvec_file = bids_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_dwi.bvec\"\n", - "bval_file = bids_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_dwi.bval\"" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "b2e3b427-ff19-4e5a-ace9-dd1f561f26c3", - "metadata": {}, - "outputs": [], - "source": [ - "gtab = gradient_table(str(bval_file), str(bvec_file))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "e8a744ef-9822-4df4-936f-15e4cfd2b871", - "metadata": {}, - "outputs": [], - "source": [ - "#from dmriprep.interfaces.vectors import CheckGradientTable\n", - "\n", - "#gen_rasb = CheckGradientTable(dwi_file=str(dwi_file),\n", - "# in_bvec=str(bvec_file),\n", - "# in_bval=str(bval_file)\n", - "# ).run()\n", - "\n", + "bval_file = bids_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_dwi.bval\"\n", "rasb_file = bids_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_dwi.tsv\"\n", - "#shutil.copy(\"sub-05_ses-JHU1_acq-GD72_dwi.tsv\", str(rasb_file))" + "\n", + "b0_file = derivatives_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_desc-b0_dwi.nii.gz\"\n", + "brainmask_file = derivatives_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_desc-brain_mask.nii.gz\"" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "0184689a-0951-4bf4-a359-fe2338654809", + "execution_count": 3, + "id": "423e5120-4cac-4057-9ccf-71d1a620c2ba", "metadata": {}, "outputs": [], "source": [ - "b0_file = derivatives_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_desc-b0_dwi.nii.gz\"\n", - "brainmask_file = derivatives_dir / \"sub-05\" / \"ses-JHU1\" / \"dwi\" / \"sub-05_ses-JHU1_acq-GD72_desc-brain_mask.nii.gz\"" + "dmri_dataset = dmri.load(str(dwi_file),\n", + " gradients_file=str(rasb_file),\n", + " b0_file=str(b0_file),\n", + " brainmask_file=str(brainmask_file)\n", + " )" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "5a848fc7-a0b4-4015-af55-a99ec1cbf7b0", + "execution_count": 4, + "id": "3fbf2baf-ea08-4c4b-b81f-7556c237a760", "metadata": {}, "outputs": [], "source": [ - "data = dmri.load(\n", - " str(dwi_file),\n", - " gradients_file=str(rasb_file),\n", - " b0_file=str(b0_file),\n", - " brainmask_file=str(brainmask_file)\n", - " )" + "data_train, data_test = dmri_dataset.logo_split(15, with_b0=True)" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "a417e10d-a1f9-41f4-83a0-0731448ead76", + "execution_count": 5, + "id": "9b8b3060-1d84-4583-b819-12e019aa4966", "metadata": {}, "outputs": [], "source": [ @@ -112,144 +96,27 @@ " with warnings.catch_warnings():\n", " warnings.filterwarnings(\"ignore\", category=UserWarning)\n", " retval = gradient_table(gradient[3, :], gradient[:3, :].T)\n", - " return retval" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "760f45fa-d38f-4121-b9a3-9be1a5aeb6d0", - "metadata": {}, - "outputs": [], - "source": [ - "class DKIModel:\n", - " \"\"\"A wrapper of :obj:`dipy.reconst.dki.DiffusionKurtosisModel.\"\"\"\n", - "\n", - " __slots__ = (\"_model\", \"_S0\", \"_mask\")\n", - "\n", - " def __init__(self, gtab, S0=None, mask=None, **kwargs):\n", - " \"\"\"Instantiate the wrapped tensor model.\"\"\"\n", - " from dipy.reconst.dki import DiffusionKurtosisModel\n", - "\n", - " self._S0 = None\n", - " if S0 is not None:\n", - " self._S0 = np.clip(\n", - " S0.astype(\"float32\") / S0.max(),\n", - " a_min=1e-5,\n", - " a_max=1.0,\n", - " )\n", - " self._mask = mask\n", - " if mask is None and S0 is not None:\n", - " self._mask = self._S0 > np.percentile(self._S0, 35)\n", - "\n", - " if self._mask is not None:\n", - " self._S0 = self._S0[self._mask.astype(bool)]\n", + " return retval\n", "\n", - " kwargs = {\n", - " k: v\n", - " for k, v in kwargs.items()\n", - " if k\n", - " in (\n", - " \"min_signal\",\n", - " \"return_S0_hat\",\n", - " \"fit_method\",\n", - " \"weighting\",\n", - " \"sigma\",\n", - " \"jac\",\n", - " )\n", - " }\n", - " self._model = DiffusionKurtosisModel(gtab, **kwargs)\n", - "\n", - " def fit(self, data, **kwargs):\n", - " \"\"\"Clean-up permitted args and kwargs, and call model's fit.\"\"\"\n", - " self._model = self._model.fit(data[self._mask, ...])\n", - "\n", - " def predict(self, gradient, **kwargs):\n", - " \"\"\"Propagate model parameters and call predict.\"\"\"\n", - " predicted = np.squeeze(\n", - " self._model.predict(\n", - " _rasb2dipy(gradient),\n", - " S0=self._S0,\n", - " )\n", - " )\n", - " if predicted.ndim == 3:\n", - " return predicted\n", - "\n", - " retval = np.zeros_like(self._mask, dtype=\"float32\")\n", - " retval[self._mask, ...] = predicted\n", - " return retval" + "def _model_fit(model, data):\n", + " return model.fit(data)" ] }, { "cell_type": "code", - "execution_count": 11, - "id": "63cce457-29ef-4439-9677-962ab3e019a2", + "execution_count": 6, + "id": "e3a91762-eb8c-46aa-9513-b87156422c6c", "metadata": {}, "outputs": [], "source": [ - "class DTIModel:\n", - " \"\"\"A wrapper of :obj:`dipy.reconst.dti.TensorModel.\"\"\"\n", - "\n", - " __slots__ = (\"_model\", \"_S0\", \"_mask\")\n", - "\n", - " def __init__(self, gtab, S0=None, mask=None, **kwargs):\n", - " \"\"\"Instantiate the wrapped tensor model.\"\"\"\n", - " from dipy.reconst.dti import TensorModel as DipyTensorModel\n", - "\n", - " self._S0 = None\n", - " if S0 is not None:\n", - " self._S0 = np.clip(\n", - " S0.astype(\"float32\") / S0.max(),\n", - " a_min=1e-5,\n", - " a_max=1.0,\n", - " )\n", - "\n", - " self._mask = mask\n", - " if mask is None and S0 is not None:\n", - " self._mask = self._S0 > np.percentile(self._S0, 35)\n", - "\n", - " if self._mask is not None:\n", - " self._S0 = self._S0[self._mask.astype(bool)]\n", - "\n", - " kwargs = {\n", - " k: v\n", - " for k, v in kwargs.items()\n", - " if k\n", - " in (\n", - " \"min_signal\",\n", - " \"return_S0_hat\",\n", - " \"fit_method\",\n", - " \"weighting\",\n", - " \"sigma\",\n", - " \"jac\",\n", - " )\n", - " }\n", - " self._model = DipyTensorModel(_rasb2dipy(gtab), **kwargs)\n", - "\n", - " def fit(self, data, **kwargs):\n", - " \"\"\"Fit the model chunk-by-chunk asynchronously.\"\"\"\n", - " self._model = self._model.fit(data[self._mask, ...])\n", - "\n", - " def predict(self, gradient, **kwargs):\n", - " \"\"\"Propagate model parameters and call predict.\"\"\"\n", - " predicted = np.squeeze(\n", - " self._model.predict(\n", - " _rasb2dipy(gradient),\n", - " S0=self._S0,\n", - " )\n", - " )\n", - " if predicted.ndim == 3:\n", - " return predicted\n", - "\n", - " retval = np.zeros_like(self._mask, dtype=\"float32\")\n", - " retval[self._mask, ...] = predicted\n", - " return retval" + "gtab = _rasb2dipy(data_train[1])\n", + "param = {}" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "a0538db7-79ee-46f4-91fd-e8def6eedafe", + "execution_count": 7, + "id": "7461e876-90ad-409a-8f52-c4bd7db58572", "metadata": {}, "outputs": [], "source": [ @@ -263,7 +130,6 @@ " def __init__(self, gtab, S0=None, mask=None, solver=None, **kwargs):\n", " \"\"\"Instantiate the wrapped model.\"\"\"\n", " from dipy.reconst.sfm import SparseFascicleModel\n", - " from sklearn.gaussian_process import GaussianProcessRegressor\n", "\n", " self._S0 = None\n", " if S0 is not None:\n", @@ -309,53 +175,154 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "98e05ec4-00cf-42ad-b566-9b52d3afb0cd", + "execution_count": null, + "id": "14c1ec24-5530-47dd-8fcb-8cce5cfe0258", "metadata": {}, "outputs": [], "source": [ - "model = DTIModel(\n", - " gtab=data.gradients,\n", - " S0=data.bzero,\n", - " mask=data.brainmask\n", - ")" + "## Gaussian Process" ] }, { "cell_type": "code", - "execution_count": null, - "id": "46fd2487-c8f5-4c05-833d-b5f790be0819", + "execution_count": 8, + "id": "c8a489d4-e194-4aca-b0c7-58263eb1e37f", "metadata": {}, "outputs": [], "source": [ - "data_train, data_test = data.logo_split(10)\n", + "model = SparseFascicleModel(gtab=gtab, S0=dmri_dataset.bzero, solver=GaussianProcessRegressor)\n", + "predicted = model.predict(data_test[1])\n", "model.fit(data_train[0])" ] }, + { + "cell_type": "code", + "execution_count": 11, + "id": "98e05ec4-00cf-42ad-b566-9b52d3afb0cd", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/michael/.pyenv/versions/3.9.8/envs/ohbm_venv/lib/python3.9/site-packages/nilearn/datasets/__init__.py:93: FutureWarning: Fetchers from the nilearn.datasets module will be updated in version 0.9 to return python strings instead of bytes and Pandas dataframes instead of Numpy arrays.\n", + " warn(\"Fetchers from the nilearn.datasets module will be \"\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_dwi(predicted, dmri_dataset.affine, gradient=data_test[1], black_bg=True);" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "5aede348-5726-4ba5-8d28-9cfdbc9caf4e", + "id": "8933c12f-e05e-43a5-b30d-04f882106ca7", + "metadata": {}, + "outputs": [], + "source": [ + "# Elastic Net" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "2f9078ff-e32c-4e4c-911d-5f62789e883a", "metadata": {}, "outputs": [], "source": [ + "model = SparseFascicleModel(gtab=gtab, S0=dmri_dataset.bzero)\n", + "model.fit(data_train[0])\n", "predicted = model.predict(data_test[1])" ] }, { "cell_type": "code", - "execution_count": null, - "id": "75a77093-18f3-4388-a0a8-be3841c71d3e", + "execution_count": 17, + "id": "93376b18-e7dd-4726-bc3e-0c9f098ff509", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_dwi(predicted, dmri_dataset.affine, gradient=data_test[1], black_bg=True);" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "48e9d00d-2678-4619-ba49-e04fd56ebd2a", "metadata": {}, "outputs": [], "source": [ - "plot_dwi(predicted, data.affine, gradient=data_test[1]);" + "predicted.tofile(\"elasticnet.nii.gz\")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "61eb09bb-67dd-4c11-8226-b2eaca79d44f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(128, 128, 50)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "predicted.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "153175c2-cba5-49be-b5b4-fa0c233c51bf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(128, 128, 50, 71)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dmri_dataset.dataobj.shape" ] }, { "cell_type": "code", "execution_count": null, - "id": "74b5228c-8220-420b-8149-26f2b58a8850", + "id": "7f8b501f-927b-47e0-a66f-bc5ab0e3ebb8", "metadata": {}, "outputs": [], "source": [] diff --git a/eddymotion/model.py b/eddymotion/model.py index 6010c94b..fb3a3f34 100644 --- a/eddymotion/model.py +++ b/eddymotion/model.py @@ -334,28 +334,6 @@ def predict(self, gradient, **kwargs): return retval -def _rasb2dipy(gradient): - gradient = np.asanyarray(gradient) - if gradient.ndim == 1: - if gradient.size != 4: - raise ValueError("Missing gradient information.") - gradient = gradient[..., np.newaxis] - - if gradient.shape[0] != 4: - gradient = gradient.T - elif gradient.shape == (4, 4): - print("Warning: make sure gradient information is not transposed!") - - with warnings.catch_warnings(): - warnings.filterwarnings("ignore", category=UserWarning) - retval = gradient_table(gradient[3, :], gradient[:3, :].T) - return retval - - -def _model_fit(model, data): - return model.fit(data) - - class SparseFascicleModel: """ A wrapper of :obj:`dipy.reconst.sfm.SparseFascicleModel. @@ -366,7 +344,6 @@ class SparseFascicleModel: def __init__(self, gtab, S0=None, mask=None, solver=None, **kwargs): """Instantiate the wrapped model.""" from dipy.reconst.sfm import SparseFascicleModel - from sklearn.gaussian_process import GaussianProcessRegressor self._S0 = None if S0 is not None: @@ -408,3 +385,25 @@ def predict(self, gradient, **kwargs): retval = np.zeros_like(self._mask, dtype="float32") retval[self._mask, ...] = predicted return retval + + +def _rasb2dipy(gradient): + gradient = np.asanyarray(gradient) + if gradient.ndim == 1: + if gradient.size != 4: + raise ValueError("Missing gradient information.") + gradient = gradient[..., np.newaxis] + + if gradient.shape[0] != 4: + gradient = gradient.T + elif gradient.shape == (4, 4): + print("Warning: make sure gradient information is not transposed!") + + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", category=UserWarning) + retval = gradient_table(gradient[3, :], gradient[:3, :].T) + return retval + + +def _model_fit(model, data): + return model.fit(data)