From c79b7f02dedec61410d4fcfabe5531d49b5e1581 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 01:36:51 +0100 Subject: [PATCH 01/13] Update atomicdistances.py changed to be applicable with Results --- package/MDAnalysis/analysis/atomicdistances.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/package/MDAnalysis/analysis/atomicdistances.py b/package/MDAnalysis/analysis/atomicdistances.py index 1860d3285b1..95a617e03ee 100644 --- a/package/MDAnalysis/analysis/atomicdistances.py +++ b/package/MDAnalysis/analysis/atomicdistances.py @@ -114,6 +114,7 @@ import logging from .base import AnalysisBase +from .results import Results logger = logging.getLogger("MDAnalysis.analysis.atomicdistances") @@ -163,14 +164,19 @@ def __init__(self, ag1, ag2, pbc=True, **kwargs): self._ag1 = ag1 self._ag2 = ag2 self._pbc = pbc + self.results = Results() def _prepare(self): # initialize NumPy array of frames x distances for results - self.results = np.zeros((self.n_frames, self._ag1.atoms.n_atoms)) + self.results.distances = np.zeros((self.n_frames, self._ag1.atoms.n_atoms)) def _single_frame(self): # if PBCs considered, get box size box = self._ag1.dimensions if self._pbc else None - self.results[self._frame_index] = calc_bonds(self._ag1.positions, + self.results.distances[self._frame_index] = calc_bonds(self._ag1.positions, self._ag2.positions, box) + + def _conclude(self): + self.results.n_frames = self.n_frames + self.results.n_atoms = self._ag1.atoms.n_atoms From 1bd64bc7f562540cc4a8b2d3b578be15c0395b1d Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 01:53:47 +0100 Subject: [PATCH 02/13] Update test_atomicdistances.py adjusted pytestst --- .../MDAnalysisTests/analysis/test_atomicdistances.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py index 443173cff70..efd9374a677 100644 --- a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py +++ b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py @@ -118,9 +118,9 @@ def test_ad_pairwise_dist(self, ad_ag1, ad_ag2, expected_dist): '''Ensure that pairwise distances between atoms are correctly calculated without PBCs.''' - pairwise_no_pbc = (ad.AtomicDistances(ad_ag1, ad_ag2, - pbc=False).run()) - actual = pairwise_no_pbc.results + pairwise_no_pbc = ad.AtomicDistances(ad_ag1, ad_ag2, + pbc=False).run() + actual = pairwise_no_pbc.results.distances # compare with expected values from dist() assert_allclose(actual, expected_dist) @@ -129,8 +129,8 @@ def test_ad_pairwise_dist_pbc(self, ad_ag1, ad_ag2, expected_pbc_dist): '''Ensure that pairwise distances between atoms are correctly calculated with PBCs.''' - pairwise_pbc = (ad.AtomicDistances(ad_ag1, ad_ag2).run()) - actual = pairwise_pbc.results + pairwise_pbc = ad.AtomicDistances(ad_ag1, ad_ag2).run() + actual = pairwise_pbc.results.distances # compare with expected values from dist() assert_allclose(actual, expected_pbc_dist) From 916a973b3a05e01fb7e790fc4e0014d5289a609c Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 01:55:35 +0100 Subject: [PATCH 03/13] Update atomicdistances.py removed unnecessary results --- package/MDAnalysis/analysis/atomicdistances.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/package/MDAnalysis/analysis/atomicdistances.py b/package/MDAnalysis/analysis/atomicdistances.py index 95a617e03ee..bb6aef64fb4 100644 --- a/package/MDAnalysis/analysis/atomicdistances.py +++ b/package/MDAnalysis/analysis/atomicdistances.py @@ -176,7 +176,3 @@ def _single_frame(self): self.results.distances[self._frame_index] = calc_bonds(self._ag1.positions, self._ag2.positions, box) - - def _conclude(self): - self.results.n_frames = self.n_frames - self.results.n_atoms = self._ag1.atoms.n_atoms From cbb3e66411605d72d4c1e10bf4410045b0e64ef9 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 02:08:54 +0100 Subject: [PATCH 04/13] Update atomicdistances.py added documentation and adjusted output --- package/MDAnalysis/analysis/atomicdistances.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/package/MDAnalysis/analysis/atomicdistances.py b/package/MDAnalysis/analysis/atomicdistances.py index bb6aef64fb4..94b3fdeda8e 100644 --- a/package/MDAnalysis/analysis/atomicdistances.py +++ b/package/MDAnalysis/analysis/atomicdistances.py @@ -146,6 +146,10 @@ class AtomicDistances(AnalysisBase): .. versionadded:: 2.5.0 + + .. versionchanged:: 2.9.0 + Implementation of `Results` into the class + for application in parallelization. """ def __init__(self, ag1, ag2, pbc=True, **kwargs): @@ -176,3 +180,7 @@ def _single_frame(self): self.results.distances[self._frame_index] = calc_bonds(self._ag1.positions, self._ag2.positions, box) + + def _conclude(self): + # adjust self.results to self.results.distances + self.results = self.results.distances From 16a06053432df19859cfea7311aa0b4a3baeb4b0 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 02:09:37 +0100 Subject: [PATCH 05/13] Update test_atomicdistances.py removed the .distances --- testsuite/MDAnalysisTests/analysis/test_atomicdistances.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py index efd9374a677..95dd0279bb6 100644 --- a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py +++ b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py @@ -120,7 +120,7 @@ def test_ad_pairwise_dist(self, ad_ag1, ad_ag2, correctly calculated without PBCs.''' pairwise_no_pbc = ad.AtomicDistances(ad_ag1, ad_ag2, pbc=False).run() - actual = pairwise_no_pbc.results.distances + actual = pairwise_no_pbc.results # compare with expected values from dist() assert_allclose(actual, expected_dist) @@ -130,7 +130,7 @@ def test_ad_pairwise_dist_pbc(self, ad_ag1, ad_ag2, '''Ensure that pairwise distances between atoms are correctly calculated with PBCs.''' pairwise_pbc = ad.AtomicDistances(ad_ag1, ad_ag2).run() - actual = pairwise_pbc.results.distances + actual = pairwise_pbc.results # compare with expected values from dist() assert_allclose(actual, expected_pbc_dist) From 0b58a7351a450a317acf1070e37b264c53f004f9 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 02:15:00 +0100 Subject: [PATCH 06/13] Update CHANGELOG adjusted changelog --- package/CHANGELOG | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/CHANGELOG b/package/CHANGELOG index 5bce69eaec0..2cbe431a24d 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -14,13 +14,15 @@ The rules for this file: ------------------------------------------------------------------------------- -??/??/?? IAlibay +??/??/?? IAlibay, talagayev * 2.9.0 Fixes Enhancements +* Incorporation of`Results` into `analysis.atomicdistances.AtomicDistances` + (Issue #4819) Changes From 9836575a5ec5d7cdb460b67c68346cb351e1cef7 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 02:17:50 +0100 Subject: [PATCH 07/13] Update atomicdistances.py pep fixes --- package/MDAnalysis/analysis/atomicdistances.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/package/MDAnalysis/analysis/atomicdistances.py b/package/MDAnalysis/analysis/atomicdistances.py index 94b3fdeda8e..d02d998b643 100644 --- a/package/MDAnalysis/analysis/atomicdistances.py +++ b/package/MDAnalysis/analysis/atomicdistances.py @@ -172,14 +172,16 @@ def __init__(self, ag1, ag2, pbc=True, **kwargs): def _prepare(self): # initialize NumPy array of frames x distances for results - self.results.distances = np.zeros((self.n_frames, self._ag1.atoms.n_atoms)) + self.results.distances = np.zeros(( + self.n_frames, self._ag1.atoms.n_atoms + )) def _single_frame(self): # if PBCs considered, get box size box = self._ag1.dimensions if self._pbc else None - self.results.distances[self._frame_index] = calc_bonds(self._ag1.positions, - self._ag2.positions, - box) + self.results.distances[self._frame_index] = calc_bonds( + self._ag1.positions, self._ag2.positions, box + ) def _conclude(self): # adjust self.results to self.results.distances From 5d6ed623ade03c9f694ff6019c69018aa750e208 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 02:19:12 +0100 Subject: [PATCH 08/13] Update test_atomicdistances.py pep fixes --- testsuite/MDAnalysisTests/analysis/test_atomicdistances.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py index 95dd0279bb6..895dbad7200 100644 --- a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py +++ b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py @@ -118,8 +118,8 @@ def test_ad_pairwise_dist(self, ad_ag1, ad_ag2, expected_dist): '''Ensure that pairwise distances between atoms are correctly calculated without PBCs.''' - pairwise_no_pbc = ad.AtomicDistances(ad_ag1, ad_ag2, - pbc=False).run() + pairwise_no_pbc = ad.AtomicDistances( + ad_ag1, ad_ag2, pbc=False).run() actual = pairwise_no_pbc.results # compare with expected values from dist() From fd8163a1bde4f76f3a0b308828a8710f2f025d93 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 02:19:55 +0100 Subject: [PATCH 09/13] Update test_atomicdistances.py --- testsuite/MDAnalysisTests/analysis/test_atomicdistances.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py index 895dbad7200..38dead5f241 100644 --- a/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py +++ b/testsuite/MDAnalysisTests/analysis/test_atomicdistances.py @@ -119,7 +119,8 @@ def test_ad_pairwise_dist(self, ad_ag1, ad_ag2, '''Ensure that pairwise distances between atoms are correctly calculated without PBCs.''' pairwise_no_pbc = ad.AtomicDistances( - ad_ag1, ad_ag2, pbc=False).run() + ad_ag1, ad_ag2, pbc=False + ).run() actual = pairwise_no_pbc.results # compare with expected values from dist() From 2aad77d8ee30928dbcafb3e7ea5e2cd32eb65689 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:45:15 +0100 Subject: [PATCH 10/13] Update CHANGELOG --- package/CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/CHANGELOG b/package/CHANGELOG index 2cbe431a24d..4373b4598a9 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -21,7 +21,7 @@ The rules for this file: Fixes Enhancements -* Incorporation of`Results` into `analysis.atomicdistances.AtomicDistances` +* Incorporation of `Results` into `analysis.atomicdistances.AtomicDistances` (Issue #4819) Changes From 7b613703279d1e1a57a23ebda37810b2834bd523 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Tue, 10 Dec 2024 18:05:01 +0100 Subject: [PATCH 11/13] Update CHANGELOG --- package/CHANGELOG | 1 - 1 file changed, 1 deletion(-) diff --git a/package/CHANGELOG b/package/CHANGELOG index 6a8261a4b9b..1502bcdcb00 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -14,7 +14,6 @@ The rules for this file: ------------------------------------------------------------------------------- - ??/??/?? IAlibay, ChiahsinChu, RMeli, talagayev From fa52881f6628395f07616cf53b2a398b2da52c4a Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Fri, 13 Dec 2024 00:10:33 +0100 Subject: [PATCH 12/13] Update CHANGELOG renamed change --- package/CHANGELOG | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/CHANGELOG b/package/CHANGELOG index 1502bcdcb00..cdefee0ac93 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -24,8 +24,8 @@ Fixes Enhancements * Add check and warning for empty (all zero) coordinates in RDKit converter (PR #4824) * Added `precision` for XYZWriter (Issue #4775, PR #4771) - * Incorporation of `Results` into `analysis.atomicdistances.AtomicDistances` - (Issue #4819) + * Enables parallelization of `analysis.atomicdistances.AtomicDistances` + (Issue #4819) Changes From e7da74057c1821cbefecf48961dc7db1d36184f2 Mon Sep 17 00:00:00 2001 From: Valerij Talagayev <82884038+talagayev@users.noreply.github.com> Date: Fri, 13 Dec 2024 00:12:08 +0100 Subject: [PATCH 13/13] Update atomicdistances.py changed docs --- package/MDAnalysis/analysis/atomicdistances.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/MDAnalysis/analysis/atomicdistances.py b/package/MDAnalysis/analysis/atomicdistances.py index d02d998b643..08ab33f71b5 100644 --- a/package/MDAnalysis/analysis/atomicdistances.py +++ b/package/MDAnalysis/analysis/atomicdistances.py @@ -148,8 +148,8 @@ class AtomicDistances(AnalysisBase): .. versionadded:: 2.5.0 .. versionchanged:: 2.9.0 - Implementation of `Results` into the class - for application in parallelization. + Enables parallelization through + the use of `self.results.distances`. """ def __init__(self, ag1, ag2, pbc=True, **kwargs):