{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# - compatibility with Python 3\n", "from __future__ import print_function # print('me') instead of print 'me'\n", "from __future__ import division # 1/2 == 0.5, not 0" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# - show figures inside the notebook\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# - import common modules\n", "import numpy as np # the Python array package\n", "import matplotlib.pyplot as plt # the Python plotting package" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# - set defaults for plotting\n", "plt.rcParams['image.cmap'] = 'gray'\n", "plt.rcParams['image.interpolation'] = 'nearest'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load the image `ds114_sub009_t2r1.nii` with nibabel. Get the data:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(64, 64, 30, 173)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load the image 'ds114_sub009_t2r1.nii' with nibabel\n", "# Get the data array from the image\n", "import nibabel as nib\n", "img = nib.load('ds114_sub009_t2r1.nii')\n", "data = img.get_data()\n", "data.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you remember, the first volume in this dataset is a lot different from the rest, and this will mess up our interpolation in time.\n", "\n", "So, we need to remove the first volume from the data first, using slicing:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(64, 64, 30, 172)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Remove the first volume by slicing\n", "fixed_data = data[..., 1:]\n", "fixed_data.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start off with example time-courses from the first and second slice.\n", "\n", "Use slicing to get a z slice 0 time series for an example voxel at voxel coordinates (23, 19, 0).\n", "\n", "Do the same for a z slice 1 time series from (23, 19, 1).\n", "\n", "Plot these time series against volume number on the same graph:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nSD/sX1kA9yIAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Slice out time series for voxel (23, 19, 0)\n", "# Slice out time series for voxel (23, 19, 1)\n", "# Plot both these time series against volume number, on the same graph\n", "slice_0_ts = fixed_data[23, 19, 0, :]\n", "slice_1_ts = fixed_data[23, 19, 1, :]\n", "plt.plot(slice_0_ts)\n", "plt.plot(slice_1_ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The scanner collected slices for these data in an \"ascending interleaved\" order. That is, the scanner first collected z slice 0, then z slice 2, up to z slice 28. It then went back to collect z slice 1, 3, 5 up to z slice 29.\n", "\n", "That means the scanner started collecting slice 0 in each volume, at the beginning of the volume.\n", "\n", "The TR (time to collect one volume) is 2.5 seconds." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# - the time between scans\n", "TR = 2.5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a time vector, length 172, that corresponds to the start time in seconds of each volume. This also gives the slice 0 start times." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 2.5, 5. , 7.5, 10. , 12.5, 15. , 17.5,\n", " 20. , 22.5, 25. , 27.5, 30. , 32.5, 35. , 37.5,\n", " 40. , 42.5, 45. , 47.5, 50. , 52.5, 55. , 57.5,\n", " 60. , 62.5, 65. , 67.5, 70. , 72.5, 75. , 77.5,\n", " 80. , 82.5, 85. , 87.5, 90. , 92.5, 95. , 97.5,\n", " 100. , 102.5, 105. , 107.5, 110. , 112.5, 115. , 117.5,\n", " 120. , 122.5, 125. , 127.5, 130. , 132.5, 135. , 137.5,\n", " 140. , 142.5, 145. , 147.5, 150. , 152.5, 155. , 157.5,\n", " 160. , 162.5, 165. , 167.5, 170. , 172.5, 175. , 177.5,\n", " 180. , 182.5, 185. , 187.5, 190. , 192.5, 195. , 197.5,\n", " 200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5,\n", " 220. , 222.5, 225. , 227.5, 230. , 232.5, 235. , 237.5,\n", " 240. , 242.5, 245. , 247.5, 250. , 252.5, 255. , 257.5,\n", " 260. , 262.5, 265. , 267.5, 270. , 272.5, 275. , 277.5,\n", " 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5,\n", " 300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5,\n", " 320. , 322.5, 325. , 327.5, 330. , 332.5, 335. , 337.5,\n", " 340. , 342.5, 345. , 347.5, 350. , 352.5, 355. , 357.5,\n", " 360. , 362.5, 365. , 367.5, 370. , 372.5, 375. , 377.5,\n", " 380. , 382.5, 385. , 387.5, 390. , 392.5, 395. , 397.5,\n", " 400. , 402.5, 405. , 407.5, 410. , 412.5, 415. , 417.5,\n", " 420. , 422.5, 425. , 427.5])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make time vector containing start times in second of each volume,\n", "# relative to start of first volume.\n", "# Call this `slice_0_times`\n", "slice_0_times = np.arange(fixed_data.shape[-1]) * 2.5\n", "slice_0_times" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The scanner starts to collect z slice 1 exactly half way through the volume (half way through the TR). Make a new vector that is the start time of acquisition of slice 1." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.25, 3.75, 6.25, 8.75, 11.25, 13.75, 16.25,\n", " 18.75, 21.25, 23.75, 26.25, 28.75, 31.25, 33.75,\n", " 36.25, 38.75, 41.25, 43.75, 46.25, 48.75, 51.25,\n", " 53.75, 56.25, 58.75, 61.25, 63.75, 66.25, 68.75,\n", " 71.25, 73.75, 76.25, 78.75, 81.25, 83.75, 86.25,\n", " 88.75, 91.25, 93.75, 96.25, 98.75, 101.25, 103.75,\n", " 106.25, 108.75, 111.25, 113.75, 116.25, 118.75, 121.25,\n", " 123.75, 126.25, 128.75, 131.25, 133.75, 136.25, 138.75,\n", " 141.25, 143.75, 146.25, 148.75, 151.25, 153.75, 156.25,\n", " 158.75, 161.25, 163.75, 166.25, 168.75, 171.25, 173.75,\n", " 176.25, 178.75, 181.25, 183.75, 186.25, 188.75, 191.25,\n", " 193.75, 196.25, 198.75, 201.25, 203.75, 206.25, 208.75,\n", " 211.25, 213.75, 216.25, 218.75, 221.25, 223.75, 226.25,\n", " 228.75, 231.25, 233.75, 236.25, 238.75, 241.25, 243.75,\n", " 246.25, 248.75, 251.25, 253.75, 256.25, 258.75, 261.25,\n", " 263.75, 266.25, 268.75, 271.25, 273.75, 276.25, 278.75,\n", " 281.25, 283.75, 286.25, 288.75, 291.25, 293.75, 296.25,\n", " 298.75, 301.25, 303.75, 306.25, 308.75, 311.25, 313.75,\n", " 316.25, 318.75, 321.25, 323.75, 326.25, 328.75, 331.25,\n", " 333.75, 336.25, 338.75, 341.25, 343.75, 346.25, 348.75,\n", " 351.25, 353.75, 356.25, 358.75, 361.25, 363.75, 366.25,\n", " 368.75, 371.25, 373.75, 376.25, 378.75, 381.25, 383.75,\n", " 386.25, 388.75, 391.25, 393.75, 396.25, 398.75, 401.25,\n", " 403.75, 406.25, 408.75, 411.25, 413.75, 416.25, 418.75,\n", " 421.25, 423.75, 426.25, 428.75])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make time vector containing start times in seconds of z slice 1,\n", "# relative to start of first volume.\n", "# Call this `slice_1_times`\n", "slice_1_times = slice_0_times + 2.5 / 2\n", "slice_1_times" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now plot the first 10 values for the slice 0 times, against the first 10 values of the slice 0 time series.\n", "\n", "To the same plot for the first 10 values of the slice 1 times, against the first 10 values of the slice 1 time series.\n", "\n", "Use the `:+` line marker for the plots to get the actual position of the points, and dotted lines betweeen them." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nJQERkQL2/wF83VrGYtHu3gAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot first 10 values of slice 0 times against first 10 of slice 0 time series\n", "# Plot first 10 values of slice 1 times against first 10 of slice 1 time series\n", "# Use ':+' marker\n", "plt.plot(slice_0_times[:10], slice_0_ts[:10], ':+')\n", "plt.plot(slice_1_times[:10], slice_1_ts[:10], ':+')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Import `InterpolatedUnivariateSpline` from `scipy.interpolate`. Make a new linear (`k=1`) interpolation object for slice 1, with the slice 1 times and values." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Import `InterpolatedUnivariateSpline` from `scipy.interpolate`\n", "# Make a new linear (`k=1`) interpolation object for slice 1, with slice 1 times and values.\n", "from scipy.interpolate import InterpolatedUnivariateSpline\n", "interp = InterpolatedUnivariateSpline(slice_1_times, slice_1_ts, k=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Call the object you got with the slice 0 times, to get the estimated time series values for slice 1, if slice 1 had been collected at the same time as slice 0:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Call interpolator with `slice_0_times` to get estimated values\n", "slice_1_ts_est = interp(slice_0_times)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Repeat the plot of the first 10 values of the time series. This time, on the same plot, add the estimated values for slice 1, if they had been collected at the same time as slice 0. Use a black `x` for the estimated points (marker `kx'`):" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nxvjY/wdyTuxWQUax/wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot first 10 values of slice 0 times against first 10 of slice 0 time series\n", "# Plot first 10 values of slice 1 times against first 10 of slice 1 time series\n", "# Plot first 10 values of slice 0 times against first 10 of interpolated slice 1 time series\n", "plt.plot(slice_0_times[:10], slice_0_ts[:10], ':+')\n", "plt.plot(slice_1_times[:10], slice_1_ts[:10], ':+')\n", "plt.plot(slice_0_times[:10], slice_1_ts_est[:10], 'kx')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a new data matrix to contain the slice time corrected values for all voxels. We want to keep the values for z slice 0 unchanged, so make the new data matrix by copying the old one (and therefore getting the slice 0 values):" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Copy old data to a new array\n", "new_data = fixed_data.copy()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Loop over every x voxel coordinate, and then loop over every y voxel coordinate.\n", "\n", "For each x, y voxel coordinate:\n", "\n", "* extract the time series at this x, y coordinate for slice 1;\n", "* make a linear interpolator object with the slice 1 times and the extracted time series;\n", "* resample this interpolator at the slice 0 times;\n", "* put this new resampled time series into the new data at the same position" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# loop over all x coordinate values\n", "# loop over all y coordinate values\n", "# extract the time series at this x, y coordinate for slice 1;\n", "# make a linear interpolator object with the slice 1 times and the extracted time series;\n", "# resample this interpolator at the slice 0 times;\n", "# put this new resampled time series into the new data at the same position\n", "for x in range(fixed_data.shape[0]):\n", " for y in range(fixed_data.shape[1]):\n", " time_series = fixed_data[x, y, 1, :]\n", " interp = InterpolatedUnivariateSpline(slice_1_times, time_series, k=1)\n", " new_series = interp(slice_0_times)\n", " new_data[x, y, 1, :] = new_series" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we need to do the same thing for all the z slices." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To do this, we want to construct an offset vector (call it `time_offset`) of length (number of z slices) such that adding the `time_offset[z]` to the acquisition time of the the first slice will give us the time of acquisition of slice `z`. The next few steps are to get to that `time_offset` vector." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, make a new vector `acquisition_order` that is length 30, where `acquisition_order[i]` is the order of acquisition of slice index `i`. For example, the first 4 elements of `acqusition_order` should be 0, 15, 1, 16." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0., 15., 1., 16., 2., 17., 3., 18., 4., 19., 5.,\n", " 20., 6., 21., 7., 22., 8., 23., 9., 24., 10., 25.,\n", " 11., 26., 12., 27., 13., 28., 14., 29.])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make acquisition_order vector, length 30, with values:\n", "# 0, 15, 1, 16 ... 14, 29\n", "acquisition_order = np.zeros(30)\n", "acquisition_index = 0\n", "for i in range(0, 30, 2):\n", " acquisition_order[i] = acquisition_index\n", " acquisition_index += 1\n", "for i in range(1, 30, 2):\n", " acquisition_order[i] = acquisition_index\n", " acquisition_index += 1\n", "acquisition_order" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Divide the acquisition order vector by number of slices, and multiply by the TR, to get the time offset for each z slice, relative to the start of the scan:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 1.25 , 0.08333333, 1.33333333, 0.16666667,\n", " 1.41666667, 0.25 , 1.5 , 0.33333333, 1.58333333,\n", " 0.41666667, 1.66666667, 0.5 , 1.75 , 0.58333333,\n", " 1.83333333, 0.66666667, 1.91666667, 0.75 , 2. ,\n", " 0.83333333, 2.08333333, 0.91666667, 2.16666667, 1. ,\n", " 2.25 , 1.08333333, 2.33333333, 1.16666667, 2.41666667])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Divide acquisition_order by number of slices, multiply by TR\n", "time_offsets = acquisition_order / 30 * TR\n", "time_offsets" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can do our whole slice time correction, for every slice.\n", "\n", "* For each z coordinate (slice index):\n", " * Make a time vector by adding the slice time offset for this slice, to the slice_0 times. Call this the `slice_z_times` vector;\n", " * For each x coordinate:\n", " * For each y coordinate:\n", " * extract the time series at this x, y, z coordinate;\n", " * make a linear interpolator object with the `slice_z_times` and the extracted time series;\n", " * resample this interpolator at the slice 0 times;\n", " * put this new resampled time series into the new data at the same position" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# For each z coordinate (slice index):\n", "## Make `slice_z_times` vector for this slice\n", "### For each x coordinate:\n", "#### For each y coordinate:\n", "##### extract the time series at this x, y, z coordinate;\n", "##### make a linear interpolator object with the `slice_z_times` and the extracted time series;\n", "##### resample this interpolator at the slice 0 times;\n", "##### put this new resampled time series into the new data at the same position\n", "for z in range(fixed_data.shape[2]):\n", " slice_z_times = slice_0_times + time_offsets[z]\n", " for x in range(fixed_data.shape[0]):\n", " for y in range(fixed_data.shape[1]):\n", " time_series = fixed_data[x, y, z, :]\n", " interp = InterpolatedUnivariateSpline(slice_z_times, time_series, k=1)\n", " new_series = interp(slice_0_times)\n", " new_data[x, y, z, :] = new_series" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Congratulations - you have just done slice timing correction on this 4D image." ] } ], "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.9" } }, "nbformat": 4, "nbformat_minor": 0 }