Hello Amal,

The error that is /likely/ to be causing the problem you are having is reported very early in the screen shot you sent. Notice that about 10 lines from the top of the screen shot there is a line that reads:

   mris_make_surfaces: error while loading shared libraries:
   libnetcdf.so.6: cannot open shared object file: No such file or
   directory

Unfortunately, the mris_make_surfaces binary that is part of FreeSurfer v5.3.0-HCP is linked to use a very specific version of the libnetcdf.so shared library, libnetcdf.so.6. But that version of the library is not distributed with Ubuntu 16.04. In fact, you may not have any version of libnetcdf.so installed on your machine.

Try the following:

1. Get the latest netcdf libraries and interfaces installed on your system.

   $ dpkg -l | grep netcdf

   If this returns no results, then no netcdf libraries or interfaces
   are installed.

   If it returns only a line that ends with "Interface for scientific
   data access to large binary data", then the interface files are
   installed, but not an actual implementation of the interface.

   In either of these cases, try the following command to install the
   latest libnetdcf interface and development library:

   $ sudo apt install libnetcdf-dev

   Once that installation succeeds, you should issue another dpkg
   command like above and see results indicating that both the
   interface files and the development library are installed.

   $ dpkg -l | grep netcdf
   ii  libnetcdf-dev    1:4.4.0-2    amd64    creation, access, and
   sharing of scientific data
   ii  libnetcdf11      1:4.4.0-2    amd64    Interface for scientific
   data access to large binary data

   This indicates that you have the latest copies installed.

   You should be able to find a copy of libnetcdf.so.11 in your
   /usr/lib/x86_64_linux_gnu directory now. A command like:

   $ sudo ls -l /usr/lib/x86_64-linux-gnu/libnetcdf*

   should show /usr/lib/x86_64-linux-gnu/libnetcdf.so.11 linked to
   libnetcdf.so.11.0.0.

2. Install a 64-bit copy of version 6 of the libnetcdf.so library

   Visit https://launchpad.net/ubuntu/precise/amd64/libnetcdf6/1:4.1.1-6

   Under "Downloadable files" on that page, select the link to download
   libnetcdf6_4.1.1-6_amd64.deb. (You may be warned that this type of
   file can harm your computer. Keep/download the file anyhow. Do not
   automatically open the file, just save it.)

   Find the downloaded libnetcdf6_4.1.1-6_amd64.deb file.

   You should not do a simple installation using the
   libnetcdf6_4.1.1-6_amd64.deb file and the Ubuntu Software
   Installation application. Instead, you should open the deb file with
   the Ubuntu Archive Manager (right click on the file in your file
   manager and select Open With --> Archive Manager). The archive will
   contain 3 files: control.tar.gz, data.tar.gz, and debian-binary.
   Extract the data.tar.gz file, by selecting it in the Archive Manager
   and dragging it to a temporary directory in your file manager.

   In my case the libnetcdf6_4.1.1-6_amd64.deb file was put in my
   ${HOME}/Downloads directory, and I put the data.tar.gz file in the
   ${HOME}/Downloads/tmp directory.

   Then you'll need to extract out the contents of the data.tar.gz file
   to a directory that you will add to your LD_LIBRARY_PATH environment
   variable so that libnetcdf.so.6 is found when mris_make_surfaces is
   run. Use commands similar to the following:

   $ cd
   $ mkdir shared_libraries
   $ cd shared_libraries
   $ tar xvf ${HOME}/Downloads/tmp/data.tar.gz

   This should create a usr subdirectory below your shared_libraries
   subdirectory and if you look in ${HOME}/shared_libraries/usr/lib you
   should see files like:

   $ cd
   $ cd shared_libraries/usr/lib
   $ ls
   libcf.so.0      libnetcdf_c++.so.5      libnetcdff.so.5
   libnetcdf.so.6      netcdf.pc
   libcf.so.0.0.0  libnetcdf_c++.so.5.0.0  libnetcdff.so.5.0.0
   libnetcdf.so.6.0.0
   $

   Next, you'll need to set your LD_LIBRARY_PATH environment variable
   before running any script that uses mris_make_surfaces so that when
   looking for shared libraries it will look in your
   ${HOME}/shared_libraries/usr/lib directory before looking in the
   remaining "standard" locations.

   $ export LD_LIBRARY_PATH=${HOME}/shared_libraries/usr/lib

   Note: If your LD_LIBRARY_PATH already has some value, you'll want to
   use a command like:

   $ export
   LD_LIBRARY_PATH=${HOME}/shared_libraries/usr/lib:${LD_LIBRARY_PATH}

   instead of the earlier command.

   Note: You only want to use version 6 of the libnetcdf library when
   using FreeSurfer v5.3.0-HCP. You don't want to use it for any other
   software on your system that happens to use libnetcdf because that
   other software may depend upon behavior in later versions of the
   libnetcdf library. That is why it is safer to not allow version 6 to
   be installed in /usr/lib where it might be found by other software
   using the libnetcdf library. Basically, you don't want to
   contaminate your standard library locations with old libraries.

   That is also why you should only set the LD_LIBRARY_PATH environment
   variable as shown above when you are running FreeSurfer v5.3.0-HCP.

Once you've installed version 6 of the libnetcdf library in a directory and made sure LD_LIBRARY_PATH points to that directory, try running the FreeSurferPipeline.sh script again.

Lastly, in the future please ask questions like this to the HCP-Users mailing list. That way other people can either benefit from the answer if it is correct or correct my answer if I've made mistakes. I've gone ahead and sent this response to that list and to your email address too because I don't know if you are subscribed to the list.

You can subscribe to the HCP-Users mailing list by visiting https://www.humanconnectome.org/contact-us. There is a place to join our two email lists, HCP-Announce and HCP-Users, on the right hand side of that page.

Hope that's helpful,

  Tim


On 2018-07-12 04:51 PM, Boukhdhir Amal wrote:
Hello Tim,


After running the PreFreesurferHCP pipeline in the HCP connectome course and reproducing that on my computer successfully, I am getting thgis issue with the Freesurfer pipeline (as a second step in the structural pipeline).

I attached the reconn-all.log file and a screenshot of the error.

The freesurfer version I am using is:*freesurfer-Linux-centos6_x86_64-stable-pub-v5.3.0-HCP*
*
*
These are more informations related to the distribution I am using:
*
*
*
aboukhdhir@thuya:/mnt/home_sq/aboukhdhir$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/";
SUPPORT_URL="http://help.ubuntu.com/";
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/";
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

*
*
*
I have also tried the same pipeline on 2 other computers with different RAMs and I am getting the same error.
*
*
Do you please have an idea why I am getting this error and how can I solve it ?


Best,
Amal





--
/Timothy B. Brown
Business & Technology Application Analyst III
Pipeline Developer (Connectome Coordination Facility)
tbbrown(at)wustl.edu
/
------------------------------------------------------------------------
The material in this message is private and may contain Protected Healthcare Information (PHI). If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.

_______________________________________________
HCP-Users mailing list
[email protected]
http://lists.humanconnectome.org/mailman/listinfo/hcp-users

Reply via email to