Skip to content
This repository was archived by the owner on Mar 10, 2026. It is now read-only.

feat(core): Implement Rotamer Library for Conformation Management#14

Merged
TKanX merged 21 commits intomainfrom
feature/13-implement-rotamer-library-module-for-conformation-management
Jul 10, 2025
Merged

feat(core): Implement Rotamer Library for Conformation Management#14
TKanX merged 21 commits intomainfrom
feature/13-implement-rotamer-library-module-for-conformation-management

Conversation

@TKanX
Copy link
Member

@TKanX TKanX commented Jul 10, 2025

Summary:

Introduces a comprehensive rotamers module designed to load, manage, and apply pre-calculated sidechain conformations. The core component is a RotamerLibrary that reads rotamer definitions and placement instructions from TOML files. A key aspect of this implementation is that each rotamer is fully parameterized on-the-fly using the existing forcefield module during the loading process. This ensures that rotamers are not just coordinate sets but are immediately ready for accurate energy scoring and conformational sampling within the system.

Changes:

  • Implemented Rotamer Library (rotamers::library):

    • Created a RotamerLibrary to serve as the central repository for all loaded rotamer conformations.
    • Implemented RotamerLibrary::load to parse rotamer data from a TOML file, mapping conformations to their respective ResidueType.
    • Provided a robust LibraryLoadError enum for handling I/O, parsing, and logical errors during the loading process.
  • Integrated On-the-Fly Parameterization:

    • Added a new public method parameterize_atom to the Parameterizer. This function applies forcefield settings (topology, VDW, delta, etc.) to a single Atom.
    • The RotamerLibrary uses this new method during loading to ensure every atom in every rotamer is fully parameterized and ready for use in energy calculations.
  • Developed a Placement Information System (rotamers::placement):

    • Implemented PlacementInfo and PlacementRegistry to define how a rotamer should be aligned and placed onto a protein backbone.
    • This system specifies anchor atoms for alignment, sidechain atoms for replacement, and connection points, loaded from a dedicated TOML registry file.
  • Defined Core Rotamer Data Structures (rotamers::rotamer):

    • Created RotamerData and RotamerAtomData as serde-compatible structs for deserializing rotamer definitions from files.
    • Defined the in-memory Rotamer struct, which holds a collection of fully parameterized Atom objects.
  • Established New Module Structure:

    • Created a new top-level rotamers module in scream-core.
    • Organized the functionality into logical submodules: library, placement, and rotamer.

TKanX added 21 commits July 9, 2025 18:06
@TKanX TKanX self-assigned this Jul 10, 2025
Copilot AI review requested due to automatic review settings July 10, 2025 06:29
@TKanX TKanX added the enhancement ✨ New feature or request label Jul 10, 2025
@TKanX TKanX linked an issue Jul 10, 2025 that may be closed by this pull request
18 tasks
Copy link
Contributor

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

Introduces a large TOML data file containing precomputed rotamer conformations for all standard amino acids under the CHARMM-N force field at 4.8 Å RMSD clustering.

  • Adds a single rmsd-4.8.toml file listing multiple rotamer entries per residue type
  • Each rotamer table ([[ALA]], [[ARG]], etc.) provides serial, atom name, charge, 3D position, and force field type
Comments suppressed due to low confidence (2)

data/rotamers/charmm-n/rmsd-4.8.toml:1

  • File lacks a top-level comment or header explaining the TOML schema, clustering criteria (RMSD 4.8), and how conformers are ordered; consider adding a descriptive comment block at the top.
[[ALA]]

data/rotamers/charmm-n/rmsd-4.8.toml:13

  • Multiple [[ARG]] tables imply distinct rotamers but have no explicit identifier; consider adding a cluster_id or index field inside each table to distinguish them clearly.
[[ARG]]

@TKanX TKanX merged commit 2b3800b into main Jul 10, 2025
2 checks passed
@TKanX TKanX deleted the feature/13-implement-rotamer-library-module-for-conformation-management branch July 10, 2025 06:32
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

enhancement ✨ New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Rotamer Library Module for Conformation Management

2 participants