CodeEntropy 2.1.1__tar.gz → 2.2.0__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.
- codeentropy-2.2.0/.github/workflows/update_regression_baselines.yaml +44 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CITATION.cff +2 -2
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/__init__.py +1 -1
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/config/runtime.py +8 -2
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/nodes/configurational.py +1 -1
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/nodes/orientational.py +1 -1
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/nodes/vibrational.py +2 -2
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/workflow.py +23 -13
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/dihedrals.py +239 -237
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/level_dag.py +3 -16
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/mda.py +91 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/neighbors.py +10 -13
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/conformations.py +5 -31
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/covariance.py +1 -1
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/find_neighbors.py +3 -1
- codeentropy-2.2.0/CodeEntropy/levels/search.py +289 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/results/reporter.py +2 -2
- {codeentropy-2.1.1 → codeentropy-2.2.0}/PKG-INFO +2 -1
- {codeentropy-2.1.1 → codeentropy-2.2.0}/conda-recipe/meta.yaml +1 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/developer_guide.rst +36 -3
- {codeentropy-2.1.1 → codeentropy-2.2.0}/pyproject.toml +1 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzaldehyde/axes_off.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzaldehyde/combined_forcetorque_false.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzaldehyde/default.json +11 -11
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzaldehyde/frame_window.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzaldehyde/grouping_each.json +18 -18
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzaldehyde/rad.json +11 -11
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzaldehyde/selection_subset.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzene/axes_off.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzene/combined_forcetorque_off.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzene/default.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzene/frame_window.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzene/grouping_each.json +20 -20
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzene/rad.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/benzene/selection_subset.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/cyclohexane/axes_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/cyclohexane/combined_forcetorque_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/cyclohexane/default.json +11 -11
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/cyclohexane/frame_window.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/cyclohexane/grouping_each.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/cyclohexane/rad.json +11 -11
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/cyclohexane/selection_subset.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/dna/axes_off.json +12 -12
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/dna/combined_forcetorque_off.json +12 -12
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/dna/default.json +12 -12
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/dna/frame_window.json +12 -12
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/dna/grouping_each.json +12 -12
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/dna/selection_subset.json +12 -12
- codeentropy-2.2.0/tests/regression/baselines/ethyl-acetate/axes_off.json +45 -0
- codeentropy-2.2.0/tests/regression/baselines/ethyl-acetate/combined_forcetorque_off.json +45 -0
- codeentropy-2.2.0/tests/regression/baselines/ethyl-acetate/default.json +45 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/ethyl-acetate/frame_window.json +11 -11
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/ethyl-acetate/grouping_each.json +33 -33
- codeentropy-2.2.0/tests/regression/baselines/ethyl-acetate/rad.json +45 -0
- codeentropy-2.2.0/tests/regression/baselines/ethyl-acetate/selection_subset.json +45 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methane/axes_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methane/combined_forcetorque_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methane/default.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methane/frame_window.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methane/grouping_each.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methane/rad.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methane/selection_subset.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methanol/axes_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methanol/combined_forcetorque_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methanol/default.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methanol/frame_window.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methanol/grouping_each.json +12 -12
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methanol/rad.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/methanol/selection_subset.json +8 -8
- codeentropy-2.2.0/tests/regression/baselines/octonol/axes_off.json +45 -0
- codeentropy-2.2.0/tests/regression/baselines/octonol/combined_forcetorque_off.json +45 -0
- codeentropy-2.2.0/tests/regression/baselines/octonol/default.json +45 -0
- codeentropy-2.2.0/tests/regression/baselines/octonol/frame_window.json +45 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/octonol/grouping_each.json +31 -31
- codeentropy-2.2.0/tests/regression/baselines/octonol/rad.json +45 -0
- codeentropy-2.2.0/tests/regression/baselines/octonol/selection_subset.json +45 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/axes_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/combined_forcetorque_off.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/default.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/frame_window.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/grouping_each.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/rad.json +10 -10
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/selection_subset.json +8 -8
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/baselines/water/water_off.json +8 -8
- codeentropy-2.2.0/tests/regression/configs/ethyl-acetate/axes_off.yaml +15 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/conftest.py +11 -5
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/test_workflow.py +19 -4
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/nodes/test_conformations_node.py +1 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/nodes/test_find_neighbors.py +1 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_dihedrals.py +169 -277
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_level_dag_orchestration.py +6 -44
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_level_dag_reduction.py +3 -3
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_mda_universe_operations.py +53 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_neighbors.py +8 -4
- codeentropy-2.2.0/tests/unit/CodeEntropy/levels/test_search.py +383 -0
- codeentropy-2.2.0/tests/unit/conftest.py +15 -0
- codeentropy-2.1.1/CodeEntropy/levels/search.py +0 -241
- codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/axes_off.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/combined_forcetorque_off.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/default.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/rad.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/ethyl-acetate/selection_subset.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/octonol/axes_off.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/octonol/combined_forcetorque_off.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/octonol/default.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/octonol/frame_window.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/octonol/rad.json +0 -45
- codeentropy-2.1.1/tests/regression/baselines/octonol/selection_subset.json +0 -45
- codeentropy-2.1.1/tests/regression/configs/ethyl-acetate/axes_off.yaml +0 -15
- codeentropy-2.1.1/tests/unit/CodeEntropy/levels/test_search.py +0 -277
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/CONTRIBUTING.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/ISSUE_TEMPLATE/general_report.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/renovate.json +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/workflows/daily.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/workflows/pr.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/workflows/release.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/workflows/update-copyright-years-in-license-file.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/workflows/weekly-docs.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.github/workflows/weekly-regression.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.gitignore +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/.pre-commit-config.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CODE_OF_CONDUCT.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/__main__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/cli.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/config/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/config/argparse.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/core/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/core/logging.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/configurational.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/graph.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/nodes/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/nodes/aggregate.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/orientational.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/vibrational.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/entropy/water.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/axes.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/forces.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/frame_dag.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/hierarchy.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/linalg.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/accumulators.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/beads.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/detect_levels.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/levels/nodes/detect_molecules.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/molecules/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/molecules/grouping.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/CodeEntropy/results/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/LICENSE +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/README.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/Makefile +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/README.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/_static/README.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/_static/custom.css +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/_static/logos/biosim-codeentropy_logo_dark.png +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/_static/logos/biosim-codeentropy_logo_light.png +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/_templates/README.md +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.cli.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.config.argparse.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.config.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.config.runtime.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.core.logging.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.core.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.configurational.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.graph.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.nodes.aggregate.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.nodes.configurational.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.nodes.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.nodes.vibrational.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.orientational.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.vibrational.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.water.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.entropy.workflow.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.axes.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.dihedrals.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.forces.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.frame_dag.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.hierarchy.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.level_dag.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.linalg.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.mda.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.nodes.accumulators.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.nodes.beads.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.nodes.conformations.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.nodes.covariance.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.nodes.detect_levels.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.nodes.detect_molecules.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.nodes.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.levels.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.molecules.grouping.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.molecules.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.results.reporter.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.results.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/CodeEntropy.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/api/modules.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/conf.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/config.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/faq.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/getting_started.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/index.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/docs/science.rst +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/readthedocs.yml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/__init__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/cases.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzaldehyde/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzaldehyde/combined_forcetorque_false.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzaldehyde/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzaldehyde/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzaldehyde/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzaldehyde/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzaldehyde/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzene/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzene/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzene/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzene/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzene/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzene/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/benzene/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/cyclohexane/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/cyclohexane/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/cyclohexane/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/cyclohexane/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/cyclohexane/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/cyclohexane/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/cyclohexane/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/dna/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/dna/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/dna/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/dna/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/dna/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/dna/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/ethyl-acetate/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/ethyl-acetate/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/ethyl-acetate/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/ethyl-acetate/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/ethyl-acetate/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/ethyl-acetate/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methane/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methane/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methane/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methane/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methane/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methane/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methane/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methanol/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methanol/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methanol/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methanol/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methanol/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methanol/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/methanol/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/octonol/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/octonol/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/octonol/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/octonol/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/octonol/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/octonol/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/octonol/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/axes_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/combined_forcetorque_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/default.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/frame_window.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/grouping_each.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/rad.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/selection_subset.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/configs/water/water_off.yaml +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/helpers.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/list_systems.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/regression/test_regression.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/cli/test___main__.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/cli/test_cli.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/argparse/conftest.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_build_parser.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_load_config.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_resolve.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_str2bool.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/argparse/test_argparse_validate_inputs.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/conftest.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_build_universe_branches.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_citation_data.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_create_job_folder.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_print_args_table.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_required_args.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_run_entropy_workflow_branches.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_runtime_properties.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_show_splash.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_unit_conversions.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/config/runtime/test_universe_io.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/core/logging/conftest.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/core/logging/test_configure_loggers.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/core/logging/test_error_filter.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/core/logging/test_export_console.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/core/logging/test_get_console_singleton.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/core/logging/test_handlers_setup.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/core/logging/test_set_level.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/conftest.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/nodes/test_aggregate_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/nodes/test_configurational_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/nodes/test_orientational_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/nodes/test_vibrational_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/test_configurational_edges.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/test_configurational_entropy_math.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/test_graph.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/test_orientational_entropy.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/test_vibrational_entropy_math.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/entropy/test_water_entropy.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/conftest.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/nodes/test_build_beads_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/nodes/test_detect_levels_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/nodes/test_detect_molecules_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/nodes/test_frame_covariance_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/nodes/test_init_covariance_accumulators_node.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_axes.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_forces_force_torque_calculator.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_frame_graph.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_hierarchy_builder.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_level_dag_reduce.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/levels/test_linalg_matrix_utils.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/molecules/test_grouping.py +0 -0
- {codeentropy-2.1.1 → codeentropy-2.2.0}/tests/unit/CodeEntropy/results/test_reporter.py +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Update Regression Baselines
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
concurrency:
|
|
7
|
+
group: update-regression-baselines-${{ github.ref }}
|
|
8
|
+
cancel-in-progress: true
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
update-baselines:
|
|
15
|
+
name: Update regression baselines
|
|
16
|
+
runs-on: ubuntu-24.04
|
|
17
|
+
timeout-minutes: 30
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout
|
|
21
|
+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
|
|
22
|
+
with:
|
|
23
|
+
ref: ${{ github.ref }}
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.14"
|
|
29
|
+
cache: pip
|
|
30
|
+
|
|
31
|
+
- name: Install testing dependencies
|
|
32
|
+
run: |
|
|
33
|
+
python -m pip install --upgrade pip
|
|
34
|
+
python -m pip install -e .[testing]
|
|
35
|
+
|
|
36
|
+
- name: Update regression baselines
|
|
37
|
+
run: pytest tests/regression --update-baselines
|
|
38
|
+
|
|
39
|
+
- name: Commit updated baselines
|
|
40
|
+
uses: stefanzweifel/git-auto-commit-action@778341af668090896ca464160c2def5d1d1a3eb0 # v6
|
|
41
|
+
with:
|
|
42
|
+
commit_message: "test(regression): update baselines"
|
|
43
|
+
commit_user_name: github-actions[bot]
|
|
44
|
+
commit_user_email: 41898282+github-actions[bot]@users.noreply.github.com
|
|
@@ -335,8 +335,14 @@ class CodeEntropyRunner:
|
|
|
335
335
|
kcal_units = args.kcal_force_units
|
|
336
336
|
|
|
337
337
|
if forcefile is None:
|
|
338
|
-
|
|
339
|
-
|
|
338
|
+
if fileformat == "LAMMPSDUMP":
|
|
339
|
+
logger.debug(
|
|
340
|
+
f"Loading Universe with {tprfile} and {trrfile} (LAMMPSDUMP)"
|
|
341
|
+
)
|
|
342
|
+
return universe_operations.convert_lammps(tprfile, trrfile, fileformat)
|
|
343
|
+
else:
|
|
344
|
+
logger.debug(f"Loading Universe with {tprfile} and {trrfile}")
|
|
345
|
+
return mda.Universe(tprfile, trrfile, format=fileformat)
|
|
340
346
|
|
|
341
347
|
return universe_operations.merge_forces(
|
|
342
348
|
tprfile, trrfile, forcefile, fileformat, kcal_units
|
|
@@ -53,7 +53,7 @@ class ConfigurationalEntropyNode:
|
|
|
53
53
|
fragments = universe.atoms.fragments
|
|
54
54
|
results: dict[int, dict[str, float]] = {}
|
|
55
55
|
|
|
56
|
-
for group_id, mol_ids in groups.items():
|
|
56
|
+
for group_id, mol_ids in sorted(groups.items()):
|
|
57
57
|
results[group_id] = {"ua": 0.0, "res": 0.0, "poly": 0.0}
|
|
58
58
|
if not mol_ids:
|
|
59
59
|
continue
|
|
@@ -90,7 +90,7 @@ class VibrationalEntropyNode:
|
|
|
90
90
|
|
|
91
91
|
results: dict[int, dict[str, dict[str, float]]] = {}
|
|
92
92
|
|
|
93
|
-
for group_id, mol_ids in groups.items():
|
|
93
|
+
for group_id, mol_ids in sorted(groups.items()):
|
|
94
94
|
results[group_id] = {}
|
|
95
95
|
if not mol_ids:
|
|
96
96
|
continue
|
|
@@ -198,7 +198,7 @@ class VibrationalEntropyNode:
|
|
|
198
198
|
if isinstance(gid2i, dict) and gid2i:
|
|
199
199
|
return gid2i
|
|
200
200
|
groups = shared_data["groups"]
|
|
201
|
-
return {gid: i for i, gid in enumerate(groups.keys())}
|
|
201
|
+
return {gid: i for i, gid in enumerate(sorted(groups.keys()))}
|
|
202
202
|
|
|
203
203
|
def _get_ua_frame_counts(self, shared_data: Mapping[str, Any]) -> dict[CovKey, int]:
|
|
204
204
|
"""Extract per-(group,residue) frame counts for united-atom covariances.
|
|
@@ -96,7 +96,7 @@ class EntropyWorkflow:
|
|
|
96
96
|
|
|
97
97
|
This orchestrates the complete entropy pipeline:
|
|
98
98
|
1. Build trajectory slice.
|
|
99
|
-
2. Apply atom selection to create a reduced universe.
|
|
99
|
+
2. Apply atom and frame selection to create a reduced universe.
|
|
100
100
|
3. Detect hierarchy levels.
|
|
101
101
|
4. Group molecules.
|
|
102
102
|
5. Split groups into water and non-water.
|
|
@@ -233,21 +233,31 @@ class EntropyWorkflow:
|
|
|
233
233
|
return math.floor((end - start) / step)
|
|
234
234
|
|
|
235
235
|
def _build_reduced_universe(self) -> Any:
|
|
236
|
-
"""Apply atom selection and return the reduced universe.
|
|
237
|
-
|
|
238
|
-
If `selection_string` is "all", the original universe is returned.
|
|
236
|
+
"""Apply atom and frame selection and return the reduced universe.
|
|
239
237
|
|
|
240
238
|
Returns:
|
|
241
|
-
MDAnalysis Universe (
|
|
239
|
+
MDAnalysis Universe (reduced according to user selections).
|
|
242
240
|
"""
|
|
243
241
|
selection = self._args.selection_string
|
|
242
|
+
start = self._args.start
|
|
243
|
+
end = len(self._universe.trajectory) if self._args.end == -1 else self._args.end
|
|
244
|
+
step = self._args.step
|
|
244
245
|
if selection == "all":
|
|
245
|
-
|
|
246
|
+
reduced_atoms = self._universe
|
|
247
|
+
else:
|
|
248
|
+
reduced_atoms = self._universe_operations.select_atoms(
|
|
249
|
+
self._universe, selection
|
|
250
|
+
)
|
|
251
|
+
name = f"{len(reduced_atoms.trajectory)}_frame_dump_atom_selection"
|
|
252
|
+
self._run_manager.write_universe(reduced_atoms, name)
|
|
253
|
+
|
|
254
|
+
reduced_frames = self._universe_operations.select_frames(
|
|
255
|
+
reduced_atoms, start, end, step
|
|
256
|
+
)
|
|
257
|
+
name = f"{len(reduced_frames.trajectory)}_frame_dump_frame_selection"
|
|
258
|
+
self._run_manager.write_universe(reduced_frames, name)
|
|
246
259
|
|
|
247
|
-
|
|
248
|
-
name = f"{len(reduced.trajectory)}_frame_dump_atom_selection"
|
|
249
|
-
self._run_manager.write_universe(reduced, name)
|
|
250
|
-
return reduced
|
|
260
|
+
return reduced_frames
|
|
251
261
|
|
|
252
262
|
def _detect_levels(self, reduced_universe: Any) -> Any:
|
|
253
263
|
"""Detect hierarchy levels for each molecule in the reduced universe.
|
|
@@ -293,7 +303,7 @@ class EntropyWorkflow:
|
|
|
293
303
|
|
|
294
304
|
water_groups = {
|
|
295
305
|
gid: mol_ids
|
|
296
|
-
for gid, mol_ids in groups.items()
|
|
306
|
+
for gid, mol_ids in sorted(groups.items())
|
|
297
307
|
if any(
|
|
298
308
|
res.resid in water_resids
|
|
299
309
|
for mol in [universe.atoms.fragments[i] for i in mol_ids]
|
|
@@ -301,7 +311,7 @@ class EntropyWorkflow:
|
|
|
301
311
|
)
|
|
302
312
|
}
|
|
303
313
|
nonwater_groups = {
|
|
304
|
-
gid: g for gid, g in groups.items() if gid not in water_groups
|
|
314
|
+
gid: g for gid, g in sorted(groups.items()) if gid not in water_groups
|
|
305
315
|
}
|
|
306
316
|
return nonwater_groups, water_groups
|
|
307
317
|
|
|
@@ -354,7 +364,7 @@ class EntropyWorkflow:
|
|
|
354
364
|
except (TypeError, ValueError):
|
|
355
365
|
logger.warning("Skipping invalid entry: %s, %s", group_id, result)
|
|
356
366
|
|
|
357
|
-
for group_id, total in entropy_by_group.items():
|
|
367
|
+
for group_id, total in sorted(entropy_by_group.items()):
|
|
358
368
|
self._reporter.molecule_data.append(
|
|
359
369
|
(group_id, "Group Total", "Group Total Entropy", total)
|
|
360
370
|
)
|