|
Download README.md from oteam/pxdesign: direct link, hf CLI and curl.
- Browser
- Download file 9.02 kB
-
https://huggingface.co/oteam/pxdesign/resolve/main/README.md
- Command line
-
hf download hf://oteam/pxdesign/README.md
-
curl -L -o README.md https://huggingface.co/oteam/pxdesign/resolve/main/README.md
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 | |
| ``` | |