Skip to content

Instantly share code, notes, and snippets.

@arokem
Last active March 25, 2016 15:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arokem/508dc1b22bdbd0bdd748 to your computer and use it in GitHub Desktop.
Save arokem/508dc1b22bdbd0bdd748 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import dipy.data as dpd\n",
"import dipy.core.gradients as dpg\n",
"import dipy.core.sphere as dcs\n",
"\n",
"from dipy.reconst.base import ReconstFit, ReconstModel\n",
"import dipy.reconst.dti as dti\n",
"from dipy.sims import voxel\n",
"\n",
"import nibabel as nib"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Getting some data\n",
"\n",
"Comment out the one you don't want to use: `'small_64D'` has an S0 signal, while `'small_101D'` does not"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#fdata, fbvals, fbvecs = dpd.get_data('small_101D')\n",
"fdata, fbvals, fbvecs = dpd.get_data('small_64D')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"gtab = dpg.gradient_table(fbvals, fbvecs)\n",
"data = nib.load(fdata).get_data()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([0]),)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.where(gtab.b0s_mask)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### The math\n",
"\n",
"The Stejskal Tanner equation, for the tensor model:\n",
"\n",
"$S(\\theta, b) = S_0 e ^{-bADC(\\theta)}$\n",
"\n",
"where $S(\\theta, b)$ is the signal in direction $\\theta$ (a unit vector) and b-value $b$, and $ADC(\\theta)$ is the apparent diffusion coefficient in that direction.\n",
"\n",
"Solving for $S_0$, in the case where that is not known: \n",
"\n",
"$ \\rightarrow \\hat{S_0} = \\frac{S(\\theta, b)}{e^{-bADC(\\theta, b)}}$\n",
"\n",
"### First, we implement this as part of the TensorFit object (as proposed by @Garyfallidis):\n",
"\n",
"The hitch with this one is that calculating an estimate of $S_0$ ($\\hat{S_0}$, or `S0_hat`), and using the model for prediction, would require that we again pass in the data used to fit the model (I think): "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class TensorModel(dti.TensorModel): \n",
" def fit(self, data):\n",
" model_params = dti.TensorModel.fit(self, data).model_params\n",
" return TensorFit(self, model_params)\n",
"\n",
"class TensorFit(dti.TensorFit): \n",
" def S0_hat(self, data):\n",
" return np.mean(data / \n",
" np.exp(-self.model.gtab.bvals * \n",
" self.adc(dcs.Sphere(xyz=self.model.gtab.bvecs))), -1)\n",
" \n",
" def predict(self, gtab, S0=None, data=None):\n",
" if S0 is None:\n",
" S0 = self.S0_hat(data)\n",
" return dti.tensor_prediction(self.model_params[..., :12], gtab,\n",
" S0=S0)\n",
" \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example of usage:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"dtm = TensorModel(gtab)\n",
"dtf = dtm.fit(data)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/arokem/source/dipy/dipy/core/geometry.py:128: RuntimeWarning: invalid value encountered in true_divide\n",
" theta = np.arccos(z / r)\n",
"/Users/arokem/source/dipy/dipy/core/sphere.py:188: UserWarning: Vertices are not on the unit sphere.\n",
" warnings.warn(\"Vertices are not on the unit sphere.\")\n"
]
}
],
"source": [
"S0_hat = dtf.S0_hat(data)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10a734610>]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a734650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(S0_hat.ravel(), data[..., 0].ravel(), 'o')\n",
"plt.plot([0, 1000], [0, 1000], 'k--')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pred = dtf.predict(gtab, data=data)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10a7ae310>]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a7ae210>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(pred.ravel(), data.ravel(), 'o')\n",
"plt.plot([0, 1000], [0, 1000], 'k--')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Next, we implement this as part of the TensorModel object\n",
"\n",
"Now, the data never has to be passed again to the TensorFit object, but the API of the `TensorFit.__init__` changes (in tandem with the changes to the `TensorModel.fit` code; note that I have made some short-cuts here, but in a proper implementation we'll need to do a bit more)."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class TensorModel(dti.TensorModel): \n",
" def fit(self, data):\n",
" dtf = dti.TensorModel.fit(self, data)\n",
" S0_hat = np.mean(data / \n",
" np.exp(-self.gtab.bvals * \n",
" dtf.adc(dcs.Sphere(xyz=self.gtab.bvecs))), -1)\n",
" return TensorFit(self, dtf.model_params, S0_hat)\n",
"\n",
"class TensorFit(dti.TensorFit): \n",
" def __init__(self, model, model_params, S0_hat):\n",
" dti.TensorFit.__init__(self, model, model_params)\n",
" self.S0_hat = S0_hat\n",
" \n",
" def predict(self, gtab, S0=None):\n",
" if S0 is None:\n",
" S0 = self.S0_hat\n",
" return dti.tensor_prediction(self.model_params[..., :12], gtab,\n",
" S0=S0)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"### Example of usage:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dtm = TensorModel(gtab)\n",
"dtf = dtm.fit(data)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"S0_hat = dtf.S0_hat"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10b42e1d0>]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b422b10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(S0_hat.ravel(), data[..., 0].ravel(), 'o')\n",
"plt.plot([0, 1000], [0, 1000], 'k--')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pred = dtf.predict(gtab)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10b934f10>]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b934850>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(pred.ravel(), data.ravel(), 'o')\n",
"plt.plot([0, 1000], [0, 1000], 'k--')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment