This repository was archived by the owner on Mar 10, 2026. It is now read-only.
feat(workflows): Implement Standard Sidechain Placement Workflow#21
Merged
feat(workflows): Implement Standard Sidechain Placement Workflow#21
Conversation
…ng config and reorganizing placement and design configs
…lyzeConfig with validation
…ne work result type
…xt parameter and using direct reporter
… streamline energy calculation
…nContext and improve error handling for empty rotamer lists
…nd handle empty rotamer lists
…onsider the backbone atoms
…d final refinement
… simulated annealing parameters
…fine clash resolution logic
… and improving bond validation
… processing in RotamerLibrary
…rotamer structure
…t optimization tests
…d additional rotamers
11 tasks
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR introduces bond information to the TOML rotamer library definitions by adding bonds arrays to each rotamer entry. This data provides the internal connectivity information for each rotamer, supporting the enhanced rotamer library functionality described in the PR where topology information is now self-contained within the rotamer definitions.
- Adds bond connectivity data to all rotamer entries across all amino acid types
- Bond information is represented as pairs of atom serial numbers defining connectivity
- All bonds are represented consistently as pairs
[atom1_serial, atom2_serial]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
Introduces a complete, multi-stage sidechain placement workflow (
workflows::place), providing a powerful and configurable method for conformational sampling. The workflow is orchestrated by a new, underlyingenginemodule, which manages configuration, state, and task execution. This feature necessitated a significant refactoring of theforcefieldandrotamermodules to support a more robust and performant architecture. Key changes include making the rotamer library self-contained with topology/charge information, caching VDW parameters directly on atoms, and implementing a canonical sorting system for reproducible I/O.Changes:
Implemented the Placement Workflow (
workflows::place):Refactored Core
engineModule:config.rs: Fluent builders for creating type-safe configurations (PlacementConfig,DesignConfig, etc.).state.rs: AnOptimizationStatemanager using aBinaryHeapto efficiently track the top N solutions.context.rs: AContextstruct to centralize access to the system, configuration, and libraries, featuring a robust residue selection resolver (including ligand-binding sites via k-d tree).tasks/: A suite of modular, parallelizable tasks forel_energy,doublet_optimization,clash_detection, andtotal_energycalculations.placement.rs: Logic for placing rotamers onto a backbone using the Kabsch alignment algorithm.Refactored
forcefield,rotamer, and I/O Systems:Forcefieldis now leaner. Topology and charge information is self-contained within theRotamerLibrarydefinitions, simplifying the data flow.Atomstructs now cache their VDW parameters (CachedVdwParam), significantly speeding up energy calculations by avoiding repeated lookups.io::sortingmodule ensures that output files have a deterministic, canonical atom order, making them clean and easily comparable.Added Dependencies and Features:
rayonunder aparallelfeature flag for high-performance, parallel task execution.kiddofor efficient k-d tree spatial lookups.itertools,rand, andtracingfor advanced iteration, sampling, and logging.