patrickbryant1 / AFProfile

Improved protein complex prediction with AlphaFold-multimer by denoising the MSA profile
Creative Commons Attribution 4.0 International
63 stars 0 forks source link

conda env issue, conflicts with package dependencies #13

Open christophista opened 2 months ago

christophista commented 2 months ago

Hello

The installation of AFPRofile does not work for me (Linux, Debian 12). Specifically, the conda environment cannot be created due to problems in dependencies. Do you have any suggestions on how to solve this issue? Please see underneath the error message.

Any help would be much appreciated. Thank you in advance Best regards, chrsitoph

$ conda env create -f afprofile.yml
Channels:
 - conda-forge
 - defaults
 - bioconda
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed
Channels:
 - conda-forge
 - defaults
 - bioconda
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package openmmforcefields-0.11.2-pyhd8ed1ab_1 requires ambertools >=20.0,<23, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ ambertools ==23.3 py312h1577c9a_6 is requested and can be installed;
└─ openmmforcefields ==0.11.2 pyhd8ed1ab_1 is not installable because it requires
   └─ ambertools >=20.0,<23 , which conflicts with any installable versions previously reported.
patrickbryant1 commented 2 months ago

Hi,

You can skip openmm and amber. Try and install these and it should work: https://github.com/patrickbryant1/Cfold/blob/master/pip_pkgs.txt

Best,

Patrick

christophista commented 2 months ago

Dear Patrick

Thank you for your swift answer.

I installed python 3.12.0 (extracted from the conda yml) and created a venv for it. Then installed the packages with pip as stated in your answer above. This resulted in a couple of errors, e.g.,

ERROR: Ignored the following versions that require a different python version: 1.21.2 Requires-Python >=3.7,<3.11; 1.21.3 Requires-Python >=3.7,<3.11; 1.21.4 Requires-Python >=3.7,<3.11; 1.21.5 Requires-Python >=3.7,<3.11; 1.21.6 Requires-Python >=3.7,<3.11
ERROR: Could not find a version that satisfies the requirement numpy==1.21.6 (from versions: 1.3.0, 1.4.1, 1.5.0, 1.5.1, 1.6.0, 1.6.1, 1.6.2, 1.7.0, 1.7.1, 1.7.2, 1.8.0, 1.8.1, 1.8.2, 1.9.0, 1.9.1, 1.9.2, 1.9.3, 1.10.0.post2, 1.10.1, 1.10.2, 1.10.4, 1.11.0, 1.11.1, 1.11.2, 1.11.3, 1.12.0, 1.12.1, 1.13.0, 1.13.1, 1.13.3, 1.14.0, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.14.5, 1.14.6, 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.15.4, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.16.6, 1.17.0, 1.17.1, 1.17.2, 1.17.3, 1.17.4, 1.17.5, 1.18.0, 1.18.1, 1.18.2, 1.18.3, 1.18.4, 1.18.5, 1.19.0, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.19.5, 1.20.0, 1.20.1, 1.20.2, 1.20.3, 1.21.0, 1.21.1, 1.22.0, 1.22.1, 1.22.2, 1.22.3, 1.22.4, 1.23.0rc1, 1.23.0rc2, 1.23.0rc3, 1.23.0, 1.23.1, 1.23.2, 1.23.3, 1.23.4, 1.23.5, 1.24.0rc1, 1.24.0rc2, 1.24.0, 1.24.1, 1.24.2, 1.24.3, 1.24.4, 1.25.0rc1, 1.25.0, 1.25.1, 1.25.2, 1.26.0b1, 1.26.0rc1, 1.26.0, 1.26.1, 1.26.2, 1.26.3, 1.26.4, 2.0.0b1, 2.0.0rc1, 2.0.0rc2, 2.0.0, 2.0.1, 2.1.0rc1, 2.1.0)
ERROR: No matching distribution found for numpy==1.21.6

Nevertheless, it still does not execute correctly. I also noticed that these package version are quite different than the ones from the conda environment (e.g., chex: conda: 0.1.85, pip: 0.1.5).

I will try to omit the openmm and amber steps as you suggested for the conda env also in your answer.

May thanks

Best regards, christoph

christophista commented 2 months ago

The creation of the environment succeeded, however, some package versions had to be adapted

## package manager miniforge3==24.5.0 ## instead of conda

conda create --yes -p env_afprofile python=3.10.0
pip install --upgrade "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
pip install ml-collections==0.1.1
pip install dm-haiku==0.0.11
pip install pandas==1.3.5
pip install biopython==1.81
pip install chex==0.1.86
pip install dm-tree==0.1.8
pip install immutabledict==2.0.0
pip install scipy
pip install tensorflow

Furthermore, I also had to adapt the src/AFP.sh script to run on an L40S system. The problem here was that tensoflor automatically claimed 75% of the memory (of 46G) leaving too little for JAX. Thus, the adapted src/AFP.sh script has the following settings before run_AFP.py

export XLA_PYTHON_CLIENT_PREALLOCATE=false
export XLA_PYTHON_CLIENT_MEM_FRACTION=.25
export XLA_PYTHON_CLIENT_ALLOCATOR=platform

Hope this helps. Happy to help if there are any questions or related problems Best regards, christoph