martinpacesa / BindCraft

User friendly and accurate binder design pipeline
MIT License
319 stars 65 forks source link

For those with dssp and DAlphaBall.gcc failure on aarch64 #80

Closed jflucier closed 1 month ago

jflucier commented 1 month ago

Hi,

I am installing bindcraft on a Gracehopper gpu server with H100. The architecture is aarch64.

I got this error while executing bindcraft:

Initial trajectory pLDDT good, continuing: 0.92
Traceback (most recent call last):
  File "/tank/tatum/programs/BindCraft/bindcraft.py", line 109, in <module>
    trajectory = binder_hallucination(design_name, target_settings["starting_pdb"], target_settings["chains"],
  File "/tank/tatum/programs/BindCraft/functions/colabdesign_utils.py", line 108, in binder_hallucination
    _, beta, *_ = calc_ss_percentage(model_pdb_path, advanced_settings, 'B')
  File "/tank/tatum/programs/BindCraft/functions/biopython_utils.py", line 183, in calc_ss_percentage
    dssp = DSSP(model, pdb_file, dssp=advanced_settings["dssp_path"])
  File "/home/def-marechal/programs/conda/envs/bindcraft/lib/python3.10/site-packages/Bio/PDB/DSSP.py", line 385, in __init__
    version_string = subprocess.check_output([dssp, "--version"], text=True)
  File "/home/def-marechal/programs/conda/envs/bindcraft/lib/python3.10/subprocess.py", line 421, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/home/def-marechal/programs/conda/envs/bindcraft/lib/python3.10/subprocess.py", line 503, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/home/def-marechal/programs/conda/envs/bindcraft/lib/python3.10/subprocess.py", line 971, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/home/def-marechal/programs/conda/envs/bindcraft/lib/python3.10/subprocess.py", line 1863, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/tank/tatum/programs/BindCraft/functions/dssp'
done

Here is the procedure to resolve this error:

cd /path/to/install_dir
wget https://github.com/cmbi/dssp/archive/refs/tags/2.3.0.tar.gz
tar -xvzf 2.3.0.tar.gz
cd dssp-2.3.0/
./autogen.sh
./configure
make -j 12
cd /path/to/install_dir/BindCraft/functions
mv dssp dssp.bak
ln -s /tank/tatum/programs/dssp-2.3.0/mkdssp dssp

You will need also to compile the DAlphaBall.gcc. This executable source was a pain to find. Here again is the install procedure. Do not forget to modify the Makefile because it will not compile if you do not

cd /path/to/install_dir
git clone https://github.com/outpace-bio/DAlphaBall.git
cd DAlphaBall/src
# edit makefile, add FC=gfortran and the beginning
make
cd /path/to/install_dir/BindCraft/functions
mv DAlphaBall.gcc DAlphaBall.gcc.bak
ln -s /tank/tatum/programs/DAlphaBall/src/DAlphaBall.gcc .

Hope this helps others.

EricDeveaud commented 1 week ago

FYI make FC=gfortran avoid the need to hack the makefile

Eric