Skip to content

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

@harryswift01

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

No fields configured for Bug.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions