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.
- imdclient/IMDClient.py +43 -12
- imdclient/IMDProtocol.py +1 -0
- imdclient/__init__.py +0 -5
- imdclient/data/gromacs/md/gromacs_v3_nst1.mdp +3 -3
- imdclient/data/namd/md/namd3 +0 -0
- imdclient/data/namd/md/namd_v3_nst_1.namd +1 -1
- imdclient/tests/base.py +108 -83
- imdclient/tests/conftest.py +0 -39
- imdclient/tests/datafiles.py +16 -1
- imdclient/tests/docker_testing/docker.md +1 -1
- imdclient/tests/hpc_testing/gromacs/README.md +112 -0
- imdclient/tests/hpc_testing/gromacs/gmx_gpu_test.mdp +58 -0
- imdclient/tests/hpc_testing/gromacs/gmx_gpu_test.top +11764 -0
- imdclient/tests/hpc_testing/gromacs/struct.gro +21151 -0
- imdclient/tests/hpc_testing/gromacs/validate_gmx.sh +90 -0
- imdclient/tests/hpc_testing/lammps/README.md +62 -0
- imdclient/tests/hpc_testing/lammps/lammps_v3_nst_1.in +71 -0
- imdclient/tests/hpc_testing/lammps/topology_after_min.data +8022 -0
- imdclient/tests/hpc_testing/lammps/validate_lmp.sh +66 -0
- imdclient/tests/hpc_testing/namd/README.md +147 -0
- imdclient/tests/hpc_testing/namd/alanin.params +402 -0
- imdclient/tests/hpc_testing/namd/alanin.pdb +77 -0
- imdclient/tests/hpc_testing/namd/alanin.psf +206 -0
- imdclient/tests/hpc_testing/namd/namd_v3_nst_1.namd +59 -0
- imdclient/tests/hpc_testing/namd/validate_namd.sh +71 -0
- imdclient/tests/minimalreader.py +86 -0
- imdclient/tests/server.py +6 -14
- imdclient/tests/test_gromacs.py +15 -3
- imdclient/tests/test_imdclient.py +26 -7
- imdclient/tests/test_lammps.py +22 -19
- imdclient/tests/test_manual.py +224 -66
- imdclient/tests/test_namd.py +39 -16
- imdclient/tests/test_utils.py +31 -0
- imdclient/utils.py +50 -17
- {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info}/METADATA +60 -39
- imdclient-0.2.0b0.dist-info/RECORD +53 -0
- {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info}/WHEEL +1 -1
- {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info/licenses}/AUTHORS.md +4 -1
- {imdclient-0.1.3.dist-info → imdclient-0.2.0b0.dist-info/licenses}/LICENSE +3 -1
- imdclient/IMD.py +0 -130
- imdclient/backends.py +0 -352
- imdclient/results.py +0 -332
- imdclient/streamanalysis.py +0 -1056
- imdclient/streambase.py +0 -199
- imdclient/tests/test_imdreader.py +0 -658
- imdclient/tests/test_stream_analysis.py +0 -61
- imdclient-0.1.3.dist-info/RECORD +0 -42
- {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
|
+
Metadata-Version: 2.4
|
2
2
|
Name: imdclient
|
3
|
-
Version: 0.
|
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.
|
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:
|
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:
|
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:
|
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]
|
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/
|
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
|
-
|
58
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
82
|
+
Below we provide instructions both for `mamba` and for `pip`.
|
72
83
|
|
73
|
-
|
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
|
-
|
77
|
-
|
90
|
+
mamba create --name imdclient
|
91
|
+
mamba activate imdclient
|
78
92
|
```
|
79
93
|
|
80
|
-
|
94
|
+
3. (Recommended) Install all dependencies using the provided environment YAML files for a clean and reproducible environment:
|
81
95
|
|
82
96
|
```
|
83
|
-
|
84
|
-
|
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
|
101
|
+
4. Build and install IMDClient in editable mode:
|
88
102
|
|
89
103
|
```
|
90
104
|
pip install -e .
|
91
105
|
```
|
92
106
|
|
93
|
-
|
107
|
+
5. (Optional) Update dependencies:
|
94
108
|
|
95
109
|
```
|
96
|
-
|
110
|
+
mamba update --all
|
97
111
|
```
|
98
112
|
|
99
|
-
|
113
|
+
6. Deactivate the environment when finished:
|
100
114
|
|
101
115
|
```
|
102
|
-
|
116
|
+
mamba deactivate
|
103
117
|
```
|
104
118
|
|
105
|
-
####
|
119
|
+
#### Source build with pip
|
106
120
|
|
107
|
-
|
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
|
-
|
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,
|
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
|
-
|
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,,
|
@@ -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/
|
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.")
|