Is there a version of Linux that we can get that will be fairly sure to be able to run FreeSurfer's RECON-ALL sequence? We have been using many different versions of FreeSurfer through the old CSURF interface on several different Linux installations (RH 7-9, Fedora Core 1). Now we want to upgrade to a recent recon-all command line version.
So far, I've never been able to get recon-all to run successfully (always crashes part way through) on either RedHat 9 or Fedora Core 1. The details of my most recent attempt with the newest RH9 release are shown below.
What Linux should I choose to have the best chance of running FreeSurfer? Ideally I would like to install the same version being used at MGH. Is that RH9, CentOS, Fedora? I'm running on a Dell Intel with plenty of power.
Alternatively I would be happy to upgrade my RedHat 9 system to the libraries FreeSurfer wants if I knew which versions I should upgrade to (and where to find them).
Do other successful recon-all users have any recommendations?
thanks, Jim
=============== Redhat 9 attempt to run "recon-all" using the recent Dev version: freesurfer-Linux-rh9-dev20051003-full (I had successfully reconstructed this data set using an earlier csurf version).
recon-all -subjid k1140 autorecon1 ... (many steps apparently worked, and then we got the following) [jim@hawking:/data2/surfdata/subjects/k1140/mri/] [2005-10-28 14:05:25] running: /usr/local/mni/bin/nu_estimate_np_and_em -parzen -log -sharpen 0.15 0.01 -iterations 50 -stop 0.001 -shrink 4 -auto_mask -nonotify -b_spline 1 -distance 200 -quiet -execute -clobber -nokeeptmp -tmpdir /usr/tmp/nu_correct_14439/ nu0.mnc nu1.imp
/usr/local/mni/bin/volume_stats: /lib/libgcc_s.so.1: version `GCC_3.3' not found (required by /usr/lib/libstdc++.so.6) nu_estimate_np_and_em: crashed while running volume_stats (termination status=256) nu_correct: crashed while running nu_estimate_np_and_em (termination status=256) ERROR: nu_correct Linux hawking 2.4.20-31.9 #1 Tue Apr 13 18:04:23 EDT 2004 i686 i686 i386 GNU/Linux recon-all exited with errors at Fri Oct 28 14:05:25 EDT 2005
(The non-development release, freesurfer-Linux-rh9-v2.1, stopped earlier than this with probelms finding tixwish libraries.)
-----Original Message----- From: Nick Schmansky [mailto:nicks@nmr.mgh.harvard.edu] Sent: Wednesday, October 26, 2005 5:35 PM To: James Voyvodic Cc: Freesurfer Mailing List Subject: Re: [Freesurfer] recon-all library dependencies
Jim,
The short answer is that I think you may need to have your Linux installation upgraded with newer versions of the 'base' libraries. Freesurfer requires, but does not include, a number of libraries that are normally included in most Linux installations. The newer 'dev' version of Freesurfer includes the following libraries in its 'lib' directory (which themselves are built against the 'base' libraries, as you have discovered):
GSL, Tcl/Tk/Tix/BLT, the MINC tools, and Qt
To see which libraries a freesurfer binary depends upon, use the 'ldd' command. On a rh7.3 system of ours (the oldest Linux platform we support), here is the output for one of the binaries, where the 'base' libraries are the ones in the /usr/lib and /usr/X11 directories:
[martinos01:~] (nmr-dev-env) ldd `which tkmedit` libtix.so.0 => /usr/local/freesurfer/dev/lib/tcltktixblt/lib/libtix.so.0 (0x40015000) libtk8.4.so => /usr/local/freesurfer/dev/lib/tcltktixblt/lib/libtk8.4.so (0x4004f000) libtcl8.4.so => /usr/local/freesurfer/dev/lib/tcltktixblt/lib/libtcl8.4.so (0x40112000) libglut.so.3 => /usr/lib/libglut.so.3 (0x401c8000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40204000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4020c000) libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40223000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40239000) libGLU.so.1 => /usr/lib/libGLU.so.1 (0x40241000) libGL.so.1 => /usr/lib/libGL.so.1 (0x402bc000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40318000) libdl.so.2 => /lib/libdl.so.2 (0x40325000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40328000) libgsl.so.0 => /usr/pubsw/packages/gsl/current/lib/libgsl.so.0 (0x403fe000) libgslcblas.so.0 => /usr/pubsw/packages/gsl/current/lib/libgslcblas.so.0 (0x4055a000) libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40587000) libtiff.so.3 => /usr/lib/libtiff.so.3 (0x405a5000) libz.so.1 => /usr/lib/libz.so.1 (0x405e9000) libm.so.6 => /lib/i686/libm.so.6 (0x405f7000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4061a000) libc.so.6 => /lib/i686/libc.so.6 (0x42000000) libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40647000) libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40693000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x406d6000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
So you can see that most of the 'base' libraries are version 6. The same is true for rh9. You can compare this output to your own output from the same command to discover which libraries on your system are old.
Also, I noticed that your mni tools seem to be in the /usr/local/mni directory, rather than in the $FREESURFER_HOME/lib/mni directory. You may have a lingering MINC_BIN_DIR statement in your .cshrc file, pointing to a prior installation of the MINC tools, but I don't think this is the heart of your problem (old libraries).
Unfortunately, there is no 'universal' freesurfer distribution for this very reason that Linux platforms have varying versions of the base libraries. If you have a sysadmin, perhaps he can upgrade the libs on your rh9 system. The newer Linux installations, like CentOS 4, have automatic upgrade tools, which alleviate this problem, and is why we will soon be abandoning our own rh7.3 and rh9 Linux systems at the MGH NMR center (which require manual upgrade).
Lastly, you can restart recon-all from different stages. Run 'recon-all -help' to see the different stages (basically autorecon1, autorecon2 and autorecon3).
Nick
On Wed, 2005-10-26 at 16:49 -0400, James Voyvodic wrote:
I've upgraded to the latest development release (freesurfer-Linux-rh9-dev20051003-full.tar.gz) running on Linux Redhat 9 on an x86 platform. Recon-all crashes, apparently because of failed library dependencies, with the following message:
/usr/local/mni/bin/volume_stats: /usr/lib/libstdc++.so.6: version `CXXABI_1.3' not found (required by /usr/local/mni/bin/volume_stats) /usr/local/mni/bin/volume_stats: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4' not found (required by /usr/local/mni/bin/volume_stats) nu_estimate_np_and_em: crashed while running volume_stats (termination status=256) nu_correct: crashed while running nu_estimate_np_and_em (termination status=256) ERROR: nu_correct Linux hawking 2.4.20-31.9 #1 Tue Apr 13 18:04:23 EDT 2004 i686 i686 i386 GNU/Linux recon-all exited with errors at Wed Oct 26 15:17:17 EDT 2005
It had previously crashed because it couldn't find libstdc++.so.6 at all,
so
I tried to appease it by using the old trick of linking libstdc++.so.5 to libstdc++.so.6, but obviously that wasn't enough.
So the main question is: what libraries are needed to run the new
version(s)
of FreeSurfer? Is there a way to download the missing libraries from somewhere?
When I installed and tried to run the most recent stable release (freesurfer-Linux-rh9-v2.1.tar.gz) I was foiled because I didn't have libtixwish installed, which is why I went to the development release that had more libraries. Yum says I have libstdc++ and doesn't offer a .so.6 variant. Do I need a different version of Linux?
A side question: If recon-all crashes part way through, is there a way to skip the successful steps when restarting or does it have to redo all the steps in its autorecon (e.g. autorecon1) script?
thanks, Jim
======================== James T. Voyvodic, Ph.D. Brain Imaging and Analysis Center Duke University Medical Center e-mail: jim.voyvodic@duke.edu
Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
Hi Jim,
we use Cent OS4, and it works pretty well.
cheers, Bruce On Mon, 31 Oct 2005, James Voyvodic wrote:
Is there a version of Linux that we can get that will be fairly sure to be able to run FreeSurfer's RECON-ALL sequence? We have been using many different versions of FreeSurfer through the old CSURF interface on several different Linux installations (RH 7-9, Fedora Core 1). Now we want to upgrade to a recent recon-all command line version.
So far, I've never been able to get recon-all to run successfully (always crashes part way through) on either RedHat 9 or Fedora Core 1. The details of my most recent attempt with the newest RH9 release are shown below.
What Linux should I choose to have the best chance of running FreeSurfer? Ideally I would like to install the same version being used at MGH. Is that RH9, CentOS, Fedora? I'm running on a Dell Intel with plenty of power.
Alternatively I would be happy to upgrade my RedHat 9 system to the libraries FreeSurfer wants if I knew which versions I should upgrade to (and where to find them).
Do other successful recon-all users have any recommendations?
thanks, Jim
=============== Redhat 9 attempt to run "recon-all" using the recent Dev version: freesurfer-Linux-rh9-dev20051003-full (I had successfully reconstructed this data set using an earlier csurf version).
recon-all -subjid k1140 autorecon1 ... (many steps apparently worked, and then we got the following) [jim@hawking:/data2/surfdata/subjects/k1140/mri/] [2005-10-28 14:05:25] running: /usr/local/mni/bin/nu_estimate_np_and_em -parzen -log -sharpen 0.15 0.01 -iterations 50 -stop 0.001 -shrink 4 -auto_mask -nonotify -b_spline 1 -distance 200 -quiet -execute -clobber -nokeeptmp -tmpdir /usr/tmp/nu_correct_14439/ nu0.mnc nu1.imp
/usr/local/mni/bin/volume_stats: /lib/libgcc_s.so.1: version `GCC_3.3' not found (required by /usr/lib/libstdc++.so.6) nu_estimate_np_and_em: crashed while running volume_stats (termination status=256) nu_correct: crashed while running nu_estimate_np_and_em (termination status=256) ERROR: nu_correct Linux hawking 2.4.20-31.9 #1 Tue Apr 13 18:04:23 EDT 2004 i686 i686 i386 GNU/Linux recon-all exited with errors at Fri Oct 28 14:05:25 EDT 2005
(The non-development release, freesurfer-Linux-rh9-v2.1, stopped earlier than this with probelms finding tixwish libraries.)
-----Original Message----- From: Nick Schmansky [mailto:nicks@nmr.mgh.harvard.edu] Sent: Wednesday, October 26, 2005 5:35 PM To: James Voyvodic Cc: Freesurfer Mailing List Subject: Re: [Freesurfer] recon-all library dependencies
Jim,
The short answer is that I think you may need to have your Linux installation upgraded with newer versions of the 'base' libraries. Freesurfer requires, but does not include, a number of libraries that are normally included in most Linux installations. The newer 'dev' version of Freesurfer includes the following libraries in its 'lib' directory (which themselves are built against the 'base' libraries, as you have discovered):
GSL, Tcl/Tk/Tix/BLT, the MINC tools, and Qt
To see which libraries a freesurfer binary depends upon, use the 'ldd' command. On a rh7.3 system of ours (the oldest Linux platform we support), here is the output for one of the binaries, where the 'base' libraries are the ones in the /usr/lib and /usr/X11 directories:
[martinos01:~] (nmr-dev-env) ldd `which tkmedit` libtix.so.0 => /usr/local/freesurfer/dev/lib/tcltktixblt/lib/libtix.so.0 (0x40015000) libtk8.4.so => /usr/local/freesurfer/dev/lib/tcltktixblt/lib/libtk8.4.so (0x4004f000) libtcl8.4.so => /usr/local/freesurfer/dev/lib/tcltktixblt/lib/libtcl8.4.so (0x40112000) libglut.so.3 => /usr/lib/libglut.so.3 (0x401c8000) libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40204000) libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4020c000) libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40223000) libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40239000) libGLU.so.1 => /usr/lib/libGLU.so.1 (0x40241000) libGL.so.1 => /usr/lib/libGL.so.1 (0x402bc000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40318000) libdl.so.2 => /lib/libdl.so.2 (0x40325000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40328000) libgsl.so.0 => /usr/pubsw/packages/gsl/current/lib/libgsl.so.0 (0x403fe000) libgslcblas.so.0 => /usr/pubsw/packages/gsl/current/lib/libgslcblas.so.0 (0x4055a000) libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40587000) libtiff.so.3 => /usr/lib/libtiff.so.3 (0x405a5000) libz.so.1 => /usr/lib/libz.so.1 (0x405e9000) libm.so.6 => /lib/i686/libm.so.6 (0x405f7000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4061a000) libc.so.6 => /lib/i686/libc.so.6 (0x42000000) libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40647000) libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40693000) libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x406d6000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
So you can see that most of the 'base' libraries are version 6. The same is true for rh9. You can compare this output to your own output from the same command to discover which libraries on your system are old.
Also, I noticed that your mni tools seem to be in the /usr/local/mni directory, rather than in the $FREESURFER_HOME/lib/mni directory. You may have a lingering MINC_BIN_DIR statement in your .cshrc file, pointing to a prior installation of the MINC tools, but I don't think this is the heart of your problem (old libraries).
Unfortunately, there is no 'universal' freesurfer distribution for this very reason that Linux platforms have varying versions of the base libraries. If you have a sysadmin, perhaps he can upgrade the libs on your rh9 system. The newer Linux installations, like CentOS 4, have automatic upgrade tools, which alleviate this problem, and is why we will soon be abandoning our own rh7.3 and rh9 Linux systems at the MGH NMR center (which require manual upgrade).
Lastly, you can restart recon-all from different stages. Run 'recon-all -help' to see the different stages (basically autorecon1, autorecon2 and autorecon3).
Nick
On Wed, 2005-10-26 at 16:49 -0400, James Voyvodic wrote:
I've upgraded to the latest development release (freesurfer-Linux-rh9-dev20051003-full.tar.gz) running on Linux Redhat 9 on an x86 platform. Recon-all crashes, apparently because of failed library dependencies, with the following message:
/usr/local/mni/bin/volume_stats: /usr/lib/libstdc++.so.6: version `CXXABI_1.3' not found (required by /usr/local/mni/bin/volume_stats) /usr/local/mni/bin/volume_stats: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4' not found (required by /usr/local/mni/bin/volume_stats) nu_estimate_np_and_em: crashed while running volume_stats (termination status=256) nu_correct: crashed while running nu_estimate_np_and_em (termination status=256) ERROR: nu_correct Linux hawking 2.4.20-31.9 #1 Tue Apr 13 18:04:23 EDT 2004 i686 i686 i386 GNU/Linux recon-all exited with errors at Wed Oct 26 15:17:17 EDT 2005
It had previously crashed because it couldn't find libstdc++.so.6 at all,
so
I tried to appease it by using the old trick of linking libstdc++.so.5 to libstdc++.so.6, but obviously that wasn't enough.
So the main question is: what libraries are needed to run the new
version(s)
of FreeSurfer? Is there a way to download the missing libraries from somewhere?
When I installed and tried to run the most recent stable release (freesurfer-Linux-rh9-v2.1.tar.gz) I was foiled because I didn't have libtixwish installed, which is why I went to the development release that had more libraries. Yum says I have libstdc++ and doesn't offer a .so.6 variant. Do I need a different version of Linux?
A side question: If recon-all crashes part way through, is there a way to skip the successful steps when restarting or does it have to redo all the steps in its autorecon (e.g. autorecon1) script?
thanks, Jim
======================== James T. Voyvodic, Ph.D. Brain Imaging and Analysis Center Duke University Medical Center e-mail: jim.voyvodic@duke.edu
Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
freesurfer@nmr.mgh.harvard.edu