Areas Home Areas Home Results Home Results Home Organization Home Organization Home Resources Home Graphics Computer Science Brown University Lab Home Visualization Research Group Update Search

DTI Visualization and Analytical Tool (brainapp) FAQ

1. Where is the brainapp code?
2. How do I run and compile the program?
3. How do I load a new dataset?
4. How does the user interaction work on the desktop?
5. How does the user interaction work on the fishtank?
6. How is the program (code) organized?
7. Where can I find DTI research papers related to this project?
8. Where can I find data obtained from this program (in Spring 2005)?
9. Where can I find presentations and papers that discuss the above data?
10. Who can I contact if I have more questions?
11. How can I create new ventricle models?
12. How can I create new streamtube models?
13. What are all the files that tubegen outputs when it finishes generating a streamtube model?
14. How can I create new streamsurface models?

1. Where is the brainapp code?

$G/src/brainapp

Top

2. How do I run and compile the program?

In a shell, type

make
to compile. To run on the desktop, type

run desktop [-save <file to save to>] [-load <file to load from>] If the -load option is not set, the subject ID in the settings-common.cfg file will be loaded.

To run on the fishtank, type

vrpn-start-fishtank
in one shell. Then, in another shell, type

run fishtank [-save <file to save to>] [-load <file to load from>]

Top

3. How do I load a new dataset?

To load a new dataset, you should edit the settings-common.cfg file. You will have to specify the directory in which the dataset is located, the name of the dataset, the name of the streamtube model (if you're loading one), the name of the ventricle model (if you're loading one), and the name of the streamsurface model (if you're loading one). The format is as follows:

        Brain_Data_Dir          <directory>
        Brain                   <dataset>
        Brain_Tube              <streamtube file name (.obj or .wrl)>
        Brain_Vent              <ventricle model (.obj or .wrl)>
        Brain_Surf              <surface model file name (.obj or .wrl)>
A specific example is shown below:
        Brain_Data_Dir          /map/gfx0/common0/diffusion/Interface/datasets/
        Brain                   MEM_DTI_COHEN_40B
        Brain_Tube              tube_9.wrl
        Brain_Vent              vent_1.wrl
        Brain_Surf              surf_3.wrl

Once the settings-common.cfg file has been edited, run the program as usual, but without the -load option.

Top

4. How does the user interaction work on the desktop?

Keypresses:

        s    =    hide/show streamsurfaces
        v    =    hide/show VOI menu
        c    =    hide/show stats menu (for total and weighted lengths)
                  (note, you can't show both VOI and Stats menus at the same
                  time.  You  must hide one before you show the other)

Save/load:

If you start up the application without specifying a save-as file, you will not be able to save anything in that session. If you specify a save-as file, then a Save button will appear on the menu. Press this botton (middle click) to save to a file. Doing this saves the confic info (datasets, wrl files) as well as VOI locations, boolean expressions and threshold values.

Mouse

Left button - navigate around the scene Middle button - click on buttons/sliders and other gui-related things

VOIs
  1. press v to show ROI menu
  2. middle click New_VOI (a VOI menu will pop up)
  3. fiddle around with the position and dimension sliders to get the VOI where you want it
  4. once you are satisfied with the location, click "Add_VOI"
  5. in order to show streamtubes in VOIs, you must select the VOI(s) you want to include in the ROI by middle clicking on them (the VOIs turn green once selected. To deselect, middle click again). After selecting the VOIs you want in y our ROI, click the "AND_Selected" button in the menu. (What this does is is show all streamtubes that pass through all of the selected VOIs. Essentially, it adds a boolean expression to a list of expressions that specify which tubes to show)
  6. Now you should just see the streamtubes in the ROI (and the hue should be different)
  7. To display the ROI with all other streamtubes, click the "Show_all" button in the View menu
  8. To display only the streamtubes in the ROIs, click the "Show_ROIs" button
  9. You can repeat steps 1-8 as much as you want
  10. You can only edit a VOI if it is not part of a boolean expression. If it is not part of an expression, middle click on the New_VOI button of the ROI menu. Then you can fix the dimensions/position of the selected VOI. Once you are done editing, don't click "Add_VOI", otherwise a duplicate VOI will be added. Simply exit the ROI menu by pressing "v" again.
Statistics
  1. press c to show statistics menu
  2. middle click any of the buttons to compute something (like total length) (the stats are calculated on all visible streamtubes)
  3. when the set of visible streamtubes changes, you have to recompute the metrics (because the buttons will clear)
  4. hide the stats menu by pressing c again
Top

5. How does the user interaction work on the fishtank?

It works the same as on the desktop except that you use the right mouse button to navigate the scene instead of the left mouse button.

Top

6. How is the program (code) organized?

TestApp.cpp - top-level. We read the config (or load) file and set up the brain Brain.cpp - contains the streamtube, ventricle, and streamsurface models. Also

keeps track of the statistics of the streamtube model. BrainMRI.cpp - contains the orthogonal MRI slices BrainSlice.cpp - an MRI
Slice.cpp - textured quad that represents the MRI slices BrainVol.cpp - indexes the MRI slices
BrainUtil.H - reads in the MRI (from i0 images) VOI.cpp - basically just a rectangular prism ROI.cpp - keeps track of the VOIs and boolean expressions Default2DMenu.cpp - simple 2D menu (use middle mouse button) Slider.cpp - 2D slider (use middle mouse button) ModelLoader.H - loads an obj model
ObjModel.cpp - a model from an obj file VRMLLoader.cpp - loads a wrl model
Statistics.cpp - contains a statistics menu, which queries the Brain for computations

Top

7. Where can I find DTI research papers related to this project?

I will make a reading list with links soon. For now, here are relevant research paper titles and authors:

Akers, David et al. "Exploring connectivity of the brain's white matter with dynamic queries"

Beaulieu, Christian et al. "The basis of anisotropic water diffusion in the nervous system - a technical review"

Brooks, Frederick P. et al. "The computer scientist as toolsmith II"

Catani, Marco et al. "Occipito-temporal connections in the human brain"

Ciccarelli, O. et al. "Diffusion tractography based group mapping of major white-matter pathways in the human brain"

Ciccarelli, O. et al. "From diffusion tractography to quantitative white matter tract measures: a reproducibility study"

Ding, Zhaohua et al. "Classification and quantification of neuronal fiber pathways using diffusion tensor MRI"

Gong, Gaolang et al. "Asymmetry analysis of cingulum based on scale-invariant parameterization by diffusion tensor imaging"

Parker, Geoffry JM et al. "Initial demonstration of in vivo tracing of axonal projections in the macaque brain and comparisohn with the human brain using diffusion tensor imaging and fast marching tractography"

Peters, Alan. "The effects of normal aging on myelin and nerve fibers: a review"

Vilanova, A. et al. "An introduction to visualization of diffusion tensor imaging and its applications"

Zhang, Song et al. "Visualizing diffusion tensor MR images using streamtubes and streamsurfaces"

Top

8. Where can I find data obtained from this program (in Spring 2005)?

All of the data is in the $G/src/brainapp_data directory. In Spring 2005, we worked on developing metrics to measure white matter integrity. We considered the pathologies of vascular cognitive impairment (VCI), HIV, and HIV with progressive multifocal leukoencephalopathy (PML) in particular. The data directory is organized as follows:

        METRICS.txt             has thresholded/unthresholded metric measures for several datasets (HIV, normals, VCI)
        SUBJECTS                lists all the subjects we made models for in spring 2005 as well as the parameters that were used
        aging/                  has the .ba files for the VCI and some healthy controls
        aging/imgs              has the un/thresholded images of the VCI and healthy subjects
        brainapp_files/         has older brainapp files that can probably be deleted
        controls/               has .ba files for a bunch of healthy controls
        controls/imgs           has corpus callosum images of the healthy subjects
        hiv/                    has some HIV .ba files
        hiv/imgs                has some HIV images
        pml/                    has some PML .ba files
        pml/imgs                has some PML images
        reproducibility_study/  has the .ba files for all the models considered in the reproducibility study.  These models are all for DTI_MEM_4N27.
        statistics/             has the statistics we obtained from spring 2005
        tumor/                  has tumor .ba files
Top

9. Where can I find presentations and papers that discuss the above data?

stylee's honors thesis paper and presentation are in /pro/graphics/papers/brainapp.

Top

10. Who can I contact if I have more questions?

Email me at Stephanie.Lee@alumni.brown.edu

Top

11. How can I create new ventricle models?

To create a new ventricle model, edit the Makefile of the dataset. An example of input parameters is:

vent 1

$(LANDMARK) -in $(MEM_DTI_COHEN_158)/d2mem/I0 -em 2 -np 150.2 1 04.3 102.1 -iv 700 -cp 0.50 -outobj ./models/$@ To find out what these parameters mean, type

landmark -- in a shell. Once the parameters are set, type

make <target> in a shell (in this case, make vent_1). If you are trying to generate a ventricle model, but the result shows the ventricles along with a lot of extra surfaces you don't want, you should experiment with the -iv parameter. A higher -iv parameter makes more of the surfaces disappear from the model. If the result shows surfaces other than the ventricles, then the -np parameter might need to be changed. One way of figuring out a point to input is to first generate a model where none of the surfaces are extraced (-em 0). Once the model appears, the ventricles (along with other stuff) should be visible. You can hover your mouse over a part of the ventricles and press "p" on the keyboard. The point on the model that the mouse is hovering over will be outputted into the shell. You can try to use this point as a possible -np parameter. After you generate a good ventricle model, you can convert the .sm file to a .wrl file to make it compatible with brainapp.

Top

12. How can I create new streamtube models?

To create a new streamtube model, edit the Makefile of the dataset. The input parameters that were used the most in Spring 2005 are:

tube 9

$(TUBEGEN) -dt $(MEM_DTI_4N27)/d2mem/Diffusion -t2 $(MEM_DTI_4 _N_27)/d2mem/I0 -radius 0.3 -al 0.1 -cs 10 -cl .1 -cd 2.0 -dth .5 -seed 1 1 1 -stepsize 1.0 -t2thresh -1.0 -ODE 0 -out ./models/$@.sm -randlen 1 -randseed -1 You can read about the parameters of tubegen by typing

tubegen -- in a shell. Type

make <target> in a shell once the Makefile is set.

Top

13. What are all the files that tubegen outputs when it finishes generating a streamtube model?

Tubegen outputs multiple files when creating a streamtube model. Descriptions of all files are below:

        .sm       the streamtube model (vertices and colors)
        .wrl      the streamtube model (based on the .sm file)
        .data     a list of the backbone vertices in each streamtube.  The
                  format is as follows:
                        <number of streamtubes in the model>
                        <number of backbone vertices>
                        <vertex 1>
                        <vertex 2>
                        ....
                        <number of backbone vertices>
                        <vertex 1>
                        <vertex 2>
                        ....
        .info     a file that has the mean linear anisotropy of each streamtube
                  (the order of the streamtubes in this file is the same as the
                  order of the streamtubes in the .wrl file)
        .nocr     the uncompressed version of the .data file
        .size     the number of streamtubes in the model
Top

14. How can I create new streamsurface models?

To create a new streamsurface model, edit the Makefile of the dataset. A sample set of input parameters is shown below:

surf 3

$(SURFGEN) -dt ./d2mem/Diffusion -t2 ./d2mem/I0 -seed 5 5 5 -out ./models/$@.sm -pl 0.2

Top
Page Owner: stylee Last Modified: Mon May 30 06:31:18 2005