pxdesign / README.md
ZhiyuanChen's picture
Correct OFoldX model card references
1fda1f5 verified
|
Raw History Blame Contribute Delete
9.02 kB
metadata
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. 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

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_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:

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