CodeEntropy 2.6.1__tar.gz → 2.7.1__tar.gz

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.
Files changed (365) hide show
  1. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/__init__.py +1 -1
  2. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/config/argparse.py +9 -1
  3. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/water.py +11 -5
  4. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/workflow.py +6 -1
  5. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/axes.py +11 -72
  6. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/nodes/covariance.py +1 -8
  7. {codeentropy-2.6.1 → codeentropy-2.7.1}/PKG-INFO +7 -8
  8. {codeentropy-2.6.1 → codeentropy-2.7.1}/README.md +3 -3
  9. {codeentropy-2.6.1 → codeentropy-2.7.1}/pyproject.toml +3 -4
  10. codeentropy-2.6.1/.github/CONTRIBUTING.md +0 -65
  11. codeentropy-2.6.1/.github/ISSUE_TEMPLATE/bug_report.md +0 -70
  12. codeentropy-2.6.1/.github/ISSUE_TEMPLATE/config.yml +0 -22
  13. codeentropy-2.6.1/.github/ISSUE_TEMPLATE/documentation.md +0 -19
  14. codeentropy-2.6.1/.github/ISSUE_TEMPLATE/feature_request.md +0 -28
  15. codeentropy-2.6.1/.github/ISSUE_TEMPLATE/general_report.md +0 -13
  16. codeentropy-2.6.1/.github/PULL_REQUEST_TEMPLATE.md +0 -20
  17. codeentropy-2.6.1/.github/renovate.json +0 -33
  18. codeentropy-2.6.1/.github/workflows/coveralls-main.yaml +0 -54
  19. codeentropy-2.6.1/.github/workflows/daily.yaml +0 -39
  20. codeentropy-2.6.1/.github/workflows/dependency-floors.yaml +0 -50
  21. codeentropy-2.6.1/.github/workflows/pr.yaml +0 -222
  22. codeentropy-2.6.1/.github/workflows/release.yaml +0 -237
  23. codeentropy-2.6.1/.github/workflows/update-copyright-years-in-license-file.yaml +0 -17
  24. codeentropy-2.6.1/.github/workflows/update_regression_baselines.yaml +0 -43
  25. codeentropy-2.6.1/.github/workflows/weekly-docs.yaml +0 -48
  26. codeentropy-2.6.1/.github/workflows/weekly-regression.yaml +0 -80
  27. codeentropy-2.6.1/.gitignore +0 -132
  28. codeentropy-2.6.1/.pre-commit-config.yaml +0 -37
  29. codeentropy-2.6.1/CITATION.cff +0 -80
  30. codeentropy-2.6.1/CODE_OF_CONDUCT.md +0 -128
  31. codeentropy-2.6.1/conda-recipe/meta.yaml +0 -57
  32. codeentropy-2.6.1/docs/Makefile +0 -20
  33. codeentropy-2.6.1/docs/README.md +0 -23
  34. codeentropy-2.6.1/docs/_static/README.md +0 -16
  35. codeentropy-2.6.1/docs/_static/custom.css +0 -3
  36. codeentropy-2.6.1/docs/_static/logos/biosim-codeentropy_logo_dark.png +0 -0
  37. codeentropy-2.6.1/docs/_static/logos/biosim-codeentropy_logo_light.png +0 -0
  38. codeentropy-2.6.1/docs/_templates/README.md +0 -14
  39. codeentropy-2.6.1/docs/api/CodeEntropy.cli.rst +0 -7
  40. codeentropy-2.6.1/docs/api/CodeEntropy.config.argparse.rst +0 -7
  41. codeentropy-2.6.1/docs/api/CodeEntropy.config.rst +0 -19
  42. codeentropy-2.6.1/docs/api/CodeEntropy.config.runtime.rst +0 -7
  43. codeentropy-2.6.1/docs/api/CodeEntropy.core.dask_clusters.rst +0 -7
  44. codeentropy-2.6.1/docs/api/CodeEntropy.core.logging.rst +0 -7
  45. codeentropy-2.6.1/docs/api/CodeEntropy.core.rst +0 -19
  46. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.configurational.rst +0 -7
  47. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.graph.rst +0 -7
  48. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.nodes.aggregate.rst +0 -7
  49. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.nodes.configurational.rst +0 -7
  50. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.nodes.orientational.rst +0 -7
  51. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.nodes.rst +0 -21
  52. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.nodes.vibrational.rst +0 -7
  53. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.orientational.rst +0 -7
  54. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.rst +0 -31
  55. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.vibrational.rst +0 -7
  56. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.water.rst +0 -7
  57. codeentropy-2.6.1/docs/api/CodeEntropy.entropy.workflow.rst +0 -7
  58. codeentropy-2.6.1/docs/api/CodeEntropy.levels.axes.rst +0 -7
  59. codeentropy-2.6.1/docs/api/CodeEntropy.levels.dihedrals.angle_observations.rst +0 -7
  60. codeentropy-2.6.1/docs/api/CodeEntropy.levels.dihedrals.conformational_state_builder.rst +0 -7
  61. codeentropy-2.6.1/docs/api/CodeEntropy.levels.dihedrals.kernels.rst +0 -7
  62. codeentropy-2.6.1/docs/api/CodeEntropy.levels.dihedrals.peak_detection.rst +0 -7
  63. codeentropy-2.6.1/docs/api/CodeEntropy.levels.dihedrals.rst +0 -23
  64. codeentropy-2.6.1/docs/api/CodeEntropy.levels.dihedrals.state_assignment.rst +0 -7
  65. codeentropy-2.6.1/docs/api/CodeEntropy.levels.dihedrals.topology.rst +0 -7
  66. codeentropy-2.6.1/docs/api/CodeEntropy.levels.execution.chunks.rst +0 -7
  67. codeentropy-2.6.1/docs/api/CodeEntropy.levels.execution.policy.rst +0 -7
  68. codeentropy-2.6.1/docs/api/CodeEntropy.levels.execution.reducers.rst +0 -7
  69. codeentropy-2.6.1/docs/api/CodeEntropy.levels.execution.rst +0 -22
  70. codeentropy-2.6.1/docs/api/CodeEntropy.levels.execution.scheduler.rst +0 -7
  71. codeentropy-2.6.1/docs/api/CodeEntropy.levels.execution.tasks.rst +0 -7
  72. codeentropy-2.6.1/docs/api/CodeEntropy.levels.forces.rst +0 -7
  73. codeentropy-2.6.1/docs/api/CodeEntropy.levels.graph.conformation_dag.rst +0 -7
  74. codeentropy-2.6.1/docs/api/CodeEntropy.levels.graph.frame_dag.rst +0 -7
  75. codeentropy-2.6.1/docs/api/CodeEntropy.levels.graph.level_dag.rst +0 -7
  76. codeentropy-2.6.1/docs/api/CodeEntropy.levels.graph.rst +0 -20
  77. codeentropy-2.6.1/docs/api/CodeEntropy.levels.hierarchy.rst +0 -7
  78. codeentropy-2.6.1/docs/api/CodeEntropy.levels.linalg.rst +0 -7
  79. codeentropy-2.6.1/docs/api/CodeEntropy.levels.neighbors.rst +0 -7
  80. codeentropy-2.6.1/docs/api/CodeEntropy.levels.nodes.accumulators.rst +0 -7
  81. codeentropy-2.6.1/docs/api/CodeEntropy.levels.nodes.axes_topology.rst +0 -7
  82. codeentropy-2.6.1/docs/api/CodeEntropy.levels.nodes.beads.rst +0 -7
  83. codeentropy-2.6.1/docs/api/CodeEntropy.levels.nodes.covariance.rst +0 -7
  84. codeentropy-2.6.1/docs/api/CodeEntropy.levels.nodes.detect_levels.rst +0 -7
  85. codeentropy-2.6.1/docs/api/CodeEntropy.levels.nodes.detect_molecules.rst +0 -7
  86. codeentropy-2.6.1/docs/api/CodeEntropy.levels.nodes.rst +0 -23
  87. codeentropy-2.6.1/docs/api/CodeEntropy.levels.rst +0 -34
  88. codeentropy-2.6.1/docs/api/CodeEntropy.levels.search.rst +0 -7
  89. codeentropy-2.6.1/docs/api/CodeEntropy.molecules.grouping.rst +0 -7
  90. codeentropy-2.6.1/docs/api/CodeEntropy.molecules.rst +0 -18
  91. codeentropy-2.6.1/docs/api/CodeEntropy.results.reporter.rst +0 -7
  92. codeentropy-2.6.1/docs/api/CodeEntropy.results.rst +0 -18
  93. codeentropy-2.6.1/docs/api/CodeEntropy.rst +0 -32
  94. codeentropy-2.6.1/docs/api/CodeEntropy.trajectory.frames.rst +0 -7
  95. codeentropy-2.6.1/docs/api/CodeEntropy.trajectory.mda.rst +0 -7
  96. codeentropy-2.6.1/docs/api/CodeEntropy.trajectory.rst +0 -20
  97. codeentropy-2.6.1/docs/api/CodeEntropy.trajectory.source.rst +0 -7
  98. codeentropy-2.6.1/docs/api/modules.rst +0 -7
  99. codeentropy-2.6.1/docs/conf.py +0 -119
  100. codeentropy-2.6.1/docs/config.yaml +0 -19
  101. codeentropy-2.6.1/docs/developer_guide.rst +0 -251
  102. codeentropy-2.6.1/docs/faq.rst +0 -18
  103. codeentropy-2.6.1/docs/getting_started.rst +0 -610
  104. codeentropy-2.6.1/docs/index.rst +0 -28
  105. codeentropy-2.6.1/docs/science.rst +0 -132
  106. codeentropy-2.6.1/readthedocs.yml +0 -19
  107. codeentropy-2.6.1/tests/__init__.py +0 -1
  108. codeentropy-2.6.1/tests/regression/baselines/benzaldehyde/axes_off.json +0 -16
  109. codeentropy-2.6.1/tests/regression/baselines/benzaldehyde/combined_forcetorque_false.json +0 -16
  110. codeentropy-2.6.1/tests/regression/baselines/benzaldehyde/default.json +0 -16
  111. codeentropy-2.6.1/tests/regression/baselines/benzaldehyde/frame_window.json +0 -16
  112. codeentropy-2.6.1/tests/regression/baselines/benzaldehyde/grouping_each.json +0 -124
  113. codeentropy-2.6.1/tests/regression/baselines/benzaldehyde/rad.json +0 -16
  114. codeentropy-2.6.1/tests/regression/baselines/benzaldehyde/selection_subset.json +0 -16
  115. codeentropy-2.6.1/tests/regression/baselines/benzene/axes_off.json +0 -16
  116. codeentropy-2.6.1/tests/regression/baselines/benzene/combined_forcetorque_off.json +0 -16
  117. codeentropy-2.6.1/tests/regression/baselines/benzene/default.json +0 -16
  118. codeentropy-2.6.1/tests/regression/baselines/benzene/frame_window.json +0 -16
  119. codeentropy-2.6.1/tests/regression/baselines/benzene/grouping_each.json +0 -124
  120. codeentropy-2.6.1/tests/regression/baselines/benzene/rad.json +0 -16
  121. codeentropy-2.6.1/tests/regression/baselines/benzene/selection_subset.json +0 -16
  122. codeentropy-2.6.1/tests/regression/baselines/cyclohexane/axes_off.json +0 -16
  123. codeentropy-2.6.1/tests/regression/baselines/cyclohexane/combined_forcetorque_off.json +0 -16
  124. codeentropy-2.6.1/tests/regression/baselines/cyclohexane/default.json +0 -16
  125. codeentropy-2.6.1/tests/regression/baselines/cyclohexane/frame_window.json +0 -16
  126. codeentropy-2.6.1/tests/regression/baselines/cyclohexane/grouping_each.json +0 -124
  127. codeentropy-2.6.1/tests/regression/baselines/cyclohexane/rad.json +0 -16
  128. codeentropy-2.6.1/tests/regression/baselines/cyclohexane/selection_subset.json +0 -16
  129. codeentropy-2.6.1/tests/regression/baselines/dna/axes_off.json +0 -32
  130. codeentropy-2.6.1/tests/regression/baselines/dna/combined_forcetorque_off.json +0 -32
  131. codeentropy-2.6.1/tests/regression/baselines/dna/default.json +0 -32
  132. codeentropy-2.6.1/tests/regression/baselines/dna/frame_window.json +0 -32
  133. codeentropy-2.6.1/tests/regression/baselines/dna/grouping_each.json +0 -32
  134. codeentropy-2.6.1/tests/regression/baselines/dna/selection_subset.json +0 -32
  135. codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/axes_off.json +0 -16
  136. codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/combined_forcetorque_off.json +0 -16
  137. codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/default.json +0 -16
  138. codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/frame_window.json +0 -16
  139. codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/grouping_each.json +0 -124
  140. codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/rad.json +0 -16
  141. codeentropy-2.6.1/tests/regression/baselines/ethyl-acetate/selection_subset.json +0 -16
  142. codeentropy-2.6.1/tests/regression/baselines/methane/axes_off.json +0 -13
  143. codeentropy-2.6.1/tests/regression/baselines/methane/combined_forcetorque_off.json +0 -13
  144. codeentropy-2.6.1/tests/regression/baselines/methane/default.json +0 -13
  145. codeentropy-2.6.1/tests/regression/baselines/methane/frame_window.json +0 -13
  146. codeentropy-2.6.1/tests/regression/baselines/methane/grouping_each.json +0 -94
  147. codeentropy-2.6.1/tests/regression/baselines/methane/rad.json +0 -13
  148. codeentropy-2.6.1/tests/regression/baselines/methane/selection_subset.json +0 -13
  149. codeentropy-2.6.1/tests/regression/baselines/methanol/axes_off.json +0 -16
  150. codeentropy-2.6.1/tests/regression/baselines/methanol/combined_forcetorque_off.json +0 -16
  151. codeentropy-2.6.1/tests/regression/baselines/methanol/default.json +0 -16
  152. codeentropy-2.6.1/tests/regression/baselines/methanol/frame_window.json +0 -16
  153. codeentropy-2.6.1/tests/regression/baselines/methanol/grouping_each.json +0 -124
  154. codeentropy-2.6.1/tests/regression/baselines/methanol/rad.json +0 -16
  155. codeentropy-2.6.1/tests/regression/baselines/methanol/selection_subset.json +0 -16
  156. codeentropy-2.6.1/tests/regression/baselines/octonol/axes_off.json +0 -16
  157. codeentropy-2.6.1/tests/regression/baselines/octonol/combined_forcetorque_off.json +0 -16
  158. codeentropy-2.6.1/tests/regression/baselines/octonol/default.json +0 -16
  159. codeentropy-2.6.1/tests/regression/baselines/octonol/frame_window.json +0 -16
  160. codeentropy-2.6.1/tests/regression/baselines/octonol/grouping_each.json +0 -124
  161. codeentropy-2.6.1/tests/regression/baselines/octonol/rad.json +0 -16
  162. codeentropy-2.6.1/tests/regression/baselines/octonol/selection_subset.json +0 -16
  163. codeentropy-2.6.1/tests/regression/baselines/water/axes_off.json +0 -13
  164. codeentropy-2.6.1/tests/regression/baselines/water/combined_forcetorque_off.json +0 -13
  165. codeentropy-2.6.1/tests/regression/baselines/water/default.json +0 -13
  166. codeentropy-2.6.1/tests/regression/baselines/water/frame_window.json +0 -13
  167. codeentropy-2.6.1/tests/regression/baselines/water/grouping_each.json +0 -94
  168. codeentropy-2.6.1/tests/regression/baselines/water/rad.json +0 -13
  169. codeentropy-2.6.1/tests/regression/baselines/water/selection_subset.json +0 -13
  170. codeentropy-2.6.1/tests/regression/baselines/water/water_off.json +0 -13
  171. codeentropy-2.6.1/tests/regression/cases.py +0 -103
  172. codeentropy-2.6.1/tests/regression/configs/benzaldehyde/axes_off.yaml +0 -15
  173. codeentropy-2.6.1/tests/regression/configs/benzaldehyde/combined_forcetorque_false.yaml +0 -15
  174. codeentropy-2.6.1/tests/regression/configs/benzaldehyde/default.yaml +0 -14
  175. codeentropy-2.6.1/tests/regression/configs/benzaldehyde/frame_window.yaml +0 -14
  176. codeentropy-2.6.1/tests/regression/configs/benzaldehyde/grouping_each.yaml +0 -15
  177. codeentropy-2.6.1/tests/regression/configs/benzaldehyde/rad.yaml +0 -14
  178. codeentropy-2.6.1/tests/regression/configs/benzaldehyde/selection_subset.yaml +0 -14
  179. codeentropy-2.6.1/tests/regression/configs/benzene/axes_off.yaml +0 -15
  180. codeentropy-2.6.1/tests/regression/configs/benzene/combined_forcetorque_off.yaml +0 -15
  181. codeentropy-2.6.1/tests/regression/configs/benzene/default.yaml +0 -14
  182. codeentropy-2.6.1/tests/regression/configs/benzene/frame_window.yaml +0 -14
  183. codeentropy-2.6.1/tests/regression/configs/benzene/grouping_each.yaml +0 -15
  184. codeentropy-2.6.1/tests/regression/configs/benzene/rad.yaml +0 -14
  185. codeentropy-2.6.1/tests/regression/configs/benzene/selection_subset.yaml +0 -14
  186. codeentropy-2.6.1/tests/regression/configs/cyclohexane/axes_off.yaml +0 -15
  187. codeentropy-2.6.1/tests/regression/configs/cyclohexane/combined_forcetorque_off.yaml +0 -15
  188. codeentropy-2.6.1/tests/regression/configs/cyclohexane/default.yaml +0 -14
  189. codeentropy-2.6.1/tests/regression/configs/cyclohexane/frame_window.yaml +0 -14
  190. codeentropy-2.6.1/tests/regression/configs/cyclohexane/grouping_each.yaml +0 -15
  191. codeentropy-2.6.1/tests/regression/configs/cyclohexane/rad.yaml +0 -14
  192. codeentropy-2.6.1/tests/regression/configs/cyclohexane/selection_subset.yaml +0 -14
  193. codeentropy-2.6.1/tests/regression/configs/dna/axes_off.yaml +0 -11
  194. codeentropy-2.6.1/tests/regression/configs/dna/combined_forcetorque_off.yaml +0 -11
  195. codeentropy-2.6.1/tests/regression/configs/dna/default.yaml +0 -10
  196. codeentropy-2.6.1/tests/regression/configs/dna/frame_window.yaml +0 -10
  197. codeentropy-2.6.1/tests/regression/configs/dna/grouping_each.yaml +0 -11
  198. codeentropy-2.6.1/tests/regression/configs/dna/selection_subset.yaml +0 -10
  199. codeentropy-2.6.1/tests/regression/configs/ethyl-acetate/axes_off.yaml +0 -15
  200. codeentropy-2.6.1/tests/regression/configs/ethyl-acetate/combined_forcetorque_off.yaml +0 -15
  201. codeentropy-2.6.1/tests/regression/configs/ethyl-acetate/default.yaml +0 -14
  202. codeentropy-2.6.1/tests/regression/configs/ethyl-acetate/frame_window.yaml +0 -14
  203. codeentropy-2.6.1/tests/regression/configs/ethyl-acetate/grouping_each.yaml +0 -15
  204. codeentropy-2.6.1/tests/regression/configs/ethyl-acetate/rad.yaml +0 -14
  205. codeentropy-2.6.1/tests/regression/configs/ethyl-acetate/selection_subset.yaml +0 -14
  206. codeentropy-2.6.1/tests/regression/configs/methane/axes_off.yaml +0 -16
  207. codeentropy-2.6.1/tests/regression/configs/methane/combined_forcetorque_off.yaml +0 -16
  208. codeentropy-2.6.1/tests/regression/configs/methane/default.yaml +0 -15
  209. codeentropy-2.6.1/tests/regression/configs/methane/frame_window.yaml +0 -15
  210. codeentropy-2.6.1/tests/regression/configs/methane/grouping_each.yaml +0 -16
  211. codeentropy-2.6.1/tests/regression/configs/methane/rad.yaml +0 -15
  212. codeentropy-2.6.1/tests/regression/configs/methane/selection_subset.yaml +0 -15
  213. codeentropy-2.6.1/tests/regression/configs/methanol/axes_off.yaml +0 -15
  214. codeentropy-2.6.1/tests/regression/configs/methanol/combined_forcetorque_off.yaml +0 -15
  215. codeentropy-2.6.1/tests/regression/configs/methanol/default.yaml +0 -14
  216. codeentropy-2.6.1/tests/regression/configs/methanol/frame_window.yaml +0 -14
  217. codeentropy-2.6.1/tests/regression/configs/methanol/grouping_each.yaml +0 -15
  218. codeentropy-2.6.1/tests/regression/configs/methanol/rad.yaml +0 -14
  219. codeentropy-2.6.1/tests/regression/configs/methanol/selection_subset.yaml +0 -14
  220. codeentropy-2.6.1/tests/regression/configs/octonol/axes_off.yaml +0 -15
  221. codeentropy-2.6.1/tests/regression/configs/octonol/combined_forcetorque_off.yaml +0 -15
  222. codeentropy-2.6.1/tests/regression/configs/octonol/default.yaml +0 -14
  223. codeentropy-2.6.1/tests/regression/configs/octonol/frame_window.yaml +0 -14
  224. codeentropy-2.6.1/tests/regression/configs/octonol/grouping_each.yaml +0 -15
  225. codeentropy-2.6.1/tests/regression/configs/octonol/rad.yaml +0 -14
  226. codeentropy-2.6.1/tests/regression/configs/octonol/selection_subset.yaml +0 -14
  227. codeentropy-2.6.1/tests/regression/configs/water/axes_off.yaml +0 -15
  228. codeentropy-2.6.1/tests/regression/configs/water/combined_forcetorque_off.yaml +0 -15
  229. codeentropy-2.6.1/tests/regression/configs/water/default.yaml +0 -14
  230. codeentropy-2.6.1/tests/regression/configs/water/frame_window.yaml +0 -14
  231. codeentropy-2.6.1/tests/regression/configs/water/grouping_each.yaml +0 -15
  232. codeentropy-2.6.1/tests/regression/configs/water/rad.yaml +0 -14
  233. codeentropy-2.6.1/tests/regression/configs/water/selection_subset.yaml +0 -14
  234. codeentropy-2.6.1/tests/regression/configs/water/water_off.yaml +0 -15
  235. codeentropy-2.6.1/tests/regression/conftest.py +0 -80
  236. codeentropy-2.6.1/tests/regression/helpers.py +0 -420
  237. codeentropy-2.6.1/tests/regression/list_systems.py +0 -12
  238. codeentropy-2.6.1/tests/regression/test_regression.py +0 -182
  239. codeentropy-2.6.1/tests/unit/CodeEntropy/cli/test___main__.py +0 -13
  240. codeentropy-2.6.1/tests/unit/CodeEntropy/cli/test_cli.py +0 -52
  241. codeentropy-2.6.1/tests/unit/CodeEntropy/config/argparse/conftest.py +0 -76
  242. codeentropy-2.6.1/tests/unit/CodeEntropy/config/argparse/test_argparse_build_parser.py +0 -52
  243. codeentropy-2.6.1/tests/unit/CodeEntropy/config/argparse/test_argparse_load_config.py +0 -50
  244. codeentropy-2.6.1/tests/unit/CodeEntropy/config/argparse/test_argparse_resolve.py +0 -122
  245. codeentropy-2.6.1/tests/unit/CodeEntropy/config/argparse/test_argparse_str2bool.py +0 -30
  246. codeentropy-2.6.1/tests/unit/CodeEntropy/config/argparse/test_argparse_validate_inputs.py +0 -275
  247. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/conftest.py +0 -10
  248. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_build_universe_branches.py +0 -33
  249. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_citation_data.py +0 -23
  250. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_create_job_folder.py +0 -51
  251. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_print_args_table.py +0 -22
  252. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_required_args.py +0 -28
  253. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_run_entropy_workflow_branches.py +0 -200
  254. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_runtime_properties.py +0 -7
  255. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_show_splash.py +0 -51
  256. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_unit_conversions.py +0 -6
  257. codeentropy-2.6.1/tests/unit/CodeEntropy/config/runtime/test_universe_io.py +0 -28
  258. codeentropy-2.6.1/tests/unit/CodeEntropy/core/dask_clusters/test_dask_clusters.py +0 -734
  259. codeentropy-2.6.1/tests/unit/CodeEntropy/core/logging/conftest.py +0 -23
  260. codeentropy-2.6.1/tests/unit/CodeEntropy/core/logging/test_configure_loggers.py +0 -26
  261. codeentropy-2.6.1/tests/unit/CodeEntropy/core/logging/test_error_filter.py +0 -23
  262. codeentropy-2.6.1/tests/unit/CodeEntropy/core/logging/test_export_console.py +0 -17
  263. codeentropy-2.6.1/tests/unit/CodeEntropy/core/logging/test_get_console_singleton.py +0 -19
  264. codeentropy-2.6.1/tests/unit/CodeEntropy/core/logging/test_handlers_setup.py +0 -41
  265. codeentropy-2.6.1/tests/unit/CodeEntropy/core/logging/test_set_level.py +0 -27
  266. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/conftest.py +0 -76
  267. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/nodes/test_aggregate_node.py +0 -22
  268. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/nodes/test_configurational_node.py +0 -72
  269. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/nodes/test_orientational_node.py +0 -39
  270. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/nodes/test_vibrational_node.py +0 -391
  271. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/test_configurational_edges.py +0 -12
  272. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/test_configurational_entropy_math.py +0 -25
  273. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/test_graph.py +0 -81
  274. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/test_orientational_entropy.py +0 -34
  275. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/test_vibrational_entropy_math.py +0 -174
  276. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/test_water_entropy.py +0 -188
  277. codeentropy-2.6.1/tests/unit/CodeEntropy/entropy/test_workflow.py +0 -870
  278. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/conftest.py +0 -58
  279. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/dihedrals/test_angle_observations.py +0 -180
  280. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/dihedrals/test_conformational_state_builder.py +0 -247
  281. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/dihedrals/test_kernels.py +0 -106
  282. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/dihedrals/test_peak_detection.py +0 -259
  283. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/dihedrals/test_state_assignment.py +0 -201
  284. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/dihedrals/test_topology.py +0 -472
  285. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/execution/test_chunks.py +0 -28
  286. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/execution/test_policy.py +0 -94
  287. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/execution/test_reducers.py +0 -327
  288. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/execution/test_scheduler.py +0 -399
  289. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/execution/test_tasks.py +0 -470
  290. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/nodes/test_axes_topology.py +0 -415
  291. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/nodes/test_beads_node.py +0 -238
  292. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/nodes/test_covariance_node.py +0 -828
  293. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/nodes/test_detect_levels_node.py +0 -46
  294. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/nodes/test_detect_molecules_node.py +0 -97
  295. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/nodes/test_init_covariance_accumulators_node.py +0 -58
  296. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_axes.py +0 -2240
  297. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_conformation_dag.py +0 -134
  298. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_forces_force_torque_calculator.py +0 -267
  299. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_frame_graph.py +0 -87
  300. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_hierarchy_builder.py +0 -108
  301. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_level_dag.py +0 -263
  302. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_linalg_matrix_utils.py +0 -57
  303. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_mda_universe_operations.py +0 -462
  304. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_neighbors.py +0 -560
  305. codeentropy-2.6.1/tests/unit/CodeEntropy/levels/test_search.py +0 -406
  306. codeentropy-2.6.1/tests/unit/CodeEntropy/molecules/test_grouping.py +0 -127
  307. codeentropy-2.6.1/tests/unit/CodeEntropy/results/test_reporter.py +0 -548
  308. codeentropy-2.6.1/tests/unit/CodeEntropy/trajectory/test_frames.py +0 -147
  309. codeentropy-2.6.1/tests/unit/CodeEntropy/trajectory/test_source.py +0 -80
  310. codeentropy-2.6.1/tests/unit/conftest.py +0 -15
  311. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/__main__.py +0 -0
  312. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/cli.py +0 -0
  313. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/config/__init__.py +0 -0
  314. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/config/runtime.py +0 -0
  315. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/core/__init__.py +0 -0
  316. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/core/dask_clusters.py +0 -0
  317. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/core/logging.py +0 -0
  318. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/__init__.py +0 -0
  319. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/configurational.py +0 -0
  320. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/graph.py +0 -0
  321. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/nodes/__init__.py +0 -0
  322. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/nodes/aggregate.py +0 -0
  323. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/nodes/configurational.py +0 -0
  324. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/nodes/orientational.py +0 -0
  325. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/nodes/vibrational.py +0 -0
  326. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/orientational.py +0 -0
  327. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/entropy/vibrational.py +0 -0
  328. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/__init__.py +0 -0
  329. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/dihedrals/__init__.py +0 -0
  330. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/dihedrals/angle_observations.py +0 -0
  331. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/dihedrals/conformational_state_builder.py +0 -0
  332. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/dihedrals/kernels.py +0 -0
  333. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/dihedrals/peak_detection.py +0 -0
  334. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/dihedrals/state_assignment.py +0 -0
  335. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/dihedrals/topology.py +0 -0
  336. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/execution/__init__.py +0 -0
  337. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/execution/chunks.py +0 -0
  338. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/execution/policy.py +0 -0
  339. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/execution/reducers.py +0 -0
  340. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/execution/scheduler.py +0 -0
  341. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/execution/tasks.py +0 -0
  342. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/forces.py +0 -0
  343. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/graph/__init__.py +0 -0
  344. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/graph/conformation_dag.py +0 -0
  345. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/graph/frame_dag.py +0 -0
  346. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/graph/level_dag.py +0 -0
  347. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/hierarchy.py +0 -0
  348. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/linalg.py +0 -0
  349. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/neighbors.py +0 -0
  350. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/nodes/__init__.py +0 -0
  351. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/nodes/accumulators.py +0 -0
  352. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/nodes/axes_topology.py +0 -0
  353. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/nodes/beads.py +0 -0
  354. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/nodes/detect_levels.py +0 -0
  355. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/nodes/detect_molecules.py +0 -0
  356. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/levels/search.py +0 -0
  357. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/molecules/__init__.py +0 -0
  358. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/molecules/grouping.py +0 -0
  359. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/results/__init__.py +0 -0
  360. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/results/reporter.py +0 -0
  361. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/trajectory/__init__.py +0 -0
  362. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/trajectory/frames.py +0 -0
  363. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/trajectory/mda.py +0 -0
  364. {codeentropy-2.6.1 → codeentropy-2.7.1}/CodeEntropy/trajectory/source.py +0 -0
  365. {codeentropy-2.6.1 → codeentropy-2.7.1}/LICENSE +0 -0
@@ -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.6.1"
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
 
@@ -82,15 +82,14 @@ class AxesCalculator:
82
82
  * Translational axes are principal axes of data_container.
83
83
  * Find edge heavy atom (i.e. heavy atoms bonded to neighbour residue).
84
84
  Compute rotation centre and axes as in get_terminal_axes.
85
- Compute custom MOI, using heavy atom positions and
86
- heavy atom + hydrogen masses.
85
+ Compute custom MOI, using all atoms positions and masses.
87
86
 
88
87
  - If bonded to at least two other residues:
89
88
  * Translational axes are principal axes of data_container.
90
89
  * Find edge heavy atoms (i.e. heavy atoms bonded to neighbour residues).
91
90
  Compute rotation centre and axes as in get_non_terminal_axes.
92
- Compute a custom MOI, using heavy atom positions and
93
- heavy atom + hydrogen masses.
91
+ Compute custom MOI, using all atoms positions and masses.
92
+
94
93
 
95
94
  Args:
96
95
  data_container (MDAnalysis.Universe or AtomGroup):
@@ -134,19 +133,8 @@ class AxesCalculator:
134
133
  f"resindex {index_next})"
135
134
  )
136
135
 
137
- uas = residue.select_atoms("mass 2 to 999")
138
- ua_masses = self.get_UA_masses(residue)
139
-
140
136
  if len(edge_atom_set) == 0:
141
- moi_tensor = self.get_moment_of_inertia_tensor(
142
- center_of_mass=np.array(residue.center_of_mass()),
143
- positions=uas.positions,
144
- masses=ua_masses,
145
- dimensions=data_container.dimensions[:3],
146
- )
147
- rot_axes, moment_of_inertia = self.get_principal_axes_from_tensor(
148
- moi_tensor
149
- )
137
+ rot_axes, moment_of_inertia = self.get_molecule_axes(residue)
150
138
  trans_axes = rot_axes # per original convention
151
139
  rot_center = np.array(residue.center_of_mass())
152
140
  else:
@@ -167,8 +155,8 @@ class AxesCalculator:
167
155
  )
168
156
  moment_of_inertia = self.get_custom_residue_moment_of_inertia(
169
157
  center_of_mass=rot_center,
170
- positions=uas.positions,
171
- masses=ua_masses,
158
+ positions=residue.atoms.positions,
159
+ masses=residue.atoms.masses,
172
160
  custom_rot_axes=rot_axes,
173
161
  dimensions=data_container.dimensions[:3],
174
162
  )
@@ -181,7 +169,6 @@ class AxesCalculator:
181
169
  mol,
182
170
  residue_atoms,
183
171
  topology,
184
- box: np.ndarray | None,
185
172
  ):
186
173
  """Compute residue axes using cached static topology.
187
174
 
@@ -195,7 +182,6 @@ class AxesCalculator:
195
182
  mol: Current-frame molecule fragment.
196
183
  residue_atoms: AtomGroup for the residue in the current frame.
197
184
  topology: Cached ``ResidueAxesTopology`` for this residue.
198
- box: Current periodic box lengths. If omitted, ``u.dimensions`` is used.
199
185
 
200
186
  Returns:
201
187
  Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]:
@@ -204,24 +190,10 @@ class AxesCalculator:
204
190
  - center: Residue centre, shape ``(3,)``.
205
191
  - moment_of_inertia: Principal moments, shape ``(3,)``.
206
192
  """
207
- dimensions = (
208
- np.asarray(box, dtype=float)
209
- if box is not None
210
- else np.asarray(u.dimensions[:3], dtype=float)
211
- )
212
193
  center = residue_atoms.center_of_mass(unwrap=True)
213
194
 
214
195
  if not topology.has_neighbor_bonds:
215
- heavy_atoms = u.atoms[topology.residue_heavy_indices]
216
- moment_of_inertia_tensor = self.get_moment_of_inertia_tensor(
217
- center_of_mass=center,
218
- positions=heavy_atoms.positions,
219
- masses=topology.residue_ua_masses,
220
- dimensions=dimensions,
221
- )
222
- rot_axes, moment_of_inertia = self.get_principal_axes_from_tensor(
223
- moment_of_inertia_tensor
224
- )
196
+ rot_axes, moment_of_inertia = self.get_molecule_axes(residue_atoms)
225
197
  trans_axes = rot_axes
226
198
  else:
227
199
  make_whole(mol.atoms)
@@ -277,7 +249,7 @@ class AxesCalculator:
277
249
 
278
250
  index = int(index) # UA bead index
279
251
  heavy_atoms = data_container.select_atoms("mass 2 to 999")
280
- # use the same customPI trans axes as the residue level
252
+ # use the same trans axes as the residue level
281
253
  if len(heavy_atoms) > 1:
282
254
  if len(data_container.residues) == 1:
283
255
  # only the one residue => use principal axes
@@ -411,16 +383,7 @@ class AxesCalculator:
411
383
  heavy_atom = u.atoms[int(topology.heavy_atom_index)]
412
384
 
413
385
  if len(heavy_atoms) > 1:
414
- center = residue_atoms.center_of_mass(unwrap=True)
415
- moment_of_inertia_tensor = self.get_moment_of_inertia_tensor(
416
- center_of_mass=center,
417
- positions=heavy_atoms.positions,
418
- masses=topology.residue_ua_masses,
419
- dimensions=dimensions,
420
- )
421
- trans_axes, _moment_of_inertia = self.get_principal_axes_from_tensor(
422
- moment_of_inertia_tensor
423
- )
386
+ trans_axes = self.get_principal_axes_from_group(residue_atoms)
424
387
  else:
425
388
  make_whole(residue_atoms)
426
389
  trans_axes = self.get_principal_axes_from_group(residue_atoms)
@@ -921,8 +884,8 @@ class AxesCalculator:
921
884
 
922
885
  Args:
923
886
  center_of_mass: (3, ) COM for bead
924
- positions: (N,3) positions of the UAs in the bead
925
- masses: (N,) masses of the UAs in the bead
887
+ positions: (N,3) positions of the atoms in the bead
888
+ masses: (N,) masses of the atoms in the bead
926
889
  custom_rot_axes: (3,3) array of residue rotation axes
927
890
  dimensions: (3,) simulation_box_dimensions
928
891
 
@@ -1137,30 +1100,6 @@ class AxesCalculator:
1137
1100
  )
1138
1101
  return principal_axes
1139
1102
 
1140
- def get_UA_masses(self, molecule) -> list[float]:
1141
- """Return united-atom (UA) masses for a molecule.
1142
-
1143
- For a given molecule, return a list of masses of UAs (combination of the
1144
- heavy atoms + bonded hydrogen atoms). This list is used to get the moment
1145
- of inertia tensor for molecules larger than one UA.
1146
-
1147
- Args:
1148
- molecule: MDAnalysis AtomGroup representing the molecule.
1149
-
1150
- Returns:
1151
- list[float]: UA masses for each heavy atom.
1152
- """
1153
- ua_masses: list[float] = []
1154
- for atom in molecule:
1155
- if atom.mass > 1.1:
1156
- ua_mass = float(atom.mass)
1157
- bonded_atoms = molecule.select_atoms(f"bonded index {atom.index}")
1158
- bonded_h_atoms = bonded_atoms.select_atoms("mass 1 to 1.1")
1159
- for h in bonded_h_atoms:
1160
- ua_mass += float(h.mass)
1161
- ua_masses.append(ua_mass)
1162
- return ua_masses
1163
-
1164
1103
  def get_chain(self, residue, first, last):
1165
1104
  """
1166
1105
  For a given MDAnalysis AtomGroup and two given heavy atoms
@@ -578,7 +578,6 @@ class FrameCovarianceNode:
578
578
  relative_res_i=relative_res_i,
579
579
  axes_manager=axes_manager,
580
580
  axes_topology=axes_topology,
581
- box=box,
582
581
  customised_axes=customised_axes,
583
582
  )
584
583
 
@@ -615,7 +614,6 @@ class FrameCovarianceNode:
615
614
  relative_res_i: int,
616
615
  axes_manager: Any,
617
616
  axes_topology: Any | None,
618
- box: np.ndarray | None,
619
617
  customised_axes: bool,
620
618
  ) -> tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]:
621
619
  """Return axes, centre, and inertia data for a residue bead.
@@ -630,7 +628,6 @@ class FrameCovarianceNode:
630
628
  might differ from residue index of first residue in topology.
631
629
  axes_manager: Axes helper used to select axes, centres, and moments.
632
630
  axes_topology: Optional cached axes topology generated during static setup.
633
- box: Optional periodic box vector.
634
631
  customised_axes: Whether customised residue axes should be used.
635
632
 
636
633
  Returns:
@@ -644,11 +641,7 @@ class FrameCovarianceNode:
644
641
 
645
642
  if residue_topology is not None:
646
643
  return axes_manager.get_residue_axes_from_topology(
647
- u=u,
648
- mol=mol,
649
- residue_atoms=res.atoms,
650
- topology=residue_topology,
651
- box=box,
644
+ u=u, mol=mol, residue_atoms=res.atoms, topology=residue_topology
652
645
  )
653
646
 
654
647
  return axes_manager.get_residue_axes(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: CodeEntropy
3
- Version: 2.6.1
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.
@@ -3,7 +3,7 @@ CodeEntropy
3
3
 
4
4
  | Category | Badges |
5
5
  |----------------|--------|
6
- | **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) |
6
+ | **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) |
7
7
  | **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) |
8
8
  | **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) |
9
9
  | **Citation** | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17570721.svg)](https://doi.org/10.5281/zenodo.17570721) |
@@ -14,8 +14,8 @@ CodeEntropy
14
14
  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.
15
15
 
16
16
  <p align="center">
17
- <img src="docs/_static/logos/biosim-codeentropy_logo_light.png#gh-dark-mode-only" alt="CodeEntropy logo" width="300"/>
18
- <img src="docs/_static/logos/biosim-codeentropy_logo_dark.png#gh-light-mode-only" alt="CodeEntropy logo" width="300"/>
17
+ <img src="docs/source/_static/logos/biosim-codeentropy_logo_light.png#gh-dark-mode-only" alt="CodeEntropy logo" width="300"/>
18
+ <img src="docs/source/_static/logos/biosim-codeentropy_logo_dark.png#gh-light-mode-only" alt="CodeEntropy logo" width="300"/>
19
19
  </p>
20
20
 
21
21
  See [CodeEntropy’s documentation](https://codeentropy.readthedocs.io/en/latest/) for more information.
@@ -45,7 +45,7 @@ dependencies = [
45
45
  "rich>=13.0.0,<16.0",
46
46
  "art>=5.0,<7.0",
47
47
  "networkx>=2.8,<4.0",
48
- "waterEntropy>=2,<3.0",
48
+ "waterEntropy>=2.3.0,<3.0",
49
49
  "requests>=2.32.2,<3.0",
50
50
  "rdkit>=2025.3.4,<2027",
51
51
  "numba>=0.63.0,<0.70",
@@ -73,9 +73,8 @@ pre-commit = [
73
73
  ]
74
74
  docs = [
75
75
  "sphinx>=8.0.0,<10.0",
76
- "nbsphinx>=0.9.3,<1.0",
77
- "sphinx_copybutton>=0.5,<1.0",
78
- "furo>=2025.12.19,<2026.0",
76
+ "sphinx-autoapi>=3.8,<4.0",
77
+ "ccpbiosim-sphinx-theme>=1.3.0,<1.4.0",
79
78
  "markupsafe>=3.0,<4.0"
80
79
  ]
81
80
 
@@ -1,65 +0,0 @@
1
- # Contributing to CodeEntropy
2
-
3
- Thank you for your interest in contributing to **CodeEntropy**!
4
-
5
- We’re excited to collaborate with developers, researchers, and community members to make CodeEntropy better for everyone.
6
-
7
- This guide explains how to set up your environment, make changes, and submit them for review. Whether you’re fixing a bug, improving documentation, or adding new features, every contribution makes a difference.
8
-
9
- ---
10
-
11
- ## Getting Started
12
-
13
- Before contributing, please review the [Developer Guide](https://codeentropy.readthedocs.io/en/latest/developer_guide.html).
14
- It covers CodeEntropy’s architecture, setup instructions, and contribution workflow.
15
-
16
- If you’re new to the project, we also recommend:
17
- - Reading the [README](../README.md) for an overview and installation details.
18
- - Checking open [issues](https://github.com/CCPBioSim/CodeEntropy/issues) labeled **good first issue** to find beginner-friendly tasks.
19
-
20
- ---
21
-
22
- ## Submitting a Pull Request (PR)
23
-
24
- When you’re ready to submit your work:
25
-
26
- 1. **Push your branch** to GitHub.
27
- 2. **Open a [pull request](https://help.github.com/articles/using-pull-requests/)** against the `main` branch.
28
- 3. **Fill out the PR template**, including:
29
- - A concise summary of what your PR does
30
- - A list of all changes introduced
31
- - Details on how these changes affect the repository (features, tests, documentation, etc.)
32
- 4. **Verify before submission**:
33
- - All tests pass
34
- - Pre-commit checks succeed
35
- - Documentation is updated where applicable
36
- 5. **Review process**:
37
- - Your PR will be reviewed by the core development team.
38
- - At least **one approval** is required before merging.
39
-
40
- We aim to provide constructive feedback quickly and appreciate your patience during the review process.
41
-
42
- ---
43
-
44
- ## Reporting Issues
45
-
46
- Found a bug or have a feature request?
47
-
48
- 1. **Open a new issue** on GitHub.
49
- 2. Provide a **clear and descriptive title**.
50
- 3. Include:
51
- - Steps to reproduce the issue (if applicable)
52
- - Expected vs. actual behavior
53
- - Relevant logs, screenshots, or input files
54
-
55
- Well-documented issues help us address problems faster and keep CodeEntropy stable and robust.
56
-
57
- ---
58
-
59
- ## Additional Resources
60
-
61
- - [GitHub Docs](https://help.github.com/)
62
-
63
- ---
64
-
65
- Thank you for helping improve **CodeEntropy**, your contributions make open source stronger!
@@ -1,70 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve CodeEntropy
4
- title: '[Bug]: '
5
- labels: bug
6
- assignees: ''
7
-
8
- ---
9
-
10
- # Bug Report
11
- <!-- A clear and concise description of the issue. -->
12
-
13
- ---
14
-
15
- ## To Reproduce
16
- <!-- Provide the YAML configuration and the exact CLI command that reproduces the issue. -->
17
-
18
- ### YAML configuration
19
- <!-- Paste the YAML file or the smallest excerpt that reproduces the issue.
20
- Remove unrelated fields to make it minimal. -->
21
- ```yaml
22
- # Paste the YAML snippet here
23
- ```
24
-
25
- ### CLI command used
26
- <!-- Write the exact command used, for example: -->
27
- ```bash
28
- # Paste the CLI command here
29
- ```
30
-
31
- ### Actual output
32
- <!-- Paste the output, logs, or error messages here -->
33
- ```bash
34
- # Paste the output, logs, or error messages here
35
- ```
36
-
37
- ### Expected output
38
- <!-- Describe what you expected to see instead -->
39
-
40
- ---
41
-
42
- ## Environment and Versions
43
-
44
- - Operating System:
45
- - CodeEntropy Version:
46
- - Python Version:
47
- - Package list:
48
- - If using conda, run: `conda list > packages.txt` and paste the contents here.
49
-
50
- ``` bash
51
- # Paste packages.txt here
52
- ```
53
-
54
- - If using venv/pip, run: `pip list > packages.txt` and paste the contents here.
55
-
56
- ``` bash
57
- # Paste packages.txt here
58
- ```
59
-
60
- ---
61
-
62
- ## Screenshots or Logs
63
-
64
- <!-- Attach any relevant screenshots, logs, or stack traces. -->
65
-
66
- ---
67
-
68
- ## Additional Context
69
-
70
- <!-- Include anything else that might help reproduce or understand the bug, such as changes from a previously working version. -->
@@ -1,22 +0,0 @@
1
- blank_issues_enabled: false
2
- issue_templates:
3
- - name: "Bug Report"
4
- description: "Report a bug in CodeEntropy."
5
- title: "[Bug]: "
6
- labels: ["bug"]
7
- body: "./ISSUE_TEMPLATE/bug_report.md"
8
- - name: "Feature Request"
9
- description: "Propose a new feature or improvement."
10
- title: "[Feature]: "
11
- labels: ["enhancement"]
12
- body: "./ISSUE_TEMPLATE/feature_request.md"
13
- - name: "Documentation"
14
- description: "Suggest updates or additions to the documentation."
15
- title: "[Docs]: "
16
- labels: ["documentation"]
17
- body: "./ISSUE_TEMPLATE/documentation.md"
18
- - name: "General Report"
19
- description: "Provide general feedback or inquiries."
20
- title: "[General]: "
21
- labels: ["general"]
22
- body: "./ISSUE_TEMPLATE/general_report.md"
@@ -1,19 +0,0 @@
1
- ---
2
- name: Documentation
3
- about: Suggest updates or additions to documentation
4
- title: "[Docs]: "
5
- labels: documentation
6
- assignees: ''
7
- ---
8
-
9
- ### Documentation Update
10
- <!-- What part of the documentation needs to be updated or added? -->
11
-
12
- ### Why Is This Needed?
13
- <!-- Explain the importance of this update. -->
14
-
15
- ### Suggested Changes
16
- <!-- Provide a detailed description of the changes. -->
17
-
18
- ### Additional Context
19
- <!-- Include any related resources. -->
@@ -1,28 +0,0 @@
1
- ---
2
- name: Feature request
3
- about: Suggest an idea for CodeEntropy
4
- title: '[Feature]: '
5
- labels: 'enhancement'
6
- assignees: ''
7
- ---
8
-
9
- # Feature Request
10
-
11
- ## Problem / Motivation
12
- <!-- Describe the problem you want to solve or the motivation for this feature. -->
13
-
14
- ## Proposed Solution
15
- <!-- Describe the feature you would like to see implemented. Include examples if applicable. -->
16
-
17
- ## Alternatives Considered
18
- - <!-- Alternative 1 -->
19
- - <!-- Alternative 2 -->
20
-
21
- ## Expected Impact
22
- <!-- How this feature would affect the codebase or workflow -->
23
- - <!-- Impact 1 -->
24
- - <!-- Impact 2 -->
25
-
26
- ## Additional Context
27
- <!-- Add any other context, screenshots, or references for the feature request here. -->
28
- - <!-- Further context -->
@@ -1,13 +0,0 @@
1
- ---
2
- name: General Report
3
- about: Provide general feedback or inquiries
4
- title: "[General]: "
5
- labels: general
6
- assignees: ''
7
- ---
8
-
9
- ### Feedback or Inquiry
10
- <!-- Provide your feedback or inquiry. -->
11
-
12
- ### Additional Information
13
- <!-- Add any other relevant details here. -->
@@ -1,20 +0,0 @@
1
- ## Summary
2
- <!-- Provide a brief description of the PR's purpose here. -->
3
-
4
- ## Changes
5
- <!-- List all the changes introduced in this PR. -->
6
- ### Change 1 <!-- Rename Change 1 to reflect change title -->:
7
- - <!-- Bullet point the changes in update 1. -->
8
- -
9
-
10
- ### Change 2 <!-- Rename Change 2 to reflect change title -->:
11
- - <!-- Bullet point the changes in update 2. -->
12
- -
13
-
14
- ### Change 3 <!-- Rename Change 3 to reflect change title -->:
15
- - <!-- Bullet point the changes in update 3. -->
16
- -
17
-
18
- ## Impact
19
- - <!-- Bullet point the expected impact this PR will have on the codebase. -->
20
- -