Skip to content

Commit 4c530cc

Browse files
committed
Add CUDA 12.1/12.4 environment setup files
Introduced conda environment YAMLs and pip requirements for CUDA 12.1 and 12.4 support in the 'envs' directory. Updated installation documentation to guide users on using these files and troubleshooting environment setup. Minor README correction for pipeline argument.
1 parent a1182c6 commit 4c530cc

File tree

6 files changed

+202
-2
lines changed

6 files changed

+202
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ pipeline_outputs/${now:%Y-%m-%d}_${now:%H-%M-%S}_open_source_demo
110110
```
111111
in the directory that you are running the image file from.
112112

113-
This runs only the design stage of the pipeline. In order to continue through sequence-fitting with [LigandMPNN](https://github.com/dauparas/LigandMPNN) and folding with [Chai1](https://github.com/chaidiscovery/chai-lab), pass the command line argument: `stop_step=''`. Note that Chai1 cannot run on all GPU architectures.
113+
This runs only the design stage of the pipeline. In order to continue through sequence-fitting with [LigandMPNN](https://github.com/dauparas/LigandMPNN) and folding with [Chai1](https://github.com/chaidiscovery/chai-lab), pass the command line argument: `stop_step='end'`. Note that Chai1 cannot run on all GPU architectures.
114114

115115
Pipeline runs can be resumed by passing `outdir=/path/to/your/output/directory`.
116116

doc/source/installation.md

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,38 @@ solution.
3030
</details>
3131

3232

33-
## Installation from Source
33+
## Creating Your Own Environment
34+
You do not need to install RFdiffusion2 itself, but you do need to install several dependencies to be able to use the Python scripts that will run the inference calculations.
35+
This is what the Apptainer image above supplies, an environment where the dependencies required by RFdiffusion2 have already been installed.
36+
If this container works on your computing system, we highly recommend using it.
37+
38+
However, if you need to set up your own environment, the instructions below should help you determine the dependency versions you need to get RFdiffusion2 running on your system.
39+
40+
### Using Provided Environment Files
41+
We have created a few environment files to automatically generate a conda environment that will allow RFdiffusion2 to run.
42+
> Note: Due to variations in GPU types and drivers, we are not able to guarantee that any of the provided environment files successfully install all the required dependencies. See the section below if none of the provided environment files are appropriate for your computing system.
43+
44+
You can find the prepared environment files in the `envs` directory
45+
- `cuda121_env.yml` - This is appropriate for systems able to run CUDA 12.1 and PyTorch 2.4.0
46+
- This uses requirements_cuda121.txt to install dependencies via `pip`
47+
- `cuda124_env.yml` - This is appropriate for systems able to run CUDA 12.4 and PyTorch 2.4.0
48+
- This uses requirements_cuda124.txt to install dependencies via `pip`
49+
50+
If you have trouble with these files but they *should* work based on your system specifications here are a few things to try:
51+
1. Separate the creation of the environment and the installation of dependencies via pip:
52+
1. Remove the last two lines from the above `.yml` files
53+
2.
54+
```
55+
conda env create -f cuda121_env.yml
56+
conda activate rfd2_env
57+
pip install -r requirements_121.txt
58+
```
59+
This will force the dependencies you want installed by CUDA to be installed before pip is used.
60+
2. Check to make sure the python that is being referenced is the one from your conda environment once it is activated. On clusters different modules you have imported might overrule the python in your conda environment. You can either manually give the path to your Python or change your system settings or environment variables to prefer the environment's python installation.
61+
3. You can try to install any dependencies that pip hangs on using CUDA instead of pip.
62+
If you have created an environment file that runs RFdiffusion for a different CUDA version or other dependency versions, create a PR to add it to the `envs` directory.
63+
64+
### Creating the Environment Manually
3465
Some of the dependencies listed below will vary based on your system, especially the version of CUDA available on your cluster.
3566
You will likely need to change some of the versions of the tools below to successfully install RFdiffusion2.
3667
The instructions below are for CUDA 12.4 and PyTorch 2.4.
@@ -104,6 +135,7 @@ For some useful troubleshooting tips, see the [Troubleshooting](#install_trouble
104135
ruff==0.6.2 \
105136
scipy==1.13.1 \
106137
seaborn==0.13.2 \
138+
submitit \
107139
sympy==1.13.2 \
108140
tmtools \
109141
tqdm==4.65.0 \

envs/cuda121_env.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: rfd2_env_f
2+
channels:
3+
- nvidia
4+
- https://conda.rosettacommons.org
5+
- pytorch
6+
dependencies:
7+
- python=3.11
8+
- pip
9+
- numpy<2
10+
- matplotlib
11+
- jupyterlab
12+
- conda-forge::openbabel=3.1.1
13+
- pytorch=2.4
14+
- pytorch-cuda=12.1
15+
- pyrosetta
16+
- pip:
17+
- -r requirements_cuda121.txt

envs/cuda124_env.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: rfd2_env_124
2+
channels:
3+
- nvidia/label/cuda-12.4.0
4+
- https://conda.rosettacommons.org
5+
- pytorch
6+
- dglteam/label/th24_cu124
7+
dependencies:
8+
- python=3.11
9+
- pip
10+
- numpy<2
11+
- matplotlib
12+
- jupyterlab
13+
- conda-forge::openbabel=3.1.1
14+
- dgl
15+
- pytorch=2.4.0
16+
- pytorch-cuda=12.4
17+
- pyrosetta
18+
- pip:
19+
- -r requirements_cuda124.txt

envs/requirements_cuda121.txt

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# PyG / PyTorch Geometric dependencies
2+
--find-links https://data.pyg.org/whl/torch-2.4.0+cu121.html
3+
pyg-lib
4+
torch-scatter
5+
torch-sparse
6+
torch-cluster
7+
torch-spline-conv
8+
9+
# DGL (Deep Graph Library)
10+
--find-links https://data.dgl.ai/wheels/torch-2.4/cu121/repo.html
11+
dgl==2.4.0
12+
13+
# RAPIDS nightly
14+
--extra-index-url https://pypi.anaconda.org/rapidsai-wheels-nightly/simple
15+
pylibcugraphops-cu12>=24.6.0a24
16+
17+
# General Python packages
18+
hydra-core==1.3.1
19+
ml-collections==0.1.1
20+
addict==2.4.0
21+
assertpy==1.1.0
22+
biopython==1.83
23+
colorlog
24+
compact-json
25+
cython==3.0.0
26+
cytoolz==0.12.3
27+
debugpy==1.8.5
28+
deepdiff==6.3.0
29+
dm-tree==0.1.8
30+
e3nn==0.5.1
31+
einops==0.7.0
32+
executing==2.0.0
33+
fastparquet==2024.5.0
34+
fire==0.6.0
35+
GPUtil==1.4.0
36+
icecream==2.1.3
37+
ipdb==0.13.11
38+
ipykernel==6.29.5
39+
ipython==8.27.0
40+
ipywidgets
41+
mdtraj==1.10.0
42+
numba
43+
omegaconf==2.3.0
44+
opt_einsum==3.3.0
45+
pandas==1.5.0
46+
plotly==5.16.1
47+
pre-commit==3.7.1
48+
py3Dmol==2.2.1
49+
pyarrow==17.0.0
50+
pydantic
51+
pyrsistent==0.19.3
52+
pytest-benchmark
53+
pytest-cov==4.1.0
54+
pytest-dotenv==0.5.2
55+
pytest==8.2.0
56+
rdkit==2024.3.5
57+
RestrictedPython
58+
ruff==0.6.2
59+
scipy==1.13.1
60+
seaborn==0.13.2
61+
submitit
62+
sympy==1.13.2
63+
tmtools
64+
tqdm==4.65.0
65+
typer==0.12.5
66+
wandb==0.13.10
67+
biotite
68+
torchdata==0.9.0

envs/requirements_cuda124.txt

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# PyG / PyTorch Geometric dependencies
2+
--find-links https://data.pyg.org/whl/torch-2.4.0+cu124.html
3+
pyg-lib
4+
torch-scatter
5+
torch-sparse
6+
torch-cluster
7+
torch-spline-conv
8+
9+
# RAPIDS nightly
10+
--extra-index-url https://pypi.anaconda.org/rapidsai-wheels-nightly/simple
11+
pylibcugraphops-cu12>=24.6.0a24
12+
13+
# General Python packages
14+
hydra-core==1.3.1
15+
ml-collections==0.1.1
16+
addict==2.4.0
17+
assertpy==1.1.0
18+
biopython==1.83
19+
colorlog
20+
compact-json
21+
cython==3.0.0
22+
cytoolz==0.12.3
23+
debugpy==1.8.5
24+
deepdiff==6.3.0
25+
dm-tree==0.1.8
26+
e3nn==0.5.1
27+
einops==0.7.0
28+
executing==2.0.0
29+
fastparquet==2024.5.0
30+
fire==0.6.0
31+
GPUtil==1.4.0
32+
icecream==2.1.3
33+
ipdb==0.13.11
34+
ipykernel==6.29.5
35+
ipython==8.27.0
36+
ipywidgets
37+
mdtraj==1.10.0
38+
numba
39+
omegaconf==2.3.0
40+
opt_einsum==3.3.0
41+
pandas==1.5.0
42+
plotly==5.16.1
43+
pre-commit==3.7.1
44+
py3Dmol==2.2.1
45+
pyarrow==17.0.0
46+
pydantic
47+
pyrsistent==0.19.3
48+
pytest-benchmark
49+
pytest-cov==4.1.0
50+
pytest-dotenv==0.5.2
51+
pytest==8.2.0
52+
rdkit==2024.3.5
53+
RestrictedPython
54+
ruff==0.6.2
55+
scipy==1.13.1
56+
seaborn==0.13.2
57+
submitit
58+
sympy==1.13.2
59+
tmtools
60+
tqdm==4.65.0
61+
typer==0.12.5
62+
wandb==0.13.10
63+
biotite
64+
torchdata==0.9.0

0 commit comments

Comments
 (0)