USER MANUAL

Welcome to the user manual for the BrainMapper software.

Perform calculations on NIfTI data

One of the fundamental points of this project is to be able to apply several calculations and operations on one or a set of nifti files. These operations can aim to establish statistics between different files (Average, linear combinations), or to cross information between different files (Intersection, union), to extract information more easily in a file (calculation centers of gravity or entropy) or to apply transformations on a file to improve the quality of the data and to suppress the noise for example (Mathematical Morphologies)

4.1. Data extracted for calculation

4.1.1. How data is extracted

The data contained in the nifti files are extracted using the NiBabel library which retrieves the 3D matrix do voxels. Then we store in a table all the voxels whose intensity is strictly positive. We thus succeed in reducing all the voxels considered. This table is a numpy.array of dimension 4 (x, y, z, i) where x, y, z are the coordinates of the voxels in the matrix and i the intensity of the voxel

4.2. Optimization of calculations

4.2.1. Adapted library

To optimize the speed of computation, we use the numpy library which makes it possible to reduce by a ratio 100 the execution time of the calculations thanks to a parralelization procedure which makes it possible to distribute the computations to each processor of the computer in question.

4.2.2. Reduction of search space in data extraction

To further improve the results we decrease the search space related to the extraction of positive voxels. To be done instead of running a bare course in the 3 dimensiosn that are x, y and z in the dataset of the Nifti file which would be about 4,000,000 voxels to visit we reduce this to a cube that includes all of them voxels whose intensity is strictly positive. Thus the extraction process becomes much faster. We go from an extraction that lasts more than 2 minutes to an instantaneous extraction of less than half a second

4.3. List of implemented calcul

4.3.1. Addition

The Addition algorithm make a addition with a collection of nifti makes the term some term of each voxel

4.3.2. Boolean Intersection

The Boolean intersection takes a set of files and returns a binary file of 0 and 1. A voxel with 1 value means that for every file this voxels have strictely positive intensity

4.3.3. Boolean Union

The Boolean union takes a set of files and returns a binary file of 0 and 1. A voxel with 1 value means that there exists in at least some files nifti a voxel whose intensity is strictly positive

4.3.4. Centroide

This algorithm calculates the centroid of each cluster present in one or a set of nifti files

4.3.5. Closing

In mathematical morphology, the closing of a set (binary image) A by a structuring element B is the erosion of the dilation of that set, A * B = ( A (+) B ) (-) B, denote the dilation and erosion, respectively. In image processing, closing is, together with opening, the basic workhorse of morphological noise removal. Opening removes small objects, while closing removes small holes.

4.3.6. Dilatation

Dilation (usually represented by (+)) is one of the basic operations in mathematical morphology. Originally developed for binary images, it has been expanded first to grayscale images, and then to complete lattices. The dilation operation usually uses a structuring element for probing and expanding the shapes contained in the input image.

4.3.7. Entropy

The entropy of an image is a decimal value that allows to characterize the degree of disorganization, or unpredictability of the information content of a system.

4.3.8. Erosion

Erosion (usually represented by (-)) is one of two fundamental operations (the other being dilation) in morphological image processing from which all other morphological operations are based. It was originally defined for binary images, later being extended to grayscale images, and subsequently to complete lattices.

4.3.9. Mean

The Mean process averages a set of nifti files. The algorithm performs the sum for all voxels present in each file the divides the value obtained by the number of files

4.3.10. Normalization

The normalization algorithm creates one nifti file result for each input nifti file. This algorithm create a file where the values for each voxel are between 0 and 1. Different ways exit to normalize a nifti file, you can select in the options panel the desired method

4.3.11. Opening

In morphological opening ( A (-) B ) (+) B, erosion operation removes objects that are smaller than structuring element B and dilation operation restores the shape of remaining objects. However, restoring accuracy in dilation operation highly depends on the type of structuring element and the shape of restoring objects. The opening by reconstruction method is able to restore the objects completely after erosion applied.

4.3.12. Threshold

The threshold operation allows you to store only voxels whose intensity value is between the min and max parameters. All voxels that do not meet this criterion have their intensity that becomes zero. If no value is assigned to min and max then their values will be less the infinite and the less infinite respectively.

4.4. Procedure to apply a calculation

4.4.1. Load and select a set of nifti collection

Select one or more colifenings from nifti in the home view. Note that you need at least one collection to access the calculation view

4.4.2. Select a calculation and the parameters

For each algorithm there is a brief description of it to allow the user to know exactly what each algorithm corresponds to. Finally for some algorithm there are parameters that must be entered and can be modified to allow the user to have more flexibility in the use of these.

4.4.3. Execute the algorithm and save it in the calculation tab

Once the user has selected a calculation and initialized all the parameters, he can execute it using the "Calculate" button located at the bottom right of the calculation view.

When the calculation has successfully run the user to a console return that allows him to have a summary of the calculation that was done with all the input file, the parameters, the nature of the file or output. .. etc. Finally, it is proposed to the user to record or not the calculation result (s).

4.4.4. Have an overview of the results in the Edit view

Once you have saved your calculation result as a set, you can access it by returning to the home view in the calculation tab. You can then, for example, view the rendering in the edition view. Like the two pictures below :