Skip to content

[Bug]: Investigate ambiguous residue conformational state indexing #368

Description

@harryswift01

Bug Report

Residue-level conformational state indexing may be ambiguous.

During the serial chunked conformational refactor, changing states_res from a preallocated list to an append-only list changed DNA regression outputs:

group 0 component residue:Conformational: expected=0.0 got=5.292271495278918
group 0 total increased by the same amount

The regression-preserving behaviour requires:

states_res = [[] for _ in range(number_groups)]

rather than:

states_res = []

This suggests downstream code may read residue conformational states using states_res[group_id], while the calculated residue state data is appended later rather than assigned to the group index.

To Reproduce

Run the DNA regression tests after changing states_res to append-only storage:

pytest tests/regression/test_regression.py -k "dna-frame_window or dna-axes_off"

Expected Behaviour

The refactor should preserve current regression output:

group 0 component residue:Conformational = 0.0

Actual Behaviour

Residue conformational entropy becomes non-zero:

group 0 component residue:Conformational = 5.292271495278918

Suggested Investigation

Check whether conformational_states["res"] should be:

states_res[group_id]

or whether residue conformational states should use an explicit group-keyed structure, for example:

states_res: dict[int, list[str]]

Any change here should be treated as a separate scientific/behavioural change because it affects regression baselines.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions