Skip to content

Commit 77ae581

Browse files
authored
Merge pull request #459 from CCPBioSim/368-bug-investigate-ambiguous-residue-conformational-state-indexing
Fix residue conformational state indexing by group id
2 parents f5ba2aa + 0933016 commit 77ae581

61 files changed

Lines changed: 375 additions & 361 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CodeEntropy/levels/dihedrals/conformational_state_builder.py‎

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ def build_conformational_states(
4646
frame_selection: FrameSelection,
4747
progress: _RichProgressSink | None = None,
4848
chunk_size: int | None = None,
49-
) -> tuple[dict[UAKey, list[str]], list[list[str]], dict[UAKey, int], list[int]]:
49+
) -> tuple[
50+
dict[UAKey, list[str]],
51+
dict[int, list[str]],
52+
dict[UAKey, int],
53+
dict[int, int],
54+
]:
5055
"""Build conformational state labels from selected trajectory frames.
5156
5257
Args:
@@ -87,7 +92,12 @@ def _build_conformational_states_serial_chunked(
8792
frame_selection: FrameSelection,
8893
chunk_size: int,
8994
progress: _RichProgressSink | None = None,
90-
) -> tuple[dict[UAKey, list[str]], list[list[str]], dict[UAKey, int], list[int]]:
95+
) -> tuple[
96+
dict[UAKey, list[str]],
97+
dict[int, list[str]],
98+
dict[UAKey, int],
99+
dict[int, int],
100+
]:
91101
"""Build conformational states with serial frame-chunk map-reduce.
92102
93103
Args:
@@ -108,11 +118,10 @@ def _build_conformational_states_serial_chunked(
108118
if chunk_size < 1:
109119
raise ValueError("chunk_size must be >= 1")
110120

111-
number_groups = len(groups)
112121
states_ua: dict[UAKey, list[str]] = {}
113-
states_res: list[list[str]] = [[] for _ in range(number_groups)]
122+
states_res: dict[int, list[str]] = {}
114123
flexible_ua: dict[UAKey, int] = {}
115-
flexible_res: list[int] = []
124+
flexible_res: dict[int, int] = {}
116125

117126
task: TaskID | None = None
118127
if progress is not None:
@@ -186,6 +195,7 @@ def _build_conformational_states_serial_chunked(
186195
state_data = self._reduce_state_partials(state_partials)
187196

188197
self._merge_group_state_data(
198+
group_id=group_id,
189199
state_data=state_data,
190200
states_ua=states_ua,
191201
states_res=states_res,

‎CodeEntropy/levels/dihedrals/state_assignment.py‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,20 +170,23 @@ def _reduce_state_partials(
170170

171171
@staticmethod
172172
def _merge_group_state_data(
173+
group_id: int,
173174
state_data: ConformationStateData,
174175
states_ua: dict[UAKey, list[str]],
175-
states_res: list[list[str]],
176+
states_res: dict[int, list[str]],
176177
flexible_ua: dict[UAKey, int],
177-
flexible_res: list[int],
178+
flexible_res: dict[int, int],
178179
) -> None:
179180
"""Merge one group's state data into final output accumulators.
180181
181182
Args:
183+
group_id: Id of the group the state data belongs to.
182184
state_data: Serial conformational state data for one group.
183185
states_ua: UA state accumulator to mutate.
184-
states_res: Residue state accumulator to mutate.
186+
states_res: Residue state accumulator, keyed by group id, to mutate.
185187
flexible_ua: UA flexible-dihedral accumulator to mutate.
186-
flexible_res: Residue flexible-dihedral accumulator to mutate.
188+
flexible_res: Residue flexible-dihedral accumulator, keyed by group id,
189+
to mutate.
187190
188191
Returns:
189192
None. Mutates the provided accumulators.
@@ -199,8 +202,8 @@ def _merge_group_state_data(
199202
state_data.flexible_ua_updates[key],
200203
)
201204

202-
states_res.append(state_data.state_res)
203-
flexible_res.append(state_data.flex_res)
205+
states_res[group_id] = state_data.state_res
206+
flexible_res[group_id] = state_data.flex_res
204207

205208
def _process_conformations_from_angles(
206209
self,

‎tests/regression/baselines/benzaldehyde/axes_off.json‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"0": {
44
"components": {
55
"united_atom:Transvibrational": 0.06950663196232491,
6-
"united_atom:Rovibrational": 35.19655714759131,
7-
"residue:FTmat-Transvibrational": 86.6413638447789,
8-
"residue:FTmat-Rovibrational": 62.24303760058523,
6+
"united_atom:Rovibrational": 35.19655714759134,
7+
"residue:FTmat-Transvibrational": 86.64136384477892,
8+
"residue:FTmat-Rovibrational": 62.24303760058521,
99
"united_atom:Conformational": 0.0,
1010
"residue:Conformational": 0.0,
1111
"residue:Orientational": 20.481571492615355
1212
},
13-
"total": 204.6320367175331
13+
"total": 204.63203671753317
1414
}
1515
}
1616
}

‎tests/regression/baselines/benzaldehyde/combined_forcetorque_false.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"0": {
44
"components": {
55
"united_atom:Transvibrational": 0.06817494136874551,
6-
"united_atom:Rovibrational": 49.686697381523466,
6+
"united_atom:Rovibrational": 49.686697381523516,
77
"residue:Transvibrational": 69.25273989458984,
8-
"residue:Rovibrational": 68.64810133422232,
8+
"residue:Rovibrational": 68.6481013342223,
99
"united_atom:Conformational": 0.0,
1010
"residue:Conformational": 0.0,
1111
"residue:Orientational": 20.481571492615355
1212
},
13-
"total": 208.13728504431973
13+
"total": 208.13728504431975
1414
}
1515
}
1616
}

‎tests/regression/baselines/benzaldehyde/default.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
"groups": {
33
"0": {
44
"components": {
5-
"united_atom:Transvibrational": 24.921822103314035,
6-
"united_atom:Rovibrational": 27.950376507672594,
7-
"residue:FTmat-Transvibrational": 70.97090266225699,
5+
"united_atom:Transvibrational": 24.92182210331405,
6+
"united_atom:Rovibrational": 27.950376507672583,
7+
"residue:FTmat-Transvibrational": 70.97090266225698,
88
"residue:FTmat-Rovibrational": 59.588669973122094,
99
"united_atom:Conformational": 7.522643899702263,
1010
"residue:Conformational": 0.0,

‎tests/regression/baselines/benzaldehyde/frame_window.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"0": {
44
"components": {
55
"united_atom:Transvibrational": 37.90368186636453,
6-
"united_atom:Rovibrational": 38.219068584436165,
7-
"residue:FTmat-Transvibrational": 73.76730786578052,
6+
"united_atom:Rovibrational": 38.21906858443616,
7+
"residue:FTmat-Transvibrational": 73.76730786578054,
88
"residue:FTmat-Rovibrational": 57.689489298548764,
99
"united_atom:Conformational": 0.0,
1010
"residue:Conformational": 0.0,

‎tests/regression/baselines/benzaldehyde/grouping_each.json‎

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"0": {
44
"components": {
55
"united_atom:Transvibrational": 0.0,
6-
"united_atom:Rovibrational": 0.062499436482478535,
7-
"residue:FTmat-Transvibrational": 16.838570367698324,
6+
"united_atom:Rovibrational": 0.062499436482478445,
7+
"residue:FTmat-Transvibrational": 16.83857036769834,
88
"residue:FTmat-Rovibrational": 0.0,
99
"united_atom:Conformational": 0.0,
1010
"residue:Conformational": 0.0,
1111
"residue:Orientational": 31.909265242174982
1212
},
13-
"total": 48.81033504635579
13+
"total": 48.8103350463558
1414
},
1515
"1": {
1616
"components": {
@@ -27,26 +27,26 @@
2727
"2": {
2828
"components": {
2929
"united_atom:Transvibrational": 0.0,
30-
"united_atom:Rovibrational": 0.0022147884278620493,
30+
"united_atom:Rovibrational": 0.0022147884278620397,
3131
"residue:FTmat-Transvibrational": 17.449372254125855,
3232
"residue:FTmat-Rovibrational": 0.0,
3333
"united_atom:Conformational": 0.0,
3434
"residue:Conformational": 0.0,
3535
"residue:Orientational": 31.909265242174982
3636
},
37-
"total": 49.3608522847287
37+
"total": 49.36085228472869
3838
},
3939
"3": {
4040
"components": {
4141
"united_atom:Transvibrational": 0.0,
4242
"united_atom:Rovibrational": 0.001983835543157824,
43-
"residue:FTmat-Transvibrational": 15.80397693084538,
43+
"residue:FTmat-Transvibrational": 15.803976930845373,
4444
"residue:FTmat-Rovibrational": 0.0,
4545
"united_atom:Conformational": 0.0,
4646
"residue:Conformational": 0.0,
4747
"residue:Orientational": 0.0
4848
},
49-
"total": 15.805960766388537
49+
"total": 15.80596076638853
5050
},
5151
"4": {
5252
"components": {
@@ -88,30 +88,30 @@
8888
"components": {
8989
"united_atom:Transvibrational": 0.0,
9090
"united_atom:Rovibrational": 0.004033941970593011,
91-
"residue:FTmat-Transvibrational": 18.906768821421366,
91+
"residue:FTmat-Transvibrational": 18.906768821421363,
9292
"residue:FTmat-Rovibrational": 0.0,
9393
"united_atom:Conformational": 0.0,
9494
"residue:Conformational": 0.0,
9595
"residue:Orientational": 0.0
9696
},
97-
"total": 18.91080276339196
97+
"total": 18.910802763391956
9898
},
9999
"8": {
100100
"components": {
101101
"united_atom:Transvibrational": 0.0,
102-
"united_atom:Rovibrational": 0.020362757918507036,
102+
"united_atom:Rovibrational": 0.020362757918507064,
103103
"residue:FTmat-Transvibrational": 16.13204209116967,
104104
"residue:FTmat-Rovibrational": 0.0,
105105
"united_atom:Conformational": 0.0,
106106
"residue:Conformational": 0.0,
107107
"residue:Orientational": 31.909265242174982
108108
},
109-
"total": 48.06167009126315
109+
"total": 48.06167009126316
110110
},
111111
"9": {
112112
"components": {
113113
"united_atom:Transvibrational": 0.0,
114-
"united_atom:Rovibrational": 0.00023139743934636996,
114+
"united_atom:Rovibrational": 0.0002313974393463703,
115115
"residue:FTmat-Transvibrational": 21.42548529236267,
116116
"residue:FTmat-Rovibrational": 0.0,
117117
"united_atom:Conformational": 0.0,

‎tests/regression/baselines/benzaldehyde/rad.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
"groups": {
33
"0": {
44
"components": {
5-
"united_atom:Transvibrational": 24.921822103314035,
6-
"united_atom:Rovibrational": 27.950376507672594,
7-
"residue:FTmat-Transvibrational": 70.97090266225699,
5+
"united_atom:Transvibrational": 24.92182210331405,
6+
"united_atom:Rovibrational": 27.950376507672583,
7+
"residue:FTmat-Transvibrational": 70.97090266225698,
88
"residue:FTmat-Rovibrational": 59.588669973122094,
99
"united_atom:Conformational": 7.522643899702263,
1010
"residue:Conformational": 0.0,

‎tests/regression/baselines/benzaldehyde/selection_subset.json‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"0": {
44
"components": {
55
"united_atom:Transvibrational": 0.06817494136874551,
6-
"united_atom:Rovibrational": 49.686697381523466,
7-
"residue:FTmat-Transvibrational": 85.94814793508023,
6+
"united_atom:Rovibrational": 49.686697381523516,
7+
"residue:FTmat-Transvibrational": 85.94814793508021,
88
"residue:FTmat-Rovibrational": 61.7256510401677,
99
"united_atom:Conformational": 0.0,
1010
"residue:Conformational": 0.0,
1111
"residue:Orientational": 20.481571492615355
1212
},
13-
"total": 217.9102427907555
13+
"total": 217.91024279075552
1414
}
1515
}
1616
}

‎tests/regression/baselines/benzene/axes_off.json‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
"groups": {
33
"0": {
44
"components": {
5-
"united_atom:Transvibrational": 0.17072733303436669,
5+
"united_atom:Transvibrational": 0.17072733303436652,
66
"united_atom:Rovibrational": 38.707686995757996,
7-
"residue:FTmat-Transvibrational": 78.01138885368493,
8-
"residue:FTmat-Rovibrational": 47.12762732161061,
7+
"residue:FTmat-Transvibrational": 78.01138885368485,
8+
"residue:FTmat-Rovibrational": 47.127627321610596,
99
"united_atom:Conformational": 0.0,
1010
"residue:Conformational": 0.0,
1111
"residue:Orientational": 0.0
1212
},
13-
"total": 164.0174305040879
13+
"total": 164.0174305040878
1414
}
1515
}
1616
}

0 commit comments

Comments
 (0)