RFDpoly documentation¶
README¶
Multi polymer diffusion¶
Basic info:¶
This repository contains the code for the associated preprint, which can be cited
@article{favor2025novo,
title={De novo design of RNA and nucleoprotein complexes},
author={Favor, Andrew H and Quijano, Riley and Chernova, Elizaveta and Kubaney, Andrew and Weidle, Connor and Esler, Morgan A and McHugh, Lilian and Carr, Ann and Hsia, Yang and Juergens, David and others},
journal={bioRxiv},
pages={2025--10},
year={2025},
publisher={Cold Spring Harbor Laboratory}
}
Documentation¶
More information and documentation can be found here.
Installation and setup¶
1. Clone the repository¶
git clone git@github.com:RosettaCommons/RFDpoly.git
2. Set environment variables and create directories¶
This section is not necessary for running RFDpoly, but te example commands below use these environment variables.
Set relevant paths for installation and then create the directories the paths point to:
# Feel free to change the exact names of the directories
RFDPOLY_DIR=/path/to/RFDpoly
WEIGHTS_DIR=/path/to/RFDpoly/weights
# path for where to put the Apptainer .sif file
ENV_DIR=/path/to/RFDpoly/exec
# Make the directories
mkdir -p $RFDPOLY_DIR
mkdir -p $WEIGHTS_DIR
mkdir -p $ENV_DIR
4. Setting up the environment:¶
Navigate to the directory where you want to Apptainer file, download it, and set path variable:
cd $ENV_DIR
curl -O https://files.ipd.uw.edu/pub/2025_RFDpoly/SE3nv.sif
APPTAINER_PATH=$ENV_DIR/SE3nv.sif
Downloading the .sif file may take several minutes.
You can find alternative installation instructions in the external documentation.
Basic Use Case Example: Testing Your Setup¶
In this example, RFDpoly will create a single design with three chains:
A DNA chain with 33 segments
An RNA chain with 33 segments
A protein chain with 75 residues
Make a directory to store the outputs of the demo and store
it in the DESIGN_DIR environment variable:
export DESIGN_DIR=/path/to/your/output/directory
cd $DESIGN_DIR/
apptainer run --nv $APPTAINER_PATH $RFDPOLY_DIR/rf_diffusion/run_inference.py --config-name=multi_polymer \
diffuser.T=50 \
inference.ckpt_path=$RFDPOLY_CKPT_PATH \
inference.num_designs=1 \
contigmap.contigs=[\'33\ 33\ 75\'] \
contigmap.polymer_chains=[\'dna\',\'rna\',\'protein\'] \
inference.output_prefix=$DESIGN_DIR/test_outputs/basic_uncond_test01
The initial run will take a little while to precompute the IGSO3 cache, but subsequent runs will be more direct and quick.
if that throws errors, then try:
cd $DESIGN_DIR
apptainer run --nv $APPTAINER_PATH $RFDPOLY_DIR/rf_diffusion/run_inference.py --config-name=multi_polymer \
diffuser.T=50 \
inference.ckpt_path=$RFDPOLY_CKPT_PATH \
inference.input_pdb=$RFDPOLY_DIR/rf_diffusion/test_data/DBP035.pdb \
inference.num_designs=1 \
contigmap.contigs=[\'33\ 33\ 75\'] \
contigmap.polymer_chains=[\'dna\',\'rna\',\'protein\'] \
inference.output_prefix=$DESIGN_DIR/test_outputs/basic_uncond_test01
explanation: model initialization searches for an input pdb filepath, even if you aren’t performing motif scaffolding. Providing a (real) dummy filepath will fix this is the default search paths are unsuccessful.
NOTE: using the --config-name=multi_polymer specification is the best way to ensure that all settings work together as expected, and are consistent with the behavior reported in the manuscript.
If the example (demo) command above works, proceed to exploration of the full design tutorial.¶
The full design tutorial contains many inference commands for the types of designs reported in the RFDpoly paper. The design tutorial is intended to provide documentation, and explain arguments in the context of their use-cases.
Contact afavor@uw.edu if you have trouble accessing files or hit any bugs.
Additional Software Policy checklist items:¶
System requirements¶
Operating systems
Primary workflow: Linux host with Apptainer ≥ 1.1 (or Singularity equivalent). The bundled container image runs Ubuntu 22.04.2 LTS.
Alternative workflow: macOS 13+/Windows 11 via Conda (CPU only unless you install CUDA-capable PyTorch wheels).
Software dependencies
For native/Conda installs: Python 3.10, PyTorch 1.13.1, CUDA 11.7 toolchain (if using an NVIDIA GPU), PyRosetta 2023.09+, DGL 1.0.1, e3nn 0.5.1, hydra-core 1.3.2, and the packages listed in
rf_diffusion/environment/environment.yml.NOTE: All dependencies are specified in
rf_diffusion/environment/, such that users can set up an equivalent working environment on any operating system.
Tested configurations
Ubuntu 22.04 host with Apptainer 1.1.9, NVIDIA driver ≥ 515, CUDA 11.7 runtime.
PyTorch 1.13.1+cu117, Python 3.10.8, PyRosetta 2023.09 inside the container.
Hardware
Minimum: 16 GB RAM and 40 GB free disk space for the repository, checkpoints, and cache.
Recommended: NVIDIA GPU with ≥ 16 GB VRAM for practical throughput. CPU-only execution is supported but 5–10× slower. No additional specialized hardware is required.
Times to install provided files and run inference (tested on Linux operating system, Ubuntu 24.04.2):¶
Downloading apptainer .sif file:
Total: 1 minute, 15 seconds
Downloading model weight .ckpt file:
Total: 7 seconds
Cloning the repository:
Total: 52 seconds
Demo inference run:
first run, including generation of IGSO3 cache: Total: 2 minutes, 26 seconds
subsequent runs (per trajectory): 50 seconds.
Testing:¶
This software has only been tested on Linux (Ubuntu 24.04.3 LTS).