First, start an interactive session that uses GPU resources (Using O2 GPU resources) :
$ srun --pty -p gpu --gres=gpu:1 -t 0-05:00 --mem 24G -c 4 bash |
Load modules needed for later steps:
$ module load gcc/9.2.0 miniconda3/4.10.3 cuda/11.7 git/2.35.3 cmake/3.22.2 |
Navigate to the directory you would like to install OpenFold in and clone the repository:
$ git clone https://github.com/aqlaboratory/openfold.git $ cd openfold $ openfold_dir=$PWD |
While inside the OpenFold directory, create a Conda (Conda on O2) environment. In this example the name of the environment we will create is openfold_test
. This can be changed here, but it will carry over to other options in some later steps.
$ sed -i '4i\ - nvidia' environment.yml $ sed -i 's/conda-forge::cudatoolkit==11.3/conda-forge::cudatoolkit==11.6/g' environment.yml $ conda env create --name=openfold_test -f environment.yml |
Activate this new environment using the command
$ source activate openfold_test |
The prompt inside the terminal should change to contain the Conda environment name in parenthesis, in this case (openfold_test)
. We will add additional python modules and set up CUDA kernels using the commands below
# - This next command is optional, at this time if there are any errors from installing # - flash-attention, skip the step. (openfold_test)$ python3 -m pip install git+https://github.com/HazyResearch/flash-attention.git@5b838a8bef78186196244a4156ec35bbb58c337d (openfold_test)$ python3 -m pip install nvidia-pyindex (openfold_test)$ conda install -c conda-forge openmm=7.5.1 (openfold_test)$ wget -qnc https://raw.githubusercontent.com/deepmind/alphafold/main/docker/openmm.patch --no-check-certificate (openfold_test)$ (cd ${openfold_dir}/openfold-conda/lib/python3.7/site-packages; patch -s -p0 < openmm.patch) (openfold_test)$ python3 setup.py install |
Here, we will open another terminal and ssh into transfer.rc.hms.harvard.edu. This node is configured to efficiently download data to O2. For more information, please visit File Transfer .
$ ssh <HMS_ID>@transfer.rc.hms.harvard.edu $ cd /path/to/openfold/directory |
Download dependent files. These files are put into the correct directory automatically as long as we are in the OpenFold directory cloned earlier.
#Download Folding Resources $ wget -q -P openfold/resources \ https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt #Needed For Certian Tests $ mkdir -p tests/test_data/alphafold/common $ ln -rs openfold/resources/stereo_chemical_props.txt tests/test_data/alphafold/common #Download OpenFold Parameters $ bash scripts/download_openfold_params.sh openfold/resources #Download Alphafold Parameters $ wget https://storage.googleapis.com/alphafold/alphafold_params_2022-01-19.tar $ mkdir -p openfold/resources/params $ tar -xvf alphafold_params_2022-01-19.tar -C openfold/resources/params #Decompress test data $ gunzip tests/test_data/sample_feats.pickle.gz |
Afterwards, we will export the path to this directory. If you would like to have this program featured every time you log in , add the export line to your .bashrc file.
(openfold_test)$ export PATH=$openfold_dir:$PATH |
Note: When OpenFold is running it will require HH-Suite, which is now installed as a module on O2. Run |