less than 1 minute read

ACE2 is (or was) a software package for contrast transfer function (CTF) estimation and correction. It was written in an early version of objective-c and linked to several libraries of very old versions. As such, on a modern Linux system, such as Ubuntu, you have to do some extra work to get it working after downloading and extracting the ACE2 package.

  1. ACE2 directly calls for libobjc.so.2 in the user lib. There are a number of ways to perhaps link a newer version of the libobjc shared lib, but an rpm package is available to provide the exact file. As such, download the rpm and extract the files using rpm2cpio. Copy the two files libobjc.so.2 and libobjc.so.2.0.0 into /usr/lib/x86_64-linux-gnu will satisfy the need.
  2. Install libfftw3-3 and libgsl23 using apt. Note that the version number may vary depending on which version of Ubuntu you are running.
  3. Install libgsl-dev. However, ACE2 directly calls libgsl.so.0 and we have to manually make a symbolic link. Go to /usr/lib/x86_64-linux-gnu and run the following:
    sudo ln -s libgsl.so libgsl.so.0
  4. Now you should be able to run ace2.exe and ace2correct.exe!

Updated 11/13/2024 to clarify a few libs and make steps version independent whenever possible.