pxdesign / README.md
ZhiyuanChen's picture
Correct OFoldX model card references
1fda1f5 verified
|
Raw History Blame Contribute Delete
9.02 kB
---
tags:
- Biology
- Protein
- Protein Design
license: agpl-3.0
library_name: ofoldx
pipeline_tag: other
---
# 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](https://github.com/bytedance/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](https://github.com/OTeam-AI4S/OFoldX/tree/main/ofoldx/models/pxdesign)
- **Developed by**: ByteDance Research
- **Model type**: Target-conditioned all-atom protein backbone diffusion model
- **Original Repository**: [bytedance/PXDesign](https://github.com/bytedance/PXDesign)
- **Released Evaluation Composition**: [bytedance/PXDesignBench](https://github.com/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`](https://github.com/OTeam-AI4S/OFoldX)
library. Install it with pip:
```bash
pip install ofoldx
```
### Complete Design
Load a PXDesign repository containing its six child Pipelines and run Preview:
```python
from ofoldx.models.pxdesign import PxDesignPipeline, from_binder
pipeline = PxDesignPipeline.from_pretrained("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:
```python
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`.
```python
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](https://github.com/bytedance/PXDesign).
If OFoldX supports your research, also cite the OFoldX software:
```bibtex
@software{chen2026ofoldx,
author = {Chen, Zhiyuan},
title = {OFoldX},
year = {2026},
url = {https://github.com/OTeam-AI4S/OFoldX},
}
```
## Contact
Please use [OFoldX GitHub issues](https://github.com/OTeam-AI4S/OFoldX/issues)
for questions about this implementation or model card.
## License
The original PXDesign and Protenix parameters are licensed under [Apache-2.0](licenses/PXDesign-Apache-2.0.txt) and [Apache-2.0](licenses/Protenix-Apache-2.0.txt), respectively. ProteinMPNN parameters are licensed under [MIT](licenses/ProteinMPNN-MIT.txt).
AlphaFold 2 parameters are Copyright 2022 DeepMind Technologies Limited, licensed under [CC BY 4.0](licenses/AlphaFold2-CC-BY-4.0.txt); see the [original parameter archive](https://storage.googleapis.com/alphafold/alphafold_params_2022-12-06.tar) and [publication](https://doi.org/10.1038/s41586-021-03819-2). OFoldX conversion changes parameter names, packing and vocabulary axes.
This model implementation is licensed under the [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.en.html).
```spdx
SPDX-License-Identifier: AGPL-3.0-or-later
```