ODesign
Pre-trained model for biomolecular interaction design through coordinate diffusion followed by sequence or element assignment.
Disclaimer
This is an UNOFFICIAL implementation of ODesign: A World Model for Biomolecular Interaction Design by Odin Zhang, Xujun Zhang, Haitao Lin, et al.
The OFFICIAL repository of ODesign is at The-Institute-for-AI-Molecular-Design/ODesign.
The team releasing ODesign did not write this model card for this model so this model card has been written by the OFoldX team.
Model Details
ODesign uses an all-atom diffusion model for biomolecular interaction design. Its four released variants share the
ODesignModel architecture and differ in receptor flexibility and the type of molecule being generated. Inverse-folding
children assign sequences or elements after coordinate generation.
The protein routes use ProteinMPNN without ligand atom context and LigandMPNN otherwise. The released DNA route uses OInvFold, the RNA route uses gRNAde, and the provisional ligand route uses ligand OInvFold. Please refer to the Training Details section for more information on the training process.
Variants
- oteam/odesign-protein-flex: Protein backbone generation with flexible receptor context and MPNN sequence assignment.
- Protein rigid (
protein_rigid): Protein backbone generation with rigid receptor context and the same context-selected MPNN assignment. - Nucleic-acid rigid (
nucleic_acid_rigid): DNA or RNA generation with rigid context and their released inverse-folding children. - oteam/odesign-ligand-rigid: Provisional ligand coordinate generation with rigid context and element assignment.
Model Specification
| Single Size | Pair Size | Pairformer Blocks | MSA Stages | Token Denoiser Blocks | Atom Encoder Blocks | Atom Decoder Blocks |
|---|---|---|---|---|---|---|
| 384 | 128 | 48 | 4 | 24 | 3 | 3 |
Links
- Checkpoint:
odesign_base_prot_flex.pt - Upstream notices: LICENSE, LICENSE-protein_designer, LICENSE-ligand_designer
- Code: ofoldx.models.odesign
- Paper: ODesign: A World Model for Biomolecular Interaction Design
- Developed by: Odin Zhang, Xujun Zhang, Haitao Lin, et al.
- Model type: All-atom coordinate diffusion with sequence or element assignment
- Original Repository: The-Institute-for-AI-Molecular-Design/ODesign
Usage
The model file depends on the ofoldx library. You can install it using pip:
pip install ofoldx
Direct Use
Polymer Design
You can use this model directly with a pipeline for polymer design over instance B of a conditioning complex:
import ofoldx
from ofoldx.io import read_structure
from ofoldx.models.design import PositionSelection
structure, _ = read_structure("complex.cif")
pipeline = ofoldx.pipeline("design", model="oteam/odesign-protein-flex")
result = pipeline(structure, design=PositionSelection(instances=("B",)), num_backbones=2, num_sequences=4, seed=7)
Protein, DNA and RNA candidates contain canonical Structure predictions and the inverse folder's named scores.
Without a design selection, every position of the route's monomer type is generated. For de novo generation, supply
a typed PolymerSequence of unknown residues; the chemistry guide describes these inputs.
Rigid context retains its source coordinates; flexible context can move. Regeneration clears old observations for moved atoms that the model does not place, while explicitly fixed atoms retain their coordinates and observations.
Downstream Use
Alternative Inverse Folding
ODesignOInvFoldProteinPipeline and ODesignOInvFoldRnaPipeline combine ODesign generation with independently runnable
OInvFold alternatives. They are separate from the released protein MPNN and RNA gRNAde routes. Complete repositories
include their required children; use load_component to load one component independently. Backbone decoding returns
ODesignBackboneSample objects containing the structure and any unbound_linkers.
The pipeline guide describes staged execution and composition. Family pipeline docstrings specify sample counts, seed order, beam decoding and component roles.
Checkpoint Conversion
Convert the checkpoint with its required child models:
python -m ofoldx.models.odesign.convert protein-flex checkpoint.pt ./odesign-protein-flex \
--protein-designer oteam/proteinmpnn --ligand-designer oteam/ligandmpnn
Training Details
ODesign learns coordinate denoising together with geometric and chemical reconstruction objectives.
Training Data
Refer to the ODesign paper for the upstream training corpora and data construction. OFoldX does not redistribute those corpora.
Training Procedure
ODesignModel.forward corrupts explicit coordinate targets and performs differentiable denoising. odesign_loss
combines the five released objectives: weighted coordinate error, covalent-bond distance, smooth lDDT, distogram
classification and binary token-bond prediction.
These operations support custom training loops without reproducing the upstream data curation or complete training
program. The Runner guide describes input and target preparation. Known zero-occupancy
coordinates are unresolved by default for conditioning and truth; set filter_by_occupancy=False to ignore occupancy.
Citation
@misc{zhang2025odesign,
title={ODesign: A World Model for Biomolecular Interaction Design},
author={Zhang, Odin and Zhang, Xujun and Lin, Haitao and others},
year={2025},
eprint={2510.22304},
archivePrefix={arXiv},
primaryClass={q-bio.BM}
}
The artifacts distributed in this repository are part of the OFoldX project. If OFoldX supports your research, please cite the OFoldX project as follows:
@software{chen2026ofoldx,
author = {Chen, Zhiyuan},
title = {OFoldX},
year = {2026},
url = {https://github.com/OTeam-AI4S/OFoldX},
}
Contact
Please use GitHub issues of OFoldX for any questions or comments on the model implementation or model card.
Please contact the authors of the ODesign paper for questions or comments on the paper/model.
License
The model weights, implementation, configuration, and documentation distributed by OFoldX are licensed under the GNU Affero General Public License.
For additional terms and clarifications, please refer to our License FAQ.
SPDX-License-Identifier: AGPL-3.0-or-later