$G/src/brainapp
TopIn 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>]
TopTo 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.
Tops = 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.
Left button - navigate around the scene Middle button - click on buttons/sliders and other gui-related things
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
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"
TopAll 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 filesTop
stylee's honors thesis paper and presentation are in /pro/graphics/papers/brainapp.
TopEmail me at Stephanie.Lee@alumni.brown.edu
TopTo create a new ventricle model, edit the Makefile of the dataset. An example of input parameters is:
$(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.
To create a new streamtube model, edit the Makefile of the dataset. The input parameters that were used the most in Spring 2005 are:
$(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.
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 modelTop
To create a new streamsurface model, edit the Makefile of the dataset. A sample set of input parameters is shown below:
$(SURFGEN) -dt ./d2mem/Diffusion -t2 ./d2mem/I0 -seed 5 5 5 -out ./models/$@.sm -pl 0.2