{ "metadata": { "name": "", "signature": "sha256:2db3b67d79dcb36a811a077c6e88b057e5a58aa441fe16348dc754fa6f03c68a" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Nipype Concepts: Interfaces" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![](http://nipy.sourceforge.net/nipype/_static/nipype-banner-bg.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The goal of this notebook is to introduce and illustrate the basic concepts underlying Interfaces. Interfaces provide a unified Pythonic representation of modular analysis routines from various packages (e.g. FSL, SPM, Freesurfer, etc.). Interfaces know what sort of options an external program has and how to execute it. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "from __future__ import print_function\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import nibabel as nib" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Example: FSL BET" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "FSL's BET (or Brain Extraction Tool) rapidly skull-strips an image and optionally can save a binary brain mask file.\n", "\n", "Let's take a look at our T1 image. First, let's define a quick helper function so we can see what our processing is doing." ] }, { "cell_type": "code", "collapsed": true, "input": [ "def plot_slice(fname, z_idx=5):\n", "\n", " # Load the image and collect the data\n", " # and orientation information\n", " img = nib.load(fname)\n", " data = img.get_data()\n", " aff = img.get_affine()\n", "\n", " # Find the center of the brain matrix\n", " ctr = np.dot(np.linalg.inv(aff), [0, 0, 0, 1])[:3]\n", "\n", " # Plot the data\n", " vmin, vmax = (0, 1) if data.dtype == np.int16 else (30, 150)\n", " plt.imshow(np.rot90(data[:, :, ctr[2] + z_idx]), \n", " cmap=\"gray\", vmin=vmin, vmax=vmax)\n", " plt.gca().set_axis_off()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_slice(\"data/T1.nii.gz\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAN0AAAD/CAYAAAB1oNMnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnelzm+d19i9sxL6DAFdJlOU4dhrbk7WTNtO+zZfm7+2n\nfmnTaTpZ3LpxbMerLEqiuGAHCGIjlveD+js8eER5SWKZknnPcCSCwINnOet1rnPu0HK51PW6Xtfr\n2a3wN30C1+t6fdvWtdJdr+v1jNe10l2v6/WM17XSXa/r9YzXtdJdr+v1jNe10l2v6/WM17XSXa/r\n9YzXtdJdr+v1jNe10l2v6/WM17XSXa/r9YxX9Fl/YSgUuuadXa9vzVoul6Hga9ee7npdr2e8rpXu\nel2vZ7yule56Xa9nvJ55Tne9nr5CoZDC4bDC4QtbGIvFtLa2prW1NcXjcUUiEUWjUXuvJNGe5T8f\nCoXsb4vFQovFQvP5XJJW3rNcLjUajTQejzWZTHR+fm7v5ycUCikUCmk+n2uxWDzju/LirWulu0Ir\nFAoplUopkUiYsFcqFVUqFW1ubmpzc1O5XE65XE5ra2uKxWKStKIY8XhcyWRSkUhEkjSbzTSZTDQa\njTQcDrVYLJRMJhWPxxWPxzWdTvXZZ59pf39fx8fHajQamkwm9pnRaKRoNKpoNGrKed2D+Zeta6V7\nhisUCpmnisViisViSiaTisViWi6XikajyufzymazWiwWCofD2tzc1NbWlm7duqVbt24pn88rl8uZ\n58L7xONxU9i1tTWFQiEtFgudn5+b8oxGI4VCIVPcXC6n2Wym9957Tx9++KH29/f16NEje+9gMNDZ\n2Zkp3WAw0OnpqaTH3nI8Hms8Hms6ner8/Fyz2Uzz+fxaKb9ghZ71Dfo2lwzW1taUyWRUKBS0vr6u\nra0tvfTSS9rY2NB8Plc4HFaxWFQulzPPlU6nlclk7F8U4pNPPtEHH3yg0Wik+XyunZ0dvfzyy5rP\n52q1Wjo7O9N4PLaQcm1tTalUSvl8XuVy2b4/k8mo1+up1+up3+/r7OxMs9lMs9lM5+fnOj8/N8Ue\nDocaDodmNPb39/Xxxx/r6OhI9XpdvV5Pp6enOj8/v1a8/1uXlQyuPd3XsMiZ8BDkZalUyhRuZ2dH\nd+7c0ZtvvqmbN29qOp1quVyqUCgol8s9kdtJjz3l0dGR2u22Hjx4oLfffltnZ2daLBY6OztTLpfT\naDTS3bt31Wg0NBgMtFwulUgklMvlVK1WNZlMzKum02nztqlUSjs7O0/kiZJMCVG6RCKhZDKpd955\nR2tra0okEgqHw5Z3YkAIbfGEGIBv+7pWuq9h4dHK5bI2Nja0tbWlnZ0d5XI5STKBz2azmk6nevDg\ngdrtts7Ozsyr4ekQ/kKhoHw+r263q16vp0wmo1dffdW+b3d3Vzdv3tRkMlEikVC327VQkLATZUkm\nkzo/P9fh4aEODg7UbDY1GAyUz+eVTqctbOW7U6mUUqmUOp2OOp2OMpmMcrmcHjx4oF6vp1AopGKx\nqFqtplwup0KhoEKhoG63a2Hr0dGR+v3+N/A0rt66Vrq/0gqFQmbpC4WCyuWydnZ2dPPmTb388st6\n7bXXVCgUNBqNNJlMtFgszBOcnJzo8PBQzWbTAJLlcmk/krS5uamNjQ2dnZ1ZCFipVJRIJJROp1Uq\nlRSPxxWLxbS1taVCoaCzszNFIhFlMhlFIhHNZjNDH/v9vgaDgVqtlj777DM1m02tr6+rUChYbobi\nbWxsqFarqdvtqtvtKp/Pq1QqmcJls1klEglVq1Xt7e1pe3tbGxsbevTokX3vbDZTKBSy//Md38Z1\nndP9FRah4J07d/TGG29oZ2dHlUpFkUhE4/FYa2trBpCkUilTjnA4rPl8ruFwqMPDQ9XrdVMGQjLp\nsULjoVqtllqtlqbTqebzuSKRiIWu2WxWhULBFBA0tFAoKBaLaTabaTAYqF6vq9VqqdvtmvcaDAaG\naMZiMUUiEcsLb9++rdu3b6tcLqtcLiufzyufzxtQ0+l01Gq1tLa2pkKhYEDOw4cP9b//+7/q9Xoq\nFApaLBY6OjrS0dGRDg8P1W63v+En9/Wv65zur7zI2aLRqCKRiF566SX94z/+o15++WWtr6+r2+3q\no48+UrPZ1NHRkVqtlsrlsoEliUTCrH0kElEoFNLp6amOj491dnam0WhkCg2wcXx8rKOjoyfqZdFo\n1MLM7373u1pfXzeFkx6HoOfn52o2m/roo490//59tdtt9ft9zedzO/5yuVQ6nVYymVSn09Hp6amB\nNalUSuVyWblczoCdTCajRqOhhw8f6vz8XLFYTKPRSN1uV41GQ+PxWMViUT/60Y+USqX04Ycf6qOP\nPtL5+bnG47Ghnt8m4OXa0/0Fa29vT3fu3DGvcvPmTb366qva3d3V5uamQqGQBoOB/dTrde3v72s2\n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\ntdK9iItG0lKppFwuZx6vXC5rsVjoo48+0r179/TZZ5/p4ODAwJLLFuEagkwbDI2m0WjUQJR4PK7h\ncGhKh6dZW1szQnEkEjF+JfxHuJLQtcjLaC0KhUJWiKf0kEqllEwmjcZFdwGfQ7ABbfr9voWd8Dkl\nWc6H8kLmnk6nK2WO5XJ5aWvPYrHQZDJRt9vVZ599Zt5va2tLxWJRv/jFL6wwX6lUFI1G1W631Wq1\nnmuy9LXSBVYkElGlUtHu7q7i8bhms5m2t7f15ptv6je/+Y3eeust3b9/Xw8ePNBkMvlcD4fCoWy5\nXE6lUsm6vykU08MGXYp8TZISiYTy+bzW1tY0m82UTqe1vb2tYrGoYrGo5XKp2WxmtTjCOBBK4HtJ\nVtqg1SeVSimXy6lYLFq3OiWK2Wxmih0KhYw9Eg6H7Rh0pVP4p7O83++bksPWGQwGT1WUyWSizz77\nTMfHx3r48KFu3rypf/qnf9LPfvYz/epXv9K///u/2zP5+OOPV3Ln53FdK93/LTxcsVi0/KJUKqlY\nLKrf7+u//uu/9O677+ru3btqt9s2b8QvPJsHJGgi3d7eVrlcNvYK3g4klNoZfwOVTKfT2tjY0Pb2\ntm7evKmtrS1Vq1WjnPnhQXQHcF4ALZPJZEVZUHSK2PTH8Z2DwWDFa2YyGUkyBQMJpfxBmxL5HV4u\nFAqtlEx8nujXcrm0MsTx8bHm87nK5bLC4bDOz8/1xhtvWDdENBpVNpvVcDh8bue1XCvd/621tTXV\najUj7OZyOesN+4//+A/953/+p8HYvi/NLzwbYRpF5mQyqZs3b2pjY2MFlvdhIOEeoSS9Z3R3g1qW\ny2WVSiWNx2OD5xFkQlbYKZzLeDw2Kha5lyTzRPAlGWaE95Rk5wDy6Yv94XDYlNNfP2GlJKvX8bfP\nq+8tFgv1+32NRiOdnZ3pgw8+0M9//nP9wz/8g37/+99rf39fi8XCOidQ1OdtfeuVDiY+YxISiYTW\n19e1vr6uwWCg9957T59++qkODg50fn5+KaXK50sIPQBDIpFQNps1tBFv4vvl4vG4isWiCoWC0um0\n1tbWlE6nVSgUTIh3d3dVrVbtGNPpVKenp6YEvmANEBSPx1daaJ7GTvHjJcLhsDKZjCkJHhFmyXw+\nV6PRUL1eV71eV6PRUL/fN8Ty9PRU9Xpdw+HQSgZcHwTo8/Nz46ASykoXyj6fz9VsNjUcDi3qmM/n\n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\n77ETvK2tTagevF6vpPx7e3sRDocxMDAgSBZNHAsA165dww9/+EPcuHEDuVxO8JEEinMzOAoZ2acl\nTaU7IkIKue7ubni9XrjdbskEagsG7KFU6LoSiqXfG+MpPR6ZUCs9r1y32WhW5fX1dTkmi+ns2m5v\nbxfadV4Hpx3R6hUKhYZ+Pp5vbm4OH374Iebm5sTlfN6kqXRHRGj9yAym40AjQzMTJ4RksfEU2LVK\nTHjwGKRzZ7MsKQDJHk1ryeZSMnLpYSMc5cyudn4IsiaoOp1OS+PqtWvXxAJzTbGP73mwaI+TptI9\nY8IsZ2trq+A/+TOFqXoqHZEwHo9HuhfIcQLsTXQtl8sy8kvPNgcg52CvHT9sfeK1kax2fn4ejx49\neuxI4udZmkr3DIqmr9OTdIz/r/+uLSkTGLqZlKBrbZX4f8bj6D+N2EzSBnJO3vNQY/ui0lS6pjTl\nkOUgpWv5Q1xIU5ryPEtT6ZrSlEOWptI1pSmHLE2la0pTDlmaSteUphyyNJWuKU05ZGkqXVOacsjS\nVLqmNOWQ5dCL401pyvMuTUvXlKYcsjSVrilNOWRpKl1TmnLI0lS6pjTlkKWpdE1pyiFLU+ma0pRD\nlqbSNaUphyxNpWtKUw5ZmkrXlKYcsjSVrilNOWRpKl1TmnLI0lS6pjTlkKWpdE1pyiFLU+ma0pRD\nlqbSNaUphyxNpWtKUw5ZmkrXlKYcsjSVrilNOWRpKl1TmnLI0lS6pjTlkOX/AZByUzxfPmIhAAAA\nAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "In its simplest form, just pass BET an input image and tell it what to name the output." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!bet data/T1.nii.gz data/T1_bet.nii.gz" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that, in IPython, prepending a line with a bang (``!``) will make a shell call. This is a trick that is specific to IPython, although there are a variety of ways to execute system calls in Python that are slightly more verbose.\n", "\n", "Let's take a look at the results:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot_slice(\"data/T1_bet.nii.gz\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAN0AAAD/CAYAAAB1oNMnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnVlzW1mWnRcAgiBmggDBQUNKmVldXR0O+8HhRz/5D/jH\n+m/YYUe72tVVWV2ZKUocMU8kRj/I3+a6V0x3ud1JiRROBEIiCVzc4eyz915r7X0ym81G27Ed2/F4\nI/u5T2A7tuNrG1uj247teOSxNbrt2I5HHluj247teOSxNbrt2I5HHluj247teOSxNbrt2I5HHluj\n247teOSxNbrt2I5HHluj247teOSx89hfmMlktrqz7fhqxmazyaR/t/V027Edjzy2Rrcd2/HIY2t0\n27Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HI\nY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HI49GLWLfjyxrZbFZ7\ne3va3d1VNptVNpvVer3WarXS3d2d7u7ulMlklMlk4u+r1UrL5fJzn/qTHVuj+8pHLpdTqVRSpVLR\nzs6OcrmclsulFouFhsOh5vO5stmscrmccrmcdnZ2NJ/PtVqttN185l82Mo9947btGu7H7u6uGo2G\n9vf3Va/XVS6XtVqttFqtlMlktF6v9fPPP+vs7Oxf/bsLhYKazaZarZba7bYODg6UzWaVyWS02WzC\n093e3mo4HGowGKjf76vf7yufz2tvb0+lUknlcll3d3caj8eaTqeaTCZarVb/6uf7VMdD7Rq2nu4z\njkKhoKOjI719+1avX79Wu93WfD7XYrFQNpvVYrHQZrP5VYxub29PL1680Pfff6+XL1+q3W5HGOlj\nvV7rp59+0o8//qgffvhB19fXqlQqOjw8VLvdVrvd1nA41MXFha6urnR3d7c1un9mbI3uM475fK5O\np6O9vT01Gg21Wi3l83nl83nd3d1psVhovV4rk8no+PhYJycn4Y0uLy/14cOHX8ytcrmcdnd3VSqV\nVK/XlclkNJlMtNlsVKvVdHBwoNPTUzUaDZVKJeXz+cjZeG02G202G7VaLW02m/COu7u7KhaLKhaL\n2t3dje9pNBra2dnRaDTSaDTSYrF45Dv6NMbW6D7jmM/nuri40GKxULvd1vHxcUzkyWSi8Xis+Xyu\nTCajly9f6t//+3+vnZ0dZbNZ/ff//t91fX39i0a3s7OjYrGow8NDvX79WrlcTpeXl9psNnr58qUO\nDw9VLpdVLpe1u7urzWajTCYTeVsul9N6vdZ6vdbBwYFKpZIODw/1/fffaz6faz6f6+7uTvP5XLlc\nTsViUdlsVtVqVZ1OJxaN7fh0bI3uVxyEa0zk3d1d7e3tBVqIAZVKJRUKBU2n0zA6PM3u7q6q1aqK\nxaLy+XzkgMViUa9fv9Yf/vAH/cM//IOq1apevXqlTCaj6XQaYIcbFGBJrVZTpVKJF/kkCCV5fqFQ\n0O7urobDYYSdmUxGpVJJkiLnKxaLKpVKms1mYYj5fD7yw+1Ijq3R/YoDg8PYCOvq9bpqtZqKxWIY\nniTNZjNJHyf7zs7HR7O3t6d6va7d3V0tl0uVy2W9ePFCf/M3f6NSqaT/8l/+i3766Sednp7qP/7H\n/6hcLqerqytdXV3p+vpa6/Vat7e3kqRyuRwGAhBSq9XUaDRUrVbDsy0WCy2XS9Xr9QhNb29vI9fk\nGIvFQrPZTLe3t5pOpxqPxxqNRhoOhxGurtfrreGlxtbofsWx2Wy0Xq8DtGg2m6pUKjHpd3d3lcvl\nIk8jN9rb2wv0slwu6/j4WC9evNA333yj09NTtdvt8JTff/+9/tN/+k+q1+t6+fKlptOphsNh5Fpw\nbW4sGHqhUAi6oFarxXeOx2PNZrM4r0qlIklhYPl8XoVCQePxWNJHsGW5XMZ35vP5CFHJC7fjfmyN\n7lccGF2xWNQ333yj4+PjBCxPOEf+ValUVK1Ww+jwbPl8Xm/evNFvf/tbNZtNHRwc6Pb2VpPJRK9f\nv9Z//s//OUCXDx8+aLVaab1eK5fLhZfK5XLK5/ORe0lSPp8P2L9WqymXy8V5kytyDrVaTcvlUsvl\nMgwpm82GcUpKhNL5fF65XG6LZD4wtkb3Kw74LHIy92BQA9LHcJJcDWCjXC5rf38/JvGrV6/Ubrfj\nGPP5XKPRSMvlUoVCIYwLY97Z2VGhUNBisYjQMO1x0koTPGClUgkDwiMWCoXgEK+vrxMh7HA4DMRy\nNBrp6upK0+k0CHRC62KxGOc+GAw0mUw+x2P57GNrdL/igPyu1+uBBhJyLRaL4LTW67V2d3e1v78f\n4V+9Xtd8Ple1WlW1WtWLFy+0v7+v1Wql+XyuyWSi4XAYHo4XHgivNp/Pg+zmuzA+PJYbI0a3t7cX\n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\nshBoAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What else can BET do? It's actually a fairly complicated program. As is the case for all FSL binaries, just call it with no arguments to see its options." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!bet" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\r\n", "Usage: bet [options]\r\n", "\r\n", "Main bet2 options:\r\n", " -o generate brain surface outline overlaid onto original image\r\n", " -m generate binary brain mask\r\n", " -s generate approximate skull image\r\n", " -n don't generate segmented brain image output\r\n", " -f fractional intensity threshold (0->1); default=0.5; smaller values give larger brain outline estimates\r\n", " -g vertical gradient in fractional intensity threshold (-1->1); default=0; positive values give larger brain outline at bottom, smaller at top\r\n", " -r head radius (mm not voxels); initial surface sphere is set to half of this\r\n", " -c centre-of-gravity (voxels not mm) of initial mesh surface.\r\n", " -t apply thresholding to segmented brain image and mask\r\n", " -e generates brain surface as mesh in .vtk format\r\n", "\r\n", "Variations on default bet2 functionality (mutually exclusive options):\r\n", " (default) just run bet2\r\n", " -R robust brain centre estimation (iterates BET several times)\r\n", " -S eye & optic nerve cleanup (can be useful in SIENA)\r\n", " -B bias field & neck cleanup (can be useful in SIENA)\r\n", " -Z improve BET if FOV is very small in Z (by temporarily padding end slices)\r\n", " -F apply to 4D FMRI data (uses -f 0.3 and dilates brain mask slightly)\r\n", " -A run bet2 and then betsurf to get additional skull and scalp surfaces (includes registrations)\r\n", " -A2 as with -A, when also feeding in non-brain-extracted T2 (includes registrations)\r\n", "\r\n", "Miscellaneous options:\r\n", " -v verbose (switch on diagnostic messages)\r\n", " -h display this help, then exits\r\n", " -d debug (don't delete temporary intermediate images)\r\n", "\r\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that BET can also return a binary brain mask as a result of the skull-strip, which can be useful for masking our GLM analyses (among other things). Let's run again including that option and see the result." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!bet data/T1 data/T1_bet -m\n", "plot_slice(\"data/T1_bet_mask.nii.gz\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's look at the BET interface in Nipype. First, we have to import it." ] }, { "cell_type": "code", "collapsed": true, "input": [ "from nipype.interfaces.fsl import BET" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "/Users/mwaskom/anaconda/lib/python2.7/site-packages/nipy/labs/glm/glm.py:7: FutureWarning: Module nipy.labs.utils.routines deprecated, will be removed\n", " from ..utils import mahalanobis\n", "/Users/mwaskom/anaconda/lib/python2.7/site-packages/nipype/interfaces/nipy/model.py:17: FutureWarning: Module nipy.labs.glm deprecated, will be removed. Please use nipy.modalities.fmri.glm instead.\n", " import nipy.labs.glm.glm as GLM\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Like all Python objects, some information can be found in what's called the docstring. In IPython, this is easy to display by postpending a ``?`` to the object's name. (This does the same thing as ``help object`` in MATLAB or ``?object`` in R). In the IPython notebook, that pops up a frame at the bottom of the screen, which we don't actually want right now. Let's get the docstring the longer way. It always lives at the ``__doc__`` attribute, so we can just print that. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(BET.__doc__)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Use FSL BET command for skull stripping.\n", "\n", " For complete details, see the `BET Documentation.\n", " `_\n", "\n", " Examples\n", " --------\n", " >>> from nipype.interfaces import fsl\n", " >>> from nipype.testing import example_data\n", " >>> btr = fsl.BET()\n", " >>> btr.inputs.in_file = example_data('structural.nii')\n", " >>> btr.inputs.frac = 0.7\n", " >>> res = btr.run() # doctest: +SKIP\n", "\n", " \n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nipype also has a more comprehensive automatically generated help system built into its interfaces. To see that, just call the ``help`` method on any interface object:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(BET.help())" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Wraps command **bet**\n", "\n", "Use FSL BET command for skull stripping.\n", "\n", "For complete details, see the `BET Documentation.\n", "`_\n", "\n", "Examples\n", "--------\n", ">>> from nipype.interfaces import fsl\n", ">>> from nipype.testing import example_data\n", ">>> btr = fsl.BET()\n", ">>> btr.inputs.in_file = example_data('structural.nii')\n", ">>> btr.inputs.frac = 0.7\n", ">>> res = btr.run() # doctest: +SKIP\n", "\n", "Inputs::\n", "\n", "\t[Mandatory]\n", "\tin_file: (an existing file name)\n", "\t\tinput file to skull strip\n", "\tterminal_output: ('stream' or 'allatonce' or 'file' or 'none')\n", "\t\tControl terminal output: `stream` - displays to terminal\n", "\t\timmediately, `allatonce` - waits till command is finished to display\n", "\t\toutput, `file` - writes output to file, `none` - output is ignored\n", "\n", "\t[Optional]\n", "\targs: (a string)\n", "\t\tAdditional parameters to the command\n", "\tcenter: (a list of at most 3 items which are an integer)\n", "\t\tcenter of gravity in voxels\n", "\tenviron: (a dictionary with keys which are a value of type 'str' and\n", "\t\t with values which are a value of type 'str', nipype default value:\n", "\t\t {})\n", "\t\tEnvironment variables\n", "\tfrac: (a float)\n", "\t\tfractional intensity threshold\n", "\tfunctional: (a boolean)\n", "\t\tapply to 4D fMRI data\n", "\t\tmutually_exclusive: functional, reduce_bias, robust, padding,\n", "\t\t remove_eyes, surfaces, t2_guided\n", "\tignore_exception: (a boolean, nipype default value: False)\n", "\t\tPrint an error message instead of throwing an exception in case the\n", "\t\tinterface fails to run\n", "\tin_file: (an existing file name)\n", "\t\tinput file to skull strip\n", "\tmask: (a boolean)\n", "\t\tcreate binary mask image\n", "\tmesh: (a boolean)\n", "\t\tgenerate a vtk mesh brain surface\n", "\tno_output: (a boolean)\n", "\t\tDon't generate segmented output\n", "\tout_file: (a file name)\n", "\t\tname of output skull stripped image\n", "\toutline: (a boolean)\n", "\t\tcreate surface outline image\n", "\toutput_type: ('NIFTI_PAIR' or 'NIFTI_PAIR_GZ' or 'NIFTI_GZ' or\n", "\t\t 'NIFTI')\n", "\t\tFSL output type\n", "\tpadding: (a boolean)\n", "\t\timprove BET if FOV is very small in Z (by temporarily padding end\n", "\t\tslices)\n", "\t\tmutually_exclusive: functional, reduce_bias, robust, padding,\n", "\t\t remove_eyes, surfaces, t2_guided\n", "\tradius: (an integer)\n", "\t\thead radius\n", "\treduce_bias: (a boolean)\n", "\t\tbias field and neck cleanup\n", "\t\tmutually_exclusive: functional, reduce_bias, robust, padding,\n", "\t\t remove_eyes, surfaces, t2_guided\n", "\tremove_eyes: (a boolean)\n", "\t\teye & optic nerve cleanup (can be useful in SIENA)\n", "\t\tmutually_exclusive: functional, reduce_bias, robust, padding,\n", "\t\t remove_eyes, surfaces, t2_guided\n", "\trobust: (a boolean)\n", "\t\trobust brain centre estimation (iterates BET several times)\n", "\t\tmutually_exclusive: functional, reduce_bias, robust, padding,\n", "\t\t remove_eyes, surfaces, t2_guided\n", "\tskull: (a boolean)\n", "\t\tcreate skull image\n", "\tsurfaces: (a boolean)\n", "\t\trun bet2 and then betsurf to get additional skull and scalp surfaces\n", "\t\t(includes registrations)\n", "\t\tmutually_exclusive: functional, reduce_bias, robust, padding,\n", "\t\t remove_eyes, surfaces, t2_guided\n", "\tt2_guided: (a file name)\n", "\t\tas with creating surfaces, when also feeding in non-brain-extracted\n", "\t\tT2 (includes registrations)\n", "\t\tmutually_exclusive: functional, reduce_bias, robust, padding,\n", "\t\t remove_eyes, surfaces, t2_guided\n", "\tterminal_output: ('stream' or 'allatonce' or 'file' or 'none')\n", "\t\tControl terminal output: `stream` - displays to terminal\n", "\t\timmediately, `allatonce` - waits till command is finished to display\n", "\t\toutput, `file` - writes output to file, `none` - output is ignored\n", "\tthreshold: (a boolean)\n", "\t\tapply thresholding to segmented brain image and mask\n", "\tvertical_gradient: (a float)\n", "\t\tvertical gradient in fractional intensity threshold (-1, 1)\n", "\n", "Outputs::\n", "\n", "\tinskull_mask_file: (a file name)\n", "\t\tpath/name of inskull mask (if generated)\n", "\tinskull_mesh_file: (a file name)\n", "\t\tpath/name of inskull mesh outline (if generated)\n", "\tmask_file: (a file name)\n", "\t\tpath/name of binary brain mask (if generated)\n", "\tmeshfile: (a file name)\n", "\t\tpath/name of vtk mesh file (if generated)\n", "\tout_file: (a file name)\n", "\t\tpath/name of skullstripped file (if generated)\n", "\toutline_file: (a file name)\n", "\t\tpath/name of outline file (if generated)\n", "\toutskin_mask_file: (a file name)\n", "\t\tpath/name of outskin mask (if generated)\n", "\toutskin_mesh_file: (a file name)\n", "\t\tpath/name of outskin mesh outline (if generated)\n", "\toutskull_mask_file: (a file name)\n", "\t\tpath/name of outskull mask (if generated)\n", "\toutskull_mesh_file: (a file name)\n", "\t\tpath/name of outskull mesh outline (if generated)\n", "\tskull_mask_file: (a file name)\n", "\t\tpath/name of skull mask (if generated)\n", "\n", "None\n" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see a few things here. First, Nipype knows about the various options in the BET help we saw above, and exposes them as ``inputs``. There are a few ways to set inputs, but the most obvious is to create an interface instance and set them via the ``inputs`` attribute." ] }, { "cell_type": "code", "collapsed": true, "input": [ "skullstrip = BET()\n", "skullstrip.inputs.in_file = \"data/T1.nii.gz\"\n", "skullstrip.inputs.out_file = \"data/T1_bet_nipype.nii.gz\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another way to set inputs on an interface object is to use them as keyword arguments when you call the class constructor. Don't worry if you don't know what a \"class constructor\" is. Doing the following will give you the same result as the three lines above." ] }, { "cell_type": "code", "collapsed": true, "input": [ "skullstrip = BET(in_file=\"data/T1.nii.gz\", out_file=\"data/T1_bet_nipype.nii.gz\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interfaces know how to execute the processing you have specified. For command line programs like BET, they can generate the command-line string. To see what that looks like, just print the ``cmdline`` attribute:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(skullstrip.cmdline)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "bet data/T1.nii.gz data/T1_bet_nipype.nii.gz\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice how that gives the command line we used above. As you may have noticed, the various optional parameters to the command line program are named with single letter strings of dubious mnemonic value. Nipype tries to turn those into more useful names. For instance, to generate a brain mask, instead of using the ``-m`` switch, just set the ``mask`` input to ``True``." ] }, { "cell_type": "code", "collapsed": false, "input": [ "skullstrip.inputs.mask = True\n", "print(skullstrip.cmdline)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "bet data/T1.nii.gz data/T1_bet_nipype.nii.gz -m\n" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So far we've just created an object that describes some element of processing. To actually execute it, you can call the ``run`` method on that object. For FSL, Freesurfer, and other programs, this will just make a system call with the command line we see above. For MATLAB-based programs like SPM, it will actually generate a ``.m`` file and run a MATLAB process to execute it. All of that is handled in the background, though: interfaces provide an abstract representation of analysis steps." ] }, { "cell_type": "code", "collapsed": false, "input": [ "skullstrip.run()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that this produced a file much like the one above:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot_slice(\"data/T1_bet_nipype.nii.gz\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAN0AAAD/CAYAAAB1oNMnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnVlzW1mWnRcAgiBmggDBQUNKmVldXR0O+8HhRz/5D/jH\n+m/YYUe72tVVWV2ZKUocMU8kRj/I3+a6V0x3ud1JiRROBEIiCVzc4eyz915r7X0ym81G27Ed2/F4\nI/u5T2A7tuNrG1uj247teOSxNbrt2I5HHluj247teOSxNbrt2I5HHluj247teOSxNbrt2I5HHluj\n247teOSxNbrt2I5HHluj247teOSx89hfmMlktrqz7fhqxmazyaR/t/V027Edjzy2Rrcd2/HIY2t0\n27Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HI\nY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HIY2t027Edjzy2Rrcd2/HI49GLWLfjyxrZbFZ7\ne3va3d1VNptVNpvVer3WarXS3d2d7u7ulMlklMlk4u+r1UrL5fJzn/qTHVuj+8pHLpdTqVRSpVLR\nzs6OcrmclsulFouFhsOh5vO5stmscrmccrmcdnZ2NJ/PtVqttN185l82Mo9947btGu7H7u6uGo2G\n9vf3Va/XVS6XtVqttFqtlMlktF6v9fPPP+vs7Oxf/bsLhYKazaZarZba7bYODg6UzWaVyWS02WzC\n093e3mo4HGowGKjf76vf7yufz2tvb0+lUknlcll3d3caj8eaTqeaTCZarVb/6uf7VMdD7Rq2nu4z\njkKhoKOjI719+1avX79Wu93WfD7XYrFQNpvVYrHQZrP5VYxub29PL1680Pfff6+XL1+q3W5HGOlj\nvV7rp59+0o8//qgffvhB19fXqlQqOjw8VLvdVrvd1nA41MXFha6urnR3d7c1un9mbI3uM475fK5O\np6O9vT01Gg21Wi3l83nl83nd3d1psVhovV4rk8no+PhYJycn4Y0uLy/14cOHX8ytcrmcdnd3VSqV\nVK/XlclkNJlMtNlsVKvVdHBwoNPTUzUaDZVKJeXz+cjZeG02G202G7VaLW02m/COu7u7KhaLKhaL\n2t3dje9pNBra2dnRaDTSaDTSYrF45Dv6NMbW6D7jmM/nuri40GKxULvd1vHxcUzkyWSi8Xis+Xyu\nTCajly9f6t//+3+vnZ0dZbNZ/ff//t91fX39i0a3s7OjYrGow8NDvX79WrlcTpeXl9psNnr58qUO\nDw9VLpdVLpe1u7urzWajTCYTeVsul9N6vdZ6vdbBwYFKpZIODw/1/fffaz6faz6f6+7uTvP5XLlc\nTsViUdlsVtVqVZ1OJxaN7fh0bI3uVxyEa0zk3d1d7e3tBVqIAZVKJRUKBU2n0zA6PM3u7q6q1aqK\nxaLy+XzkgMViUa9fv9Yf/vAH/cM//IOq1apevXqlTCaj6XQaYIcbFGBJrVZTpVKJF/kkCCV5fqFQ\n0O7urobDYYSdmUxGpVJJkiLnKxaLKpVKms1mYYj5fD7yw+1Ijq3R/YoDg8PYCOvq9bpqtZqKxWIY\nniTNZjNJHyf7zs7HR7O3t6d6va7d3V0tl0uVy2W9ePFCf/M3f6NSqaT/8l/+i3766Sednp7qP/7H\n/6hcLqerqytdXV3p+vpa6/Vat7e3kqRyuRwGAhBSq9XUaDRUrVbDsy0WCy2XS9Xr9QhNb29vI9fk\nGIvFQrPZTLe3t5pOpxqPxxqNRhoOhxGurtfrreGlxtbofsWx2Wy0Xq8DtGg2m6pUKjHpd3d3lcvl\nIk8jN9rb2wv0slwu6/j4WC9evNA333yj09NTtdvt8JTff/+9/tN/+k+q1+t6+fKlptOphsNh5Fpw\nbW4sGHqhUAi6oFarxXeOx2PNZrM4r0qlIklhYPl8XoVCQePxWNJHsGW5XMZ35vP5CFHJC7fjfmyN\n7lccGF2xWNQ333yj4+PjBCxPOEf+ValUVK1Ww+jwbPl8Xm/evNFvf/tbNZtNHRwc6Pb2VpPJRK9f\nv9Z//s//OUCXDx8+aLVaab1eK5fLhZfK5XLK5/ORe0lSPp8P2L9WqymXy8V5kytyDrVaTcvlUsvl\nMgwpm82GcUpKhNL5fF65XG6LZD4wtkb3Kw74LHIy92BQA9LHcJJcDWCjXC5rf38/JvGrV6/Ubrfj\nGPP5XKPRSMvlUoVCIYwLY97Z2VGhUNBisYjQMO1x0koTPGClUgkDwiMWCoXgEK+vrxMh7HA4DMRy\nNBrp6upK0+k0CHRC62KxGOc+GAw0mUw+x2P57GNrdL/igPyu1+uBBhJyLRaL4LTW67V2d3e1v78f\n4V+9Xtd8Ple1WlW1WtWLFy+0v7+v1Wql+XyuyWSi4XAYHo4XHgivNp/Pg+zmuzA+PJYbI0a3t7cX\n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\nshBoAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some interfaces cannot run without certain inputs being set. For instance, you need to give BET a file to work on. If you try and run it without setting the input file, you'll get a Python exception before anything actually gets executed:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "skullstrip2 = BET()\n", "skullstrip2.run()" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "BET requires a value for input 'in_file'. For a list of required inputs, see BET.help()", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mskullstrip2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBET\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mskullstrip2\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/mwaskom/anaconda/lib/python2.7/site-packages/nipype/interfaces/base.pyc\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, **inputs)\u001b[0m\n\u001b[1;32m 929\u001b[0m \"\"\"\n\u001b[1;32m 930\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 931\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_mandatory_inputs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 932\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_version_requirements\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 933\u001b[0m \u001b[0minterface\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/mwaskom/anaconda/lib/python2.7/site-packages/nipype/interfaces/base.pyc\u001b[0m in \u001b[0;36m_check_mandatory_inputs\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 867\u001b[0m \u001b[0;34m\"For a list of required inputs, see %s.help()\"\u001b[0m \u001b[0;34m%\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 868\u001b[0m (self.__class__.__name__, name, self.__class__.__name__))\n\u001b[0;32m--> 869\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 870\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misdefined\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 871\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_requires\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mspec\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mValueError\u001b[0m: BET requires a value for input 'in_file'. For a list of required inputs, see BET.help()" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nipype also knows some things about what sort of values should get passed to the inputs, and will raise (hopefully) informative exceptions when they are violated -- before anything gets processed. For example, BET just lets you say \"create a mask,\" it doesn't let you name it. You may forget this, and try to give it a name. In this case, Nipype will raise a ``TraitError`` telling you what you did wrong:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "skullstrip.inputs.mask = \"mask_file.nii\"" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "TraitError", "evalue": "The 'mask' trait of a BETInputSpec instance must be a boolean, but a value of 'mask_file.nii' was specified.", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mTraitError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mskullstrip\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"mask_file.nii\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/mwaskom/anaconda/lib/python2.7/site-packages/traits/trait_handlers.pyc\u001b[0m in \u001b[0;36merror\u001b[0;34m(self, object, name, value)\u001b[0m\n\u001b[1;32m 167\u001b[0m \"\"\"\n\u001b[1;32m 168\u001b[0m raise TraitError( object, name, self.full_info( object, name, value ),\n\u001b[0;32m--> 169\u001b[0;31m value )\n\u001b[0m\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0marg_error\u001b[0m \u001b[0;34m(\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marg_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mTraitError\u001b[0m: The 'mask' trait of a BETInputSpec instance must be a boolean, but a value of 'mask_file.nii' was specified." ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Additionally, Nipype knows that, for inputs corresponding to files you are going to process, they should exist in your filesystem. If you pass a string that doesn't correspond to an existing file, it will error and let you know:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "skullstrip.inputs.in_file = \"data/oops_a_typo.nii\"" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "TraitError", "evalue": "The 'in_file' trait of a BETInputSpec instance must be an existing file name, but a value of 'data/oops_a_typo.nii' was specified.", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mTraitError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mskullstrip\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0min_file\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"data/oops_a_typo.nii\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/Users/mwaskom/anaconda/lib/python2.7/site-packages/nipype/interfaces/traits_extension.pyc\u001b[0m in \u001b[0;36mvalidate\u001b[0;34m(self, object, name, value)\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mvalidated_value\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 80\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merror\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 81\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 82\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/Users/mwaskom/anaconda/lib/python2.7/site-packages/traits/trait_handlers.pyc\u001b[0m in \u001b[0;36merror\u001b[0;34m(self, object, name, value)\u001b[0m\n\u001b[1;32m 167\u001b[0m \"\"\"\n\u001b[1;32m 168\u001b[0m raise TraitError( object, name, self.full_info( object, name, value ),\n\u001b[0;32m--> 169\u001b[0;31m value )\n\u001b[0m\u001b[1;32m 170\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0marg_error\u001b[0m \u001b[0;34m(\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marg_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mTraitError\u001b[0m: The 'in_file' trait of a BETInputSpec instance must be an existing file name, but a value of 'data/oops_a_typo.nii' was specified." ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "It turns out that for default output files, you don't even need to specify a name. Nipype will know what files are going to be created and will generate a name for you:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "skullstrip = BET(in_file=\"data/T1.nii.gz\")\n", "print(skullstrip.cmdline)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "bet data/T1.nii.gz /Users/mwaskom/Dropbox/Projects/Nipype_Concepts/T1_brain.nii.gz\n" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that it is going to write the output file to the local directory." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What if you just ran this interface and wanted to know what it called the file that was produced? As you might have noticed before, calling the ``run`` method returned an object called ``InterfaceResult.`` Let's inspect that object:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "res = skullstrip.run()\n", "print(res.outputs)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "inskull_mask_file = \n", "inskull_mesh_file = \n", "mask_file = \n", "meshfile = \n", "out_file = /Users/mwaskom/Dropbox/Projects/Nipype_Concepts/T1_brain.nii.gz\n", "outline_file = \n", "outskin_mask_file = \n", "outskin_mesh_file = \n", "outskull_mask_file = \n", "outskull_mesh_file = \n", "skull_mask_file = \n", "\n" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that four possible files can be generated by BET. Here we ran it in the most simple way possible, so it just generated an ``out_file``, which is the skull-stripped image. Let's see what happens when we generate a mask. By the way, you can also set inputs at runtime by including them as arguments to the ``run`` method:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "res2 = skullstrip.run(mask=True)\n", "print(res2.outputs)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "inskull_mask_file = \n", "inskull_mesh_file = \n", "mask_file = /Users/mwaskom/Dropbox/Projects/Nipype_Concepts/T1_brain_mask.nii.gz\n", "meshfile = \n", "out_file = /Users/mwaskom/Dropbox/Projects/Nipype_Concepts/T1_brain.nii.gz\n", "outline_file = \n", "outskin_mask_file = \n", "outskin_mesh_file = \n", "outskull_mask_file = \n", "outskull_mesh_file = \n", "skull_mask_file = \n", "\n" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nipype knows that if you ask for a mask, BET is going to generate it in a particular way and makes that information availbile to you." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A major motivating objective for Nipype is to streamline the integration of different analysis packages, so that you can use the algorithms you feel are best suited to your particular problem. Say that you want to use BET, as SPM does not offer a way to create an explicit mask from functional data, but that otherwise you want your processing to occur in SPM. Although possible to do this in a MATLAB script, it might not be all that clean, particularly if you want your skullstrip to happen in the middle of your workflow (for instance, after realignment). Nipype provides a unified representation of interfaces across analysis packages. To what we mean, let's look at SPM's Realign interface:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from nipype.interfaces.spm import Realign\n", "print(Realign.help())" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Use spm_realign for estimating within modality rigid body alignment\n", "\n", "http://www.fil.ion.ucl.ac.uk/spm/doc/manual.pdf#page=25\n", "\n", "Examples\n", "--------\n", "\n", ">>> import nipype.interfaces.spm as spm\n", ">>> realign = spm.Realign()\n", ">>> realign.inputs.in_files = 'functional.nii'\n", ">>> realign.inputs.register_to_mean = True\n", ">>> realign.run() # doctest: +SKIP\n", "\n", "Inputs::\n", "\n", "\t[Mandatory]\n", "\tin_files: (a list of items which are an existing file name or an\n", "\t\t existing file name)\n", "\t\tlist of filenames to realign\n", "\tregister_to_mean: (a boolean, nipype default value: True)\n", "\t\tIndicate whether realignment is done to the mean image\n", "\n", "\t[Optional]\n", "\tfwhm: (a floating point number >= 0.0)\n", "\t\tgaussian smoothing kernel width\n", "\tignore_exception: (a boolean, nipype default value: False)\n", "\t\tPrint an error message instead of throwing an exception in case the\n", "\t\tinterface fails to run\n", "\tin_files: (a list of items which are an existing file name or an\n", "\t\t existing file name)\n", "\t\tlist of filenames to realign\n", "\tinterp: (0 <= an integer <= 7)\n", "\t\tdegree of b-spline used for interpolation\n", "\tjobtype: ('estwrite' or 'estimate' or 'write', nipype default value:\n", "\t\t estwrite)\n", "\t\tone of: estimate, write, estwrite\n", "\tmatlab_cmd: (a string)\n", "\t\tmatlab command to use\n", "\tmfile: (a boolean, nipype default value: True)\n", "\t\tRun m-code using m-file\n", "\tout_prefix: (a string, nipype default value: r)\n", "\t\trealigned output prefix\n", "\tpaths: (a directory name)\n", "\t\tPaths to add to matlabpath\n", "\tquality: (0.0 <= a floating point number <= 1.0)\n", "\t\t0.1 = fast, 1.0 = precise\n", "\tregister_to_mean: (a boolean, nipype default value: True)\n", "\t\tIndicate whether realignment is done to the mean image\n", "\tseparation: (a floating point number >= 0.0)\n", "\t\tsampling separation in mm\n", "\tuse_mcr: (a boolean)\n", "\t\tRun m-code using SPM MCR\n", "\tuse_v8struct: (a boolean, nipype default value: True)\n", "\t\tGenerate SPM8 and higher compatible jobs\n", "\tweight_img: (an existing file name)\n", "\t\tfilename of weighting image\n", "\twrap: (a list of from 3 to 3 items which are an integer)\n", "\t\tCheck if interpolation should wrap in [x,y,z]\n", "\twrite_interp: (0 <= an integer <= 7)\n", "\t\tdegree of b-spline used for interpolation\n", "\twrite_mask: (a boolean)\n", "\t\tTrue/False mask output image\n", "\twrite_which: (a list of items which are a value of type 'int', nipype\n", "\t\t default value: [2, 1])\n", "\t\tdetermines which images to reslice\n", "\twrite_wrap: (a list of from 3 to 3 items which are an integer)\n", "\t\tCheck if interpolation should wrap in [x,y,z]\n", "\n", "Outputs::\n", "\n", "\tmean_image: (an existing file name)\n", "\t\tMean image file from the realignment\n", "\tmodified_in_files: (a list of items which are an existing file name\n", "\t\t or an existing file name)\n", "\t\tCopies of all files passed to in_files. Headers will have been\n", "\t\tmodified to align all images with the first, or optionally to first\n", "\t\tdo that, extract a mean image, and re-align to that mean image.\n", "\trealigned_files: (a list of items which are an existing file name or\n", "\t\t an existing file name)\n", "\t\tIf jobtype is write or estwrite, these will be the resliced files.\n", "\t\tOtherwise, they will be copies of in_files that have had their\n", "\t\theaders rewritten.\n", "\trealignment_parameters: (an existing file name)\n", "\t\tEstimated translation and rotation parameters\n", "\n", "None\n" ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setting inputs and running this interface looks exactly the same as it did for BET, even though Realign will run through MATLAB while BET is a command-line program coded in C++:" ] }, { "cell_type": "code", "collapsed": true, "input": [ "!gunzip -c data/timeseries.nii.gz > data/timeseries.nii # SPM cannot read compressed files natively\n", "realign = Realign(in_files=\"data/timeseries.nii\")\n", "realign.inputs.register_to_mean = False\n", "realign.inputs.interp = 3\n", "# realign.run() # Uncomment if you have SPM installed and want it to run" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "What if you want to do some custom processing using the large (and growing) stack of scientific tools in Python itself? A special interface lets you wrap an arbitrary Python funtion. Here's a trivial example:" ] }, { "cell_type": "code", "collapsed": true, "input": [ "def add_two(x):\n", " return x + 2" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 }, { "cell_type": "code", "collapsed": true, "input": [ "from nipype import Function\n", "addtwo = Function(input_names=[\"x\"],\n", " output_names=[\"val\"],\n", " function=add_two)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "print(addtwo.run(x=4).outputs.val)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "6\n" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The online docs have a special section on the function interface with more examples and a few important points to keep in mind." ] }, { "cell_type": "code", "collapsed": false, "input": [ "!make clean" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }