Skip to content

Introduce Dedicated ConformationDAG Stage for Conformational Analysis#366

Merged
harryswift01 merged 3 commits into
mainfrom
362-introduce-a-dedicated-conformationdag-stage
Jun 16, 2026
Merged

Introduce Dedicated ConformationDAG Stage for Conformational Analysis#366
harryswift01 merged 3 commits into
mainfrom
362-introduce-a-dedicated-conformationdag-stage

Conversation

@harryswift01

Copy link
Copy Markdown
Member

Summary

This PR introduces a dedicated ConformationDAG stage for conformational state construction. Previously, conformational/dihedral analysis was executed as part of the static LevelDAG node list. This change separates conformational state construction into its own workflow stage between static structural setup and frame-local covariance/neighbour execution, while preserving the existing serial ConformationStateBuilder behaviour.

Changes

Introduce ConformationDAG stage:

  • Added a new ConformationDAG class to own conformational state construction.
  • Kept the initial implementation as a wrapper around the existing ConformationStateBuilder.
  • Preserved the existing conformational output contract:
    • shared_data["conformational_states"]
    • shared_data["flexible_dihedrals"]

Update LevelDAG orchestration:

Updated LevelDAG so workflow execution now follows:

  1. static structural setup
  2. conformational state construction
  3. frame covariance/neighbour execution
  • Removed conformational state construction from the static DAG node list.
  • Added a dedicated _run_conformation_stage(...) method.
  • Kept neighbour metadata initialisation and neighbour reduction around the frame stage.

Update tests and documentation:

  • Replaced conformational static-node tests with ConformationDAG tests.
  • Updated LevelDAG orchestration tests to include the new conformation stage.
  • Removed autodoc references to the deleted conformational node module.
  • Added API documentation for CodeEntropy.levels.conformation_dag.

Impact

  • Makes the hierarchy-level workflow architecture clearer by separating static setup, conformational analysis, and frame-local execution.
  • Keeps the current conformational algorithm and scientific output behaviour unchanged.
  • Provides a dedicated stage boundary for future conformational map-reduce and Dask parallelisation work.
  • Reduces the responsibility of the static DAG so it only handles structural setup.
  • Keeps this change low-risk by preserving the existing serial ConformationStateBuilder implementation.

@harryswift01 harryswift01 added this to the 2.3.0 milestone Jun 16, 2026
@harryswift01 harryswift01 requested a review from jimboid June 16, 2026 14:13
@harryswift01 harryswift01 self-assigned this Jun 16, 2026
@harryswift01 harryswift01 added the feature request New feature or request label Jun 16, 2026
@harryswift01 harryswift01 linked an issue Jun 16, 2026 that may be closed by this pull request

@jimboid jimboid left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR contains more work to pull out key code features so that we can build on the parallel code to bring more of the workload into the dask parallel segments of the program. Looks like everything has been included such as code, docs, tests etc and is a needed feature in the code base.

@harryswift01 harryswift01 merged commit 970e2f8 into main Jun 16, 2026
23 checks passed
@harryswift01 harryswift01 deleted the 362-introduce-a-dedicated-conformationdag-stage branch June 16, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature request New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Introduce a Dedicated ConformationDAG Stage

2 participants