PXDesign
Native PyTorch implementation of PXDesign-d and the released PXDesign Preview and Extended target--binder design operations.
Disclaimer
This is an unofficial OFoldX implementation of PXDesign. The upstream authors did not write, review, or endorse this implementation or model card.
Model Details
PXDesign-d is an all-atom diffusion model for de novo and target-conditioned protein backbone generation. The complete released operation assigns one ProteinMPNN sequence per backbone, evaluates the complex and unbound binder with AF2, and, in Extended mode, routes evaluation between Protenix base and the structure-conditioned Protenix mini checkpoint before filtering and ranking every candidate.
Variants
- PXDesign backbone: Independently callable PXDesign-d generation through
PxDesignBackbonePipeline. - PXDesign Preview: 100 backbones by default, ProteinMPNN
v_48_020, AF2-IG complex evaluation, ordinary AF2 unbound-binder evaluation, released filters, and stable ranking. - PXDesign Extended: 500 backbones by default plus full-target Protenix routing, two-step screening, basic-pass 20-step reruns, and Extended filtering and ranking.
Model Specification
| Single Size | Pair Size | Token Denoiser Blocks | Atom Encoder Blocks | Atom Decoder Blocks | Num Parameters (M) |
|---|---|---|---|---|---|
| 384 | 128 | 16 | 4 | 4 | 139.011 |
Links
- Code: ofoldx.models.pxdesign
- Developed by: ByteDance Research
- Model type: Target-conditioned all-atom protein backbone diffusion model
- Original Repository: bytedance/PXDesign
- Released Evaluation Composition: bytedance/PXDesignBench
Feature and output contract
PXDesign resolves biological classes once and groups a component only under its declared actual-center convention. The conditioner retains every actual admitted heavy atom; source observation masks affect geometry, not canonical membership. Actual element and atom-name features include Se/SE. No MSE-to-MET chemical substitution is performed. This choice can change the checkpoint feature distribution.
Generated residues use an explicitly partial N/CA/C/O recipe with unknown sidechain identity, electronic state and hydrogen inventory. Prepared canonical atom/component maps are the physical copy operation's exact witnesses. Decode reuses these maps. ProteinMPNN composition consumes the sequence candidate's final target Structure directly. Matching labels or atom names cannot reconstruct physical identity after a sequence edit.
Public model and condition-embedding entries normalize finite features in the same input carrier. Coordinates excluded by a declared availability mask are zeroed before arithmetic or dtype conversion and have zero derivatives. Active nonfinite values are invalid requests; finite model-dtype overflow is an unsupported numeric range. Complete token fields have no implicit availability heuristic.
Usage
The model depends on the ofoldx
library. Install it with pip:
pip install ofoldx
Complete Design
Load a PXDesign repository containing its six child Pipelines and run Preview:
from ofoldx.models.pxdesign import PxDesignPipeline, from_binder
pipeline = PxDesignPipeline.from_repository("oteam/pxdesign")
result = pipeline.design(target_structure, placement=from_binder(100, [("target", [(0, 150)])]))
Extended accepts the full-target MSA and retains all 500 candidates unless a different count is requested:
result = pipeline.design(
target_structure,
placement=from_binder(100, [("target", [(0, 150)])]),
msa=target_msa,
mode="extended",
)
best = result.ranked_candidates[0]
The backbone/ child of a complete repository is independently loadable as a
PxDesignBackbonePipeline. It performs PXDesign-d coordinate generation;
the concrete PxDesignPipeline owns the released six-child composition.
The complete repository stores the PXDesign-d child under backbone/ and the five
other children under proteinmpnn/, af2_complex/, af2_binder/,
protenix/, and protenix_structure/. Preview uses the first four pairs.
Extended also uses both Protenix pairs, reruns every basic screening pass
(including strict passes) for 20 diffusion transitions, and never selects a
two-step screening structure as the returned structure. Target routing and AF2
globally refit after chemically qualified chain assignment; Protenix retains
the anchored-assignment RMSD. The fold child and its target declare the same
canonical atom-address domain. Their complete recorded chemical evidence must
agree first, including explicit negative relations, qualified stereo owners and
each independent inventory/connection closure. All canonical atoms constrain a
chain exchange, including H and atoms without coordinates. Equal sequence labels
alone do not qualify it; unresolved chemistry remains fixed at its native
address. External sites stay fixed, so this conservative policy need not find
every simultaneous permutation of crosslinked chains.
Only CA coordinates available in both Structures rank qualified assignments. An anchor needs at least three noncollinear paired sites and a uniquely resolved proper Kabsch rotation at float64 precision; planar rank-two anchors are allowed. Infeasible assignments are skipped, and missing orientation information or unsupported numerical range produces a typed failure. Canonical Structures in the result keep their original instance identities. These alignment conditions describe numerical capability, not chemical or physical identity.
Execution Stages
Both Pipelines expose prepare, forward, and postprocess. Calling a Pipeline
directly performs the same complete operation as design.
prepared = pipeline.prepare(
target_structure,
placement=from_binder(100, [("target", [(0, 150)])]),
msa=target_msa,
mode="extended",
seed=7,
)
output = pipeline.forward(prepared, sample_chunk_size=10)
result = pipeline.postprocess(prepared, output)
PxDesignPipelineInput retains the full target, its bound MSA, the prepared generation
crop, the candidate count, and the generator shared by all children.
PxDesignPipelineOutput contains the evaluated candidates and target prediction;
postprocessing assigns final selection buckets and stable ranks.
For independent backbone generation, PxDesignBackbonePipelineInput retains the
PxDesignInput, realized placement map, and output-to-source component
correspondence. Backbone forward returns PxDesignSamplingOutput, and
postprocess reconstructs source-aware Structures in generation order.
Training Details
Training Data
PXDesign-d is trained on protein structures for unconditional and target-conditioned backbone generation.
Training Procedure
PXDesign-d uses an EDM coordinate-denoising objective. OFoldX exposes the differentiable one-step denoiser for training and fine-tuning; it does not reproduce PXDesign-d's full training pipeline. Preview and Extended are fixed multi-model inference compositions and require all converted child repositories listed above.
Citation
Please cite the PXDesign work and repository described by the upstream project.
If OFoldX supports your research, also cite the OFoldX software:
@software{chen2026ofoldx,
author = {Chen, Zhiyuan},
title = {OFoldX},
year = {2026},
url = {https://github.com/OTeam-AI4S/OFoldX},
}
Contact
Please use OFoldX GitHub issues for questions about this implementation or model card.
License
The original PXDesign and Protenix parameters are licensed under Apache-2.0 and Apache-2.0, respectively. ProteinMPNN parameters are licensed under MIT.
AlphaFold 2 parameters are Copyright 2022 DeepMind Technologies Limited, licensed under CC BY 4.0; see the original parameter archive and publication. OFoldX conversion changes parameter names, packing and vocabulary axes.
This model implementation is licensed under the GNU Affero General Public License.
SPDX-License-Identifier: AGPL-3.0-or-later