26 - Surface Analysis: SUMA: Part 3 of 5
Date Posted:
February 12, 2019
Date Recorded:
May 31, 2018
Speaker(s):
Rick Reynolds, NIMH
All Captioned Videos AFNI Training Bootcamp
Description:
Rick Reynolds, NIMH
Related documents:
For more information and course materials, please visit the workshop website: http://cbmm.mit.edu.ezproxyberklee.flo.org/afni
We recommend viewing the videos at 1920 x 1080 (Full HD) resolution for the best experience. A lot of code and type is displayed that may be hard to read otherwise.
RICK REYNOLDS: I'm just going to very briefly entertain you with the last thing that Daniel got to before. I would just mention that he wanted to compare multiple surfaces with this map icosahedron method. So just as a reminder, doing this map icosahedron method, Freesurfer or whatever package that you use to create the surfaces generally makes a warped sphere data set so that the single subject's contours get warped to align with their template somehow.
So then you get the warped data set. And from that you can re sample your original mesh so that you get node correspondence across subjects. And then he showed you for example, looking at the six surfaces. So it just for a brief entertainment, you can do that yourself if you want to. We have that in the standard meshes directory. So you could just for a very brief display, you can CD into standard meshes. Again, STD meshes would be in your home directory. And if you don't have it, that's OK. This will just take a minute. And then within there, you can run the standard mesh demo.
So I could do TCSH run standard mesh demo. These run something-- demo scripts that we have all over the place are generally not very big. This one is slightly longer because it's going to it's going to open all six surfaces. So you can see the script that's being used. And again, note most of our graphical interfaces can be driven through scripts. So that's what we're doing here. And I'm just going to run this thing.
It loads all four of them, all six of them, shifts them around on the screen. And there you go. So this is actually six different subjects. And they're all locked together. And this is just-- the colorization again, like Daniel said, is based on the node index. But for example, if I go right in here, you see where this darker orange area protrudes into the-- I don't know, tannish-orange area or whatever, you can see it's a slightly different shape than it is in this subject and in this subject.
And so you can see, that gives you some idea of anatomical variability after the registration. Yes?
AUDIENCE: What is the difference between doing this and registering [INAUDIBLE]
RICK REYNOLDS: Well, this is doing-- it's using Freesurfer's registration internally. So Freesurfer is doing the alignment of the contours, you know, the so-called depth pattern. It's registering that to the template. But then we essentially in some sense invert that transformation and just re-sample the original surfaces so that now our surfaces are still basically in a rich space. You still can look at them on the [INAUDIBLE] space volumetric data. But you have node correspondence across your subjects now.
And so you're already also in group space from that sense. So if you're using the icosahderons's surfaces that are at the same resolution-- so for this class, we'll use resolution 60, which is actually low resolution but saves time for processing-- then you have correspondence across subjects according to this Freesurfer registration step. So then you don't have to do any extra step to run your group analysis. And if you were to import Freesurfer's surfaces to AFNI land to SUMA, this map icosahedron is done automatically.
So you have them. If you just use them, you're in group space already with original space coordinates. And now I'll talk a little bit about that at the end of our surface analysis too. Anyway, this is just cute, nice to see it live. So any other questions about this? This step maybe takes a little time to wrap your wrap your head around, but the basic point is with almost no effort, you're essentially in a group space already. The coordinates are still in the original space, or whatever wherever the surface was defined on, but the node indices correspond across subjects.
There is a slide here on creating standard mesh surfaces, but again, that's done automatically when you do something like add SUMA make [? speck ?] FSA. That's in the handout too. But for example, this is the script one runs to show those. Oh, was I going to show that? Just to remind you of some of the help stuff, If you look in the AFNI proc help, it has a little comment about how the Freesurfer were made and imported into AFNI. So I'll just show you that as a reminder. So documentation, all program help is spot three there. And then find AFNI proc.
AFNI proc, and then it's got all these examples here. And then after the samples are these note sections, quality control, resting state where I whine about some stuff there, Freesurfer note. So here's Freesurfer note. If I click on that, well, it's not exactly chronological. These commands down here-- this is what was done in order to prepare to run Freesurfer. So I resampled to cubic millimeter voxels and made, as Daniel mentions, an even number of slices.
And then recon all was run to create the surfaces,. And then SUMA make spec FS was run with the nifty option. So that's it, not too complicated. And again, this final command is importing Freesurfer's output into SUMA land and then that comes with the icosahedron surfaces. So now, how do you how does one typically use this? It's common to create surfaces for your subjects, even at a different time from when you're doing in a functional MRI or other type of analysis.
You don't have to do it at the same time. For this one subject that I want to run an fMRI analysis on, I happen to create surfaces for them eight months ago. What do we do now to use those surfaces with the current data? The basic step is just that you want to run SUMA aligned to experiment, which actually you don't have to do. That will be done by AFNI proc. But you run this script and that will align the t1 for the surfaces with the t1 from your current experiment. And it will store that transformation in the new t1 data set. And then all the surfaces are just automatically transformed as you play with them.
So then you're good to go. And we'll see that in a minute. I'll mention briefly about mapping data onto the surface, but we won't do it yet. We'll do that with our analysis. So how do you map your fMRI data onto the surface? Again, clearly with Daniel's talk, you saw the surfaces overlaid in the volumetric space. So SUMA and AFNI were talking. SUMA sends the surfaces to AFNI. AFNI is displaying the surfaces. SUMA can display volumetric data. So they're communicating with all this. So all we do is use those transformations to map the data usually from the volumetric space to the surface space. But you can go either direction.
Once your volumetric data is aligned, you can see, for example, in this slide, we're just showing some statistical results. I won't even bother what it is, but they're pretty colors that we want to write a paper about, whatever they're from. And you see the green and yellow surfaces-- I believe that's green and yellow in there on the right and then red and blue in the other hemisphere. You see, you basically have these two surface sheets, this cortical ribbon where you've got an inner surface. That's the white matter surface, usually the smooth white matter. It's the intersection of the white matter and the gray matter.
And so that's the theoretical definition of the white matter surface. And then you have a pial surface that's at the outer edge of the gray matter. So in between them is a gray matter cortical ribbon. And regardless of whether you've done the icosahedron step or not, these surfaces have node correspondence. So at whatever node 17,846, node 17,846 corresponds between the white matter surface and the pial surface. So that essentially defines a segment that goes through the gray matter.
So then you can just abuse that, however you wish to map your functional MRI data, your volumetric data onto the surface. So for example, you can take that segment-- you can actually elongate it into the white matter in case you think you may be missing stuff on that side or the other way, or both ways, or even go inward. You can you can stretch and squeeze it any way you want with our mapping functions. But the basic algorithm for mapping the actual numbers is implied here.
So imagine you have this inner surface on the right there and the outer pial surface on the left. And you see that the node mesh is generally higher resolution than your-- say, functional EPI mesh. But between one pair of nodes here-- you can see node j here, and here's kind of a blow up of that. And you see it-- this segment between the white matter surface and the pial surface happens to intersect with three voxels in the EPI data set, in your volume data. So how do you assign a value to the node or to the node pair?
Well, perhaps the most natural way to do it is some sort of weighted average. So what you could do is you can break this segment into 10 pieces, 12 pieces whatever, you pick a number. Let's say 10 pieces, and how many so that you break this segment into 10 pieces. And then at how many points-- knot points along that segment, which voxel are they inside? So say two points are inside voxel one. Five points are in voxel two, and three points are in voxel three. So maybe the data value that you apply to your surface is 20% of voxel one plus half of voxel two plus 30% of voxel 3.
You take the weighted mean, the weighted average. That might be one of the most natural ways to do it. If you're mapping ROIs, you wouldn't want to take an average. You don't want to get a 17.6 ROI value. You get either 17 or 25. You don't get something in between. But so you have to make some decisions. But for the actual data, maybe a weighted average is natural. Here's an example of a vol surf command that does the mapping, get it memorized, excellent.
OK, that's basically good enough. I want to show one last thing with the SUMA GUI before we go in and just do a single subject analysis. And doing the single subject analysis, we'll play with a lot of things. So I'm just skipping over all that now. So I'm going to close this the fast way. I'm going to shift hit shift escape. And then it allows me to close all viewers at once.
OK, so I'll go back into the directory that you have been working in. CD into SUMA demo slash AFNI. And I just want to make a brief example of drawing an ROI and get something else in your head about that. So maybe we can just run do TCSH run SUMA here. I don't know that we really need to worry about AFNI right now.
I just want to make one little aspect of surfaces clear. Suppose-- how do you make ROIs in the volume? Daniel did an example of that in the ROI class. Drawing in 3D is a lot of work, right? But if you happen to be interested in cortical areas, you might ponder the advantage that Surfaces gives you. So if you imagine-- just for clarity, I'm going to close maybe one hemisphere. Let's use the other one.
So we've got some hemisphere here. Imagine what it might take to draw an ROI on the surface. The advantage of a surface is you're drawing on a 2D sheet, two dimensional manifolds, a 2D embedded in a 3D space. You don't have to worry about imagining the 3D depth quite as much when you're working with a surface. So let's just briefly draw an ROI here. You can click on tools, draw ROI, or you see there's a control d shortcut there. But I'll just click on this. I don't really like typing control d, since that's an end of file character ID in the shell.
You can either draw with the right button or you can click on the pen mode. I'm going to do that. And you know what drawing an ROI is. So I'm not going to worry too much about that. But you can specify a label for it. I'm going to draw the pickle ROI with a value of 1. So and then I'll just start drawing. Since I've clicked on pen mode, I can draw with my left mouse button. So those of you without three button mice, that's a nice way to go. So I'm just going to start drawing, and I'm going to follow this little area here.
And SUMA's already whining at me because I didn't draw something nice according to the surface that it's showing. So what happened there? I'm going to turn off the pen mode so I can play with the surface now. So I turned off the pen mode so I can rotate the surface. Now I can use the left button. Let's see what I actually drew. As I move this surface around, you can see it's going-- this is embedded in 3D space. So it looked like I was more or less trying to draw something circular, but you've got to go way down into the sulcal depth, come back up. Who knows what cuts you're making?
I can turn this back on and click on even one point and SUMA will try to connect these for me. So I'm clicking. SUMA is trying to make some connection there. It took me three tries. What did I do? Oh, I'm going all over the place. OK, drawing on the surface is supposed to be easy. This is horrible. This is not a great view to draw in, right? You've got this 3D depth issue on this type of surface. But what if we hit a couple dots? And look at this surface. Oh, suddenly if you know where you are on this surface, suddenly life is easier.
I'm going to undo some of this garbage and just start over. Now I can say, oh, this is the area I wanted here. I'll turn my pen back on and just draw. Let go, draw. Let go, draw. Whatever, perfect. So this is a much easier mode to draw in, right? So you're more or less looking at a flat surface, but you can still see the sulcal patterns.
AUDIENCE: [INAUDIBLE]
RICK REYNOLDS: A dot, period. The period will rotate between the surface types. So if I hit a handful of periods, gray matter, peel, inflated, flat map, sphere. And you can draw on any of these. So I don't know if that's completely clear. But remember I said there's node correspondence from Freesurfer between like the white matter surface and the pial. That correspondence is maintained across all of these surfaces
That's why for example, even looking at this flat map image-- let me turn off my pentagon-- you can still see the sulcal patterns. Why-- because SUMA knows where these nodes lie on an anatomically useful surface. So it's showing you the sulcal patterns from the anatomically correct surface, but on all the other ones. So what do we say we attach some values to these nodes, I might attach a value from my volume of 78-- whatever to my surface node. But that's going to that same value of 78-- it's going to be attached to node 1,026.
And that applies to all these surfaces. You can look at that on any of the surfaces. So similarly, we can draw on any of the surfaces and it's still mapped the same collection of nodes. That area that I'm drawing is just a list of node indices. So let's just finish this up. I don't want to take a lot of time with that. So I almost connected it. You can either connect it yourself by drawing, or you can click on join here. There's undo, redo, and join. Join will connect to your first point to the last point. So just the last step to make this a closed circuit.
And when I click on that, you notice-- may or may not have noticed the color changed from green to this light blue. So a different color just to tell you you're in a different state. Now this is a closed loop. One last step, right now the ROI is actually just the edge. That's all we've defined. You might want to actually save this edge as an ROI. Me-- I want to include all the nodes inside here that I've trapped inside my closed circuit. So I'm going to make one last stop, step, and click inside. You can either right click if you're not in pen mode or go back to pen, left click in the middle.
But another drawing step just by clicking inside. And now you've got a different color in there just again, a visualization to show you what's happened. And now I can hit finish. And that last finished step-- one more color change and I know I have a complete connected 2D set. So now you can actually draw all sorts of ROIs into one ROI data set. So I'm just going to briefly mention that an ROI data set-- you don't directly map that back to the volume.
You have to take one extra step of turning this from an ROI data set into a normal surface data set. A normal surface data set has one value per node. Here we could have 17 of them. It could be also be an edge node as an interior node. And one node could be part of nine ROIs. So this ROI type of data set is actually more complicated. So you do have to take a step of turning this into a normal surface data set. That's all I'm going to say.
But now once you've made this into a surface data set, you can turn this into a cortical ribbon volumetric ROI very easily. Just send it back to the volume. Now you've got a cortical ribbon ROI. And perhaps it took you a handful of seconds, however long you want to take. Again, much easier than doing this in the volume. Now, let's shift gears. I'm going to CD back to my home directory. So now let's actually do a surface analysis. Why would you analyze--
AUDIENCE: [INAUDIBLE]
RICK REYNOLDS: You can-- I just hit the X in the corner, but to close all of the SUMA windows at once, you can do shift escape. Escape will close the one controller, but shift escape will close them all at once. In this case, it wouldn't really matter. So why would one do a surface based analysis? The downside is first, you have to create a surface. Second, you have to trust the surface that you created. As Daniel mentioned, you know, these surfaces look beautiful. They're just fantastic to look at. What could be wrong?
Right, but of course, things are wrong. The surfaces are not perfect. They don't necessarily follow the cortex exactly like you would want them to follow it. Sometimes you have to fix problems and regenerate the surfaces. Life is never so good, but they look beautiful. Right, so don't get too fooled by that beauty there. But still there are advantages. You know, you can't necessarily see the inner-- if we just use this gray matter, this cortical ribbon for our analysis, we're not looking deep.
But just a ponder, if you're interested in the cortex, maybe they're good. So what advantages do you get from a surface based analysis? Well, it's the topology. First of all, if you map all your time series registered data onto the surface, for each node you've got a a time series, just like you have a time series in the volume. But now, what happens when you do things like blur it? Well, when we blur on the surface, we blur along the cortical sheet.
So for example, Daniel was showing you the image of two nodes like practically kissing here. So you've got a node here. You go down into the sulcus, back up the gyrus, and they practically kiss right here, or maybe they're a little separate. Whatever, in volumetric space, you do any blur whatsoever. And you can't tell the difference between these points anymore. On the surface, those could be two centimeters apart. The blur won't come near one another. So you really get-- you've really followed the topology of the cortex better on the surface than you do in the volume.
You know, the distance follows the cortex rather than just Euclidean space in 3D. So you blur along the cortex and that also means that assuming you've done a good job of making a surface and assuming the EPI data is well aligned with the t1 data-- so when you claim that this is where the surface goes, that's where the surface goes in the EPI data too. So assuming you've done a very good job with registration, anywhere you don't, all bets are off. Assuming you do a good job with that, now when you blur on the surface, you're blurring gray matter with gray matter. You're not mixing in the white matter. You're not mixing in the CSF. There's limited corruption of your gray matter data assuming you do a good job with registration.
OK, so then not only do you blur on that, but you cluster along the surface too. So you separate the tissue classes that way. So there are some good benefits. If any of you actually does a surface analysis, I recommend at least for one or two of your subjects or maybe even the whole group, whatever, you do a corresponding volumetric analysis, just so you can compare them. Because you will see-- it's very educational, if nothing else. You will see things in the volume that you don't see on the surface. And hopefully the surface results might be a little more clean and clear and strong.
Hopefully, that's what you hope for on the surface, right. OK, so let's do that. So we can go back into our FT's data directory and run a similar analysis to the one we did on Tuesday with AFNI proc. But we'll do it on the surface. So we'll do similar steps, but I'll be much more quick with them. And mostly focus on the difference between volumetric analysis and surface analysis. So CD into AFNI data six slash FT analysis.
And remember, we have all these AFNI proc commands here. And on Tuesday, we ran S05. Today we're going to run S03. S03.AP-- that's AFNI proc-- dot surface. I just cat this file to my terminal window. There you go, very short. This perhaps [AUDIO OUT] not quite all the options we might want to stick in there. But you don't you don't need terribly much here for a demonstration. So a couple of comments to make, I'm still using my mouse back, my scrolling backwards.
The blocks option is basically the same as before. We've got t-shift aligned with vol reg, but now we have this extra surf block. What do we want to take away from this? You don't want to map any of your volumetric data to the surface until you've registered it, right? Again, if your surface is to do anything useful, you want to have your data registered as well as possible. Well, you want it registered well.
So we do any steps up through volume registration on the data before we map it to the surface. You notice there are no align-- there's no TLRC block in here. We're not going to standard space in the volume domain. We're going to sort of get that for free via the icosahedron step, just using the icons the tetrahedron surfaces. And that will give us node correspondence across subjects. And we're essentially already in a volume domain at that point.
So anyway, we just register all the EPI data and do any other temporal pre-processing that we choose to do before registration. And so in this case, we're also doing t shift. But then we align the EPI to the anatomy and include the EPI volume registration steps. Then we map the data to the surface and the surf block. And then we continue on with similar steps that we would otherwise do. We want to blur it. We're not going to mask this data. We don't even need to compute masks because we're already on the surface. That essentially defines the mask that we care about.
So we'll blur the data, then scale it, and then do our linear regression, just like before. But now these last three steps will be in the surface domain instead of the volume domain.
AUDIENCE: Rick, was it considered in the surface mass?
RICK REYNOLDS: The cortical ribbon thickness? That's usually around 4 millimeters for humans. It varies a bit. And of course, people do big studies on these tiny fluctuations in thickness. And thicknesses aren't really that reliable to begin with. But anyway on the order of 4 millimeters.
AUDIENCE: When you map from a [INAUDIBLE] surface, can you [? shoot ?] the [INAUDIBLE]
RICK REYNOLDS: Well, that's where-- so if your 4 millimeter surface between node 1,017 on the inner surface and 1,017 on the outer surface, that segment-- if that intersects and maybe you've stretched it or shrunken it a little bit, whatever, shifted it-- you can do all this stuff. If that intersects three voxels, and you break it into 10 pieces, break the segment into 10 node pieces, maybe 2 of those pieces are in one voxel, 5 in the next one, and the last 3. in the next one, you can you can take that weighted average of EPI values and have that as your surface value.
AUDIENCE: But [INAUDIBLE] you also choose how many voxels you would consider? Say its 8 millimeters [INAUDIBLE]
RICK REYNOLDS: You can choose 8 millimeters. You can choose a thickness but only in a case where you wouldn't really want to. The thing is-- you have two surfaces. You can say make it 20% bigger this way, 30% bigger this way, or go in or whatever you want to, or you can see a millimeter this way, a millimeter this way. But the Freesurfer surface thickness, for example, varies over space. So you can't fix that. The only way you can exactly fix it at 8 would be to use surface normals.
But normals-- the normal directions aren't as reliable as the node correspondence. So you wouldn't want to use some big number for normal distance.
AUDIENCE: So since these first few blocks are the same, can after you quantify [INAUDIBLE]
RICK REYNOLDS: I've often thought of for a similar thing. AFNI proc gets this far through it, give it the ability to restart there and continue. That was in my original design. And I just never bothered-- for the most part, the effort in keeping track of what's going on is just not worth the little bit of extra time for computation and the little bit of extra disk space. So for the most part, I think your life is just easier running AFNI proc multiple times. And so the first few steps come out the same, no big deal.
It's much easier for you to keep yourselves organized if things are just in separate directories. And otherwise, I think you know what it's like. Data gets messy very quickly. So in general, even if you make one change to AFNI proc and you continue, even if your change is at the end like in the linear regression-- should I just fix my 3dDeconvolve command? No, just rerun it. Your computer can handle rerunning it. It's easier for you. So now we have similar options. We have our anatomical data set. We have the same EPI data sets.
And then we have a couple extra options here. We specify the anatomical volume that goes with the surface. So note we have two anatomies in this in the AFNI proc command. This anatomical data set is the one that corresponds to the EPI. We are going to register the EPI to this anatomical data set. This is the one that was collected then. This other anatomical data set was collected when we made the surfaces. That could have been months ago, maybe. Presumably you [AUDIO OUT] your subject's brain to change in the interim. But assuming that's not a concern, you've got to separate anatomical data sets.
And what we're going to do is we're going to bring this surface volume into registration with the current anatomical volume. And then the surfaces will kind of come along with that. If they're the same, you don't-- I'd have to look at how AFNI proc deals with that, if you can just use the same volume there. I haven't done enough to try to answer that for sure if you need to specify it twice or something. But I mean, if you specified it twice, the registration should be really easy and accurate. In any case, the registration should be really easy because this is a t1 from the same subject. So the registration had [AUDIO OUT] be really good.
Then we specify-- we give this spec file the surface specification file again. This just says what surfaces correspond to my volume-- what surfaces do I care about. This spec file contains the list of surfaces, white matter pial, inflated, spherical, flat map, whatever. And it also keeps track of which ones are anatomically accurate and things like that, left side, right side, if you have them. Typically in our surface analysis, we separate the hemispheres though. We analyze one hemisphere at a time.
I think that the SIfTI data sets, they can process both at once, maybe if we Freesurfer too. But our software doesn't. We haven't made that.
AUDIENCE: One of the slides [INAUDIBLE]
RICK REYNOLDS: That [AUDIO OUT] [? make ?] spec FS-- when you run that, it will copy many files. And we'll take a brief look at what files we have here. We have a subset of the whole set. But it gets the parcellations, the surfaces, a bunch of things. And if you want something else, you can let us know, and we can add it. So beyond that, the options are very similar to before. We're going to remove two time points. We're going to align to the min outlier EPI volume. So that's an EPI volume where the subject is probably not moving much at all. Hopefully we're going to align the EPI to the anatomy.
That's important in this case because we're not going to standard space. So here it's important to have the EPI aligned to the anatomy, because we're going to align the surfaces to the anatomy too. So that option becomes important in this case. The blur size is a 6 [AUDIO OUT] with it at half max. That's different in surface space. Now we're going to blur on the surface. And actually, we're not going to apply a Gaussian 6 millimeter blur. We're going to blur the data until it reaches a Gaussian full with half max of 6 millimeters.
So the blurred side, estimated, applied. Estimated, applied. Estimated, applied until we hit 6. That's a little different from in the volume. Our timing files, our labels, our basis function, motions sensoring, all the same. So we're still going to run 3dDeconvolve with two jobs, the same GLTs. Did I just throw away the bottom of this file or something? This seems short. Do you have the same file that I have? OK. Then I won't worry about it. So anyway, basically the same commands as before.
Now let's take a very brief look at our data. So our data, for example, the spec file comes from FT SUMA directory, FT slash SUMA. So I'll CD-- show you where we are again. We're still in the same directory. I'll CD into FT. And we have all our volumetric data that we looked at Tuesday. But there's also this SUMA directory. This is a subset of what we grabbed from the Freesurfer output or what we converted from Freesurfer. So I'll just do LS on the SUMA directory. Instead of CD and LS, just LS on the SUMA directory just for kicks. And you see, we've got a bunch of garbage here. We've got parcellation files from the 2009 template, and then parcellation files from the older template.
Then we [AUDIO OUT] pial surface in ASCI mode, pial surface in GIFTI format. GIFTI is the geometric version of nifty as if nifty wasn't geometric. But anyway, GIFTI is the surface version of nifty where nifty is in the volume. The format of GIFTI is vastly different [AUDIO OUT]. Anyway, a bunch of stuff here. And then we've got the standard mesh 60s. Do we have any others? I guess I didn't copy the-- we usually mix 60. So you know, the icosahedron, you've got 20 sides of like a big die that might basically match a sphere.
And that gets mapped-- that gets projected to the sphere when we do the mapping. The 60 is like an oversampling of the edge side. You turned this one giant triangle. You over sample it 60 times. So you get lots of little triangles. That's what this 60 means. The surface we might typically suggest that you use for analysis is 141. That would mean one 1.141 squared times 10 is about 200,000.
That keeps you about the same size about the same resolution as the original Freesurfer surfaces. So 60 is a lower resolution surface, still looks nice. But makes our class work go faster.
AUDIENCE: [INAUDIBLE]
RICK REYNOLDS: What is our-- where is our command? So FT surf vol [INAUDIBLE]. So that is ex-- [AUDIO OUT] We specify the path there. So we say to look in FT slash SUMA. FT surf vol [INAUDIBLE]. So that's going to come from here. Where's capital FT. My capital letters are after the-- they're not special for lowercase. Normally when sorting, capital letters come first. There are all sorts of-- you have to set environment variables to decide how sorting is done these days too. So in this case, capital letters aren't special. But I'm sorry-- FT-- I forget the name of the stupid thing. Here it is. FT surf vol [INAUDIBLE].
AUDIENCE: [INAUDIBLE]
RICK REYNOLDS: The T1 [INAUDIBLE] is a file created by Freesurfer. I don't know off the top of my head whether those are identical. So CD it to-- let me just very quickly check AFNI. T1 [INAUDIBLE]. We can just load those two volumes. And then the FT surf vol [INAUDIBLE]. I'll get them very quickly, hit my u key to go back and forth. So I'm jumping between them right now and you don't see any difference. So they're identical. And I can verify that both of them-- oh, t1, t1. I'm not jumping forth between them. I have to change my overlay [AUDIO OUT]. Turn the overlay loft. Now I can jump back and forth between them.
Ah, so there's a shading difference. So here, this is T1 [INAUDIBLE] here. And this is the surf vol. So it looks like the T1 [INAUDIBLE]. Has had uniform has had uniformity correction done on it. You could use this with volume, but you'd want SUMA to know that this is the surface volume for the surfaces. So now we have our data. And I'll CD back up to directories, back in the FT analysis directory. And we have our SO3 script.
OK, are we all back in the same place then. So if you missed it, it scrolled off the screen. CD dot dot is how you go up one directory. That's the parent, and you could do multiple parents if you wanted to. But don't do this because then we won't be in the right spot. So now let's just run the thing. Oh, I didn't put an execute option in here. I wonder if I truncated this thing. So I'll have to irritate you all a little bit with this. But let's just execute this TCSH SO3. So run AFNI proc. Boom, it's done.
OK, the analysis didn't happen. This is what AFNI proc does. It has written a processing script. And on Tuesday, we had that dash execute option, so it actually started running the analysis for us. So with the dash execute option, basically AFNI proc fires off this command for us. But this command, remember, I alluded to that earlier. This syntax right here is t show syntax. And most of you are using bash. So don't type this as is.
Why don't I know most of you just type TCSH proc dot FT. If you're using T-shell, then you can just copy and paste this whole command. The advantage again, the advantage of this format of the command is the X option is going to show-- it's going to show the commands before the text output is displayed. So you get to see which commands are producing the output. That's the most important part.
And then we're capturing all of the text output to a file. So we can look at that later if we choose to. So just get it running in some way. I'm just going to copy this whole command. OK, well just let's just start the thing in any case and then take a break. OK, so I'm just going to paste this and we're off in the running.