Neuro Debian: An Impression

I’ve seen a lot of imaging software packaged for the Debian Linux distribution, so I decided to set up a machine to try it out.  Debian is a popular choice for scientific software, known for its stability and the massive library of pre-built packages available for easy installation through its package management system.

Neuro Debian is a six year old project to make high quality software readily available to researchers everywhere (a full description is found in this recent publication by the principal authors).  It places strong emphasis on the correctness and interoperability of the software packages, resulting in applications that install automatically and produce reproducible results.  In practice, it’s employed as a supplementary repository for specialist software packages, that integrates completely into Debian’s existing package manager. There’s the promise of entire compatible software systems to be installed in a few clicks.  Let’s see how it fares.

Downloading Debian was straightforward.  There are a variety of installation techniques – live network installation, DVD and CD images to download and burn, torrents, and live test images to try the OS from a disc or stick.  I made up a Parallels partition on my Mac for the new virtual machine, giving it 2 GB RAM and 2 cores, and installed directly from the minimal 440 MB image I’d downloaded.  Been a while since I saw an installation that small, but I’m sure the packages will be much larger.  I enjoyed the old-timey non GUI installation screen, once upon a time we called this a ‘user interface’, now it’s coming back into fashion like an 8-bit video game.

It’s also been a while since I saw an OS start and stop as quickly as a stripped-down Debian installation.  We get so used to Mac OS and Windows loading…and loading…all sorts of essential something.  Debian gets to the point, and does it in a few seconds.

I started the Software Centre to see what imaging software is available right out of the box. Cool!  Searching for ‘DICOM’ shows several alternatives.

I installed both and had to hunt through the menus to find them filed under ‘Graphics’, which is fair enough, I suppose.  Some of the other programs I later installed made it on to the ‘Science’ menu.

Configuring Debian to use the Neuro Debian repository is a simple case of copying two commands into a terminal window, adding ‘NeuroDebian’ as a source in the package manager.  The installations proceeded very quickly, and although not every package is available for each OS variant on every software repository, there’s a very wide range of software available.
For the OS I’m running (Debian 6), there were over 110 applications and libraries available in the ‘Imaging’ category alone.

The other category I was particularly interested in was Imaging Development, and as you may expect it’s pretty technical.  Lots here for the software developer.  Exploring the other categories is left as an exercise for the reader (it’s not called “I Do Psychophysics”).

Installed software has a short summary in the package manager.  Running the programs again reminded me of just how quick computers can be when you strip away the extraneous extras.  The applications jumped onto the screen and were ready within a second.  This particularly reinforced the advantage of having a dedicated system – even one running as a virtual machine, as here – over running imaging software on your regular desktop computer.  Fewer distractions, too.

Overall, I was highly impressed.  A new user could download and install an entire operating system, plus imaging applications, and be up and working within half an hour.  Some experience with Linux software is of course useful, and some of these applications would also benefit from some command line experience.  But since the software is downloaded and installed as binary executables, with all dependencies handled, there’s no chance of it not compiling correctly.  Neuro Debian bills itself as the “Ultimate platform for neuroscience” and I think they have a case.  Great packages that install themselves and work out of the box: this is free software done right.




Version Woes

I use a combination of automatic and manual methods to keep track of updates to programs. For most programs, I store a string describing the version number, and the URL it came from.  Then I have software to run through all the sites about once a week, and look for a changed version string.  Of course, this requires that the program’s web site does list the version, and if they edit the string or the page I get a ‘false positive’ indicating that the version may have changed, and I check the page manually.
On the big repositories this is usually easy, as they have a consistent page layout and usually describe the version number and release date. Though with the preponderance of dynamic content on web pages these days, it’s getting harder.  There are sections that show and hide, and
sometimes the HTML that my auto-fetch program (basically a scripted wget) retrieves, is different than the HTML issued to my browser…not a fun issue to debug.  Then there is the situation of the hosting site listing all the version numbers, leading to ‘false negatives’ – the string I’m searching for does exist on the page, just not in the first position.  So I have to retrieve only the first, or one in a special heading or div, and I’ve written different software to analyze SourceForge pages, and GitHub, and Google Code.  And of course they keep changing…it keeps me busy.
This caught me out in a major omission, where I neglected to update my entry for SPM, the major neuro image analysis package developed at University College, London.  SPM is one of those plications where it’s almost a case of, if you need to ask, you don’t need it.  SPM is one of the dominat software packages in functional neuroimaging, so everyone in the field at least knows about it.  Still, everyone needs publicity, and so I list SPM and all the programs associated with it, and I thought I was listing its updates.  But the URL I’d stored for SPM’s version number linked to SPM5, their 2005 release, and when the 2008 SPM release came out, on a different page, naturally the version string on the 2005 site remained.
And my site remained out of date until I recently had the pleasure of meeting the manager of SPM development at the Turku PET Symposium. He very politely pointed out that my listing for this major application was three years out of date! I’ve corrected the error now, and improved the listing.  Hopefully I’m not listing too much more disinformation.

The Waiting List: 25 More Programs

Updates have been backing up and here are the programs I’ve noted down to evaluate and add to the site.  These days I try to give each new program more attention, so I download and test them all, create a few sample images, and mention each included program in a blog entry.  It will take a while to get through them all, so I’ll simply list them for now.  Just think, before I Do Imaging, a ‘list of links’ was what passed for a ‘free medical imaging software web resource’.  Hard to imagine, but true.

In no order at all, they are:

  • CTP-The RSNA Clinical Trial Processor: A program providing MIRC functionality.
  • PACS Java Viewer Lite, a DICOM viewer designed to work with DCM4CHEE.  From Turyon, in Spain.
  • Camino Diffusion MRI Toolkit in Java, from University College, London.  Seeing lots of DTI programs these days.
  • DTI-TK toolkit from the Penn Image Computing Lab.
  • ImageJ 3D Viewer plugin.  ImageJ is a platform unto itself.
  • Oviyam, a web based DICOM viewer and part of the dcm4che family.
  • Live-Vessel segmentation of vessels and vascular trees.
  • TurtleSeg segmentation, from the same group, at Simon Fraser.
  • DicomNIFTI converter, though their site is down just now.
  • XNAT Tools, part of the giant XNAT project.  Tons of stuff here.
  • Weasis Viewer, another in the dcm4che family.
  • JIST, Java Image Science Toolkit.
  • NIAK, Neuroimaging Analysis Kit for FMRI, in Matlab.
  • Lipsia: Leipzig Image Processing and Statistical Inference Algorithms.  FMRI data analysis.
  • DicomCleaner from David Clunie, for processing headers of sets of DICOM images.  Straight from the source.
  • Voreen, Volume Rendering Engine.  Not just for medical imaging, but highly relevant.
  • Dicoogle, an interesting PACS engine.  From Portugal.
  • Canvass, a modern-day 3DViewnix.
  • MITK 3M3 Image Analysis, A Dicom viewer based on MITK.  A major project.
  • ImLook4D image visualization and analysis in Matlab.
  • CreaTools applications and development environment from CREATIS.  Another big project.
  • dicomsdl C++ libraries for DICOM.
  • PrivacyGuard / DICOM Confidential, looks to be an extremely thorough DICOM anonymization application.
  • 3DimViewer, a DICOM viewer, from the Czech Republic.

Plus a few to evaluate that may or (likely) will not make it to the site for various reasons.

  • Xebra web-based image distribution.  But their SF files haven’t been updated in several years.
  • LunchBox, a DICOM viewer, ditto updates.
  • Open DICOM Viewer, is coming along.