The programs needs Matlab V. 5.3.1 or better. It has been tested under
PC (pentium technology) and Workstation environments. It is highly recommended
64Mb of avalaible RAM and 200Mhz of CPU speed at least. Although the program
works in Windows 95/98 is better to run it under UNIX systems or under
Windows NT because the memory management is much more efficient.
The program is able to work in windows 95/98, windows NT and Linux (or UNIX systems). The installation is very easy, first of all you have to decompress the zipped file into a directory (say 'Functional MRI' for example). Then you have to go to the Interfaces folder and you will see 4 different folders: LargeFonts,SmallFonts,Linux,WinNT. This folders contain the interface files recquired for each different system, you just have to copy the content of the folder which agrees with your system into the main folder Interfaces. For example, if you are working on Windows 95 (or 98) with large fonts you should copy the content of the folder LargeFonts into the Interfaces folder and thats it. The SmallFonts folder contains the interface for Windows 95/98 with small fonts, the Linux folder contains the interface files for Linux and Unix systems and the folder WinNT contains the interfaces for the Windows NT systems. By default you have the windows 95/98 small fonts interface installed, so if you need to install another system just remove the files in the folder Interfaces and replace it with the ones you need. Once you have properly installed the interface you have to enter Matlab and add to the search path the location of the main file smfmri.m (this can be done using the Matlab instruction addpath). Now you are ready to run the application just by calling the main file smfmri from the Matlab prompt. You should visualize then a user interface like the one in the picture.
The data which the program is able to load is binary data without header,
so if you are working with .ima files or other types of files which has
a header you must have to load into Matlab and resave the data without
the header before you started using our programa. You must supply also
a header (a text file with extension .spr) with the following
information:
dim | is the dimensions of the data set, in the example is a 10x10x1 grid of series of 500 samples |
longEpoch | is the number of samples concerning an epoch duration, in the example the epoch is 50 samples length |
numEpoch | is the total number of epochs, (numEpoch)x(longEpoch) must be equal to the total number of samples (500 in the example) |
fov | is the field of view of the data set (is not necessary for the program to run) |
interval | is te interval inormation of th data set (is not necessary for the program to run) |
dataType | can be 'REAL' or 'WORD', it depens on the data you have |
numDim | is the total number of dimensions (usually 4) |
The fov and interval information are not required by the program, so if you don't know them just put 4 zeros in each field and that's it. The other fields are required. The dataType field could be REAL (which means the data is saved in real*4 matlab numeric format) or WORD (which means the data is saved in int16 matlab numeric format), so the data must be real*4 or int16 matlab numeric format type.
Heres an example of a header:
dim: 10 10 1 500
longEpoch: 50 numEpoch: 10 fov: 20.000000 20.000000 0.003000 640.000000 interval: 0.312500 0.312500 0.003000 1.000000 dataType: REAL numDim: 4 |
We provide our program with a 10x10 grid of simulated data in order to allow the user to test the program before starting using it. We use this data to ilustrate how the program works in the next section.
This program is very easy to use, we now provide the directions to use it using the example file provided with this software. The example is located at the folder Example (roi_simu.sdt).
First of all we need to load the data from the file, this can be done using the Load Volume button. When you push this button a standar dialog allow you to browse into your HD, so you just need to go to the location where your file is and then select it and click the Open button. In our case we select the file roi_simu.sdt which is in the Example folder.
Once we have the data loaded we can visualize it at the display region, the data is stored in the global variable volume and is avalaible from the Matlab console. We can also visualize the time series corresponding to each pixel just by clicking with the mouse on the desired pixel inside the visualization window (the original time serie is then plotted in the time serie visualization window). The visualization of the time series plots in blue those epochs corresponding to rest (no stimulation) and in red the epochs corresponding to activation (stimulation during acquisition). The visualization window also plots the filtered time serie (if avalaible) and the spectrums corresponding to the low frequencies of both the original and the filtered (if avalaible) time serie.
The program allows the user to select a ROI of the data in order not to work with the whole image. The user just have to fill in the initial and final coordinates of the bounding box defining the ROI. The coordinate information displayed below the display region will be very helpfull in order to determine the initial and final coordinates. We can also cut the time series by selecting the initial and final epoch in order to discard wrong data at the beginning or ending of the acquisition.
In order to filter the data we can choose between 2D filtering or 3D filtering (depending on our data). Both modalities have the same parameters, we have to set the total number of iterations (usually 10 will be suficient), the smoothing parameter (usually 0.5, greater values will perform more conservative smoothing wether lower values will perform more relaxed smoothing of the data) and the threshold value.
The threshold value determines the initial set of activated pixels, so its important to check before starting smoothing if this initial set of activated pixels contains only highly activated pixels. To set up the threshold value we can choose first a lower value and the check out if the generated set of activated pixels is correct or not. In order to validate our threshold we can simply use the Map Original button and then use the visualization button (marked with an O) to view the initial clustering, then we can check the selected pixels (highlited in white) and examine its temporal series to assure that they are all highly activated. If the set is correct then we can continue, if not we have to choose a higher threshold in order to eliminate false positives. Once we have selected the initial threshold we can begin the smoothing process just by clicking on the corresponding button (Smoothing 2D or Smoothing 3D depending on the case).
Once the smoothing process is finished we can check out the clustering of the filtered data simply by using the Map Filtered option and then using the visualization button (O). Clicking on the pixels of the display region will allow the user to visualize both the original temporal serie (at the top of the time serie visualization window) and the filtered one (at the bottom).
Finally we present a picture resuming the functions of our user interface and a table resuming the global variables which are avalaible from the Matlab console.
volume | This variable contains the original data loaded from the file normalized by epochs |
res_filt | This variable contains the filtered data obtained after the smoothing process, it has the same dimensions as volume |
corr_coef | This variable contains the result of the correlation between the data and the activation paradigm |
DIM | This variable contains the dimensions of the loaded data |
TYPE | This variable contains the numeric type of the loaded data |