Skip to content

Implement Analysis Workflow #20

@TKanX

Description

@TKanX

Description:

This task focuses on creating a dedicated analysis workflow. Instead of optimizing a structure, this workflow uses the SCREAM++ force field and scoring engine to perform specific calculations on a given molecular system and report the results. This provides a powerful utility for users to probe molecular interactions and properties.

Tasks:

  • run Function Signature: Define the main function in workflows/analyze.rs that accepts an initial_system, an AnalyzeConfig, and a ProgressReporter, returning a Result<AnalysisReport, EngineError>.
  • Phase 0: Setup: Load the Forcefield and fully parameterize a copy of the input system.
  • Phase 1: Dispatch & Execute:
    • Implement a match statement on the analysis_type field from the AnalyzeConfig to dispatch to the correct analysis logic.
    • For Interaction Analysis:
      • Resolve the two AtomSelection groups (e.g., Residue A, Chain B) into concrete Vec<AtomId>.
      • Create a Scorer instance.
      • Call score_interaction on the two resolved atom groups.
      • Populate and return an AnalysisReport with the resulting EnergyTerm breakdown (VDW, Coulomb, HBond).
    • For ClashDetection Analysis:
      • Resolve the selection of atoms to check for clashes (e.g., all atoms).
      • Iterate through all relevant non-bonded atom pairs in the selection.
      • Calculate the interaction energy for each pair using the Scorer.
      • If the energy exceeds the configured threshold_kcal_mol, add the pair's details (atom identifiers, distance, energy) to a list within the AnalysisReport.
      • Return the final AnalysisReport.

Metadata

Metadata

Assignees

Labels

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions