Skip to content

feat(bench): Implement dpack-bench Binary and Workspace Restructuring#10

Merged
TKanX merged 28 commits intomainfrom
feature/9-implement-benchmark-binary-dpack-bench
Apr 3, 2026
Merged

feat(bench): Implement dpack-bench Binary and Workspace Restructuring#10
TKanX merged 28 commits intomainfrom
feature/9-implement-benchmark-binary-dpack-bench

Conversation

@TKanX
Copy link
Copy Markdown
Member

@TKanX TKanX commented Apr 3, 2026

Summary:

Introduced the dpack-bench CLI utility to rigorously evaluate sidechain packing accuracy against crystal structures (e.g., the DB379 dataset). To support this, the repository was restructured into a Cargo workspace, isolating the core dreid-pack library/CLI from benchmark-specific infrastructure. Added a CI workflow for automated benchmark reporting.

Changes:

  • Workspace Reorganization: Converted the repository into a Cargo workspace containing crates/dreid-pack (core engine/CLI) and crates/dreid-pack-bench (evaluation tools).

  • Benchmark Pipeline (dreid-pack-bench): Developed a multi-threaded evaluation pipeline that automatically packs structure directories, compares against crystal references, and outputs aggregated tabular or CSV metrics.

  • Accuracy Metrics (chi, rmsd.rs):

    • Implemented heavy-atom sidechain RMSD calculations.
    • Added precise $\chi_{1-4}$ dihedral angle comparisons, including dynamic topological symmetry resolution for degenerate terminal groups (e.g., Asp, Glu, Phe, Tyr, Arg, Asn, Gln, His).
  • B-factor Filtering (bfactor.rs): Built zero-allocation PDB/mmCIF B-factor parsers to exclude highly flexible (unreliable) crystal residues from accuracy statistics based on configurable percentile cutoffs.

  • Structural Pairing (format.rs): Integrated bio-forge to handle reference and packed structure loading, cleaning, and exact atom-to-atom coordinate mapping.

  • CI Integration: Added .github/workflows/bench.yml to execute dpack-bench on the 379-structure dataset and inject markdown reports into GitHub Actions summaries.

TKanX added 27 commits April 1, 2026 17:00
@TKanX TKanX self-assigned this Apr 3, 2026
Copilot AI review requested due to automatic review settings April 3, 2026 06:00
@TKanX TKanX added the enhancement ✨ New feature or request label Apr 3, 2026
@TKanX TKanX linked an issue Apr 3, 2026 that may be closed by this pull request
1 task
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Implements a new dreid-pack-bench CLI for benchmarking packing accuracy on structure datasets and restructures the repo into a Cargo workspace to separate core packing code from benchmarking infrastructure.

Changes:

  • Converted the repository into a Cargo workspace with crates/dreid-pack and crates/dreid-pack-bench.
  • Added a new dreid-pack-bench crate with dpack-bench binary and CLI feature-gating.
  • Introduced a GitHub Actions workflow to build and run the benchmark and publish results into the job summary.

Reviewed changes

Copilot reviewed 4 out of 430 changed files in this pull request and generated 4 comments.

File Description
crates/dreid-pack-bench/data/db379/1YZM.cif Adds a benchmark dataset structure file used by the new bench pipeline.
crates/dreid-pack-bench/Cargo.toml Defines the new bench crate, its dependencies, and a feature-gated dpack-bench binary.
Cargo.toml Converts the repo root manifest into a workspace manifest and centralizes package metadata.
.github/workflows/bench.yml Adds CI job to build/run the benchmark and publish a markdown summary.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/bench.yml
Comment thread .github/workflows/bench.yml
Comment thread crates/dreid-pack-bench/Cargo.toml
Comment thread crates/dreid-pack-bench/data/db379/1YZM.cif
@TKanX TKanX merged commit f729817 into main Apr 3, 2026
4 checks passed
@TKanX TKanX deleted the feature/9-implement-benchmark-binary-dpack-bench branch April 3, 2026 06:34
@TKanX TKanX added the documentation 📖 Improvements or additions to documentation label Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation 📖 Improvements or additions to documentation enhancement ✨ New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Benchmark Binary (dpack-bench)

2 participants