Design Proteins with RFD4-Proteina Using Reward-Guided Inference-Time Search NVIDIA BioNeMo and the Institute for Protein Design at the University of Washington's School of Medicine released RFD4-Proteina, an open protein-design model that co-designs sequences and all-atom structures and uses reward-guided inference-time search to target binder candidates against PD-L1. RFD4-Proteina cuts diffusion sampling from about 400 steps in Proteina-Complexa to 60 by working on a residue-level latent representation, and its autoencoder decoder removes the separate inverse-folding handoff to a model such as ProteinMPNN. The model is available as an open model on GitHub for training and method development or as a NIM microservice for HTTP-based inference deployment. Protein design is a search problem. Choose amino acids for an eight-residue protein sequence and more than 25 billion combinations are possible. Choose amino acids for a 100-residue protein sequence and the number of possibilities exceeds the number of atoms in the observable universe. Somewhere in that space is a protein that opens a path to a new therapy. There are too many combinations to search exhaustively, so finding it depends on knowing where to look. RFD4-Proteina https://github.com/RosettaCommons/RFD4-Proteina , an NVIDIA BioNeMo https://github.com/NVIDIA-BioNeMo/ open model co-developed with the Institute for Protein Design at the University of Washington’s School of Medicine, navigates that space using patterns learned from nature. It co-designs protein sequences and all-atom structures, and uses reward-guided inference-time search to focus compute on the most promising candidates. This tutorial shows computational biologists, ML engineers and drug discovery researchers how to design protein binder candidates against PD-L1, an oncology target, using reward-guided inference-time search and introduces experimental validation results across design tasks. You can access RFD4-Proteina in two ways: - Choose the open model https://github.com/RosettaCommons/RFD4-Proteina for training, inference, method development, and direct control over sampling code or - Choose the NIM microservice https://build.nvidia.com/ipd/rfd4-proteina for rapid inference deployment with an HTTP interface Building on Proteina-Complexa https://github.com/NVIDIA-BioNeMo/Proteina-Complexa ’s partially latent approach, RFD4-Proteina combines explicit backbone coordinates with latent representation, learned sequence and atomistic variables. Its autoencoder decoder produces the sequence and all-atom structure together, removing the separate inverse-folding handoff to a model such as ProteinMPNN https://github.com/dauparas/ProteinMPNN . Prerequisites - Open model - Supported Linux GPU host and Python 3.12; follow the repository setup guide and use a supported NVIDIA GPU. https://rosettacommons.github.io/RFD4-Proteina/installation.html - Model cache: Setup downloads the Hugging Face bundle automatically; set HF HOME only if you want a different cache directory. - Supported Linux GPU host and Python 3.12; follow - NIM - Self-host: x86 64 or arm64 Linux meeting the NIM prerequisites https://docs.nvidia.com/nim/bionemo/rfd4-proteina/latest/index.html , Docker, NVIDIA Driver, NVIDIA Container Toolkit, and an NGC API key https://org.ngc.nvidia.com/setup/api-key . - NIM API endpoint not recommended for production runs : HTTP access through NVIDIA build.nvidia.com http://build.nvidia.com via Shell and Python scripts, no local GPU or model installation required. About RFD4-Proteina The search loop shown in Figure 1, above, is where RFD4-Proteina focuses its compute. During inference-time reasoning search, the model denoises generation trajectories to obtain structures, scores these designs, retains and branches promising partial states, and continues until the generation criteria are reached. Rewards can measure geometry, interactions, or independent prediction confidence. This kind of extra search optimizes designs against a specified objective to yield higher-scoring designs. Later in this tutorial, you will see how a user can enable this functionality through the open model and the NIM. RFD4-Proteina is faster and uses less memory than RFD3 for several reasons: - It works on a residue-level latent representation instead of atom-level, which avoids memory blow-up. - Engineering of the diffusion process cuts sampling from about 400 steps in Proteina-Complexa to 60, and computation is concentrated on the parts of the process that matter most thanks to reasoning capabilities in the model. - Inference-time search is also faster, since the oracles OF3 and physics methods like tmol https://github.com/uw-ipd/tmol are CUDA-accelerated. - The model and kernels were co-designed with the cuEquivariance and BioNeMo Inference Runtime BIR teams for speed and scalability. From a molecular design idea to candidate designs The workflow in Figure 3, above, demonstrates how to use RFD4-Proteina to go from a scientific objective to candidates for experimental testing. An agent https://developer.nvidia.com/blog/build-an-ai-scientist-for-life-science-discovery-with-nvidia-bionemo-agent-toolkit/ can coordinate these tools and track results, while scientists define the objectives and use experimental evidence to guide the next round. Preparing the molecular inputs and environment Begin by defining the criteria and requirements for generation. For example, RFD4-Proteina expects users to define what may change, what must remain fixed, and computational and experimental success criteria. Use AtomWorks to generate /manipulate the input data. AtomWorks https://github.com/RosettaCommons/atomworks is the molecular data layer used to prepare structures and design annotations for RFD4-Proteina. Its Python and PyMOL workflows https://github.com/RosettaCommons/RFD4-Proteina/blob/main/docs/workflow/inputs.md prepare fixed atoms, designable residues, hotspots, and molecular context. Preserve the supplied ligand or motif chemistry when designing surrounding protein. Both the open model and NIM accept annotated CIFs or a condition specification plus its source structure. The specification below fixes the target and defines the new binder. The repository’s cropped PD-L1 structure from PDB 5O45 https://www.rcsb.org/structure/5O45 serves as the target. Fix the target’s sequence and backbone coordinates, allow its side chains to repack, and direct binder generation toward hotspot atoms on Tyr56, Met115, and Tyr123. The new binder has 100–150 residues, with free sequence and coordinates. Clone the repository, then run the examples from its root. This writes pdl1.json ; both paths use the same target CIF and conditions. git clone https://github.com/RosettaCommons/RFD4-Proteina.git cd RFD4-Proteina cat pdl1.json <<'JSON' { "pdl1 binder": { "input": "docs/examples/inputs/5o45 cropped.cif", "contig": "100-150, /0, A17-131", "conditions": { "C CRD": {"true": {"select": "sel 'A' and is protein backbone"} }, "C SEQ": {"true": {"select": "sel 'A' "} }, "C HOT": {"true": {"select": "sel 'A/ /56/ CG,OH ' "}, {"select": "sel 'A/ /115/ CG,SD ' "}, {"select": "sel 'A/ /123/ CD2,OH ' "} } } } } JSON Open model setup On a supported Linux/CUDA system, install the repository environment with a current uv release validated with 0.12.24 . If uv is already installed, update it first so it recognizes CUDA 13.2. Setup caches the Hugging Face model bundle, including the paired autoencoder. While the model repository is private, authenticate with hf auth login using an account with access. bash setup.sh --native source .venv/bin/activate NIM environment setup To host the NIM, run this block in Bash on a supported GPU host with Docker and NVIDIA Container Toolkit installed. read -rsp 'NGC API key: ' NGC API KEY; echo export NGC API KEY printf '%s' "$NGC API KEY" | docker login nvcr.io \ -u '$oauthtoken' --password-stdin image=nvcr.io/nim/ipd/rfd4-proteina:latest docker pull "$image" export RFD4 NIM IMAGE="$ docker image inspect \ --format '{{index .RepoDigests 0}}' "$image" " printf '%s\n' "$RFD4 NIM IMAGE" nim-image.txt export LOCAL NIM CACHE="$HOME/.cache/nim" mkdir -p "$LOCAL NIM CACHE" docker run -d --rm --name rfd4-proteina \ --runtime=nvidia --gpus 'device=0' -p 8000:8000 \ -e NGC API KEY -v "$LOCAL NIM CACHE":/opt/nim/.cache \ --shm-size=16g "$RFD4 NIM IMAGE" Generate sequences and structures Open-model generation Save the following as design.py in the repository root. The same script supports generation and search. Proteina.from pretrained "nvidia/RFD4-Proteina" loads the current Hugging Face model and paired autoencoder checkpoints. python import hydra from rfd4 proteina import Proteina from rfproteina.generate import run generation @hydra.main config path="configs", config name="inference", version base="1.3" def main cfg : model = Proteina.from pretrained "nvidia/RFD4-Proteina" run generation cfg, model=model if name == " main ": main Generate one candidate from the repository root: python design.py inputs=pdl1.json out dir=runs/pdl1-open seed=42 compile lengths=null Outputs are saved under runs/pdl1-open/inference samples/. Add num replicates=10 for ten candidates and choose a new out dir for each run. Hugging Face caches downloads; add revision=”