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

Implement Standard Placement Workflow #18

@TKanX

Description

@TKanX

Description:

This task focuses on implementing the core scientific capability of SCREAM++: the standard side-chain placement workflow. This workflow will take a molecular system and a configuration, and produce one or more optimized structures with predicted side-chain conformations.

Tasks:

  • Phase 0: Setup: Load resources (Forcefield, RotamerLibrary), create the OptimizationContext, and resolve the set of active residues to be optimized.
  • Phase 1: Pre-computation: Invoke tasks::el_energy::run to compute and cache the Empty Lattice (EL) energies for all rotamers of the active residues.
  • Phase 2: Initialization: Create an initial working_system by placing the ground-state rotamer (lowest EL energy) for each active residue. Initialize the OptimizationState with this first conformation.
  • Phase 3: Clash-Driven Optimization: Implement an iterative loop that repeatedly:
    • Identifies the most severe steric clash in the system using tasks::clash_detection.
    • Resolves the clash by performing a local optimization on the clashing pair using tasks::doublet_optimization.
    • Updates the working_system and OptimizationState.
    • Continues until no significant clashes remain or the system's energy converges.
  • Phase 4: Global Search (Simulated Annealing - Optional): Implement an optional Monte Carlo simulated annealing loop based on the simulated_annealing configuration to escape local minima.
  • Phase 5: Final Refinement: Implement a final, greedy iterative refinement loop (singlet optimization) where each active residue is optimized one-by-one in the context of all others, ensuring the system settles into a local energy minimum.
  • Phase 6: Finalization: Extract the top N best-scoring solutions from the OptimizationState and return them.

Metadata

Metadata

Assignees

Labels

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions