From 9bbe9713220a8de203a2c6d46bbd5a87e5050439 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Wed, 1 Oct 2025 15:48:02 -0700 Subject: [PATCH 01/13] Add and restructure documentation for RFdiffusion2 Introduces new documentation files including installation instructions, overview, and links to README and license. Updates Sphinx configuration to include sphinx-copybutton and reorganizes index.rst for improved navigation. The GitHub workflow now installs sphinx-copybutton. README updated with a link to the documentation site. --- .github/workflows/documentation_workflow.yml | 54 +++---- README.md | 2 + doc/source/conf.py | 4 +- doc/source/index.rst | 37 ++--- doc/source/installation.md | 150 +++++++++++++++++++ doc/source/license_link.rst | 3 + doc/source/overview.md | 4 + doc/source/readme_link.rst | 3 + 8 files changed, 210 insertions(+), 47 deletions(-) create mode 100644 doc/source/installation.md create mode 100644 doc/source/license_link.rst create mode 100644 doc/source/overview.md create mode 100644 doc/source/readme_link.rst diff --git a/.github/workflows/documentation_workflow.yml b/.github/workflows/documentation_workflow.yml index eae2493..df9f246 100644 --- a/.github/workflows/documentation_workflow.yml +++ b/.github/workflows/documentation_workflow.yml @@ -1,27 +1,27 @@ -name: documentation - -on: [push, pull_request, workflow_dispatch] - -permissions: - contents: write - -jobs: - docs: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - - name: Install dependencies - run: | - pip install sphinx sphinx_mdinclude furo - - name: Sphinx build - run: | - sphinx-build -M html doc/source/ doc/build/ - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - with: - publish_branch: gh-pages - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: doc/build/html - force_orphan: true +name: documentation + +on: [push, pull_request, workflow_dispatch] + +permissions: + contents: write + +jobs: + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + - name: Install dependencies + run: | + pip install sphinx sphinx_mdinclude furo sphinx-copybutton + - name: Sphinx build + run: | + sphinx-build -M html doc/source/ doc/build/ + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + with: + publish_branch: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: doc/build/html + force_orphan: true diff --git a/README.md b/README.md index 2418f4b..bdcab50 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Open source code for RFdiffusion2 as described in the following pre-print. } ``` +More detailed information about how to run, install, and use RFdiffusion2 can be found [here](https://rosettacommons.github.io/RFdiffusion2/). + ## Set-up 1. **Clone the repo.** diff --git a/doc/source/conf.py b/doc/source/conf.py index 44f943d..a3c8c28 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -19,8 +19,8 @@ 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx_mdinclude', - #'myst_parser', # to use markdown instead of ReST' - + #'myst_parser', # to use markdown instead of ReST + 'sphinx_copybutton', ] #myst_enable_extensions = ["colon_fence"] # see https://mystmd.org/guide/syntax-overview for more information diff --git a/doc/source/index.rst b/doc/source/index.rst index 5b27424..e46481b 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -3,24 +3,25 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to the Official Documentation for RFdiffusion2! -======================================================= +Welcome to the Official Documentation for `RFdiffusion2 `_! +=========================================================================================================== +.. mdinclude:: overview.md .. toctree:: - :maxdepth: 2 + :maxdepth: 1 :caption: Contents: - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - -.. include:: new.rst - -.. include:: modules.rst - -.. mdinclude:: ../../README.md - - + + Overview + readme_link.rst + license_link.rst + installation.md + +.. Indices and tables +.. ================== +.. +.. * :ref:`genindex` +.. * :ref:`modindex` +.. * :ref:`search` +.. +.. .. include:: new.rst +.. .. include:: modules.rst diff --git a/doc/source/installation.md b/doc/source/installation.md new file mode 100644 index 0000000..cd6fed4 --- /dev/null +++ b/doc/source/installation.md @@ -0,0 +1,150 @@ +# Installing RFdiffusion2 + +## Apptainer Image (Recommended) +There is an Apptainer image provided in the RFdiffusion2 repository, it is located at `RFdiffusion2/rf_diffusion/exec/bakerlab_rf_diffusion_aa.sif`. This file can be run with either Apptainer or Singularity, if you have any issues using it please [create an issue](https://github.com/RosettaCommons/RFdiffusion2/issues). An example of how to use this image is given in the [README](readme_link.html#inference). + +If you need to generate your own image, the `.spec` file used to generate the given `.sif` file can be found at `RFdiffusion2/rf_diffusion/exec/rf_diffusion_aa.spec`. + +## Installation from Source +Some of the dependencies listed below will vary based on your system, especially the version of CUDA available on your cluster. +You will likely need to change some of the versions of the tools below to successfully install RFdiffusion2. +The instructions below are for CUDA 12.4 and PyTorch 2.4. +For some useful troubleshooting tips, see the [Troubleshooting](#troubleshooting) section below. + +1. Create a conda environment using [miniforge](https://github.com/conda-forge/miniforge) and activate it +1. Point to the correct [NVIDIA-CUDA channel](https://anaconda.org/nvidia/cuda/labels), and install [PyTorch](https://pytorch.org/), Python 3.11, and [pip](https://pip.pypa.io/en/latest/) based on what is available on your system: + ``` + conda install --yes \ + -c nvidia/label/cuda-12.4.0 \ + -c https://conda.rosettacommons.org \ + -c pytorch \ + -c dglteam/label/th24_cu124 \ + python==3.11 \ + pip \ + numpy"<2" \ + matplotlib \ + jupyterlab \ + conda-forge::openbabel==3.1.1 \ + cuda \ + pytorch==2.4 \ + pytorch-cuda==12.4 \ + pyrosetta + ``` + > **REMEMBER:** You will need to change your CUDA version based on what is available on your system. This will need to be changed in the + > NVIDIA channel, the dglteam channel, the pytorch version, and the pytorch-cuda version. + +1. Use pip to install several Python libraries: + ``` + pip install \ + hydra-core==1.3.1 \ + ml-collections==0.1.1 \ + addict==2.4.0 \ + assertpy==1.1.0 \ + biopython==1.83 \ + colorlog \ + compact-json \ + cython==3.0.0 \ + cytoolz==0.12.3 \ + debugpy==1.8.5 \ + deepdiff==6.3.0 \ + dm-tree==0.1.8 \ + e3nn==0.5.1 \ + einops==0.7.0 \ + executing==2.0.0 \ + fastparquet==2024.5.0 \ + fire==0.6.0 \ + GPUtil==1.4.0 \ + icecream==2.1.3 \ + ipdb==0.13.11 \ + ipykernel==6.29.5 \ + ipython==8.27.0 \ + ipywidgets \ + mdtraj==1.10.0 \ + numba \ + omegaconf==2.3.0 \ + opt_einsum==3.3.0 \ + pandas==1.5.0 \ + plotly==5.16.1 \ + pre-commit==3.7.1 \ + py3Dmol==2.2.1 \ + pyarrow==17.0.0 \ + pydantic \ + pyrsistent==0.19.3 \ + pytest-benchmark \ + pytest-cov==4.1.0 \ + pytest-dotenv==0.5.2 \ + pytest==8.2.0 \ + rdkit==2024.3.5 \ + RestrictedPython \ + ruff==0.6.2 \ + scipy==1.13.1 \ + seaborn==0.13.2 \ + sympy==1.13.2 \ + tmtools \ + tqdm==4.65.0 \ + typer==0.12.5 \ + wandb==0.13.10 + ``` +1. Install [Biotite](https://www.biotite-python.org/latest/index.html) and several libraries related to PyTorch, and [pylibcugraphops](https://pypi.org/project/pylibcugraphops-cu12/): + ``` + pip install biotite + pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+cu124.html + pip install -U -i https://pypi.anaconda.org/rapidsai-wheels-nightly/simple "pylibcugraphops-cu12>=24.6.0a24" + ``` + > **REMEMBER:** You will need to change the link for installing the PyTorch-related libraries (the second line in the code block above) to have it match your PyTorch and CUDA versions. +1. Install a version of [TorchData](https://pypi.org/project/torchdata/#what-is-torchdata) that still has DataPipes: + ``` + pip install torchdata==0.9.0 + ``` +1. Install a version of the [Deep Graph Library](https://www.dgl.ai/pages/start.html) based on the version of PyTorch and CUDA you are using: + ``` + conda install -c dglteam/label/th24_cu124 dgl + ``` + > **REMEMBER:** You will need to change the conda channel to the correct version of PyTorch (`th24` in the line above) and CUDA (`cu124` in the line above). Use the [Deep Graph Library's Installation guide](https://www.dgl.ai/pages/start.html) to determine the correct conda or pip command. +1. Set your `PYTHONPATH` environment variable: + ``` + export PYTHONPATH=$PYTHONPATH:/path/to/RFdiffusion2 + ``` + +.. _troubleshooting: + +### Troubleshooting +Ran into an installation issue not covered here? [Create a new issue!](https://github.com/RosettaCommons/RFdiffusion2/issues) + + +
+How to determine the highest available CUDA version on your system + +The `nvidia-smi` command will print out information about the available GPUs you can access on your cluster. +The first line in the result will look something like: +``` ++---------------------------------------------------------------------------------------+ +| NVIDIA-SMI 535.230.02 Driver Version: 535.230.02 CUDA Version: 12.2 | +|-----------------------------------------+----------------------+----------------------+ +``` +Here, this means that this system can only support up to CUDA 12.2. However, if you look at the possible [PyTorch versions](https://pytorch.org/get-started/previous-versions/) +and [Deep Graph Library versions](https://www.dgl.ai/pages/start.html) on their installation pages, you'll notice that they don't +have versions for 12.2, so in this situation you would need to change the installation instructions to work with CUDA 12.1. +
+ +
+Cannot find DGL C++ graphbolt library at... + +Seeing this error likely means that the version of the Deep Graph Library (DGL) that you have installed does not match +the corresponding version of PyTorch your system is finding. Double check that you installed the correct versions of +these tools and ensure that your system does not have a different version of PyTorch it is finding. + +It might also be useful to `ls` in the given directory to see what version of the DGL libraries you have installed. +For example, if your error says it is looking for `graphbolt/libgraphbolt_pytorch_2.4.0.so` it means your system is +using Pytorch version 2.4.0. Meanwhile if you `ls` in the directory you might see that you only have `libgraphbolt_pytorch_2.1.2.so` +meaning that the version of DGL you downloaded was only mean to work with PyTorch versions up to 2.1.2. +
+ +
+No module named 'torchdata.datapipes' + +Newer versions of TorchData have stopped supporting their DataPipes tools. You will need to downgrade the version of TorchData +you have installed to one at or below version 0.9.0. You can learn more about this change on [TorchData's PyPI page](https://pypi.org/project/torchdata/). +
+ + diff --git a/doc/source/license_link.rst b/doc/source/license_link.rst new file mode 100644 index 0000000..b1aa414 --- /dev/null +++ b/doc/source/license_link.rst @@ -0,0 +1,3 @@ +LICENSE +####### +.. mdinclude:: ../../LICENSE.md \ No newline at end of file diff --git a/doc/source/overview.md b/doc/source/overview.md new file mode 100644 index 0000000..542cf96 --- /dev/null +++ b/doc/source/overview.md @@ -0,0 +1,4 @@ +Overview +======== + +RFdiffusion2 is a \ No newline at end of file diff --git a/doc/source/readme_link.rst b/doc/source/readme_link.rst new file mode 100644 index 0000000..51e8148 --- /dev/null +++ b/doc/source/readme_link.rst @@ -0,0 +1,3 @@ +README +###### +.. mdinclude:: ../../README.md \ No newline at end of file From bc1092ee2f9298effccd6aef52b98b28e4de9749 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Thu, 2 Oct 2025 21:01:39 -0700 Subject: [PATCH 02/13] Add sphinx-new-tab-link and update documentation overview Added the sphinx-new-tab-link extension to the Sphinx build process and configuration. Updated overview.md with a detailed explanation of RFdiffusion2's capabilities and differences from the original RFdiffusion, and excluded overview.md from Sphinx build patterns. --- .github/workflows/documentation_workflow.yml | 2 +- doc/source/conf.py | 3 ++- doc/source/overview.md | 13 ++++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/documentation_workflow.yml b/.github/workflows/documentation_workflow.yml index df9f246..e818c24 100644 --- a/.github/workflows/documentation_workflow.yml +++ b/.github/workflows/documentation_workflow.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/setup-python@v5 - name: Install dependencies run: | - pip install sphinx sphinx_mdinclude furo sphinx-copybutton + pip install sphinx sphinx_mdinclude furo sphinx-copybutton sphinx-new-tab-link - name: Sphinx build run: | sphinx-build -M html doc/source/ doc/build/ diff --git a/doc/source/conf.py b/doc/source/conf.py index a3c8c28..ed800ef 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -21,6 +21,7 @@ 'sphinx_mdinclude', #'myst_parser', # to use markdown instead of ReST 'sphinx_copybutton', + 'sphinx_new_tab_link', ] #myst_enable_extensions = ["colon_fence"] # see https://mystmd.org/guide/syntax-overview for more information @@ -63,7 +64,7 @@ napoleon_use_ivar = True templates_path = ['_templates'] -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'overview.md'] # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output diff --git a/doc/source/overview.md b/doc/source/overview.md index 542cf96..6ae3088 100644 --- a/doc/source/overview.md +++ b/doc/source/overview.md @@ -1,4 +1,15 @@ Overview ======== -RFdiffusion2 is a \ No newline at end of file +Introduced in [*Atom level enzyme active site scaffolding using RFdiffusion2*](https://www.biorxiv.org/content/10.1101/2025.04.09.648075v1), RFdiffusion2 expands on the enzyme scaffolding capabilities of diffusion-based protein design by giving researchers finer control over enzyme active sites. +The original [RFdiffusion](https://github.com/RosettaCommons/RFdiffusion) could generate enzyme scaffolds, but the geometry of the active site could only the specified at the residue level - no atomic or rotamer information could be directly provided. +Although defining hotspot residues provided a way for protein designers to control scaffold-ligand interactions, they offered limited flexibility for the placement of the catalytic residues in the final design. + +RFdiffusion2 addresses these limitations by: +- Allowing active sites to be defined at the atomic level, avoiding the need for costly inverse rotamer sampling. +- Supporting scaffolding of disconnected groups of atoms, including residues with unknown sequence indices, to increase design flexibility. +- Introducing the ORI (origin) token, which specifies the desired center of mass of the scaffold. This feature enables greater control over active-site placement and transition-state orientation relative to the protein core. + +To learn how to run RFdiffusion2 using an [Apptainer](https://apptainer.org/) image, see the [READEME](readme_link.html). + +> **NOTE:** The current rendition of RFdiffusion2 makes it particularly useful for enzyme scaffolding, but for many other applications RFdiffusion (the original) will be easier to use and may provide comparable or better results. \ No newline at end of file From a1182c6be5e0ef26eb56fe55708102f60fa779e3 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 7 Oct 2025 10:45:10 -0700 Subject: [PATCH 03/13] Update and expand documentation for RFdiffusion2 Improved the README with clearer setup, installation, and inference instructions, and added troubleshooting tips. Expanded the documentation by adding new usage examples, configuration options, and ORI token explanations. Updated Sphinx configuration and index to include new documentation files, and adjusted workflow and dependencies to comment out unused Sphinx extensions. Enhanced installation guide with troubleshooting for Apptainer image issues and clarified instructions for both Apptainer and source installations. --- .github/workflows/documentation_workflow.yml | 2 +- README.md | 91 ++++++++++++++------ doc/source/conf.py | 6 +- doc/source/index.rst | 10 +++ doc/source/installation.md | 38 +++++++- doc/source/overview.md | 4 +- doc/source/usage/configuration_options.md | 1 + doc/source/usage/ori_tokens.md | 3 + doc/source/usage/other_pipeline_example.md | 4 + doc/source/usage/run_inference_example.md | 3 + doc/source/usage/usage.rst | 30 +++++++ 11 files changed, 158 insertions(+), 34 deletions(-) create mode 100644 doc/source/usage/configuration_options.md create mode 100644 doc/source/usage/ori_tokens.md create mode 100644 doc/source/usage/other_pipeline_example.md create mode 100644 doc/source/usage/run_inference_example.md create mode 100644 doc/source/usage/usage.rst diff --git a/.github/workflows/documentation_workflow.yml b/.github/workflows/documentation_workflow.yml index e818c24..9ceef53 100644 --- a/.github/workflows/documentation_workflow.yml +++ b/.github/workflows/documentation_workflow.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/setup-python@v5 - name: Install dependencies run: | - pip install sphinx sphinx_mdinclude furo sphinx-copybutton sphinx-new-tab-link + pip install sphinx sphinx_mdinclude furo sphinx-copybutton #sphinx-new-tab-link - name: Sphinx build run: | sphinx-build -M html doc/source/ doc/build/ diff --git a/README.md b/README.md index bdcab50..be1270a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ > 🚧 **Under Construction:** > This is an initial release of the functionality — further documentation and cleanup is in progress. Currently only inference is supported. But everything currently documented in this README should be runnable. If you are experiencing a bug with inference, feel free to file an issue and attach the output .pdb, .trb, **and** a picture of the design visualized according to the pymol visualization section of this README. -# RFdiffusion 2 +# RFdiffusion2 Open source code for RFdiffusion2 as described in the following pre-print. @@ -18,7 +18,24 @@ Open source code for RFdiffusion2 as described in the following pre-print. More detailed information about how to run, install, and use RFdiffusion2 can be found [here](https://rosettacommons.github.io/RFdiffusion2/). + + ## Set-up + + +If these set-up instructions do not work for your system see the [Installation Guide](installation.html) for troubleshooting issues with the +provided image and alternative instructions for how to install RFdiffusion2 from source. 1. **Clone the repo.** @@ -28,20 +45,21 @@ More detailed information about how to run, install, and use RFdiffusion2 can be ```bash export PYTHONPATH="/my/path/to/RFdiffusion2" ``` + You will need to export this variable every time you use RFdiffusion2. 3. **Download the model weights and containers:** ```bash cd /my/path/to/RFdiffusion2 python setup.py ``` - These files are quite large so the download process can take over half an hour. If the download process gets terminated before finishing run `python setup.py overwrite` so taht any partially downloaded files can be overwritten. + These files are quite large so the download process can take over half an hour. If the download process gets terminated before finishing run `python setup.py overwrite` so that any partially downloaded files can be overwritten. -4. **Install apptainer** +4. **Install Apptainer** - *Note: you can also run RFdiffusion2 with singularity.* + *Note: You can also run RFdiffusion2 with [Singularity](https://sylabs.io/singularity/).* - RFdiffusion2 (RFD2) uses [apptainer](https://apptainer.org) to simplify the environment set-up. - If you do not already have apptainer on your system, please follow the apptainer [installation instructions](https://apptainer.org/docs/admin/main/installation.html) for your operating system. + RFdiffusion2 (RFD2) uses [Apptainer](https://apptainer.org) to simplify the environment set-up. + If you do not already have Apptainer on your system, please follow the [Apptainer installation instructions](https://apptainer.org/docs/admin/main/installation.html) for your operating system. If you manage your packages on linux with `apt` you can simply run: ```bash @@ -60,19 +78,26 @@ More detailed information about how to run, install, and use RFdiffusion2 can be apptainer exec --nv exec/bakerlab_rf_diffusion_aa.sif ``` +## Inference Example + -## Inference +For other usage examples, see the [Usage page](rosettacommons.github.io/RFdiffusion2/usage/usage.html) in the external documentation. -To run a demo of some of the inference capabilities, including enzyme design from an atomic motif + small molecule, enzyme design from an atomic motif of unknown sequence positions + small molecule, and small-molecule binder design (with RASA conditioning to enforce burial of the small molecule). -(See `rf_diffusion/benchmark/demo.json` for how these tasks are declared.) Note that this will be extremely slow if not run on a GPU. +The blow commands run several demos that show off some of the inference capabilities of RFdiffusion2 including: +- enzyme design from an atomic motif and small molecule +- enzyme design from an atomic motif of unknown sequence positions and a small molecule +- small-molecule binder design with RASA conditioning +The possible demo options can be found in `rf_diffusion/benchmark/open_source_demo.json` which also shows the different inference configurations +used in each demo. Note that this will be extremely slow if not run on a GPU. -The default argument `in_proc=True` in `open_source_demo.yaml` makes the script run locally. With `in_proc=False` the pipeline will automatically distribute the tasks using SLURM, but this is not yet supported. + The demo generates 150 residue proteins with many of the residues atomized, so it can take upwards of 30 minutes to run all cases. Each case may take up to 10 minutes on an RTX2060. **Run single demo case:** ```bash apptainer exec --nv rf_diffusion/exec/bakerlab_rf_diffusion_aa.sif rf_diffusion/benchmark/pipeline.py --config-name=open_source_demo sweep.benchmarks=active_site_unindexed_atomic_partial_ligand ``` +You can replace `active_site_unindexed_atomic_partial_ligand` with any of the other demos included in `rf_diffusion/benchmark/open_source_demo.json`. **Run all demo cases:** ```bash @@ -83,6 +108,7 @@ The outputs will be written to: ``` pipeline_outputs/${now:%Y-%m-%d}_${now:%H-%M-%S}_open_source_demo ``` +in the directory that you are running the image file from. 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. @@ -90,16 +116,18 @@ Pipeline runs can be resumed by passing `outdir=/path/to/your/output/directory`. ## Viewing Designs + Visualizing the design outputs can be confusing when looking at the raw .pdb files, especially for unindexed motif scaffolding, in which the input motif is incorporated into the protein at indices of the network's choice. To simplify this, we provide scripts for visualizing the outputs of the network that interact with a local PyMOL instance over XMLRPC. -Download [PyMOL](https://www.pymol.org/) and run it as an XMLRPCServer with: +Download [PyMOL](https://www.pymol.org/) and run it as an XML-RPC server with: ```bash pymol -R ``` ### PyMOL and designs on the same machine + Run: ```bash @@ -119,27 +147,39 @@ You should see something like: - Any small molecules will have their carbon atoms colored purple. ### PyMOL running locally, designs on remote GPU + It is common for users to be sshed into a gpu cluster for running designs. It is still possible to view designs on a remote computer from your local PyMOL, as long as your remote computer has a route to your local computer (via VPN or ssh proxy). -Simply find your hostname on your cluster with: -```bash -hostname -I -192.168.0.113 100.64.128.68 +You will need to know an IP address that will point back to your computer, typically you can use 127.0.0.1. + +You will also need to add the -R option when you are signing into your cluster and provide the path back to yourPyMOL server: ``` +ssh username@hostname -R 9123:localhost:9123 +``` +You do **not** need to replace `localhost` with an IP address. The 9123 is the port that should have been printed in the PyMOL terminal +when you first set up the XML-RPC server. -The second number is the route to your computer. +If you need to sign into multiple servers before you can run Apptainer, you will need to sign into your cluster like this: +``` +ssh -J username@first_hostname username@second_hostname -R 9123:localhost:9123 +``` +The -J option stands for 'jump host' and allows you to connect to a remote host through an intermediate server in one command. -Simply append `--pymol_url=http://100.64.128.68:9123` to the command, i.e. from your remote machine (cluster) run: +Simply append `--pymol_url=http://127.0.0.1:9123` to the command, i.e. from your remote machine (cluster) run: ```bash -apptainer exec rf_diffusion/exec/bakerlab_rf_diffusion_aa.sif rf_diffusion/dev/show_bench.py --clear=True --key=name '/absolute/path/to/pipeline_outputs/output_directory/*.pdb' --pymol_url=http://100.64.128.68:9123 +apptainer exec rf_diffusion/exec/bakerlab_rf_diffusion_aa.sif rf_diffusion/dev/show_bench.py --clear=True --key=name '/absolute/path/to/pipeline_outputs/output_directory/*.pdb' --pymol_url=http://127.0.0.1:9123 ``` -Make sure to replace 100.64.128.68 with your computer's route. 9123 is the port that PyMol uses, after running `pymol -R` you should see a message containing this route number. +If 127.0.0.1 does not point to your local machine, replace it in all the above steps in this section with an IP address that does point to your machine. + +For more information about using PyMOL remotely, see this blog post on [Controlling PyMOL from afar](https://www.blopig.com/blog/2024/11/controlling-pymol-from-afar/). -## Additional Info +## Additional Information + -### Running the AME Benchmark +### Running the AME benchmark + We crawled M-CSA for 41 enzymes where all reactants and products are present to create this benchmark. Only positon-agnostic tip atoms are provided to the network. 100 designs for each case are created. Run it with: @@ -148,7 +188,8 @@ apptainer exec --nv rf_diffusion/exec/bakerlab_rf_diffusion_aa.sif rf_diffusion/ ``` Running this entire benchmark will perform [41 active sites * 100 designs per active site * 8 sequences per design] chai folding runs, which will take a prohibitively long time on a single machine, but for reproducibility it is included. -### Pipeline Metrics +### Pipeline metrics + We also include the code that was used to benchmark the network. The outline of the benchmarking process is: @@ -178,7 +219,8 @@ Where: - `full_atom`: All heavy atoms - `motif_atom`: Only motif heavy atoms -#### RFdiffusion2 Outputs +#### RFdiffusion2 outputs + The network outputs the protein with both the indexed backbone region and the unindexed atomized region. After that several idealization steps are conducted; the backbone is idealized, the protein is deatomized and the unindexed residues are assigned their corresponding indexed residue (using a greedy algorithm that searches for the closest C-alpha in the indexed backbone). @@ -189,7 +231,8 @@ There are two further idealization steps that are optional to users: The protein at this point has sequence and structure for the motif regions but only backbone (N,Ca,C,O,C-Beta) coordinates for diffused residues (as well as any non-protein components e.g. small molecules). -#### LigandMPNN Outputs +#### LigandMPNN outputs + Sequence is fit using LigandMPNN in a ligand-aware, motif-rotamer-aware mode. LigandMPNN also performs packing. LigandMPNN attempts to keep the motif rotamers unchanged, however the pack uses a more conservative set of torsions than RF All-Atom (i.e. fewer DoF) to pack the rotamers and thus there is often some deviation between the RF All-Atom-idealized and ligandmpnn-idealized motif rotamers. The idealization gap between the diffusion-output rotamer set and the RF All-Atom-idealized rotamer set can be found with metrics key: `metrics.IdealizedResidueRMSD.rmsd_constellation`. The corresponding gap between the rf2aa-idealized (or not idealized if `inference.idealize_sidechain_outputs == False`) rotamer set and the ligandmpnn-idealized rotamer set can be found with metrics key: `motif_ideality_diff`. diff --git a/doc/source/conf.py b/doc/source/conf.py index ed800ef..2bbc08b 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -21,7 +21,7 @@ 'sphinx_mdinclude', #'myst_parser', # to use markdown instead of ReST 'sphinx_copybutton', - 'sphinx_new_tab_link', + #'sphinx_new_tab_link', ] #myst_enable_extensions = ["colon_fence"] # see https://mystmd.org/guide/syntax-overview for more information @@ -64,7 +64,7 @@ napoleon_use_ivar = True templates_path = ['_templates'] -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'overview.md'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'overview.md', 'usage/run_inference_example.md', 'usage/other_pipeline_example.md'] # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output @@ -75,8 +75,6 @@ html_theme_options = { "sidebar_hide_name":False, - "top_of_page_buttons": ["edit"], - "" #"announcement": "THIS DOCUMENTATION IS CURRENTLY UNDER CONSTRUCTION", "light_css_variables": { "color-brand-primary": "#F68A33", # Rosetta Teal diff --git a/doc/source/index.rst b/doc/source/index.rst index e46481b..fe978f7 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -15,6 +15,16 @@ Welcome to the Official Documentation for `RFdiffusion2 + +
+lz4 compression issues + +Full error message you might see: +``` +FATAL: container creation failed: mount hook function failure: mount /proc/self/fd/3->/var/apptainer/mnt/session/rootfs error: while mounting image /proc/self/fd/3: squashfuse_ll exited with status 255: Squashfs image uses lz4 compression, this version supports only zlib. +``` +Or you may see +``` +FATAL: kernel reported a bad superblock for squashfs image partition,possible causes are that your kernel doesn't support the compression algorithm or the image is corrupted. +``` + +To fix this issue you can rebuild the sif on your HPC cluster: +``` +apptainer build --sandbox rfd2_sandbox /path/to/bakerlab_rf_diffusion_aa.sif +apptainer build rfd2_zlib.sif rfd2 sandbox +``` +Thank you to those who posted in [Issue 10](https://github.com/RosettaCommons/RFdiffusion2/issues/10) for reporting this problem and documenting a +solution. +
+ + ## Installation from Source Some of the dependencies listed below will vary based on your system, especially the version of CUDA available on your cluster. You will likely need to change some of the versions of the tools below to successfully install RFdiffusion2. The instructions below are for CUDA 12.4 and PyTorch 2.4. -For some useful troubleshooting tips, see the [Troubleshooting](#troubleshooting) section below. +For some useful troubleshooting tips, see the [Troubleshooting](#install_troubleshooting) section below. 1. Create a conda environment using [miniforge](https://github.com/conda-forge/miniforge) and activate it 1. Point to the correct [NVIDIA-CUDA channel](https://anaconda.org/nvidia/cuda/labels), and install [PyTorch](https://pytorch.org/), Python 3.11, and [pip](https://pip.pypa.io/en/latest/) based on what is available on your system: @@ -105,10 +130,17 @@ For some useful troubleshooting tips, see the [Troubleshooting](#troubleshooting ``` export PYTHONPATH=$PYTHONPATH:/path/to/RFdiffusion2 ``` + + You can add this to your environment via + ``` + conda env config vars set PYTHONPATH=$PYTHONPATH:/path/to/RFdiffusion2 + ``` + so that you do not need to set it every time. .. _troubleshooting: ### Troubleshooting + Ran into an installation issue not covered here? [Create a new issue!](https://github.com/RosettaCommons/RFdiffusion2/issues) diff --git a/doc/source/overview.md b/doc/source/overview.md index 88ff356..b845aaf 100644 --- a/doc/source/overview.md +++ b/doc/source/overview.md @@ -1,7 +1,7 @@ Overview ======== -Introduced in [*Atom level enzyme active site scaffolding using RFdiffusion2*](https://www.biorxiv.org/content/10.1101/2025.04.09.648075v1), RFdiffusion2 expands on the enzyme scaffolding capabilities of diffusion-based protein design by giving researchers finer control over enzyme active sites. +Introduced in [Atom level enzyme active site scaffolding using RFdiffusion2](https://www.biorxiv.org/content/10.1101/2025.04.09.648075v1), RFdiffusion2 expands on the enzyme scaffolding capabilities of diffusion-based protein design by giving researchers finer control over enzyme active sites. The original [RFdiffusion](https://github.com/RosettaCommons/RFdiffusion) could generate enzyme scaffolds, but the geometry of the active site could only the specified at the residue level - no atomic or rotamer information could be directly provided. Although defining hotspot residues provided a way for protein designers to control scaffold-ligand interactions, they offered limited flexibility for the placement of the catalytic residues in the final design. @@ -12,4 +12,4 @@ RFdiffusion2 addresses these limitations by: To learn how to run RFdiffusion2 using an [Apptainer](https://apptainer.org/) image, see the [READEME](readme_link.html). -> **NOTE:** The current rendition of RFdiffusion2 makes it particularly useful for enzyme scaffolding, but for many other applications RFdiffusion (the original) will be easier to use and may provide comparable or better results. +> **NOTE:** The current rendition of RFdiffusion2 makes it particularly useful for enzyme scaffolding and it has increased backbone flexibility compared to RFdiffusion. However, for binder design it is recommended to use the original RFdiffusion. diff --git a/doc/source/usage/configuration_options.md b/doc/source/usage/configuration_options.md new file mode 100644 index 0000000..ae74d66 --- /dev/null +++ b/doc/source/usage/configuration_options.md @@ -0,0 +1 @@ +## Configuration Options diff --git a/doc/source/usage/ori_tokens.md b/doc/source/usage/ori_tokens.md new file mode 100644 index 0000000..a4a1759 --- /dev/null +++ b/doc/source/usage/ori_tokens.md @@ -0,0 +1,3 @@ +## ORI Tokens + +ORI Tokens \ No newline at end of file diff --git a/doc/source/usage/other_pipeline_example.md b/doc/source/usage/other_pipeline_example.md new file mode 100644 index 0000000..fdfa3e5 --- /dev/null +++ b/doc/source/usage/other_pipeline_example.md @@ -0,0 +1,4 @@ +## Using the pipelines.py script + + + diff --git a/doc/source/usage/run_inference_example.md b/doc/source/usage/run_inference_example.md new file mode 100644 index 0000000..eb3d984 --- /dev/null +++ b/doc/source/usage/run_inference_example.md @@ -0,0 +1,3 @@ +## Using run_inference.py + +While the pipelines.py script is powerful, you can also run \ No newline at end of file diff --git a/doc/source/usage/usage.rst b/doc/source/usage/usage.rst new file mode 100644 index 0000000..b031f0a --- /dev/null +++ b/doc/source/usage/usage.rst @@ -0,0 +1,30 @@ +Usage Examples +============== + +The usage examples linked below demonstrate how to use the various provided scripts to run inference with RFdiffusion2. + +Before using RFdiffusion2 for your own designs make sure you are able to run the demo included in the [README](../readme_link.html#inference). + +How to run RFdiffusion2 +----------------------- +For those of you who are familiar with running the `original RFdiffusion `_, running RFdiffusion2 is very similar. +The main differences are: + +* The inference script no longer chooses the best model weights for you to use, there is one recommended model weight file located at ``RFdiffusion2/rf_diffusion/model_weights/RFD_173.pt``. This is the set of weights used in the demo in the README. + +* RFdiffusion2 can now take atomic inputs, not just backbone-level information + +* An ORI token is expected in the input PDB, which specifies the center of mass for the design region. For more information on ORI tokens see + the documentation on :doc:`ORI tokens `. + + +More information +^^^^^^^^^^^^^^^^ +* :doc:`ORI Tokens ` - Explanation of ORI tokens and how to use them in your designs. +* :doc:`Configuration Options ` - Explanation of the various configuration options available for RFdiffusion2. + +Examples +^^^^^^^^ + +- :doc:`Using the pipelines.py script ` +- :doc:`Using the run_inference.py script ` \ No newline at end of file From 4c530cce4edab73b19db029a4cb03479efaf562d Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:36:11 -0700 Subject: [PATCH 04/13] 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. --- README.md | 2 +- doc/source/installation.md | 34 +++++++++++++++++- envs/cuda121_env.yml | 17 +++++++++ envs/cuda124_env.yml | 19 ++++++++++ envs/requirements_cuda121.txt | 68 +++++++++++++++++++++++++++++++++++ envs/requirements_cuda124.txt | 64 +++++++++++++++++++++++++++++++++ 6 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 envs/cuda121_env.yml create mode 100644 envs/cuda124_env.yml create mode 100644 envs/requirements_cuda121.txt create mode 100644 envs/requirements_cuda124.txt diff --git a/README.md b/README.md index be1270a..baed32e 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ pipeline_outputs/${now:%Y-%m-%d}_${now:%H-%M-%S}_open_source_demo ``` in the directory that you are running the image file from. -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. +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. Pipeline runs can be resumed by passing `outdir=/path/to/your/output/directory`. diff --git a/doc/source/installation.md b/doc/source/installation.md index ba0b006..0a56642 100644 --- a/doc/source/installation.md +++ b/doc/source/installation.md @@ -30,7 +30,38 @@ solution. -## Installation from Source +## Creating Your Own Environment +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. +This is what the Apptainer image above supplies, an environment where the dependencies required by RFdiffusion2 have already been installed. +If this container works on your computing system, we highly recommend using it. + +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. + +### Using Provided Environment Files +We have created a few environment files to automatically generate a conda environment that will allow RFdiffusion2 to run. +> 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. + +You can find the prepared environment files in the `envs` directory +- `cuda121_env.yml` - This is appropriate for systems able to run CUDA 12.1 and PyTorch 2.4.0 + - This uses requirements_cuda121.txt to install dependencies via `pip` +- `cuda124_env.yml` - This is appropriate for systems able to run CUDA 12.4 and PyTorch 2.4.0 + - This uses requirements_cuda124.txt to install dependencies via `pip` + +If you have trouble with these files but they *should* work based on your system specifications here are a few things to try: +1. Separate the creation of the environment and the installation of dependencies via pip: + 1. Remove the last two lines from the above `.yml` files + 2. + ``` + conda env create -f cuda121_env.yml + conda activate rfd2_env + pip install -r requirements_121.txt + ``` + This will force the dependencies you want installed by CUDA to be installed before pip is used. +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. +3. You can try to install any dependencies that pip hangs on using CUDA instead of pip. +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. + +### Creating the Environment Manually Some of the dependencies listed below will vary based on your system, especially the version of CUDA available on your cluster. You will likely need to change some of the versions of the tools below to successfully install RFdiffusion2. 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 ruff==0.6.2 \ scipy==1.13.1 \ seaborn==0.13.2 \ + submitit \ sympy==1.13.2 \ tmtools \ tqdm==4.65.0 \ diff --git a/envs/cuda121_env.yml b/envs/cuda121_env.yml new file mode 100644 index 0000000..156bce9 --- /dev/null +++ b/envs/cuda121_env.yml @@ -0,0 +1,17 @@ +name: rfd2_env_f +channels: + - nvidia + - https://conda.rosettacommons.org + - pytorch +dependencies: + - python=3.11 + - pip + - numpy<2 + - matplotlib + - jupyterlab + - conda-forge::openbabel=3.1.1 + - pytorch=2.4 + - pytorch-cuda=12.1 + - pyrosetta + - pip: + - -r requirements_cuda121.txt \ No newline at end of file diff --git a/envs/cuda124_env.yml b/envs/cuda124_env.yml new file mode 100644 index 0000000..286a4e0 --- /dev/null +++ b/envs/cuda124_env.yml @@ -0,0 +1,19 @@ +name: rfd2_env_124 +channels: + - nvidia/label/cuda-12.4.0 + - https://conda.rosettacommons.org + - pytorch + - dglteam/label/th24_cu124 +dependencies: + - python=3.11 + - pip + - numpy<2 + - matplotlib + - jupyterlab + - conda-forge::openbabel=3.1.1 + - dgl + - pytorch=2.4.0 + - pytorch-cuda=12.4 + - pyrosetta + - pip: + - -r requirements_cuda124.txt \ No newline at end of file diff --git a/envs/requirements_cuda121.txt b/envs/requirements_cuda121.txt new file mode 100644 index 0000000..8b9697f --- /dev/null +++ b/envs/requirements_cuda121.txt @@ -0,0 +1,68 @@ +# PyG / PyTorch Geometric dependencies +--find-links https://data.pyg.org/whl/torch-2.4.0+cu121.html +pyg-lib +torch-scatter +torch-sparse +torch-cluster +torch-spline-conv + +# DGL (Deep Graph Library) +--find-links https://data.dgl.ai/wheels/torch-2.4/cu121/repo.html +dgl==2.4.0 + +# RAPIDS nightly +--extra-index-url https://pypi.anaconda.org/rapidsai-wheels-nightly/simple +pylibcugraphops-cu12>=24.6.0a24 + +# General Python packages +hydra-core==1.3.1 +ml-collections==0.1.1 +addict==2.4.0 +assertpy==1.1.0 +biopython==1.83 +colorlog +compact-json +cython==3.0.0 +cytoolz==0.12.3 +debugpy==1.8.5 +deepdiff==6.3.0 +dm-tree==0.1.8 +e3nn==0.5.1 +einops==0.7.0 +executing==2.0.0 +fastparquet==2024.5.0 +fire==0.6.0 +GPUtil==1.4.0 +icecream==2.1.3 +ipdb==0.13.11 +ipykernel==6.29.5 +ipython==8.27.0 +ipywidgets +mdtraj==1.10.0 +numba +omegaconf==2.3.0 +opt_einsum==3.3.0 +pandas==1.5.0 +plotly==5.16.1 +pre-commit==3.7.1 +py3Dmol==2.2.1 +pyarrow==17.0.0 +pydantic +pyrsistent==0.19.3 +pytest-benchmark +pytest-cov==4.1.0 +pytest-dotenv==0.5.2 +pytest==8.2.0 +rdkit==2024.3.5 +RestrictedPython +ruff==0.6.2 +scipy==1.13.1 +seaborn==0.13.2 +submitit +sympy==1.13.2 +tmtools +tqdm==4.65.0 +typer==0.12.5 +wandb==0.13.10 +biotite +torchdata==0.9.0 diff --git a/envs/requirements_cuda124.txt b/envs/requirements_cuda124.txt new file mode 100644 index 0000000..8fe0f67 --- /dev/null +++ b/envs/requirements_cuda124.txt @@ -0,0 +1,64 @@ +# PyG / PyTorch Geometric dependencies +--find-links https://data.pyg.org/whl/torch-2.4.0+cu124.html +pyg-lib +torch-scatter +torch-sparse +torch-cluster +torch-spline-conv + +# RAPIDS nightly +--extra-index-url https://pypi.anaconda.org/rapidsai-wheels-nightly/simple +pylibcugraphops-cu12>=24.6.0a24 + +# General Python packages +hydra-core==1.3.1 +ml-collections==0.1.1 +addict==2.4.0 +assertpy==1.1.0 +biopython==1.83 +colorlog +compact-json +cython==3.0.0 +cytoolz==0.12.3 +debugpy==1.8.5 +deepdiff==6.3.0 +dm-tree==0.1.8 +e3nn==0.5.1 +einops==0.7.0 +executing==2.0.0 +fastparquet==2024.5.0 +fire==0.6.0 +GPUtil==1.4.0 +icecream==2.1.3 +ipdb==0.13.11 +ipykernel==6.29.5 +ipython==8.27.0 +ipywidgets +mdtraj==1.10.0 +numba +omegaconf==2.3.0 +opt_einsum==3.3.0 +pandas==1.5.0 +plotly==5.16.1 +pre-commit==3.7.1 +py3Dmol==2.2.1 +pyarrow==17.0.0 +pydantic +pyrsistent==0.19.3 +pytest-benchmark +pytest-cov==4.1.0 +pytest-dotenv==0.5.2 +pytest==8.2.0 +rdkit==2024.3.5 +RestrictedPython +ruff==0.6.2 +scipy==1.13.1 +seaborn==0.13.2 +submitit +sympy==1.13.2 +tmtools +tqdm==4.65.0 +typer==0.12.5 +wandb==0.13.10 +biotite +torchdata==0.9.0 From 67ba4ccf382af36a5b52ef0c7b398fd6c85dd894 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:42:52 -0700 Subject: [PATCH 05/13] Update envs/requirements_cuda121.txt Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- envs/requirements_cuda121.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envs/requirements_cuda121.txt b/envs/requirements_cuda121.txt index 8b9697f..90675f8 100644 --- a/envs/requirements_cuda121.txt +++ b/envs/requirements_cuda121.txt @@ -58,7 +58,7 @@ RestrictedPython ruff==0.6.2 scipy==1.13.1 seaborn==0.13.2 -submitit +submitit sympy==1.13.2 tmtools tqdm==4.65.0 From 313ecfe56ad6838c1a4702503ebc82ef2a0e3299 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:43:01 -0700 Subject: [PATCH 06/13] Update envs/cuda124_env.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- envs/cuda124_env.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envs/cuda124_env.yml b/envs/cuda124_env.yml index 286a4e0..009fae4 100644 --- a/envs/cuda124_env.yml +++ b/envs/cuda124_env.yml @@ -14,6 +14,6 @@ dependencies: - dgl - pytorch=2.4.0 - pytorch-cuda=12.4 - - pyrosetta + - pyrosetta - pip: - -r requirements_cuda124.txt \ No newline at end of file From 0c55197edfadf2e6b17c940050c7331551b744f2 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:43:08 -0700 Subject: [PATCH 07/13] Update envs/cuda121_env.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- envs/cuda121_env.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envs/cuda121_env.yml b/envs/cuda121_env.yml index 156bce9..efd2ec2 100644 --- a/envs/cuda121_env.yml +++ b/envs/cuda121_env.yml @@ -12,6 +12,6 @@ dependencies: - conda-forge::openbabel=3.1.1 - pytorch=2.4 - pytorch-cuda=12.1 - - pyrosetta + - pyrosetta - pip: - -r requirements_cuda121.txt \ No newline at end of file From 6993c5187de0de67e02d188728e717671e47bba1 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:43:26 -0700 Subject: [PATCH 08/13] Update doc/source/installation.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/source/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/installation.md b/doc/source/installation.md index 0a56642..a181b0e 100644 --- a/doc/source/installation.md +++ b/doc/source/installation.md @@ -23,7 +23,7 @@ FATAL: kernel reported a bad superblock for squashfs image partition,possible ca To fix this issue you can rebuild the sif on your HPC cluster: ``` apptainer build --sandbox rfd2_sandbox /path/to/bakerlab_rf_diffusion_aa.sif -apptainer build rfd2_zlib.sif rfd2 sandbox +apptainer build rfd2_zlib.sif rfd2_sandbox ``` Thank you to those who posted in [Issue 10](https://github.com/RosettaCommons/RFdiffusion2/issues/10) for reporting this problem and documenting a solution. From ae576c0688726a37ab48c7f1b58431139346af2f Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:43:42 -0700 Subject: [PATCH 09/13] Update doc/source/installation.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/source/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/installation.md b/doc/source/installation.md index a181b0e..e2f3ad8 100644 --- a/doc/source/installation.md +++ b/doc/source/installation.md @@ -54,7 +54,7 @@ If you have trouble with these files but they *should* work based on your system ``` conda env create -f cuda121_env.yml conda activate rfd2_env - pip install -r requirements_121.txt + pip install -r requirements_cuda121.txt ``` This will force the dependencies you want installed by CUDA to be installed before pip is used. 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. From 9ef3ba0dcf0bac5c2b4b2635d8cf20cfad633bc9 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:44:00 -0700 Subject: [PATCH 10/13] Update doc/source/conf.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- doc/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 2bbc08b..d9e4bde 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -64,7 +64,7 @@ napoleon_use_ivar = True templates_path = ['_templates'] -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'overview.md', 'usage/run_inference_example.md', 'usage/other_pipeline_example.md'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'overview.md', 'usage/run_inference_example.md', 'usage/other_pipeline_example.md'] # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output From 562b1076d0fce4217f33d981cd0ef6fb66074d22 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:45:01 -0700 Subject: [PATCH 11/13] Fix formatting and spelling in README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index baed32e..982d88c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Open source code for RFdiffusion2 as described in the following pre-print. More detailed information about how to run, install, and use RFdiffusion2 can be found [here](https://rosettacommons.github.io/RFdiffusion2/). -## Set-up - +## Setup + -If these set-up instructions do not work for your system see the [Installation Guide](installation.html) for troubleshooting issues with the +If these setup instructions do not work for your system see the [Installation Guide](installation.html) for troubleshooting issues with the provided image and alternative instructions for how to install RFdiffusion2 from source. 1. **Clone the repo.** @@ -58,7 +58,7 @@ provided image and alternative instructions for how to install RFdiffusion2 from *Note: You can also run RFdiffusion2 with [Singularity](https://sylabs.io/singularity/).* - RFdiffusion2 (RFD2) uses [Apptainer](https://apptainer.org) to simplify the environment set-up. + RFdiffusion2 (RFD2) uses [Apptainer](https://apptainer.org) to simplify the environment setup. If you do not already have Apptainer on your system, please follow the [Apptainer installation instructions](https://apptainer.org/docs/admin/main/installation.html) for your operating system. If you manage your packages on linux with `apt` you can simply run: From 37bcbee761b7e3af253742327ff686b2b29ede15 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:45:44 -0700 Subject: [PATCH 12/13] Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 982d88c..3e114ba 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ provided image and alternative instructions for how to install RFdiffusion2 from For other usage examples, see the [Usage page](rosettacommons.github.io/RFdiffusion2/usage/usage.html) in the external documentation. -The blow commands run several demos that show off some of the inference capabilities of RFdiffusion2 including: +The below commands run several demos that show off some of the inference capabilities of RFdiffusion2 including: - enzyme design from an atomic motif and small molecule - enzyme design from an atomic motif of unknown sequence positions and a small molecule - small-molecule binder design with RASA conditioning From 61d0384e844ad9d859c55246364130ad5c27a414 Mon Sep 17 00:00:00 2001 From: Rachel Clune Date: Tue, 21 Oct 2025 15:46:03 -0700 Subject: [PATCH 13/13] Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3e114ba..5ae800c 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ It is still possible to view designs on a remote computer from your local PyMOL, You will need to know an IP address that will point back to your computer, typically you can use 127.0.0.1. -You will also need to add the -R option when you are signing into your cluster and provide the path back to yourPyMOL server: +You will also need to add the -R option when you are signing into your cluster and provide the path back to your PyMOL server: ``` ssh username@hostname -R 9123:localhost:9123 ```