You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »



Brain-view is designed to visualize bits of geometry - such as meshes representing the cortical surface, line objects representing the centre line of vessels, or connected cylinder objects representing segmented vasculature - along with associated information, such as cortical thickness at every vertex, statistical maps, labels of vessel segments on every cylinder, etc. It is based on Coin (Inventor), Qt, and the various MINC file formats.

 What's new in version 2?

Version 2 is a complete rewrite of brain-view. The main motivation were to be able to deal with multiple objects, such as left and right surfaces, etc., and in the process clean up some of the cruft that had accumulated in the previous code-base. Not all features of brain-view 1 are included - there's no interaction with R, no painting ability, etc. All that is planned, however. For the moment only use brain-view2 if you want to experiment with it and help with the testing.

 Obtaining the code

Brain-view is hosted at github: Go to the Downloads section of that website to get the latest release, or, to stay most up to date, get the source code directly from github (the version control system):

 git init
 git remote add origin
 git pull -u origin master


To build brain-view you will need:

 Building brain-view

brain-view is built using Qt's qmake. The basic steps are the following:

qmake MINCDIR=/path/to/minc INVENTORDIR=/path/to/bicInventor QUARTERDIR=/path/to/quarter HDF5DIR=/path/to/HDF5

On Linux you will then have a binary called brain-view2 which can be copied where other such binaries live. On OS X you then have an application bundle that can be moved to the Applications folder.

Note that on many Linux distributions both qt3 and qt4 will be present. In that case make sure you are using the qmake associated with qt4 - on Ubuntu, for example, this can be done by using 'qmake-qt4' in place of the plain 'qmake'.

(See also the end of this page for more details).

 Using brain-view

Start brain-view by double clicking on the brain-view2 icon or entering it on the command line. If started from the command line, it can take an arbitrary number of filenames corresponding to obj files (polyhedra or line at the moment), files associated with the obj files (.txt or .vertstats files), tag files, hdf5 files (.h5 files are created by vessel tracking code and post-processed into hdf5 database format. In order to successfully read these files into brain-view, required groups and datasets should exist in the file. more detail will be provided below), and configuration files (.config providing the numerical and anatomical labels and their corresponding RGB colors) . The order of the filenames matter, since .txt/.vertstats files have to follow the geometry file with which they are associated. Files can also be opened through the file menu once the application has started.

Below is a screenshot of brain-view in action:

 There are three main areas to the application: area (1) is the rendering area, area (2) a hierarchical list detailing all of the surfaces and associated files, and area (3) containing properties associated with each item in the hierarchical list. In the example above two surfaces (left and right hemisphere for the same subject in this case) have been loaded, resulting in two geometry scenes visible in area (2). Below each geometry-scene is an entry for the surface itself - clicking on it will allow one to change the colour and opacity in the property window (the left surface having been set to an opacity of 0.75 in the above example). The right surface also has a vertstats file opened, which in this case contains a single column (Column0) describing the cortical thickness. Clicking on each column will cause that column to be mapped onto the surface using the colourmap shown in the property area. Different ranges for the colour mapping can be chosen by entering the desired values in the upper and lower range text boxes, and different colourmaps are selectable from the drop-down box.

If any bit of the scene is clicked on in the rendering area the information in the hierarchical list will update with the values at the selected location. You might have to scroll to the right in the hierarchical list to see it. Also note that the hierarchical list can be detached from the main window by selecting and dragging it (where it says "Resources") away from the main window. It can be redocked later through the same process.

Installation, revisisted

Many thanks to Mishkin Derakhshan for sending his travails in building brain-view2 to the minc-users list - his message is reproduced below:

I had a hell of time installing brain-view2 so I documented my errors
and solutions/hacks in case others come across the same problems
(read: when I have to do this again I can look back at this post).

This was on a ubuntu 12.04 64 bit machine.

I followed the instruction here (thank you jason and sghanavati):

1. MINC. I used the minc-toolkit binaries and only ran into one minor problem.
opus[~]$ sudo apt-get install libc6 libstdc++6 imagemagick perl
freeglut3 libgl1 libxcb1 libxdmcp6 libx11-6 libxext6 libxau6 libuuid1
libjpeg62 libexpat1 libtiff4
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libgl1 is a virtual package provided by:
 libgl1-mesa-swx11 8.0.2-0ubuntu3.1
 libgl1-mesa-glx 8.0.2-0ubuntu3.1
You should explicitly select one to install.

E: Package 'libgl1' has no installation candidate

I chose libgl1-mesa-glx at random, and then everything else worked.

2. Qt4: sudo apt-get install qt4-qmake libqt4-dev libqt4-core
3. Boost: sudo apt-get install libboost1.48
tar xvzf Coin-3.1.3.tar.gz
mkdir coin-build
cd coin-build/
sudo make install

5. Quarter:
tar xvzf Quarter-1.0.0.tar.gz
mkdir quarter-build
cd quarter-build/

ERROR:../../../Quarter-1.0.0/src/Quarter/Quarter.cpp:148:13: error:
'stderr' was not declared in this scope
#include "stdio.h"
to this file: ../Quarter-1.0.0/src/Quarter/Quarter.cpp

sudo make install

6. HDF5 1.8.9:
Downloaded a build of HDF5 1.8.9:
tar xvzf hdf5-1.8.9-linux-x86_64-static.tar.gz

7. BicInventor:
cd bicInventor-0.3.1
./configure --prefix=/opt/minc --with-build-path=/opt/minc
--includedir=/opt/minc/include --libdir=/opt/minc/lib --with-minc2
ERROR: (lots of erros when I tried to configure)
SOLUTION: sudo apt-get install build-essential realpath zlib1g-dev
bison flex libx11-dev libxmu-dev byacc libsoqt4-dev automake libtool
libdbi- perl libblas-dev liblapack-dev libblitz0-dev libreadline-dev
bzr bzrtools octave3.2 imagemagick

./configure --prefix=/opt/minc --with-build-path=/opt/minc
--includedir=/opt/minc/include --libdir=/opt/minc/lib --with-minc2
sudo make install

mkdir bv2
cd bv2
git init
git remote add origin
git pull -u origin master

qmake-qt4 MINCDIR=/opt/minc/
ERROR: GeometryNode.h:25:30: fatal error: H5Cpp.h: No such file or directory
SOLUTION: sudo apt-get install libhdf5-serial-dev (probably a bad hack
because it installed 1.8.4 but it worked)

ERROR: H5AtomType.cpp:(.text+0x257): undefined reference to `H5Tget_pad'
SOLUTION: put -lhdf5_cpp before -lhdf5 in the g++ command
g++ -m64 -o brain-view2 MainWindow.o BrainQuarter.o TreeItem.o
TreeModel.o ResourceForm.o GeometryScene.o GeometryNode.o main.o
textureColumn.o textureFileItem.o tagFileItem.o tagPointItem.o
moc_MainWindow.o moc_BrainQuarter.o moc_TreeItem.o moc_TreeModel.o
moc_ResourceForm.o moc_GeometryNode.o moc_textureColumn.o
qrc_colourbars.o    -L/usr/lib/x86_64-linux-gnu -L/usr/X11R6/lib64
-L/usr/local/lib -lCoin -L/lib/ -lQuarter -L/opt/minc//lib -loobicpl
-lpcre++ -lbicpl -lvolume_io2 -lminc2 -L/lib -lbicInventor
-L/home/mishkin/hdf5-1.8.9-linux-x86_64-static//lib/ -lhdf5_cpp -lhdf5
-lQtOpenGL -lQtGui -lQtCore -lGL -lpthread

And that gave me the brain-view2 binary which i copied into /opt/minc/bin.

  • No labels