CTFfind problems during v2 tutorial

Hi all,

Like many of you I am trying to familiarize with v2 and is currently doing a tutorial run. Everything with the installation seemed to run fine and I could import the tutorial movies and perform the motion corrections. However, when running the CTF estimation it does not work. The job runs to completion without an error message, but CTFfind does not work resulting in all micrographs ending up in the “failed” category.

Does anyone know what is causing this problem? We already have CTFfind previously installed on the work station, could this be messing with the cryoSPARC application?

Thanks in advance!

Cheers,
Andreas Carlström

Hi Andreas,

I’ve had this problem. It was because CTFFIND could not find one of it’s libraries (libtiff.so.3? I think).

I was able to fix this by sourcing the library in the same shell where I start cryosparc.

Best,
Charles

Hi Andreas,

The simplest fix would be to make a symbolic link to redirect all request of libtiff.so.3 to libtiff.so.5. On my Ubuntu-X86_64 this is done by:

sudo ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3

Reference:

Zhijie

The version of CTFFind that cryoSPARC v2 is including appears to have an issue on my system as well.

I’m running RHEL 7 and already have libtiff installed but as you can see the executable is unable to find libtiff.so.3 as CharlesBayly-Jones pointed out.

$ ldd cryosparc2_worker/deps/ext/ctffind/bin/ctffind
linux-vdso.so.1 =>  (0x00007ffc939e3000)
libz.so.1 => /lib64/libz.so.1 (0x00007fdaa719a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdaa6f96000)
libm.so.6 => /lib64/libm.so.6 (0x00007fdaa6c94000)
libtiff.so.3 => not found
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fdaa698d000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fdaa6777000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdaa655b000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdaa618e000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdaa73b0000)

On my system the libtiff package installs the libtiff.so.5 library and not the .so.3 library:

# rpm -ql libtiff
/usr/lib64/libtiff.so.5
/usr/lib64/libtiff.so.5.2.0
/usr/lib64/libtiffxx.so.5
/usr/lib64/libtiffxx.so.5.2.0
/usr/share/doc/libtiff-4.0.3
/usr/share/doc/libtiff-4.0.3/COPYRIGHT
/usr/share/doc/libtiff-4.0.3/README
/usr/share/doc/libtiff-4.0.3/RELEASE-DATE
/usr/share/doc/libtiff-4.0.3/VERSION

Depending on you distribution you may be able to install a compatibility package for libtiff. On my RHEL 7 (CentOS 7) system the package name is compat-libtiff3. Once I installed this package the executable was able to find the library.

$ ldd cryosparc2_worker/deps/ext/ctffind/bin/ctffind
linux-vdso.so.1 =>  (0x00007fff2adcf000)
libz.so.1 => /lib64/libz.so.1 (0x00007f7f660b8000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f7f65eb4000)
libm.so.6 => /lib64/libm.so.6 (0x00007f7f65bb2000)
libtiff.so.3 => /lib64/libtiff.so.3 (0x00007f7f6594d000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f7f65646000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f7f65430000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7f65214000)
libc.so.6 => /lib64/libc.so.6 (0x00007f7f64e47000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7f662ce000)
libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007f7f64bf2000)

The package may be named differently on other distributions but for RHEL 7 and CentOS 7 this should be all you need.

Hope this helps