AFProfile icon indicating copy to clipboard operation
AFProfile copied to clipboard

conda env issue, conflicts with package dependencies

Open christophista opened this issue 1 year ago • 3 comments

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.

christophista avatar Aug 26 '24 08:08 christophista

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

patrickbryant1 avatar Aug 26 '24 09:08 patrickbryant1

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 avatar Aug 26 '24 12:08 christophista

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

christophista avatar Aug 27 '24 15:08 christophista