Goal
Refactor the current serial conformational analysis into explicit phases that can later be mapped onto a chunked map-reduce workflow.
Background
The current workflow already has a two-pass structure:
identify peaks:
collect selected-frame dihedral angles
build histograms
identify peaks
assign states:
inspect selected-frame dihedral angles
assign states using peaks
collect state labels and flexible-dihedral counts
This sub-issue should make those phases explicit without changing execution behaviour.
Scope
-
Keep execution serial.
-
Refactor ConformationStateBuilder or related conformational helpers into clearer phases:
- static dihedral/topology discovery
- selected-frame angle collection
- histogram/peak identification
- state assignment from peaks
- flexible-dihedral counting
- final output construction
-
Extract angle collection logic from peak identification.
-
Extract peak construction from collected angle/histogram data.
-
Extract state assignment so it can later operate on chunk-local dihedral results.
-
Preserve the frame-index contract:
- MDAnalysis
Dihedral.run(...) uses active analysis-universe frame indices.
Dihedral.results.angles is indexed locally from zero.
- absolute/source frame indices must not be used directly to index result arrays.
-
Do not add chunking or Dask yet.
Goal
Refactor the current serial conformational analysis into explicit phases that can later be mapped onto a chunked map-reduce workflow.
Background
The current workflow already has a two-pass structure:
This sub-issue should make those phases explicit without changing execution behaviour.
Scope
Keep execution serial.
Refactor
ConformationStateBuilderor related conformational helpers into clearer phases:Extract angle collection logic from peak identification.
Extract peak construction from collected angle/histogram data.
Extract state assignment so it can later operate on chunk-local dihedral results.
Preserve the frame-index contract:
Dihedral.run(...)uses active analysis-universe frame indices.Dihedral.results.anglesis indexed locally from zero.Do not add chunking or Dask yet.