google-deepmind / alphafold3

AlphaFold 3 inference pipeline.
Other
5.13k stars 576 forks source link

cmake/pip local build #77

Closed OH-AU closed 5 days ago

OH-AU commented 6 days ago

This might be a feature request - neither cmake nor "pip wheel ." seem to result in a complete install.

Typically when installing software with cmake I can specify a CMAKE_INSTALL_PREFIX - alphafold 3 doesn't seem to work. Assuming I have all existing prerequisites. Expectation:

git clone --recursive  https://github.com/google-deepmind/alphafold3 alphafold3-git
mkdir build; cd build

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/apps/alphafold/3 -DBUILD_TESTING=OFF -DPYTHON_EXECUTABLE=$(which python)  ../

make install

Unfortunately, at the end of this process, although there's ~900MB of data there, including the relevant cpp.cpython-312-x86_64-linux-gnu.so file, it doesn't include any of the necessary python scripts (e.g. run_alphafold.py).

I would be nice if make install would copy everything required for a running alphafold install into the designated CMAKE_INSTALL_PREFIX directory. Note: it seems expectation is to build and run from the same directory although that isn't working for me atm either?

pip3 wheel . (folllowed by pip install of said wheel) only seems to install build_data into the bin folder (which doesn't work when attempting to run) as well as the necessary packages into site-packages . Again, no run_alphafold.py anywhere.

I suspect it doesn't help that I'm attempting to install into python 3.12 as that's the oldest version of python on our systems (which seems to cause this issue: https://github.com/google-deepmind/alphafold3/issues/39#issuecomment-2477188413 . I'll likely try to go down the conda path and follow the procedure documented in https://github.com/google-deepmind/alphafold3/issues/39

charlesbeattie commented 6 days ago

CMakeLists.txt is used by pyproject.toml via scikit_build_core.

To build outside docker with python3.11:

python3.11 -m venv ~/af3_venv
source ~/af3_venv/bin/activate
git clone --recursive  https://github.com/google-deepmind/alphafold3 alphafold3-git
pip install -e ./alphafold3-git
build_data

I'll take a look at making sure not too much data is installed.

Augustin-Zidek commented 5 days ago

Thanks for reporting. You are right, this was indeed Python 3.12 incompatibility. This has been fixed in https://github.com/google-deepmind/alphafold3/commit/23e3d46d4ca126e8731e8c0cbb5673e9a848ceb5.