BrainVISA

BrainVISA/Anatomist FAQ

Anatomist

Before asking questions of reporting problems to the mailing lists, please make sure your question isn't answered here first. We have very few resources for technical support.

FAQ contents:


Licensing

Is BrainVISA/Anatomist free software?

It depends on what you mean by free. Part of the software is free as in "free speech", and part of the software is free as in "free beer".

The CeCILL/GPL'd parts are enough to have a complete environment in which anyone (or any lab) can plug their own processing tools. The data management (database-like engine, graphics environment, data formats, I/O, and conversions) and visualization (anatomist 3D renderings) are directly available.
The closed-source part is our implementation of some image processing pipelines, and are not required to use the other parts. However without the algorithms, the environment appears a bit empty, so they may be helpful after all unless you have your own tools. They are available in binary format anyway: we don't sell them, we don't make mony from them, and anyone can get and use them.

Download

See the download page.

Installation of binary packages

Supported/unsupported systems

See the download page for a list of supported systems.

Conflicts between system libraries and those of the binary packages

The UNIX shell SHFJEnvironmentVariables scripts (sh and csh variants) are used to set the path and other environment variables for the various programs of the SHFJ distribution. As we compiled them on a given system without knowing about the target system the programs will be running on, we have bundled with the pack a number of "system-wide" libraries, such as Qt or the standard C++ library, which depend on the compiler and its version. These libraries are suitable for running our software, but may conflict with existing programs on your system.
These scripts are now internally called when running any command in the bin directory of the package (brainvisa, anatomist, Aims or Vip commands...), so you generally don't need to run them manually anymore (you had to in older 2.2.x packages). However they can be useful to debug things in "real situation". Don't call them from your personal config scripts (.profile, .cshrc or other). In 2.3 and later packages, you just have to setup the PATH environment variable to reach the bin directory of the package. This normally avoids any library conflict risks, but can still cause the wrong programs to be called, especially python and qtconfig.

Fonts problems: text is not displayed [on some Linux distribs]

We have seen this problem on some Linux distributions (Mandrake 9.2) where no text is displayed at all (not even little squares).
The problem is caused by incompatible antialiased fonts rendering libraries.

This problem can be fixed by providing a default font for Qt which doesn't use FreeType or Xft. For now this is the only workaround we can suggest (except recompiling everything).
This can be done using the qtconfig utility coming with Qt (and provided in our packages). This utility enables to set the default look and font or all Qt applications, these defaults will be saved in a $HOME/.qt/qtrc file on your account. The problem is that qtconfig itself would not display the texts the first time you run it, so you would have to choose the font blindly (this supposes you know where each button is!). On Linux you can use the qtconfig of the system (not the one of the package).
Alternately you may edit (or create) the $HOME/.qt/qtrc file by hand and provide a working default font in it, in the [General] section, for instance:

[General]
font=Lucida,12 

Problems with Matlab

BrainVISA needs Pymat for Matlab interaction. Pymat is a python module written in C++. Therefore it is compiled as a dynamic library file: pymatmodule.so. When import pymat is used, Python tries to load pymatmodule.so.

Depending on Matlab verison, pymat may not load correctly: pymat in our package has been compiled for Matlab 6.5. It seems to work with any Matlab 6.x (?), but cannot work with Matlab 7.x because pymatmodule.so uses dynamic libraries provided by Mathwork and the symbols defined in these libraries have changed.

The solution is to compile pymat for your system. To make things easier, we have made a package with a makefile to build and install pymat in a already installed BrainVISA package. It can be dowloaded at the following address :

ftp://ftp.cea.fr/pub/dsv/anatomist/binary/pymat-brainvisa.tar.gz

To compile and install you must edit the makefile to select the appropriate directories according to your BrainVISA and Matlab installation and type the following command :

make install

In my lab, it works for both Matlab 6.1 and Matlab 6.5 under Linux. For other systems, I have not tested the solaris version yet and I do not have access to Matlab on Macintosh and Irix.

How do I use matlab bindings on Windows ?

The PyMat module is present on the binary distribution 2.3 and is compiled using Matlab 6.5.1. But it has been renamed to force it not to be found. This appears a bit strange, but I didn't find a way to avoid an error box from Windows if python attempts to load it without Matlab installed: the module needs Matlab DLLs, and the system loudly complains if they are missing. I couldn't make this complaint silent.
If you have matlab installed on your Windows system, you can activate the binding by renaming the pymat DLL in the distribution:
in the directory:
  <SHFJ_pack_directory>/python/Lib/site-packages
rename the file:
  pymat_disabled.dll
to:
  pymat.dll
That's all.
To be honest, I didn't test anything, so I actually don't know if the module works.

Installation on Windows 98/95 causes errors

Yes. I don't care. Use XP (or best, Linux)

Installation of source packages

There are compilation instructions on this page, please read it and follow the instructions there first

Problems with sources

  • Sources built on RedHat 7.2: anatomist crashes at startup. It seems that an upgrade of the C++ libraries (gcc-2.96 packages) solves the problem
  • Anatomist problems

    Anatomist crashes

  • at startup: maybe an incompatibility of the binary package with installed libraries? If you built from sources and still have a crash, well... there may be a bug in Anatomist...
    On RedHat 7.2, see also
    this item
  • Anatomist displays an empty white window at startup, then does not display icons, there are error messages in the shell window from which it was started telling some files were not found, and then anatomist crashes when opening an object file: You have probably run the anatomist.bin executable (maybe after compiling), not its launching script. If you do so, you will need some environment variables pointing to the installation path of some of the libraries data: see the installation instructions for compiled sources.
    When using the binary packages, these variables are set by brainvisa's and anatomist's startup scripts so you should normally not have to worry about them.
  • when opening a 2D or 3D window: maybe a problem with your OpenGL or 3D card driver. in some cases compiling from sources may help.
    There might be problems with some 3D graphics cards drivers under Linux. You need OpenGL/Mesa and GLX support. Software rendering should be OK (but slow). We generally use NVIDIA cards with NVIDIA's Linux driver (available on the NVIDIA site).
  • using a "remote display" on networked machines with X servers: well, we don't recommend doing this, there seems to be lots of bugs in the GLX implementation of many systems (Solaris OpenGL, Linux XFree4, Linux with Nvidia cards drivers, ...). In many cases you'll crash the X server of the machine you're displaying on, and possibly the whole system. So try it at your own risk, and don't complain if it doesn't work...
  • Missing libraries or undefined symbols

    Well... please compile from sources...

    Anatomist can't read my volume

    Maybe its format is not recognized?
    Anatomist is based on AIMS library, which has modular IO formats support. Depending on how is built in the library, recognized volume formats are:

  • GIS
  • VIDA (optional but should be here)
  • SPM (optional but should be here)
  • DICOM (optional with external library)
  • ECAT (optional)
  • JPEG images (optional, with libjpeg)
  • Genesis (at least partly)
  • Minc 3D (optional, since AIMS 3.0). 4D images are not currently supported
  • Other 2D images formats read by the Qt library (optional, since AIMS 3.0) such as PGN, BMP, GIF, MNG, PBM, PGM, PPM, XBM, XPM.
  • Vida, Dicom, Ecat, Jpeg and most other IO formats are now in plugins, this means they are external to the core Aims library, and loaded at run-time. If you can't use these formats, this may be due to the plugins loader not finding these plugins. Try running a command (anatomist for instance) with the option --info, and check the plugins and supported formats.

    Transparent objects are ugly and sometimes hide objects behind them

    This is due to OpenGL. Maybe we could do something to display a pretty image for snapshot or printing, but it would be slower to display, and we have currently no time to work on it.

    Anatomist crashes when destroying objects

    We think it's fixed in Anatomist 1.28. If it's not, tell us about it please...
    However destroying big objects with many children (graphs) still sometimes takes an abnormally long time (not always, actually) - we have to debug it a bit more, one day...

    Anatomist incorrectly displays meshes on some NVIDIA cards

    The problem is OpenGL windows don't display every triangle: half of them are discarded and not shown. This seems to happen either on Linux and MacOSX with Apple's X11 server, with some NVIDIA 3D cards like GeForce2, GeForce4, Quadro4.
    It is a bug in old Nvidia drivers/OpenGL, and it is fixed on recent drivers.
    In our experience the problem happened with 3123 and 4191 versions of Nvidia's linux (and Mac?) drivers: previous (2960) and next (4349 and later) drivers are OK.

    Anatomist hangs on Windows 98/95

    Yes. I don't care. Use XP (or best, Linux)

    BrainVISA problems

    Configuration

    Everything is in the file options.py located in the directory $HOME/.brainvisa (if it exists) in your home directory. But in BrainVISA 1.6, you don't need to edit it manually anymore.

    Database setup

    Brainvisa 1.6 (package release 2.3) includes a menu for graphical setup of the databases and some other options which should make you happy: options files do not need to be manually edited anymore (except for extreme wizard things).

    BrainVisa randomly hangs in the middle of a pipeline process

  • On RedHat Linux 9:
    It shouldn't happen anymore. This is a compatibility problem between python (we think) and Red Hat 9. Red Hat 9 uses a new threading library (NPTL) which replaces the older linuxthreads. There seems to be problems with Python threads using this new library (problems have been reported on various other software as well). However there is a way to switch to the older linuxthread, simply by setting an environment variable:
  • On MacOS X:
    This happens when BrainVisa is run by clicking on its icon in the Finder or on the desk. It appears that running BrainVisa manually from a terminal works well.
    We have no idea of the cause of the problem. It seems to be related to running sub-processes using the python popen() function, just like on RedHat 9 with NPTL threads, but we don't know if the cause is the same or not.
  • Contact us

    See the contacts page.