CodeEntropy 2.7.0__py3-none-any.whl → 2.7.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
CodeEntropy/__init__.py CHANGED
@@ -8,4 +8,4 @@ entropy estimates, supporting a wide range of applications in molecular simulati
8
8
  and statistical mechanics.
9
9
  """
10
10
 
11
- __version__ = "2.7.0"
11
+ __version__ = "2.7.1"
@@ -129,9 +129,17 @@ ARG_SPECS: dict[str, ArgSpec] = {
129
129
  help="Force partitioning",
130
130
  ),
131
131
  "water_entropy": ArgSpec(
132
+ type=bool,
133
+ default=False,
134
+ help="If set to True, enables the calculation of water entropy",
135
+ ),
136
+ "water_entropy_parallel": ArgSpec(
132
137
  type=bool,
133
138
  default=True,
134
- help="If set to False, disables the calculation of water entropy",
139
+ help=(
140
+ "If set to False, disables the parallel calculation of "
141
+ "water entropy and switches to serial"
142
+ ),
135
143
  ),
136
144
  "grouping": ArgSpec(
137
145
  type=str,
@@ -35,6 +35,7 @@ class WaterEntropyInput:
35
35
  end: int
36
36
  step: int
37
37
  temperature: float
38
+ parallel: bool
38
39
  group_id: int | None = None
39
40
 
40
41
 
@@ -53,7 +54,7 @@ class WaterEntropy:
53
54
  self,
54
55
  args: Any,
55
56
  reporter: Any,
56
- solver: Callable[..., tuple[dict, Any, Any, Any, Any]] = (
57
+ solver: Callable[..., tuple[dict, Any, Any, Any, Any, Any]] = (
57
58
  GetSolvent.get_interfacial_water_orient_entropy
58
59
  ),
59
60
  ) -> None:
@@ -77,6 +78,7 @@ class WaterEntropy:
77
78
  start: int,
78
79
  end: int,
79
80
  step: int,
81
+ parallel: bool,
80
82
  group_id: int | None = None,
81
83
  ) -> None:
82
84
  """Compute water entropy and write results to the data logger.
@@ -95,6 +97,7 @@ class WaterEntropy:
95
97
  step=step,
96
98
  temperature=float(self._args.temperature),
97
99
  group_id=group_id,
100
+ parallel=parallel,
98
101
  )
99
102
  self._calculate_and_log_from_inputs(inputs)
100
103
 
@@ -119,10 +122,12 @@ class WaterEntropy:
119
122
  Tuple of solver outputs.
120
123
  """
121
124
  logger.info(
122
- "[WaterEntropy] Computing water entropy (start=%s, end=%s, step=%s)",
125
+ "[WaterEntropy] Computing water entropy (start=%s, end=%s, step=%s, "
126
+ "parallel=%s)",
123
127
  inputs.start,
124
128
  inputs.end,
125
129
  inputs.step,
130
+ inputs.parallel,
126
131
  )
127
132
  return self._solver(
128
133
  inputs.universe,
@@ -130,7 +135,7 @@ class WaterEntropy:
130
135
  inputs.end,
131
136
  inputs.step,
132
137
  inputs.temperature,
133
- parallel=True,
138
+ inputs.parallel,
134
139
  )
135
140
 
136
141
  def _log_orientational_entropy(
@@ -144,8 +149,9 @@ class WaterEntropy:
144
149
  """
145
150
  for _resid, resname_dict in Sorient_dict.items():
146
151
  for resname, values in resname_dict.items():
147
- if isinstance(values, list) and len(values) == 2:
148
- entropy, count = values
152
+ if isinstance(values, dict):
153
+ entropy = values["Sorient_Nw_ave"]
154
+ count = values["tot_count"]
149
155
  self._reporter.add_residue_data(
150
156
  group_id, resname, "Water", "Orientational", count, entropy
151
157
  )
@@ -105,7 +105,11 @@ class EntropyWorkflow:
105
105
  reduced_universe, groups
106
106
  )
107
107
 
108
- if self._args.water_entropy and water_groups and nonwater_groups:
108
+ if self._args.water_entropy and water_groups:
109
+ if not nonwater_groups:
110
+ logger.warning(
111
+ "You are running waterEntropy on bulk water, this will be slow!"
112
+ )
109
113
  self._compute_water_entropy(frame_selection, water_groups)
110
114
  else:
111
115
  nonwater_groups.update(water_groups)
@@ -394,6 +398,7 @@ class EntropyWorkflow:
394
398
  start=start,
395
399
  end=end,
396
400
  step=step,
401
+ parallel=self._args.water_entropy_parallel,
397
402
  group_id=group_id,
398
403
  )
399
404
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: CodeEntropy
3
- Version: 2.7.0
3
+ Version: 2.7.1
4
4
  Summary: CodeEntropy is a Python package for computing the configurational entropy of macromolecular systems using forces sampled from molecular dynamics (MD) simulations. It implements the multiscale cell correlation method to provide accurate and efficient entropy estimates, supporting a wide range of applications in molecular simulation and statistical mechanics.
5
5
  Keywords: entropy,macromolecular systems,MD simulation
6
6
  Author-email: Arghya 'Argo' Chakravorty <arghyac@umich.edu>, Donald Chung-HK <donald.chung@stfc.ac.uk>, Sarah Fegan <sarah.fegan@stfc.ac.uk>, James Gebbie-Rayet <james.gebbie@stfc.ac.uk>, Sarah Harris <sarah.harris@sheffield.ac.uk>, Richard Henchman <rhen7213@uni.sydney.edu.au>, Jonathan Higham <j.higham4@lancaster.ac.uk>, Jas Kalayan <jas.kalayan@stfc.ac.uk>, Ioana Papa <iapapa1@sheffield.ac.uk>
@@ -24,7 +24,7 @@ Requires-Dist: PyYAML>=6.0.3,<7.0
24
24
  Requires-Dist: rich>=13.0.0,<16.0
25
25
  Requires-Dist: art>=5.0,<7.0
26
26
  Requires-Dist: networkx>=2.8,<4.0
27
- Requires-Dist: waterEntropy>=2,<3.0
27
+ Requires-Dist: waterEntropy>=2.3.0,<3.0
28
28
  Requires-Dist: requests>=2.32.2,<3.0
29
29
  Requires-Dist: rdkit>=2025.3.4,<2027
30
30
  Requires-Dist: numba>=0.63.0,<0.70
@@ -32,9 +32,8 @@ Requires-Dist: dask>=2025.7.0,<2027.1.0
32
32
  Requires-Dist: dask-jobqueue>=0.9.0,<1.0
33
33
  Requires-Dist: distributed>=2025.7.0,<2027.1.0
34
34
  Requires-Dist: sphinx>=8.0.0,<10.0 ; extra == "docs"
35
- Requires-Dist: nbsphinx>=0.9.3,<1.0 ; extra == "docs"
36
- Requires-Dist: sphinx_copybutton>=0.5,<1.0 ; extra == "docs"
37
- Requires-Dist: furo>=2025.12.19,<2026.0 ; extra == "docs"
35
+ Requires-Dist: sphinx-autoapi>=3.8,<4.0 ; extra == "docs"
36
+ Requires-Dist: ccpbiosim-sphinx-theme>=1.3.0,<1.4.0 ; extra == "docs"
38
37
  Requires-Dist: markupsafe>=3.0,<4.0 ; extra == "docs"
39
38
  Requires-Dist: pre-commit>=3.5.0,<5.0 ; extra == "pre-commit"
40
39
  Requires-Dist: ruff>=0.15.2,<1.0 ; extra == "pre-commit"
@@ -56,7 +55,7 @@ CodeEntropy
56
55
 
57
56
  | Category | Badges |
58
57
  |----------------|--------|
59
- | **Build** | [![PR Checks](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml/badge.svg)](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml) [![Daily Tests](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/daily.yaml/badge.svg)](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/daily.yaml) [![Dependency Floors](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/dependency-floors.yaml/badge.svg)](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/dependency-floors.yaml) |
58
+ | **Build** | [![PR Checks](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml/badge.svg)](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/pr.yaml) [![Weekly Tests](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-tests.yaml/badge.svg)](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-tests.yaml) |
60
59
  | **Regression** | [![Weekly Regression](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-regression.yaml/badge.svg)](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-regression.yaml) |
61
60
  | **Documentation** | [![Weekly Docs](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-docs.yaml/badge.svg)](https://github.com/CCPBioSim/CodeEntropy/actions/workflows/weekly-docs.yaml) [![Docs - Status](https://app.readthedocs.org/projects/codeentropy/badge/?version=latest)](https://codeentropy.readthedocs.io/en/latest/?badge=latest) |
62
61
  | **Citation** | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17570721.svg)](https://doi.org/10.5281/zenodo.17570721) |
@@ -67,8 +66,8 @@ CodeEntropy
67
66
  CodeEntropy is a Python package for computing the configurational entropy of macromolecular systems using forces sampled from molecular dynamics (MD) simulations. It implements the multiscale cell correlation method to provide accurate and efficient entropy estimates, supporting a wide range of applications in molecular simulation and statistical mechanics.
68
67
 
69
68
  <p align="center">
70
- <img src="docs/_static/logos/biosim-codeentropy_logo_light.png#gh-dark-mode-only" alt="CodeEntropy logo" width="300"/>
71
- <img src="docs/_static/logos/biosim-codeentropy_logo_dark.png#gh-light-mode-only" alt="CodeEntropy logo" width="300"/>
69
+ <img src="docs/source/_static/logos/biosim-codeentropy_logo_light.png#gh-dark-mode-only" alt="CodeEntropy logo" width="300"/>
70
+ <img src="docs/source/_static/logos/biosim-codeentropy_logo_dark.png#gh-light-mode-only" alt="CodeEntropy logo" width="300"/>
72
71
  </p>
73
72
 
74
73
  See [CodeEntropy’s documentation](https://codeentropy.readthedocs.io/en/latest/) for more information.
@@ -1,8 +1,8 @@
1
- CodeEntropy/__init__.py,sha256=6RAN3bQeIAMTRqrJvnQxdaIyZdou_JcpKJo8Ve8-NTM,404
1
+ CodeEntropy/__init__.py,sha256=3IcxfleI07bxBR3P5EA6vG13VTtfYGCe1q41Cg4gCSE,404
2
2
  CodeEntropy/__main__.py,sha256=5i_ZrxQaq0q2aPllbB4SZ6BApV6oUFCgx0cGyjfMPrU,108
3
3
  CodeEntropy/cli.py,sha256=nSshc8P7F7n3jAW36vzwXsFdffLfFdCpkfLvA-tJb3c,1318
4
4
  CodeEntropy/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- CodeEntropy/config/argparse.py,sha256=SBDTrFpEStgKeremqhpHA8ZWTJGH6IirthLFFcTitFY,19695
5
+ CodeEntropy/config/argparse.py,sha256=gCIUlQzMnUAYm7o-Mk2QKOP_HItc7-c1WGCe-YgEvbE,19927
6
6
  CodeEntropy/config/runtime.py,sha256=1lfLy57vv6nF6ND0cspGpIWQdfwj_ZiZpU9GohfvkwI,14914
7
7
  CodeEntropy/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  CodeEntropy/core/dask_clusters.py,sha256=FsvLyYQPImTWRf9J4x7wUILqf3syS0Ji5JUsJN-Qp1A,8992
@@ -12,8 +12,8 @@ CodeEntropy/entropy/configurational.py,sha256=3erd1Ul4sGL5BMBDYq33f27aRTZqiEb6hv
12
12
  CodeEntropy/entropy/graph.py,sha256=LeDF2KxxNVgpetrIE9j0dnW64UhGywDLqoBJEf54vtc,4612
13
13
  CodeEntropy/entropy/orientational.py,sha256=gfpYqCKQjAAx22rrUdbiLvzfEIXy1nwJoub1rgYKCvY,3415
14
14
  CodeEntropy/entropy/vibrational.py,sha256=WeQJ1bKQPSxPrREJ8CDhk9Ph2xeunrWZ0zu76y-H6Ow,9733
15
- CodeEntropy/entropy/water.py,sha256=Ob3V08DyQNSWDMqpQ27rqjgHeU5AlKZfjqf9EqUdgqc,8225
16
- CodeEntropy/entropy/workflow.py,sha256=bxg8AVXGk7uwlv4u2AZ4kTQ26PMge_Z5ubWghdLtn9U,16100
15
+ CodeEntropy/entropy/water.py,sha256=B2VbMYFH8umXO8r2KXHIsq26MpX5Q6w76LjABNg_KDU,8401
16
+ CodeEntropy/entropy/workflow.py,sha256=Xypn5Gd7LpVXgoO_sawUBNXehEGv0F8paZ658VnQTF4,16311
17
17
  CodeEntropy/entropy/nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  CodeEntropy/entropy/nodes/aggregate.py,sha256=4SyXP1_bM0IesOuqflRLvPgEfFu0PmKiEm4EFgnNxwg,3062
19
19
  CodeEntropy/entropy/nodes/configurational.py,sha256=-3j2ji_p-twPjZyjQ1T3tgN0pYLSIof9any1w5NI2as,7135
@@ -58,8 +58,8 @@ CodeEntropy/trajectory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
58
58
  CodeEntropy/trajectory/frames.py,sha256=MSx_swzFjo4TgkZTR1y6W-1zuKNPg_C36I_uFqvOKpk,4354
59
59
  CodeEntropy/trajectory/mda.py,sha256=epKpAzxkNQi3rE7HJc_tsK_ZY4c575LdXmWewJoP1qE,16954
60
60
  CodeEntropy/trajectory/source.py,sha256=NfYsdm1amr29h2tmJP-RKyCp3phb1SOAtAELJmGm740,1475
61
- codeentropy-2.7.0.dist-info/entry_points.txt,sha256=8Oa3H9ErsrGtx5Hc6hIHOw73wK3Ylkvfgtl_4cBb_GU,52
62
- codeentropy-2.7.0.dist-info/licenses/LICENSE,sha256=hgMaAAVW1Q6dL586OHoz8vFO-6BYn-d2aAFBpVQylFc,1072
63
- codeentropy-2.7.0.dist-info/WHEEL,sha256=lqN8jXt_QloFOGcx9kStvWbryhfEXoI2F2z-YURm350,81
64
- codeentropy-2.7.0.dist-info/METADATA,sha256=emvj_HvZSa0vFbaVwumBcY5NoK2Bb_VFW8Ees52sp00,6547
65
- codeentropy-2.7.0.dist-info/RECORD,,
61
+ codeentropy-2.7.1.dist-info/entry_points.txt,sha256=8Oa3H9ErsrGtx5Hc6hIHOw73wK3Ylkvfgtl_4cBb_GU,52
62
+ codeentropy-2.7.1.dist-info/licenses/LICENSE,sha256=hgMaAAVW1Q6dL586OHoz8vFO-6BYn-d2aAFBpVQylFc,1072
63
+ codeentropy-2.7.1.dist-info/WHEEL,sha256=rLJE8OLPBZbz7tqxs1yD-wA-ADa1Ec5PuYU-Y_PNWDI,81
64
+ codeentropy-2.7.1.dist-info/METADATA,sha256=_vGCZ5Gsa404J5KCRQreC2fmA6LMH1zEwnhO_imSeyw,6336
65
+ codeentropy-2.7.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 4.1.0
2
+ Generator: flit 4.2.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any