https://github.com/bytedance/pxmeter

Structural Quality Assessment for Biomolecular Structure Prediction Models

https://github.com/bytedance/pxmeter

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: biorxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

bioinformatics evaluation
Last synced: 5 months ago · JSON representation

Repository

Structural Quality Assessment for Biomolecular Structure Prediction Models

Basic Info
  • Host: GitHub
  • Owner: bytedance
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 6.83 MB
Statistics
  • Stars: 50
  • Watchers: 1
  • Forks: 1
  • Open Issues: 1
  • Releases: 5
Topics
bioinformatics evaluation
Created 8 months ago · Last pushed 5 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

PXMeter - Structural Quality Assessment for Biomolecular Structure Prediction Models

License Python 3.11+

📄 From Dataset Curation to Unified Evaluation: Revisiting Structure Prediction Benchmarks with PXMeter

PXMeter is a comprehensive toolkit for evaluating the quality of structures generated by biomolecular structure prediction models, with support for proteins, nucleic acids, and small molecules.

🌟 Features

  • Full-Atom Matching Between Reference and Model Structures: Automatically matches entities, aligns sequences, and permutes chains and atoms to establish one-to-one correspondence.
  • Multi-metric Evaluation:
    • Local Distance Difference Test (LDDT) - A local superposition-free score for comparing reference and model structures.
    • DockQ - Interface interaction quality.
    • Pocket-aligned Root Mean Squared Deviation (RMSD) - Ligand pose quality.
    • PoseBusters Validity Checks - Plausibility checks for generated molecule poses.
  • Dual Interfaces: CLI & Python API

🛠️ Installation

```bash

Install from PyPI

pip install pxmeter

Install from source

git clone https://github.com/bytedance/PXMeter.git cd PXMeter pip install -r requirements.txt pip install -e . ```

PXMeter will automatically download the Chemical Component Dictionary (CCD) upon its first run. To update the CCD files:

bash pxm ccd update

🚀 Quick Start

Command Line Interface

bash pxm -r examples/7rss.cif -m examples/7rss_protenix_pred.cif -o pxm_output.json

Key Parameters: - -r or --ref_cif: Path to reference CIF file - -m or --model_cif: Path to model CIF file - -o or --output: Path to save evaluation results (default: "pxmoutput.json") - `--refmodel: Specify model number of reference CIF (default: 1) ---refassemblyid: Specify the assembly ID for the reference CIF (default: None; uses the Asymmetric Unit for evaluation) -refaltloc: Specify the alternative location identifier for the reference CIF (default: "first", uses the first alternative location code for each residue). ---chainidtomoljson`: JSON file defining custom ligands, where keys are chain IDs (labelasymid) and values are the corresponding ligand SMILES strings. - -l or `--interestedliglabelasymid: Indicate thelabelasym_id` of ligands for metrics like pocket-aligned RMSD. Multiple ligands should be comma-separated.

To access the full list of parameters, use the --help option.

Python API

Note: For batch evaluation of multiple structures, the Python API is highly recommended. This approach is more efficient than repeated command line calls because it caches CCD CIF files in memory and thus avoids redundant disk I/O.

```python from pxmeter.eval import evaluate

refcif = "examples/7rss.cif" modelcif = "examples/7rssprotenixpred.cif" metricresult = evaluate( refcif=refcif, modelcif=model_cif, )

jsondict = metricresult.tojsondict() print(json_dict) ```

For detailed descriptions of additional parameters, use the help() function: python help(evaluate)

📊 Benchmarking

Refer to benchmark/README.md for evaluation protocols on: - RecentPDB dataset - PoseBusters V2

The benchmark data is released under the CC0 license. We include code in the benchmark directory that evaluates various models using PXMeter and aggregates their metrics. This serves as an example of best practices for using the tool. For more details, please refer to our paper:

📄 From Dataset Curation to Unified Evaluation: Revisiting Structure Prediction Benchmarks with PXMeter

💪 Contributing to PXMeter

We welcome contributions from the community to help improve PXMeter!

Check out the Contributing Guide to get started.

Code Quality: We use pre-commit hooks to maintain consistent programming style and code quality. Please install them before committing.

bash pip install pre-commit pre-commit install

✍️ Citing PXMeter

If you use PXMeter in your research, please cite the following: bibtex @article {Ma2025.07.17.664878, author = {Ma, Wenzhi and Liu, Zhenyu and Yang, Jincai and Lu, Chan and Zhang, Hanyu and Xiao, Wenzhi}, title = {From Dataset Curation to Unified Evaluation: Revisiting Structure Prediction Benchmarks with PXMeter}, year = {2025}, doi = {10.1101/2025.07.17.664878}, publisher = {Cold Spring Harbor Laboratory}, URL = {https://www.biorxiv.org/content/early/2025/07/22/2025.07.17.664878}, eprint = {https://www.biorxiv.org/content/early/2025/07/22/2025.07.17.664878.full.pdf}, journal = {bioRxiv} }

🚧 Limitations

  • PXMeter supports chain/atom permutations but not residue-level permutations. As a result, the accuracy of evaluation for branched chains, such as glycans, cannot be fully guaranteed.
  • It is recommended to use CIF files from the RCSB PDB as references, as they ensure content accuracy. All development and testing were conducted exclusively on CIF files from this source.

🛡️ Security

If you discover a potential security issue in this project, or think you may have discovered a security issue, we ask that you notify Bytedance Security via our security center or vulnerability reporting email.

Please do not create a public GitHub issue.

⚖️ License

The PXMeter project is made available under the Apache 2.0 License, it is free for both academic research and commercial use.

Owner

  • Name: Bytedance Inc.
  • Login: bytedance
  • Kind: organization
  • Location: Singapore

GitHub Events

Total
  • Create event: 3
  • Issues event: 1
  • Release event: 3
  • Watch event: 29
  • Issue comment event: 1
  • Push event: 5
  • Public event: 1
  • Fork event: 1
Last Year
  • Create event: 3
  • Issues event: 1
  • Release event: 3
  • Watch event: 29
  • Issue comment event: 1
  • Push event: 5
  • Public event: 1
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • chensiyuan030105 (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • biotite >=1.2.0
  • click *
  • dockq ==2.1.3
  • gemmi ==0.7.0
  • joblib *
  • ml_collections *
  • numpy *
  • pandas *
  • pdbeccdutils ==0.8.5
  • posebusters ==0.3.1
  • rdkit >=2024.09.6
  • scipy *
  • tabulate *
  • tqdm *
setup.py pypi