gfzhou / OpenVS

Codes and scripts for "An artificial intelligence accelerated virtual screening platform for drug discovery"
Other
38 stars 6 forks source link

Dependency Conflict with CSD-API Installation in Mamba Environment #7

Open mrtnbg opened 1 month ago

mrtnbg commented 1 month ago

I’m trying to install the csd-python-api in a mamba environment for OpenVS, but I’m encountering a dependency conflict.

I used the indicated commands to install the openvs env:

conda create -n openvs python=3.9
conda activate openvs
conda install --file requirements.txt
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
pip install -e .

Then I used conda to install the csd-python-api as indicated on their webpage.

conda install --channel=https://conda.ccdc.cam.ac.uk csd-python-api

This gives a dependency error (see below) In short: csd-python-api requires scipy <1.11 and pin-1 cannot be installed

However, downgrading scipy consequently required downgrading scikit-learn and pandas as well.

conda install scipy==1.10.1
conda install scikit-learn==1.1.2
conda install pandas==1.3.5

Nevertheless, this worked and I could install the csd-python-api package. Additionally, the pin-1 was not an issue when I downgraded the above packages.

The requirements.txt for OpenVS suggests specific package versions for scipy, scikit-learn, pandas, and I’m concerned that downgrading could affect the performance of the code. Is there any recommended approach for resolving this dependency conflict without downgrading core packages like scipy, scikit-learn, and pandas? Would it be possible to use an older version of the CSD API, even though in the channel seems to be only one available (3.2.0). I would greatly appreciate any guidance you can provide.

Thanks in advance for your help!

ERROR MESSAGE:

(openvs) user@pcX:~/OpenVs/OpenVS$ conda install --channel=https://conda.ccdc.cam.ac.uk csd-python-api
Channels:
 - https://conda.ccdc.cam.ac.uk
 - conda-forge
 - nodefaults
 - nvidia
 - pytorch
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: / warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE
failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package csd-python-api-3.2.0-py39_0 requires scipy <1.11, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ csd-python-api is installable with the potential options
│  ├─ csd-python-api 3.2.0 would require
│  │  └─ scipy <1.11  with the potential options
│  │     ├─ scipy [0.17.1|0.18.0|...|1.2.1] would require
│  │     │  └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed;
│  │     ├─ scipy [0.17.1|0.18.0|0.18.1|0.19.1] would require
│  │     │  └─ python 3.4* , which can be installed;
│  │     ├─ scipy [0.17.1|0.18.0|...|1.1.0] would require
│  │     │  └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed;
│  │     ├─ scipy [0.18.1|0.19.0|0.19.1|1.0.0|1.0.1] would require
│  │     │  └─ python 3.6* , which can be installed;
│  │     ├─ scipy [1.1.0|1.2.0|...|1.5.3] would require
│  │     │  └─ python >=3.6,<3.7.0a0 , which can be installed;
│  │     ├─ scipy [1.1.0|1.2.0|...|1.7.3] would require
│  │     │  └─ python >=3.7,<3.8.0a0 , which can be installed;
│  │     ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│  │     │  └─ python >=3.8,<3.9.0a0 , which can be installed;
│  │     ├─ scipy [1.10.0|1.10.1|...|1.9.3], which can be installed;
│  │     ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
│  │     │  └─ python >=3.10,<3.11.0a0 , which can be installed;
│  │     └─ scipy [1.10.0|1.10.1|1.11.3|1.9.3] would require
│  │        └─ python >=3.11,<3.12.0a0 , which can be installed;
│  ├─ csd-python-api 3.2.0 would require
│  │  └─ python 3.11.* , which can be installed;
│  └─ csd-python-api 3.2.0 would require
│     └─ python 3.7.* , which can be installed;
├─ pin-1 is not installable because it requires
│  └─ python 3.9.* , which conflicts with any installable versions previously reported;**
└─ scipy 1.11.3.*  is installable with the potential options
   ├─ scipy [1.10.0|1.10.1|...|1.9.3], which can be installed (as previously explained);
   ├─ scipy [1.10.0|1.10.1|1.11.3|1.9.3], which can be installed (as previously explained);
   ├─ scipy 1.11.3 conflicts with any installable versions previously reported;**
   └─ scipy 1.11.3 would require
      └─ python >=3.12,<3.13.0a0 , which can be installed.
gfzhou commented 1 month ago

Thanks for raising this issue, and sorry about the dependency conflict. The CSD package is only needed for the final filtering step. To avoid conflicts, I've set up a new conda environment just for CSD. I only switch to the CSD environment when computing the torsion outliers during filtering. I'll update the README to make this clear.