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.

 

 

 

New Releases: October 2012

Let’s have a quick look at some of the software projects that have recently released new versions.

Mango is a do-it-all program from the Research Imaging Institute at the University of Texas.  It’s easy to use for beginners, but offers great powers to advanced users, particularly those in the brain sciences.  It’s written in Java so it runs on any OS, and comes with platform-specific installers.  It has developer tools available, and a range of useful plugin modules. And let’s not forget the variant that displays DICOM images on a browser (webMango) and the iPad app, iMango (though it’s not free software).

For introductory users, it can quickly let you view images in DICOM or a half-dozen other formats.  But there’s a lot more functionality built in to the program, and with its  plugin architecture, it can be expanded to perform a very wide range of tasks.  While suitable for general purpose image viewing and analysis, there’s an emphasis on neuro imaging including support for file formats specific for that field: AFNI, NIFTI (use the Search page of this site and you’ll find 9 programs that support the former and 20 for the latter), also FSL and BrainVisa (which we’ve not yet got around to categorizing, ahem).

Advanced users will find useful features including a comprehensive package of ROI operations, image co-registration and overlays, statistical analysis, and image processing.  Plugins providing advanced neuro analysis tools and support for additional file formats are installed as needed from a library modules offered from the Mango site: adding and running these is straight-forward.  For programmers, there’s good support.  A package of developer tools can be downloaded and the API for developing plugins is well-documented.

Mango is a thriving project with much to offer everyone from the casual user to neuroscientist.

Nanodicom is one for the programmers.  It’s a PHP toolkit for reading and manipulating DICOM files (no flashy screen caps here sorry).    It’s one of very few (n=1) DICOM projects written entirely in PHP and is optimised for speed and a small memory footprint.  There’s a core class providing functions to read and modify the file header, as well as operations upon the pixel data.  Several ready-made sample applications are useful in their own right as well as providing reference implementations: there are programs provided for dumping, modifying or anonymizing the file header.

The package is well-supported, with extensive documentation, example programs, sample data, and a comprehensive test suite provided.  Since it’s hosted on GitHub, it’s available for developers to download, modify, and contribute to.

While Nanodicom does not handle DICOM networking, there is an existing class (not yet added to I Do Imaging) called DICOM PHP Class, which does just that.  It differs from NanoDicom in that it does its heavy DICOM work with the DCMTK toolkit.

Nanodicom is developed by Nano Documet, and the current release is version 1.3.

On the subject of DICOM libraries for interpreted languages, Ruby Dicom is well worth a look.  It supports reading, editing and writing file headers as well as network operations: querying, retrieving and sending files.  In conjunction with other Ruby packages, image data operations are also possible.

It’s written by Christoffer Lervåg who’s put out a steady stream of updates since the project’s inception in 2008.  The package is distributed in source form and as a Ruby gem  through RubyForge, allowing one-line installation.  The program is of course backed by a comprehensive site including tutorials, one of which walks you through creating a DICOM viewer with GUI controls in a few pages of code, using the Qt cross-platform toolkit.  Another tutorial uses the Rails framework to quickly build a web app to display DICOM header information on a browser.  Ruby Dicom is a cool application of a popular language with a devoted following.

Amide has been a major force in imaging software for a long time.  Developed and actively maintained  by Andreas Loening, it is by its own description a “Medical Imaging Data Examiner”.  As such, it’s strong on technical features and low-level operations on a broad range of file formats.  It’s written using the GTK+ cross-platform GUI toolkit which, together with good software design and a lot of hard work, means it will run on Windows and Windows computers as well as Linux.  There are too many features to go into here, but they include co-registering and fusing multiple data sets, volumetric rendering, 3-D ROIs, persistent storage of studies, and more.

Amide’s a good example of the collaborative nature of the open source imaging community.  The author uses (and contributes to) a variety of software packages, some specific to medical imaging (Medcon for conversions, DCMTK for DICOM support) and some more general (VolPack, FFMPEG, GSL).

Amide is notable in its support of the nuclear medicine formats ECAT and Interfile – strangers to those outside the field (just about everyone) but critical to those of us whose day jobs make possible the (admittedly spotty) maintenance of I Do Imaging.    Check it out, especially if you’re of a technical nature.

Medcon, together with its X Windows GUI xmedcon, is a medical image powerhouse for power users.  A product of Erik Nolf at Ghent University, it’s a format conversion program that supports a very wide range of file formats, with particular strengths in nuclear medicine but supporting all the widely-used formats.  It can work down to the voxel level to reslice image volumes along any axis and resample at varying resolutions.  Medcon can convert individual image slices to and from an image volume, convert the image value encoding, change colour maps, normalise values, and perform a number of other low-level operations.

Medcon has been in steady development for over 10 years, issuing dozens of releases, all well-documented and with careful attribution of fixes and feature requests.  It is particularly powerful when used from the command line or called from scripts, allowing full automation of complex repetitive actions.  There are distributions available for numerous Linux variants as well as the Macintosh and Windows platforms, and full source code (together with cross-platform make files) is provided under the (L)GPL license.  There’s not much he’s left out here!  (X)Medcon is a nice example of a defined problem (conversion of nuclear medicine file formats) being executed really well.

Five New Programs: October 2012

The majority of this post relates to scientific processing tools that won’t be seen much outside the lab, so we’ll ease into it with something a bit more approachable.

Weasis is a web-based viewer and part of the outstanding DCM4CHE environment.  Weasis is a web-launched viewer in Java that can also be downloaded and run as a stand-alone application.  When run from a web browser, it utilises JNLP, or Java Web Start, to download and start the application.  From that point, it runs independently of the browser.  This makes it ideal for web-based image viewing, since the viewing application is downloaded along with the data.  Weasis has a wide range of viewing tools available and runs at native speed.  A great addition to the ever-increasing line of software from dcm4che.org, developers of professional-grade open source applications and utilities for the healthcare enterprise.

Dicoogle is an innovative PACS system that offers to provide an integrated view of multiple PACS systems.  From the Universidade de Aveiro in Portugal, and in use in several hospitals, it employs a peer-to-peer architecture to implement PACS queries over distributed DICOM repositories.  The project is open source and offers a full set of APIs and an SDK for developers to build upon the platform.  Under development are services for web- and mobile-based clients.

Creatis is a major biomedical imaging research laboratory at Université Lyon 1.  They produce a ton of great software, and Creatools has been added to our database.  This is another major package, providing rapid prototyping of medical imaging applications.  The downloaded package includes ready-to-run applications for end users, as well as the library and API necessary for developers to develop new applications quickly.  Creatools makes it possible for non-programmers to create and run an image processing application from pre-supplied modules that can be connected flexibly.  Creatis have many more tools listed on their software page, once we’ve built and tested them they will be added.

Camino is a heavy-duty toolkit for MRI diffusion imaging.  A specialist group of tools for a specialized field, from the Microstructure Imaging Group at University College, London.  Camino is a large project and backed by a host of academic publications.  The project web site has a vast range of resources, including comprehensive documentation of the many tools provided, tutorials with test data, and resources for software developers (including SVN access to their source code repository).

Lipsia is another heavyweight scientific tool, for functional MRI.  Developed at the Max Planck Institute for Human Cognitive and Brain Sciences, it is a large collection of command line tools to be pipelined for major processing tasks.  Building the application requires quite a few scientific-related tools to be installed: some for the file formats used (Vista, Nifti), some for image analysis, some for processing (scientific libraries, Fourier transforms), some for visualisation (OpenGL).  These can be installed using the usual Linux package managers.  There’s some Fortran in there too – this is for serious work!  Source code in C++ is available for download, as is comprehensive documentation.  A major collection of tools for FMRI.