imdclient 0.1.3__py3-none-any.whl → 0.2.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. imdclient/IMDClient.py +43 -12
  2. imdclient/IMDProtocol.py +1 -0
  3. imdclient/__init__.py +0 -5
  4. imdclient/data/gromacs/md/gromacs_v3_nst1.mdp +3 -3
  5. imdclient/data/namd/md/namd3 +0 -0
  6. imdclient/data/namd/md/namd_v3_nst_1.namd +1 -1
  7. imdclient/tests/base.py +108 -83
  8. imdclient/tests/conftest.py +0 -39
  9. imdclient/tests/datafiles.py +16 -1
  10. imdclient/tests/docker_testing/docker.md +1 -1
  11. imdclient/tests/hpc_testing/gromacs/README.md +112 -0
  12. imdclient/tests/hpc_testing/gromacs/gmx_gpu_test.mdp +58 -0
  13. imdclient/tests/hpc_testing/gromacs/gmx_gpu_test.top +11764 -0
  14. imdclient/tests/hpc_testing/gromacs/struct.gro +21151 -0
  15. imdclient/tests/hpc_testing/gromacs/validate_gmx.sh +90 -0
  16. imdclient/tests/hpc_testing/lammps/README.md +62 -0
  17. imdclient/tests/hpc_testing/lammps/lammps_v3_nst_1.in +71 -0
  18. imdclient/tests/hpc_testing/lammps/topology_after_min.data +8022 -0
  19. imdclient/tests/hpc_testing/lammps/validate_lmp.sh +66 -0
  20. imdclient/tests/hpc_testing/namd/README.md +147 -0
  21. imdclient/tests/hpc_testing/namd/alanin.params +402 -0
  22. imdclient/tests/hpc_testing/namd/alanin.pdb +77 -0
  23. imdclient/tests/hpc_testing/namd/alanin.psf +206 -0
  24. imdclient/tests/hpc_testing/namd/namd_v3_nst_1.namd +59 -0
  25. imdclient/tests/hpc_testing/namd/validate_namd.sh +71 -0
  26. imdclient/tests/minimalreader.py +86 -0
  27. imdclient/tests/server.py +6 -14
  28. imdclient/tests/test_gromacs.py +15 -3
  29. imdclient/tests/test_imdclient.py +26 -7
  30. imdclient/tests/test_lammps.py +22 -19
  31. imdclient/tests/test_manual.py +224 -66
  32. imdclient/tests/test_namd.py +39 -16
  33. imdclient/tests/test_utils.py +31 -0
  34. imdclient/utils.py +50 -17
  35. {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info}/METADATA +60 -39
  36. imdclient-0.2.0b0.dist-info/RECORD +53 -0
  37. {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info}/WHEEL +1 -1
  38. {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info/licenses}/AUTHORS.md +4 -1
  39. {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info/licenses}/LICENSE +3 -1
  40. imdclient/IMD.py +0 -130
  41. imdclient/backends.py +0 -352
  42. imdclient/results.py +0 -332
  43. imdclient/streamanalysis.py +0 -1056
  44. imdclient/streambase.py +0 -199
  45. imdclient/tests/test_imdreader.py +0 -658
  46. imdclient/tests/test_stream_analysis.py +0 -61
  47. imdclient-0.1.3.dist-info/RECORD +0 -42
  48. {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info}/top_level.txt +0 -0
@@ -1,29 +1,36 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: imdclient
3
- Version: 0.1.3
3
+ Version: 0.2.0b0
4
4
  Summary: Receiver for IMD v2 and v3 data from simulation engines like Gromacs, LAMMPS, and NAMD
5
5
  Author-email: Lawson <ljwoods2@asu.edu>
6
- Maintainer-email: Lawson <ljwoods2@asu.edu>
6
+ Maintainer-email: Lawson <ljwoods2@asu.edu>, Amruthesh Thirumalaiswamy <athiru12@asu.edu>
7
7
  License: Copyright 2024 Lawson Woods
8
8
 
9
9
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10
10
 
11
11
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
14
+
15
+ Project-URL: source, https://github.com/becksteinlab/imdclient
16
+ Project-URL: documentation, https://imdclient.readthedocs.io
12
17
  Keywords: molecular simulations
13
- Requires-Python: >=3.9
18
+ Requires-Python: >=3.10
14
19
  Description-Content-Type: text/markdown
15
20
  License-File: LICENSE
16
21
  License-File: AUTHORS.md
17
- Requires-Dist: MDAnalysis>=2.7.0
22
+ Requires-Dist: numpy
18
23
  Provides-Extra: test
19
24
  Requires-Dist: pytest>=6.0; extra == "test"
20
25
  Requires-Dist: pytest-xdist>=2.5; extra == "test"
21
26
  Requires-Dist: pytest-cov>=3.0; extra == "test"
22
- Requires-Dist: MDAnalysisTests>=2.7.0; extra == "test"
27
+ Requires-Dist: MDAnalysis; extra == "test"
28
+ Requires-Dist: MDAnalysisTests; extra == "test"
23
29
  Requires-Dist: docker-py; extra == "test"
24
30
  Provides-Extra: doc
25
31
  Requires-Dist: sphinx; extra == "doc"
26
- Requires-Dist: sphinx_rtd_theme; extra == "doc"
32
+ Requires-Dist: mdanalysis-sphinx-theme>=1.0.1; extra == "doc"
33
+ Dynamic: license-file
27
34
 
28
35
  IMDClient
29
36
  ==============================
@@ -32,86 +39,99 @@ IMDClient
32
39
  | **Latest release** | [![Last release tag][badge_release]][url_latest_release] ![GitHub commits since latest release (by date) for a branch][badge_commits_since] [![Documentation Status][badge_docs]][url_docs]|
33
40
  | :----------------- | :------- |
34
41
  | **Status** | [![GH Actions Status][badge_actions]][url_actions] [![codecov][badge_codecov]][url_codecov] |
35
- | **Community** | [![License: MIT][badge_license]][url_license] [![Powered by MDAnalysis][badge_mda]][url_mda]|
42
+ | **Community** | [![License: MIT][badge_license]][url_license]
36
43
 
37
44
  [badge_actions]: https://github.com/becksteinlab/imdclient/actions/workflows/gh-ci.yaml/badge.svg
38
45
  [badge_codecov]: https://codecov.io/gh/becksteinlab/imdclient/branch/main/graph/badge.svg
39
46
  [badge_commits_since]: https://img.shields.io/github/commits-since/becksteinlab/imdclient/latest
40
47
  [badge_docs]: https://readthedocs.org/projects/imdclient/badge/?version=latest
41
48
  [badge_license]: https://img.shields.io/badge/License-MIT-blue.svg
42
- [badge_mda]: https://img.shields.io/badge/powered%20by-MDAnalysis-orange.svg?logoWidth=16&logo=data:image/x-icon;base64,AAABAAEAEBAAAAEAIAAoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJD+XwCY/fEAkf3uAJf97wGT/a+HfHaoiIWE7n9/f+6Hh4fvgICAjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACT/yYAlP//AJ///wCg//8JjvOchXly1oaGhv+Ghob/j4+P/39/f3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJH8aQCY/8wAkv2kfY+elJ6al/yVlZX7iIiI8H9/f7h/f38UAAAAAAAAAAAAAAAAAAAAAAAAAAB/f38egYF/noqAebF8gYaagnx3oFpUUtZpaWr/WFhY8zo6OmT///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAn46Ojv+Hh4b/jouJ/4iGhfcAAADnAAAA/wAAAP8AAADIAAAAAwCj/zIAnf2VAJD/PAAAAAAAAAAAAAAAAICAgNGHh4f/gICA/4SEhP+Xl5f/AwMD/wAAAP8AAAD/AAAA/wAAAB8Aov9/ALr//wCS/Z0AAAAAAAAAAAAAAACBgYGOjo6O/4mJif+Pj4//iYmJ/wAAAOAAAAD+AAAA/wAAAP8AAABhAP7+FgCi/38Axf4fAAAAAAAAAAAAAAAAiIiID4GBgYKCgoKogoB+fYSEgZhgYGDZXl5e/m9vb/9ISEjpEBAQxw8AAFQAAAAAAAAANQAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjo6Mb5iYmP+cnJz/jY2N95CQkO4pKSn/AAAA7gAAAP0AAAD7AAAAhgAAAAEAAAAAAAAAAACL/gsAkv2uAJX/QQAAAAB9fX3egoKC/4CAgP+NjY3/c3Nz+wAAAP8AAAD/AAAA/wAAAPUAAAAcAAAAAAAAAAAAnP4NAJL9rgCR/0YAAAAAfX19w4ODg/98fHz/i4uL/4qKivwAAAD/AAAA/wAAAP8AAAD1AAAAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGxsVyqqqr/mpqa/6mpqf9KSUn/AAAA5QAAAPkAAAD5AAAAhQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkUFBSuZ2dn/3V1df8uLi7bAAAATgBGfyQAAAA2AAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0AAADoAAAA/wAAAP8AAAD/AAAAWgC3/2AAnv3eAJ/+dgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9AAAA/wAAAP8AAAD/AAAA/wAKDzEAnP3WAKn//wCS/OgAf/8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAANwAAADtAAAA7QAAAMAAABUMAJn9gwCe/e0Aj/2LAP//AQAAAAAAAAAA
43
49
  [badge_release]: https://img.shields.io/github/release-pre/becksteinlab/imdclient.svg
44
50
  [url_actions]: https://github.com/becksteinlab/imdclient/actions?query=branch%3Amain+workflow%3Agh-ci
45
51
  [url_codecov]: https://codecov.io/gh/becksteinlab/imdclient/branch/main
46
52
  [url_docs]: https://imdclient.readthedocs.io/en/latest/?badge=latest
47
53
  [url_latest_release]: https://github.com/becksteinlab/imdclient/releases
48
54
  [url_license]: https://opensource.org/license/mit
49
- [url_mda]: https://www.mdanalysis.org
50
55
 
51
56
  Receiver for [IMDv3 protocol](https://imdclient.readthedocs.io/en/latest/protocol_v3.html) from simulation engines like Gromacs, LAMMPS, and NAMD.
52
57
 
53
- IMDClient is bound by a [Code of Conduct](https://github.com/becksteinlab/imdreader/blob/main/CODE_OF_CONDUCT.md).
58
+ IMDClient is bound by a [Code of Conduct](https://github.com/becksteinlab/imdclient/blob/main/CODE_OF_CONDUCT.md).
54
59
 
55
60
  ### Installation
56
61
 
57
- IMDClient is available via PyPi and can be installed with pip:
58
- ```bash
62
+ #### Install via mamba (recommended)
63
+ To install the latest release of IMDClient from conda-forge:
64
+
65
+ ```
66
+ mamba install -c conda-forge imdclient
67
+ ```
68
+
69
+ #### Install via pip
70
+ To install the latest release of IMDClient from PyPI:
71
+
72
+ ```
59
73
  pip install imdclient
60
74
  ```
61
75
 
62
- To build IMDClient from source,
63
- we highly recommend using virtual environments.
64
- If possible, we strongly recommend that you use
65
- [Anaconda](https://docs.conda.io/en/latest/) as your package manager.
66
- Below we provide instructions both for `conda` and
67
- for `pip`.
76
+ ---
68
77
 
69
- #### With conda
78
+ ### Building from Source
79
+ To build IMDClient from source, we highly recommend using virtual environments.
80
+ If possible, we recommend that you use [mamba](https://mamba.readthedocs.io/en/latest/) as your package manager through [miniforge](https://github.com/conda-forge/miniforge). (You can substitute `conda` for `mamba` in the commands below if you prefer.)
70
81
 
71
- Ensure that you have [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) installed.
82
+ Below we provide instructions both for `mamba` and for `pip`.
72
83
 
73
- Create a virtual environment and activate it:
84
+ #### Source build with mamba
85
+ 1. Ensure you have [mamba](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html) installed.
86
+
87
+ 2. Create and activate a new environment:
74
88
 
75
89
  ```
76
- conda create --name imdclient
77
- conda activate imdclient
90
+ mamba create --name imdclient
91
+ mamba activate imdclient
78
92
  ```
79
93
 
80
- <!-- Install the development and documentation dependencies:
94
+ 3. (Recommended) Install all dependencies using the provided environment YAML files for a clean and reproducible environment:
81
95
 
82
96
  ```
83
- conda env update --name imdreader --file devtools/conda-envs/test_env.yaml
84
- conda env update --name imdreader --file docs/requirements.yaml
85
- ``` -->
97
+ mamba env update --name imdclient --file devtools/conda-envs/test_env.yaml
98
+ mamba env update --name imdclient --file docs/requirements.yaml
99
+ ```
86
100
 
87
- Build this package from source:
101
+ 4. Build and install IMDClient in editable mode:
88
102
 
89
103
  ```
90
104
  pip install -e .
91
105
  ```
92
106
 
93
- If you want to update your dependencies (which can be risky!), run:
107
+ 5. (Optional) Update dependencies:
94
108
 
95
109
  ```
96
- conda update --all
110
+ mamba update --all
97
111
  ```
98
112
 
99
- And when you are finished, you can exit the virtual environment with:
113
+ 6. Deactivate the environment when finished:
100
114
 
101
115
  ```
102
- conda deactivate
116
+ mamba deactivate
103
117
  ```
104
118
 
105
- #### With pip
119
+ #### Source build with pip
106
120
 
107
- To build the package from source, run:
121
+ 1. (Optional) Create and activate a virtual environment:
122
+
123
+ ```
124
+ python -m venv venv
125
+ source venv/bin/activate
126
+ ```
127
+
128
+ 2. Install IMDClient from source:
108
129
 
109
130
  ```
110
131
  pip install .
111
132
  ```
112
133
 
113
- If you want to create a development environment, install
114
- the dependencies required for tests and docs with:
134
+ 3. (Optional) For development (tests and docs):
115
135
 
116
136
  ```
117
137
  pip install ".[test,doc]"
@@ -122,11 +142,12 @@ pip install ".[test,doc]"
122
142
  The IMDClient source code is hosted at https://github.com/becksteinlab/imdclient
123
143
  and is available under the MIT license (see the file [LICENSE](https://github.com/becksteinlab/imdclient/blob/main/LICENSE)).
124
144
 
125
- Copyright (c) 2024, Lawson
145
+ Copyright (c) 2024-2025, imdclient [AUTHORS](https://github.com/Becksteinlab/imdclient/blob/main/AUTHORS.md)
126
146
 
127
147
 
128
148
  #### Acknowledgements
129
149
 
130
150
  Project based on the
131
151
  [MDAnalysis Cookiecutter](https://github.com/MDAnalysis/cookiecutter-mda) version 0.1.
132
- <!-- Please cite [MDAnalysis](https://github.com/MDAnalysis/mdanalysis#citation) when using IMDReader in published work. -->
152
+
153
+ **If you use IMDClient in your research, please cite [IMDClient](https://github.com/Becksteinlab/imdclient) in your publications.**
@@ -0,0 +1,53 @@
1
+ imdclient/IMDClient.py,sha256=X4bTbEY9CjV7riRyWxZnsXsWvUPItb3ZC0VyoSRG6b0,34402
2
+ imdclient/IMDProtocol.py,sha256=wePIuFlKGIULWXHJPCmzRVWBGlBiyDOJXgjxyQb7ssY,4063
3
+ imdclient/__init__.py,sha256=lSbwmZHgCd74dGAEKVb3RaBr4oTTuRLil8sbtKuOwE4,207
4
+ imdclient/utils.py,sha256=itf_Z24KnJxe-db6dHi7A2umCp_ZjjlpAMpETYYMxUs,4224
5
+ imdclient/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ imdclient/data/gromacs/md/gromacs_struct.gro,sha256=kt4vE10iF_1RbeyTogmYmIY9yKJacofrzNT-hPHGyL8,1459301
7
+ imdclient/data/gromacs/md/gromacs_v3.top,sha256=AXFEDjvz5Qqq-VECffimdeEvhD6L-H0SFPILW-6Sums,348329
8
+ imdclient/data/gromacs/md/gromacs_v3_nst1.mdp,sha256=VFAS3uM0oifxuX5WLz85vvRlwmzR-BhQbMCzjweaJcU,3040
9
+ imdclient/data/gromacs/md/gromacs_v3_nst8.mdp,sha256=CYz5gKFApeJMrJyCmd3kgPFzRjahgaLRNyIomuVyY0w,3053
10
+ imdclient/data/lammps/md/lammps_topol.data,sha256=u4osSkn7yG9p2Egz9ovLW4eVmdaThPxeZ0L218J3-V0,172948
11
+ imdclient/data/lammps/md/lammps_v3_nst_1.in,sha256=AcvkgNNDtTkB7RlFZwpUEKKp6W_7o_UFgrX_LwC3HXI,2586
12
+ imdclient/data/lammps/md/lammps_v3_nst_8.in,sha256=gpdAp1dDhJbG06wZVDtBGUs6biJNz8EStV341S0uJ2s,2594
13
+ imdclient/data/namd/md/alanin.params,sha256=zWw-UfqYD3-xpdA_8R8T-0OYBbUM6py7jKAq_uyu8HE,17389
14
+ imdclient/data/namd/md/alanin.pdb,sha256=eccDD-ledUXjbB2s1fxY40lmAKWWDpxkxANbsOkqjHc,5615
15
+ imdclient/data/namd/md/alanin.psf,sha256=VhCZeGFhpUa8yN5iEL19zlVjqIJg2JIdPzhazpRForY,12953
16
+ imdclient/data/namd/md/namd3,sha256=NuLCXQFTWUFo6lQgTs5QQqsuX2HG0eHeLRmjAJnr8Bs,18234624
17
+ imdclient/data/namd/md/namd_v3_nst_1.namd,sha256=lx-cRWISTiqdKo9TMjifOGS7gQm6Mif3ykKm0T82jos,984
18
+ imdclient/data/namd/md/namd_v3_nst_8.namd,sha256=WJmwj0E4nJVhYRr_ALBlTax6kyNkdRE1krPsmY-QFLM,984
19
+ imdclient/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ imdclient/tests/base.py,sha256=AjxIls31BYf9E8bkSiyKBz9dDbTA06UHuD4hsb7M6yc,7009
21
+ imdclient/tests/conftest.py,sha256=Xqz9ZjBXpnViSryR4CXjJdOyqZ1MOCAjuA0sRVwAVfk,31
22
+ imdclient/tests/datafiles.py,sha256=G3Zsyuv3R6H0cpBoOuJQl0G_EAuuOLXzt9WvohHm33I,1497
23
+ imdclient/tests/minimalreader.py,sha256=84gvbule_6oRALO1bQAnrfECWcEkOz5NHHI0g18IXKk,2589
24
+ imdclient/tests/server.py,sha256=qmEJS53QNuz0SJAtKwPqTo7A59FZGt1IFHPBd4O_uC8,6619
25
+ imdclient/tests/test_gromacs.py,sha256=SMs3HkU2dScRsMae770TVbFJQzO_m6eoe6cvXxG5Rj0,1775
26
+ imdclient/tests/test_imdclient.py,sha256=JdEEG7qB-e1ro1BshPT6HJiW_aqyzCWRAF23N3lc1fs,7637
27
+ imdclient/tests/test_lammps.py,sha256=de5G8EHSh8AmTeEniPVnETYbBd1229K7UMtZ4oSp8wU,2341
28
+ imdclient/tests/test_manual.py,sha256=is4pnIUV_VuoywbQKjm8PICvEBGfMYcp8GqlsKX8JsU,8088
29
+ imdclient/tests/test_namd.py,sha256=GsViDL6xcNF4xruWbjNW-dU5F_ANIEZwGeMkiU88rcc,4417
30
+ imdclient/tests/test_utils.py,sha256=4T6pnOQshl8hkMkS_oT-o9v66Sx5ZiQi6OqWSGNQ7YY,880
31
+ imdclient/tests/utils.py,sha256=_x1gVQ3AmhaMurpcEPLKBG5BTGu4ZMy5EGUpr0P6D6g,854
32
+ imdclient/tests/docker_testing/docker.md,sha256=wW42KFaGiO82RngNJg0yWPDwIQmgNcmhaUOdstvDgxE,840
33
+ imdclient/tests/hpc_testing/gromacs/README.md,sha256=2SHVtIu5EyS8bwCMeWTZFgQoh1mmOwcBFjijzYDkj6k,2847
34
+ imdclient/tests/hpc_testing/gromacs/gmx_gpu_test.mdp,sha256=BZl554WoHVi0bQq-Eb8UeYrdfum2TBHhtWFj4DxReCY,3050
35
+ imdclient/tests/hpc_testing/gromacs/gmx_gpu_test.top,sha256=AXFEDjvz5Qqq-VECffimdeEvhD6L-H0SFPILW-6Sums,348329
36
+ imdclient/tests/hpc_testing/gromacs/struct.gro,sha256=uT_Je8Jc37-o8gfkhFRH0PWcg3LOGkQj4ErSCkLMk00,1459301
37
+ imdclient/tests/hpc_testing/gromacs/validate_gmx.sh,sha256=dszRgiWu-_9b4DxQP4u5x4Hi1liedjMG2YXQNURZQsQ,1938
38
+ imdclient/tests/hpc_testing/lammps/README.md,sha256=Zatm6Wby2_tysDMrGPSLsfI7d79y1RfNDEBpk5mUXRo,1634
39
+ imdclient/tests/hpc_testing/lammps/lammps_v3_nst_1.in,sha256=AcvkgNNDtTkB7RlFZwpUEKKp6W_7o_UFgrX_LwC3HXI,2586
40
+ imdclient/tests/hpc_testing/lammps/topology_after_min.data,sha256=6CXJTFiVnnK6rKGK541sFYZ_6xjlkjebeWu0KPQl8Gc,172948
41
+ imdclient/tests/hpc_testing/lammps/validate_lmp.sh,sha256=gqNFUvxLojBM1yrUHloL4FJm8pl4CNjTvgSYwh11pTc,1402
42
+ imdclient/tests/hpc_testing/namd/README.md,sha256=9bL5jtgWifbhxqze3Y59aA6BJEdD7TkbacWm-Kh-6-I,3633
43
+ imdclient/tests/hpc_testing/namd/alanin.params,sha256=zWw-UfqYD3-xpdA_8R8T-0OYBbUM6py7jKAq_uyu8HE,17389
44
+ imdclient/tests/hpc_testing/namd/alanin.pdb,sha256=eccDD-ledUXjbB2s1fxY40lmAKWWDpxkxANbsOkqjHc,5615
45
+ imdclient/tests/hpc_testing/namd/alanin.psf,sha256=VhCZeGFhpUa8yN5iEL19zlVjqIJg2JIdPzhazpRForY,12953
46
+ imdclient/tests/hpc_testing/namd/namd_v3_nst_1.namd,sha256=EZU7PGyytZdGixrBnmpAcwonN0n_JTk9U-Q82FoqO7k,983
47
+ imdclient/tests/hpc_testing/namd/validate_namd.sh,sha256=oMZNkY2p13q_4TJwepS5WjlT4xwxCoaZbDiWfLIWIvs,1543
48
+ imdclient-0.2.0b0.dist-info/licenses/AUTHORS.md,sha256=7GNvwDxWmGCYAB2BtazCCsBlHYWXMnpnWEiRL-XU53g,704
49
+ imdclient-0.2.0b0.dist-info/licenses/LICENSE,sha256=cTaJq_fhRiCQLCob0QRha2-437_8352CM36u14GQbZE,1060
50
+ imdclient-0.2.0b0.dist-info/METADATA,sha256=xEXouQ_n3pJ51CZUObT_n77nH6h3WzPeHfCNuL_Oeic,6095
51
+ imdclient-0.2.0b0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
52
+ imdclient-0.2.0b0.dist-info/top_level.txt,sha256=40W62GWiXUT2CbDm-No7GTeJG160wyIMpk1hBNrdkkE,10
53
+ imdclient-0.2.0b0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -4,7 +4,7 @@ IMDClient was created by Lawson in 2024.
4
4
 
5
5
 
6
6
  <!-- All contributing authors are listed in this file below.
7
- The repository history at https://github.com/becksteinlab/imdreader
7
+ The repository history at https://github.com/becksteinlab/imdclient
8
8
  and the CHANGELOG show individual code contributions. -->
9
9
 
10
10
  ## Chronological list of authors
@@ -19,5 +19,8 @@ The rules for this file:
19
19
  * Don't ever delete anything
20
20
  -->
21
21
 
22
+ **2025**
23
+ - Amruthesh Thirumalaiswamy <@amruthesht>
24
+
22
25
  **2024**
23
26
  - Lawson <@ljwoods2>
@@ -2,4 +2,6 @@ Copyright 2024 Lawson Woods
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
4
 
5
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
imdclient/IMD.py DELETED
@@ -1,130 +0,0 @@
1
- """
2
- MDAnalysis IMDReader
3
- ^^^^^^^^^^^^^^^^^^^^
4
-
5
- .. autoclass:: IMDReader
6
- :members:
7
- :inherited-members:
8
-
9
- """
10
-
11
- from MDAnalysis.coordinates import core
12
- from MDAnalysis.lib.util import store_init_arguments
13
-
14
- # NOTE: changeme
15
- from .IMDClient import IMDClient
16
- from .utils import *
17
- import logging
18
-
19
- from .streambase import StreamReaderBase
20
-
21
- logger = logging.getLogger("imdclient.IMDClient")
22
-
23
-
24
- class IMDReader(StreamReaderBase):
25
- """
26
- Reader for IMD protocol packets.
27
-
28
- Parameters
29
- ----------
30
- filename : a string of the form "host:port" where host is the hostname
31
- or IP address of the listening GROMACS server and port
32
- is the port number.
33
- n_atoms : int (optional)
34
- number of atoms in the system. defaults to number of atoms
35
- in the topology. don't set this unless you know what you're doing.
36
- kwargs : dict (optional)
37
- keyword arguments passed to the constructed :class:`IMDClient`
38
- """
39
-
40
- format = "IMD"
41
- one_pass = True
42
-
43
- @store_init_arguments
44
- def __init__(
45
- self,
46
- filename,
47
- convert_units=True,
48
- n_atoms=None,
49
- **kwargs,
50
- ):
51
- super(IMDReader, self).__init__(filename, **kwargs)
52
-
53
- logger.debug("IMDReader initializing")
54
-
55
- if n_atoms is None:
56
- raise ValueError("IMDReader: n_atoms must be specified")
57
- self.n_atoms = n_atoms
58
-
59
- host, port = parse_host_port(filename)
60
-
61
- # This starts the simulation
62
- self._imdclient = IMDClient(host, port, n_atoms, **kwargs)
63
-
64
- imdsinfo = self._imdclient.get_imdsessioninfo()
65
- # NOTE: after testing phase, fail out on IMDv2
66
-
67
- self.ts = self._Timestep(
68
- self.n_atoms,
69
- positions=imdsinfo.positions,
70
- velocities=imdsinfo.velocities,
71
- forces=imdsinfo.forces,
72
- **self._ts_kwargs,
73
- )
74
-
75
- self._frame = -1
76
-
77
- try:
78
- self._read_next_timestep()
79
- except StopIteration:
80
- raise RuntimeError("IMDReader: No data found in stream")
81
-
82
- def _read_frame(self, frame):
83
-
84
- try:
85
- imdf = self._imdclient.get_imdframe()
86
- except EOFError as e:
87
- raise e
88
-
89
- self._frame = frame
90
- self._load_imdframe_into_ts(imdf)
91
-
92
- logger.debug(f"IMDReader: Loaded frame {self._frame}")
93
- return self.ts
94
-
95
- def _load_imdframe_into_ts(self, imdf):
96
- self.ts.frame = self._frame
97
- if imdf.time is not None:
98
- self.ts.time = imdf.time
99
- # NOTE: timestep.pyx "dt" method is suspicious bc it uses "new" keyword for a float
100
- self.ts.data["dt"] = imdf.dt
101
- self.ts.data["step"] = imdf.step
102
- if imdf.energies is not None:
103
- self.ts.data.update(
104
- {k: v for k, v in imdf.energies.items() if k != "step"}
105
- )
106
- if imdf.box is not None:
107
- self.ts.dimensions = core.triclinic_box(*imdf.box)
108
- if imdf.positions is not None:
109
- # must call copy because reference is expected to reset
110
- # see 'test_frame_collect_all_same' in MDAnalysisTests.coordinates.base
111
- self.ts.positions = imdf.positions
112
- if imdf.velocities is not None:
113
- self.ts.velocities = imdf.velocities
114
- if imdf.forces is not None:
115
- self.ts.forces = imdf.forces
116
-
117
- @staticmethod
118
- def _format_hint(thing):
119
- try:
120
- parse_host_port(thing)
121
- except:
122
- return False
123
- return True
124
-
125
- def close(self):
126
- """Gracefully shut down the reader. Stops the producer thread."""
127
- logger.debug("IMDReader close() called")
128
- self._imdclient.stop()
129
- # NOTE: removeme after testing
130
- logger.debug("IMDReader shut down gracefully.")