You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 10, 2026. It is now read-only.
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.
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:
runFunction Signature: Define the main function inworkflows/analyze.rsthat accepts aninitial_system, anAnalyzeConfig, and aProgressReporter, returning aResult<AnalysisReport, EngineError>.Forcefieldand fully parameterize a copy of the input system.matchstatement on theanalysis_typefield from theAnalyzeConfigto dispatch to the correct analysis logic.InteractionAnalysis:AtomSelectiongroups (e.g.,Residue A,Chain B) into concreteVec<AtomId>.Scorerinstance.score_interactionon the two resolved atom groups.AnalysisReportwith the resultingEnergyTermbreakdown (VDW, Coulomb, HBond).ClashDetectionAnalysis:Scorer.threshold_kcal_mol, add the pair's details (atom identifiers, distance, energy) to a list within theAnalysisReport.AnalysisReport.