ImagingComputingDevelopments - MRC CBU Imaging Wiki
location: ImagingComputingDevelopments

Developments to the imaging computing system

2011/04/10 New SPM release from FIL r4290

Installed to run by default when spm 8 is typed.

[RH, RC]

2010/09/05 New MNE installation (2.7.1)

This new version is accessible now via mne_setup_2.7.1_32bit. If you have any problems please contact me


2010/03/17 New SPM 8 installation

SPM has been moved under subversion control, and to a new more intuitive directory, /imaging/local/software

As ever, you can start it with

  spm 8

with the additional options


use development version of code


set up for FMRI


set up for M/EEG

Further options are described on SpmVersions


2010/03/15 New MNE version installation (2.7.0)

This new version is accessible now via mne_setup_2.7.0_32bit. If you have any problems please contact me


Added functionality for this companion tool to FSL created by Jonas Kaplan. PEATE performs selective averaging on FSL's first-level output files. Call up PEATE with either:

> peate [to use the GUI]
> peate myconfigfile.pcf [to use from the command line]]


2009/12/12 Dump Demographics

Here's a matlab script that dumps the age & sex of a list of subjects from their CBU numbers. DumpDemographics


2009/12/09 Replace buggy mne_inverse_operator

as discussed on mne mailing lists


2009/11/10 MRICronN & Dcm2Nii

Added shortcuts to run dcm2nii either as a GUI or from the command line. E.g.:

> dcm2nii [to use from the command line]
> dcm2nii_gui [to use the GUI version]

The commands are currently in /imaging/locali/linux/bin but also ready in /imaging/local/scripts.


2009/08/25 Default spm 8 to Matlab2009a

spm 8

now defaults to matlab2009a as this offers the full functionality

Also, you may do commands like

spm 5 matlab2009a


2009/05/05 Updated MNE MATLAB toolbox

This has been added to the 2.6.0 release, so the matlab version is 2.6.1 and the rest of the tools are 2.6.0.

2009/04/17 Installed trackvis



to use it [RC]

2009/04/15 Installed latest MNE



to use it [DGW]

2009/04/15 Installed latest Freesurfer



to use it [DGW]

2008/12/15 Installed latest FSL



to use it [RC]

2008/11/26 Update Juelich's Anatomy toolbox for SPM 5

Obtained a new pre-release version of the toolbox, containing new maps for the parietal lobe. Replaced the old version [RC]

2008/10/7 Added python libraries

Added to imagers.cshrc files

  • setenv LD_LIBRARY_PATH /imaging/local/linux/lib


2008/10/6 Installed Juelich's Anatomy toolbox into SPM 5


2008/10/6 small FSL patch requested by Mirjana

Ask her if you're curious [RC]

2008/9/15 FSL patches applied as requested by Eleftherios

You may now choose between the patched version


and the unpatched one



2008/9/1 and 2008/9/2 Installed FSL 4.1.0



to use it

Fixed, added load sharing wrappers, accidentally deleted fsl3.2, hope no-one need it.


2008/08/13 Monitoring page for user process

Check who is loading the machine:

2008/08/13 New closemymaxfilters command

Does what it says - closes all of your maxfilters across the machines.


2008/08/13 Added highmemory switch to spm

If you launch spm with spm highmemory you will be sent to a machine with 16 GB of RAM.


2008/07/14 Made spm and other loadsharing more robust

There was a sporadic error caused when users launched many jobs in a very short space of time, in writes would clash to the file where the record of the launch (a change to the recentchanges files in the loadshare/status directory). This would cause the SPM launcher to fall over. I've trapped this error, so it continues regardless.


2008/06/03 Added MNE Tutorial setup

I've added a separate mne_tutorial setup which locally sources mne in order to avoid aliasing commands with --digtrig STI101. This should only be used for the MNE Tutorial.

Instead of typing mne_setup_2.5, as you would normally, type mne_tutorial.


2008/05/22 Modified maxfilter launch script

I've modified the maxfilter script so that it encourages multiple jobs launched in quick succession to be allocated to different machines, rather than the same one. This should improve the load sharing for such jobs.

It involved adding a line that records the load in the "recent launches" files (shown in the [new xx] columns of showload).


2008/05/16 Tweaked loadsharing

Update 2008/05/19: item (2), shift of Elekta tools to l37-l42 has been postponed pending installation of licenses

The load on the linux computing resources has increased recently. Right now, the jobs running on the 34 main machines (l08-l42) are: 152 SPM aa parallel sessions 249 other SPM sessions 64 MEG maxfilters 3 other MEG Elekta tools

This is a big pile of processing, and to optimise performance in response to these demands some changes have been made: (1) The maximum number of aa parallel threads per user has been reduced from 24 to 12 (I'll soon make it adaptive to the total system load). (2) To reduce memory problems, all Elekta software (including maxfilter) now launches on the new high numbered machines that have more memory (l37-l42). SPM launches on the lower numbers (l08-l36). (3) When you launch SPM, or run "showload" the number of jobs of each type on the various machines is shown, to help everyone keep track of the demands on the system

As ever, you should try to use this resource in a considerate way, and where possible set big jobs going at off-peak times.


2008/05/14 Added mricron to Linux boxes

mricron is the successor to mricro, the popular MR image viewing program. There are a number of new features to mricron, including the facility to add multiple overlays from different images. However, the interface is quite different.



to launch.


2008/05/12 Put aa under subversion control.

New release of aa (2.1) at same time, mirror of previous development version.

To use new release, type




To use development version, as ever, type


Changes to paths, if you care... now in


Development version should be modified using SVN, and not by changing any files in the working copy added to Matlab path



2008/05/09 New command for checking slice acquisition order

Some data was recently unintentionally acquired with the wrong slice order (interleaved ascending instead of sequential descending).

As this would have bad consequences for the analysis, if you're a cautious type (or just hate wasting time), you should check the slice order of your acquisitions. To help you do this, I've written a small aa tool that scans the dicom headers of your subjects. To use it:

Make sure you're using aa_ver2_devel

>> aa_ver2_devel

Change to the directory containing your study and run this new tool to scan the slice order >> aas_dumpsliceorder


2008/02/26 Changed maximum numbers of jobs

(1) Matlab licenses. We are nowhere near using our maximum number of matlab licenses (83/171 used). There is a restriction on the number of licenses per user of 8. I have extended this to 12 to allow better distribution across machines.

(2) aa parallel workers. There was a limit of 8 workers per job. With the better loadsharing (see below) a greater number of jobs is practical - I have extended it to 15.


2008/02/26 Modified load balancing for SPM, MEG & FSL software

All of the machines are scanned for load every 5 mins. Previously, no account was taken of the effect of jobs launched in between these points. This led to a problem when firing off lots (say 15) jobs at once (e.g., from aa parallel) in that many would land on the same machine, which would subsequently become overloaded.

To account for this, the SPM, MEG & FSL wrappers now keep a record of recent launches. These are shown by showload or the launch script. These recent launches are considered when choosing the best machine, so jobs get steered away from machines that have just had lots of new stuff launched on them.

Technical details - files in /imaging/local/spm/loadshare

  • Scheduled job (called from cronjob now deletes "status/recentlaunches_[machinename].txt"
  • module, function getbestmachine now takes into account the recent launches when choosing a machine
  • launchspm, runfsl, runmne and meg_runcommand all append jobs launched to the files like "status/recentlaunches_[machinename].txt"


2008/02/14 Added VNC tools

I wrote a load balancing script for a glx enabled vncserver. The script balances only the vnc load. I chose to do it this way, because the vnc sessions will be very long term ~months, so balancing the cpu load is more or less irrelevant. If one of these glx vnc sessions is already open, a message will be sent to the user providing the port and machine that the active session is on. The script is called vncserver.glx and is located in /imaging/local/linux/bin/. I also added vncviewer, because it is way better than the default vncviewer on the RH install.


2008/02/07 Added function HeadMask.m to /imaging/local/spm/common_spm5andabove

This function attempts to mask out the vitamin E capsules from T1 weighted structurals. This is useful before producing a scalp mesh, which may otherwise be distorted. It has been tested on seven subjects, never removing anything it shouldn't, and successfully removing the vitamin E capsules in six of the seven cases. (Including one patient with lesions; use at own risk; does NOT seem to improve normalisation to MNI space.)


2008/02/06 Patched spm_getSPM manually

Fixed bug when saving design matrix from contrast manager as identified by Catherine Marie-Longtin, and solved by Ferath Kherif

cd(SPM.swd) at line 200,
just after the code : SPM.swd = swd; at line 199.


2008/02/06 Added load balancing to FSL

All FSL 4.0.1 commands are now executed with load balancing.

Details... wrote python script /imaging/local/spm/loadshare/ which launches an FSL command on the currently least busy machine. Then, /imaging/local/spm/loadshare/ which makes symbolic links in /imaging/local/linux/bin/fsl-4.01/bin/loadshare/bin

This directory is now added by fsl_4.0.1_setup instead of the one with the actual commands in.

If you wish to run multiple scripts or jobs in parallel launch with separate xterms like this:

   xterm -e [your command 1] &
   xterm -e [your command 2] &
   e.g., xterm -e feat myscript.fsf &

[RC, MM]

2008/02/06 Delayed Software Documentation

Dan has been very naughty and not documented changes he made to the load balancing software. I updated (with Matthew Brett's help) several features of the software setup. We setup the Freesurfer and MNE scripts to source Freesurfer and MNE when they balance the load. We also setup so it will pass the SUBJECTS_DIR and SUBJECT variables. In order to ensure that the FSL version differences don't affect Freesurfer (which uses FSL), I have changed the way FSL works. FSL is no longer sourced by default. Each user who wants to use FSL needs to source FSL in each terminal window via the following scripts.


I'm sure there are some other details I have left out add questions here and I will fill out the replies.


2007/12/12 Added FSL 4.0.1

To use, type


at the Linux prompt

2007/12/10 Tweaked load display

The load displayed when typing showload, or on launching SPM or MEG software was a bit verbose. I trimmed it. [RC]

2007/12/07 Updated MRIcro for Linux

Updated MRIcro to 1.39 build 4. Type startmricro & at Linux prompt to launch


2007/12/05 Linux server OS version upgrade

Major upgrade. Linux servers l08-l21 upgraded to RedHat Enterprise Linux 4, and added to pool of machines used by default to run SPM 5 (under Matlab 7.3) and MEG.

Thanks very much to Rob Anthony for handling this so smoothly!


2007/11/27 Updated load sharing back end, added load monitoring commands

New commands:

Type at Linux prompt



Shows load across all machines


Returns the machine currently loafing most


2007/11/27 Control verbosity of output when starting spm or meg software

  • If you want the scripts to print less verbose output when you launch commands do
    • mkdir ~/.loadshare
    Then one of
    • touch ~/.loadshare/verbose_less
    • touch ~/.loadshare/verbose_silent


2007/11/27 MEG wrapper update

All previous Elekta commands and many new ones (e.g., maxave, maxfilter) are now called through a new wrapper. All arguments are passed straight along to the command, which will be launched on an appropriate machine. Start a new xterm to bring them into path. [RC]

CbuImaging: ImagingComputingDevelopments (last edited 2013-03-07 21:24:00 by localhost)