Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions CodeEntropy/levels/dihedrals/conformational_state_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,12 @@ def build_conformational_states(
frame_selection: FrameSelection,
progress: _RichProgressSink | None = None,
chunk_size: int | None = None,
) -> tuple[dict[UAKey, list[str]], list[list[str]], dict[UAKey, int], list[int]]:
) -> tuple[
dict[UAKey, list[str]],
dict[int, list[str]],
dict[UAKey, int],
dict[int, int],
]:
"""Build conformational state labels from selected trajectory frames.

Args:
Expand Down Expand Up @@ -87,7 +92,12 @@ def _build_conformational_states_serial_chunked(
frame_selection: FrameSelection,
chunk_size: int,
progress: _RichProgressSink | None = None,
) -> tuple[dict[UAKey, list[str]], list[list[str]], dict[UAKey, int], list[int]]:
) -> tuple[
dict[UAKey, list[str]],
dict[int, list[str]],
dict[UAKey, int],
dict[int, int],
]:
"""Build conformational states with serial frame-chunk map-reduce.

Args:
Expand All @@ -108,11 +118,10 @@ def _build_conformational_states_serial_chunked(
if chunk_size < 1:
raise ValueError("chunk_size must be >= 1")

number_groups = len(groups)
states_ua: dict[UAKey, list[str]] = {}
states_res: list[list[str]] = [[] for _ in range(number_groups)]
states_res: dict[int, list[str]] = {}
flexible_ua: dict[UAKey, int] = {}
flexible_res: list[int] = []
flexible_res: dict[int, int] = {}

task: TaskID | None = None
if progress is not None:
Expand Down Expand Up @@ -186,6 +195,7 @@ def _build_conformational_states_serial_chunked(
state_data = self._reduce_state_partials(state_partials)

self._merge_group_state_data(
group_id=group_id,
state_data=state_data,
states_ua=states_ua,
states_res=states_res,
Expand Down
15 changes: 9 additions & 6 deletions CodeEntropy/levels/dihedrals/state_assignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,20 +170,23 @@ def _reduce_state_partials(

@staticmethod
def _merge_group_state_data(
group_id: int,
state_data: ConformationStateData,
states_ua: dict[UAKey, list[str]],
states_res: list[list[str]],
states_res: dict[int, list[str]],
flexible_ua: dict[UAKey, int],
flexible_res: list[int],
flexible_res: dict[int, int],
) -> None:
"""Merge one group's state data into final output accumulators.

Args:
group_id: Id of the group the state data belongs to.
state_data: Serial conformational state data for one group.
states_ua: UA state accumulator to mutate.
states_res: Residue state accumulator to mutate.
states_res: Residue state accumulator, keyed by group id, to mutate.
flexible_ua: UA flexible-dihedral accumulator to mutate.
flexible_res: Residue flexible-dihedral accumulator to mutate.
flexible_res: Residue flexible-dihedral accumulator, keyed by group id,
to mutate.

Returns:
None. Mutates the provided accumulators.
Expand All @@ -199,8 +202,8 @@ def _merge_group_state_data(
state_data.flexible_ua_updates[key],
)

states_res.append(state_data.state_res)
flexible_res.append(state_data.flex_res)
states_res[group_id] = state_data.state_res
flexible_res[group_id] = state_data.flex_res

def _process_conformations_from_angles(
self,
Expand Down
8 changes: 4 additions & 4 deletions tests/regression/baselines/benzaldehyde/axes_off.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
"0": {
"components": {
"united_atom:Transvibrational": 0.06950663196232491,
"united_atom:Rovibrational": 35.19655714759131,
"residue:FTmat-Transvibrational": 86.6413638447789,
"residue:FTmat-Rovibrational": 62.24303760058523,
"united_atom:Rovibrational": 35.19655714759134,
"residue:FTmat-Transvibrational": 86.64136384477892,
"residue:FTmat-Rovibrational": 62.24303760058521,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 20.481571492615355
},
"total": 204.6320367175331
"total": 204.63203671753317
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
"0": {
"components": {
"united_atom:Transvibrational": 0.06817494136874551,
"united_atom:Rovibrational": 49.686697381523466,
"united_atom:Rovibrational": 49.686697381523516,
"residue:Transvibrational": 69.25273989458984,
"residue:Rovibrational": 68.64810133422232,
"residue:Rovibrational": 68.6481013342223,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 20.481571492615355
},
"total": 208.13728504431973
"total": 208.13728504431975
}
}
}
6 changes: 3 additions & 3 deletions tests/regression/baselines/benzaldehyde/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
"groups": {
"0": {
"components": {
"united_atom:Transvibrational": 24.921822103314035,
"united_atom:Rovibrational": 27.950376507672594,
"residue:FTmat-Transvibrational": 70.97090266225699,
"united_atom:Transvibrational": 24.92182210331405,
"united_atom:Rovibrational": 27.950376507672583,
"residue:FTmat-Transvibrational": 70.97090266225698,
"residue:FTmat-Rovibrational": 59.588669973122094,
"united_atom:Conformational": 7.522643899702263,
"residue:Conformational": 0.0,
Expand Down
4 changes: 2 additions & 2 deletions tests/regression/baselines/benzaldehyde/frame_window.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"0": {
"components": {
"united_atom:Transvibrational": 37.90368186636453,
"united_atom:Rovibrational": 38.219068584436165,
"residue:FTmat-Transvibrational": 73.76730786578052,
"united_atom:Rovibrational": 38.21906858443616,
"residue:FTmat-Transvibrational": 73.76730786578054,
"residue:FTmat-Rovibrational": 57.689489298548764,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
Expand Down
24 changes: 12 additions & 12 deletions tests/regression/baselines/benzaldehyde/grouping_each.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
"0": {
"components": {
"united_atom:Transvibrational": 0.0,
"united_atom:Rovibrational": 0.062499436482478535,
"residue:FTmat-Transvibrational": 16.838570367698324,
"united_atom:Rovibrational": 0.062499436482478445,
"residue:FTmat-Transvibrational": 16.83857036769834,
"residue:FTmat-Rovibrational": 0.0,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 31.909265242174982
},
"total": 48.81033504635579
"total": 48.8103350463558
},
"1": {
"components": {
Expand All @@ -27,26 +27,26 @@
"2": {
"components": {
"united_atom:Transvibrational": 0.0,
"united_atom:Rovibrational": 0.0022147884278620493,
"united_atom:Rovibrational": 0.0022147884278620397,
"residue:FTmat-Transvibrational": 17.449372254125855,
"residue:FTmat-Rovibrational": 0.0,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 31.909265242174982
},
"total": 49.3608522847287
"total": 49.36085228472869
},
"3": {
"components": {
"united_atom:Transvibrational": 0.0,
"united_atom:Rovibrational": 0.001983835543157824,
"residue:FTmat-Transvibrational": 15.80397693084538,
"residue:FTmat-Transvibrational": 15.803976930845373,
"residue:FTmat-Rovibrational": 0.0,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 0.0
},
"total": 15.805960766388537
"total": 15.80596076638853
},
"4": {
"components": {
Expand Down Expand Up @@ -88,30 +88,30 @@
"components": {
"united_atom:Transvibrational": 0.0,
"united_atom:Rovibrational": 0.004033941970593011,
"residue:FTmat-Transvibrational": 18.906768821421366,
"residue:FTmat-Transvibrational": 18.906768821421363,
"residue:FTmat-Rovibrational": 0.0,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 0.0
},
"total": 18.91080276339196
"total": 18.910802763391956
},
"8": {
"components": {
"united_atom:Transvibrational": 0.0,
"united_atom:Rovibrational": 0.020362757918507036,
"united_atom:Rovibrational": 0.020362757918507064,
"residue:FTmat-Transvibrational": 16.13204209116967,
"residue:FTmat-Rovibrational": 0.0,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 31.909265242174982
},
"total": 48.06167009126315
"total": 48.06167009126316
},
"9": {
"components": {
"united_atom:Transvibrational": 0.0,
"united_atom:Rovibrational": 0.00023139743934636996,
"united_atom:Rovibrational": 0.0002313974393463703,
"residue:FTmat-Transvibrational": 21.42548529236267,
"residue:FTmat-Rovibrational": 0.0,
"united_atom:Conformational": 0.0,
Expand Down
6 changes: 3 additions & 3 deletions tests/regression/baselines/benzaldehyde/rad.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
"groups": {
"0": {
"components": {
"united_atom:Transvibrational": 24.921822103314035,
"united_atom:Rovibrational": 27.950376507672594,
"residue:FTmat-Transvibrational": 70.97090266225699,
"united_atom:Transvibrational": 24.92182210331405,
"united_atom:Rovibrational": 27.950376507672583,
"residue:FTmat-Transvibrational": 70.97090266225698,
"residue:FTmat-Rovibrational": 59.588669973122094,
"united_atom:Conformational": 7.522643899702263,
"residue:Conformational": 0.0,
Expand Down
6 changes: 3 additions & 3 deletions tests/regression/baselines/benzaldehyde/selection_subset.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
"0": {
"components": {
"united_atom:Transvibrational": 0.06817494136874551,
"united_atom:Rovibrational": 49.686697381523466,
"residue:FTmat-Transvibrational": 85.94814793508023,
"united_atom:Rovibrational": 49.686697381523516,
"residue:FTmat-Transvibrational": 85.94814793508021,
"residue:FTmat-Rovibrational": 61.7256510401677,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 20.481571492615355
},
"total": 217.9102427907555
"total": 217.91024279075552
}
}
}
8 changes: 4 additions & 4 deletions tests/regression/baselines/benzene/axes_off.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
"groups": {
"0": {
"components": {
"united_atom:Transvibrational": 0.17072733303436669,
"united_atom:Transvibrational": 0.17072733303436652,
"united_atom:Rovibrational": 38.707686995757996,
"residue:FTmat-Transvibrational": 78.01138885368493,
"residue:FTmat-Rovibrational": 47.12762732161061,
"residue:FTmat-Transvibrational": 78.01138885368485,
"residue:FTmat-Rovibrational": 47.127627321610596,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 0.0
},
"total": 164.0174305040879
"total": 164.0174305040878
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
"groups": {
"0": {
"components": {
"united_atom:Transvibrational": 0.20056759662549248,
"united_atom:Rovibrational": 40.69581240789943,
"united_atom:Transvibrational": 0.2005675966254925,
"united_atom:Rovibrational": 40.695812407899396,
"residue:Transvibrational": 60.612932277845054,
"residue:Rovibrational": 52.53948263906845,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 0.0
},
"total": 154.04879492143843
"total": 154.0487949214384
}
}
}
8 changes: 4 additions & 4 deletions tests/regression/baselines/benzene/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
"groups": {
"0": {
"components": {
"united_atom:Transvibrational": 9.070682016770112,
"united_atom:Rovibrational": 27.534380126250213,
"residue:FTmat-Transvibrational": 72.69407639869898,
"residue:FTmat-Rovibrational": 59.84501427492272,
"united_atom:Transvibrational": 9.070682016770117,
"united_atom:Rovibrational": 27.5343801262502,
"residue:FTmat-Transvibrational": 72.694076398699,
"residue:FTmat-Rovibrational": 59.84501427492273,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 41.58427729275938
Expand Down
10 changes: 5 additions & 5 deletions tests/regression/baselines/benzene/frame_window.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
"groups": {
"0": {
"components": {
"united_atom:Transvibrational": 13.02795056227694,
"united_atom:Rovibrational": 34.98492056748487,
"residue:FTmat-Transvibrational": 75.50603474425519,
"residue:FTmat-Rovibrational": 54.88466842760241,
"united_atom:Transvibrational": 13.027950562276953,
"united_atom:Rovibrational": 34.984920567484934,
"residue:FTmat-Transvibrational": 75.50603474425517,
"residue:FTmat-Rovibrational": 54.88466842760242,
"united_atom:Conformational": 0.0,
"residue:Conformational": 0.0,
"residue:Orientational": 0.0
},
"total": 178.40357430161941
"total": 178.40357430161947
}
}
}
Loading
Loading