From 69bdbb0ea0496fbc8ea9ea83c84c986cbae970e1 Mon Sep 17 00:00:00 2001 From: richardjgowers Date: Tue, 9 Oct 2018 18:53:31 -0500 Subject: [PATCH 01/12] started v0.19 blogpost --- _posts/2018-10-09-release-0.19.0.md | 108 ++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 _posts/2018-10-09-release-0.19.0.md diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-10-09-release-0.19.0.md new file mode 100644 index 00000000..3951965c --- /dev/null +++ b/_posts/2018-10-09-release-0.19.0.md @@ -0,0 +1,108 @@ +--- +layout: post +title: Release 0.19.0 +--- + +A new version of MDAnalysis has been released! +This version brings a multitude of new features +including exciting additions from the two Google Summer of Code students. +Some highlights are given below, whilst +the [release notes][] list all the changes in this version. + +## Capped Distance Searches + +Our first GSoC student, Ayush Suhane, worked on integrating faster distance search algorithms +for limited distance searches. +This resulted in two new functions `MDAnalysis.lib.distances.capped_distance` and +`MDAnalysis.lib.distances.self_capped_distance`, which find all pairwise distances between +particles up to a given maximum distance. +By specifying a maximum distance to the search, it is possible to optimise the search, +leading to greatly improved performance especially in larger systems. + +For example to find all contacts between oxygen and hydrogen up to 5.0 Angstroms: # TODO, get that stupid symbol +```python +from MDAnalysisTests.datafiles import PSF, DCD +import MDAnalysis as mda +from MDAnalysis.lib.distances import capped_distance + +u = mda.Universe(PSF, DCD) + +oxy = u.select_atoms('name O*') +hyd = u.select_atoms('name H*') + +idx, dists = capped_distance(oxy.positions, hyd.positions, box=u.dimensions, max_cutoff=5.0) +``` +Unlike `distance_array` which returns a matrix of every pairwise distance, +here a sparse representation is returned, +where `idx` is a (n, 2) array of the indices of the atoms +and `dists` is the distance between these atoms. + +For full details on the implementation of this and the expected performance improvements +see Ayush's blog here: TODO: link to ayush's blog post on this + +## On the fly trajectory transformations + +Our second GSoC student + +link to davides' blog post on this + +## Analysis improvements + +- nsf dihedral work +- density flexibility +- rdf_s + +## Improvements to file readers + +- lammps dump reader +- chainreader +- traj slice object +- memory reader +- hybrid36 pdb +- settle constraints +- top parser does bonds/angles/dihedrals + + +## Miscellaneous performance improvements + +- guess_bonds (thanks to above methods) +- geometry selections faster (thanks to above) +- make_whole (cpp rewrite) +- fragment finding (cpp rewrite) +- improvements to AtomGroup internals + +## Deprecations + +This release brings a few new deprecations as the package heads towards a final API: + + * start/stop/step are deprecated in the initialization of Analysis classes. + These parameters should instead be given to the run() method of the class. + * Almost all "save()", "save_results()", "save_table()" methods in + analysis classes. + * Deprecated use of core.flags, the deprecation messages for this give advice + on how to replace this functionality. + +## Author statistics + +Altogether this represents the work of 16 contributors from around the world, +and featured the work of 5 new contributors: + - [Irfan Alibay][] + - [Shujie Fan][] + - [Andrew R. McCluskey][] + - [Henry Mull][] + - [Paul Smith][] + + +## Upgrading to MDAnalysis version 0.19 + +To get all these features run either `conda update -c conda-forge mdanalysis` +or `pip install --upgrade MDAnalysis`. + + +[release notes]: {{ site.github.wiki }}/ReleaseNotes0190 +[Irfan Alibar]: https://github.com/IAlibay +[Shujie Fan]: https://github.com/VOD555 +[Andrew R. McCluskey]: https://github.com/arm61 +[Henry Mull]: https://github.com/hfmull +[Paul Smith]: https://github.com/p-j-smith + From a203fe78404c57b8cf303fcec9721acd040dfd62 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Thu, 11 Oct 2018 22:31:58 -0700 Subject: [PATCH 02/12] =?UTF-8?q?added=20links,=20=C3=85=20symbol,=20and?= =?UTF-8?q?=20initial=20text=20for=20GSOC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2018-10-09-release-0.19.0.md | 47 +++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-10-09-release-0.19.0.md index 3951965c..e1b6555b 100644 --- a/_posts/2018-10-09-release-0.19.0.md +++ b/_posts/2018-10-09-release-0.19.0.md @@ -5,21 +5,24 @@ title: Release 0.19.0 A new version of MDAnalysis has been released! This version brings a multitude of new features -including exciting additions from the two Google Summer of Code students. +including exciting additions from our two [2019 Google Summer of Code][] students +and one [NSF REU][] student. Some highlights are given below, whilst the [release notes][] list all the changes in this version. ## Capped Distance Searches -Our first GSoC student, Ayush Suhane, worked on integrating faster distance search algorithms +GSoC student, Ayush Suhane (@ayushsuhane), worked on integrating faster distance search algorithms for limited distance searches. -This resulted in two new functions `MDAnalysis.lib.distances.capped_distance` and -`MDAnalysis.lib.distances.self_capped_distance`, which find all pairwise distances between +This resulted in two new functions +[`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and +[`MDAnalysis.lib.distances.self_capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.self_capped_distance), +which find all pairwise distances between particles up to a given maximum distance. By specifying a maximum distance to the search, it is possible to optimise the search, leading to greatly improved performance especially in larger systems. -For example to find all contacts between oxygen and hydrogen up to 5.0 Angstroms: # TODO, get that stupid symbol +For example to find all contacts between oxygen and hydrogen up to 5.0 Å ```python from MDAnalysisTests.datafiles import PSF, DCD import MDAnalysis as mda @@ -32,19 +35,35 @@ hyd = u.select_atoms('name H*') idx, dists = capped_distance(oxy.positions, hyd.positions, box=u.dimensions, max_cutoff=5.0) ``` -Unlike `distance_array` which returns a matrix of every pairwise distance, +Unlike [`distance_array`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.distance_array), +which returns a matrix of every pairwise distance, here a sparse representation is returned, -where `idx` is a (n, 2) array of the indices of the atoms +where `idx` is a `(n, 2)` array of the indices of the atoms and `dists` is the distance between these atoms. For full details on the implementation of this and the expected performance improvements -see Ayush's blog here: TODO: link to ayush's blog post on this +see Ayush's post on [Improvements in distance search methods][]. -## On the fly trajectory transformations +## On-the-fly trajectory transformations -Our second GSoC student +GSoC student David Cruz (@davidercruz) implemented *on-the-fly trajectory transformations*. +Think of it as specifying additional transformations such as centering, removing periodic-boundary +artifacts, or RMSD-fitting that are applied to a trajectory before the coordinates are passed +to user code. Transformations can be stacked and associated with a trajectory. For example: -link to davides' blog post on this +1. center on protein +2. make all molecules whole that were broken across the periodic boundaries +3. superimpose each frame to a reference structure by minimizing the RMSD ("RMSD fitting") + +No intermediate trajectories have to be written, the transformations are simply applied to the +current in-memory coordinates. Although this approach incurs a computational overhead, it is generally +still much more efficient than writing out intermediate trajectories to disk because the cost +for I/O tends to be much larger than for the computation of the transformation. +This works particularly well for interactive analysis in a Jupyter notebook as well as +[visualization of trajectories with nglview][]. +Furthermore, one can implement custom transformations and stack them arbitrarily. + +Davide wrote an in-depth post about his [On-the-fly transformations] where he shows more examples. ## Analysis improvements @@ -98,8 +117,12 @@ and featured the work of 5 new contributors: To get all these features run either `conda update -c conda-forge mdanalysis` or `pip install --upgrade MDAnalysis`. - +[2019 Google Summer of Code]: {{ site.baseurl }}{% post_url 2018-04-26-gsoc-students %} +[NSF REU]: https://becksteinlab.physics.asu.edu/positions/115/research-experience-for-undergraduates-summer-2018 [release notes]: {{ site.github.wiki }}/ReleaseNotes0190 +[Improvements in distance search methods]: {{ site.baseurl }}{% post_url 2018-08-30-gsoc18-distancesearch %} +[On-the-fly transformations]: {{ site.baseurl }}{% post_url 2018-08-30-on-the-fly-transformations %} +[visualization of trajectories with nglview]: {{ site.baseurl }}{% post_url 2016-03-14-nglview %} [Irfan Alibar]: https://github.com/IAlibay [Shujie Fan]: https://github.com/VOD555 [Andrew R. McCluskey]: https://github.com/arm61 From 84740fab322a566242d5b8f47a74bb7bc0597178 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Thu, 11 Oct 2018 23:07:01 -0700 Subject: [PATCH 03/12] link to nsgrid and pkdtree Note: the pkdtree link requires that https://github.com/MDAnalysis/mdanalysis/issues/2104 be fixed --- _posts/2018-10-09-release-0.19.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-10-09-release-0.19.0.md index e1b6555b..536e2249 100644 --- a/_posts/2018-10-09-release-0.19.0.md +++ b/_posts/2018-10-09-release-0.19.0.md @@ -13,12 +13,11 @@ the [release notes][] list all the changes in this version. ## Capped Distance Searches GSoC student, Ayush Suhane (@ayushsuhane), worked on integrating faster distance search algorithms -for limited distance searches. +(such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. This resulted in two new functions [`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and [`MDAnalysis.lib.distances.self_capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.self_capped_distance), -which find all pairwise distances between -particles up to a given maximum distance. +which find all pairwise distances between particles up to a given maximum distance. By specifying a maximum distance to the search, it is possible to optimise the search, leading to greatly improved performance especially in larger systems. @@ -120,6 +119,7 @@ or `pip install --upgrade MDAnalysis`. [2019 Google Summer of Code]: {{ site.baseurl }}{% post_url 2018-04-26-gsoc-students %} [NSF REU]: https://becksteinlab.physics.asu.edu/positions/115/research-experience-for-undergraduates-summer-2018 [release notes]: {{ site.github.wiki }}/ReleaseNotes0190 +[periodic KDTrees]: https://www.mdanalysis.org/docs/documentation_pages/lib/pkdtree.html [Improvements in distance search methods]: {{ site.baseurl }}{% post_url 2018-08-30-gsoc18-distancesearch %} [On-the-fly transformations]: {{ site.baseurl }}{% post_url 2018-08-30-on-the-fly-transformations %} [visualization of trajectories with nglview]: {{ site.baseurl }}{% post_url 2016-03-14-nglview %} From 59139e6e32329ab3552036bb6a93e31e658ab6f9 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Thu, 11 Oct 2018 23:23:43 -0700 Subject: [PATCH 04/12] link to devdocs for pkdtree When this blog post goes up, the fix for https://github.com/MDAnalysis/mdanalysis/issues/2104 will only be in the devdocs and not in the standard docs. --- _posts/2018-10-09-release-0.19.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-10-09-release-0.19.0.md index 536e2249..f87378df 100644 --- a/_posts/2018-10-09-release-0.19.0.md +++ b/_posts/2018-10-09-release-0.19.0.md @@ -119,7 +119,7 @@ or `pip install --upgrade MDAnalysis`. [2019 Google Summer of Code]: {{ site.baseurl }}{% post_url 2018-04-26-gsoc-students %} [NSF REU]: https://becksteinlab.physics.asu.edu/positions/115/research-experience-for-undergraduates-summer-2018 [release notes]: {{ site.github.wiki }}/ReleaseNotes0190 -[periodic KDTrees]: https://www.mdanalysis.org/docs/documentation_pages/lib/pkdtree.html +[periodic KDTrees]: https://www.mdanalysis.org/mdanalysis/documentation_pages/lib/pkdtree.html [Improvements in distance search methods]: {{ site.baseurl }}{% post_url 2018-08-30-gsoc18-distancesearch %} [On-the-fly transformations]: {{ site.baseurl }}{% post_url 2018-08-30-on-the-fly-transformations %} [visualization of trajectories with nglview]: {{ site.baseurl }}{% post_url 2016-03-14-nglview %} From c9c6ea75c456cfd1a6fa724c72ebcb8648ae77fe Mon Sep 17 00:00:00 2001 From: richardjgowers Date: Sat, 13 Oct 2018 13:40:49 -0500 Subject: [PATCH 05/12] reword gsoc --- _posts/2018-10-09-release-0.19.0.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-10-09-release-0.19.0.md index f87378df..d40528da 100644 --- a/_posts/2018-10-09-release-0.19.0.md +++ b/_posts/2018-10-09-release-0.19.0.md @@ -5,7 +5,7 @@ title: Release 0.19.0 A new version of MDAnalysis has been released! This version brings a multitude of new features -including exciting additions from our two [2019 Google Summer of Code][] students +including exciting additions from one of our two [2019 Google Summer of Code][] students and one [NSF REU][] student. Some highlights are given below, whilst the [release notes][] list all the changes in this version. @@ -43,6 +43,7 @@ and `dists` is the distance between these atoms. For full details on the implementation of this and the expected performance improvements see Ayush's post on [Improvements in distance search methods][]. +<<<<<<< HEAD ## On-the-fly trajectory transformations GSoC student David Cruz (@davidercruz) implemented *on-the-fly trajectory transformations*. @@ -64,6 +65,8 @@ Furthermore, one can implement custom transformations and stack them arbitrarily Davide wrote an in-depth post about his [On-the-fly transformations] where he shows more examples. +======= +>>>>>>> reword gsoc ## Analysis improvements - nsf dihedral work From 009c504b5cc0014bca62df95db522dbf8cf89a38 Mon Sep 17 00:00:00 2001 From: richardjgowers Date: Sat, 13 Oct 2018 13:44:04 -0500 Subject: [PATCH 06/12] more rel19 blogpost work --- _posts/2018-10-09-release-0.19.0.md | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-10-09-release-0.19.0.md index d40528da..ba70bbb5 100644 --- a/_posts/2018-10-09-release-0.19.0.md +++ b/_posts/2018-10-09-release-0.19.0.md @@ -12,7 +12,7 @@ the [release notes][] list all the changes in this version. ## Capped Distance Searches -GSoC student, Ayush Suhane (@ayushsuhane), worked on integrating faster distance search algorithms +Gsoc student, Ayush Suhane (@ayushsuhane), worked on integrating faster distance search algorithms (such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. This resulted in two new functions [`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and @@ -43,30 +43,6 @@ and `dists` is the distance between these atoms. For full details on the implementation of this and the expected performance improvements see Ayush's post on [Improvements in distance search methods][]. -<<<<<<< HEAD -## On-the-fly trajectory transformations - -GSoC student David Cruz (@davidercruz) implemented *on-the-fly trajectory transformations*. -Think of it as specifying additional transformations such as centering, removing periodic-boundary -artifacts, or RMSD-fitting that are applied to a trajectory before the coordinates are passed -to user code. Transformations can be stacked and associated with a trajectory. For example: - -1. center on protein -2. make all molecules whole that were broken across the periodic boundaries -3. superimpose each frame to a reference structure by minimizing the RMSD ("RMSD fitting") - -No intermediate trajectories have to be written, the transformations are simply applied to the -current in-memory coordinates. Although this approach incurs a computational overhead, it is generally -still much more efficient than writing out intermediate trajectories to disk because the cost -for I/O tends to be much larger than for the computation of the transformation. -This works particularly well for interactive analysis in a Jupyter notebook as well as -[visualization of trajectories with nglview][]. -Furthermore, one can implement custom transformations and stack them arbitrarily. - -Davide wrote an in-depth post about his [On-the-fly transformations] where he shows more examples. - -======= ->>>>>>> reword gsoc ## Analysis improvements - nsf dihedral work From f51876d190808dd3f6e55f31b239122acc93777a Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Wed, 21 Nov 2018 00:53:03 -0700 Subject: [PATCH 07/12] release post update - added 0.19.0, 0.19.1, 0.19.2 - added analysis achievements - added Windows --- _posts/2018-10-09-release-0.19.0.md | 50 ++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-10-09-release-0.19.0.md index ba70bbb5..1824952d 100644 --- a/_posts/2018-10-09-release-0.19.0.md +++ b/_posts/2018-10-09-release-0.19.0.md @@ -1,18 +1,18 @@ --- layout: post -title: Release 0.19.0 +title: Release 0.19.0, 0.19.1, 0.19.2 --- -A new version of MDAnalysis has been released! +A new version of MDAnalysis has been released! +Or rather, three new releases in quick succession, so we just talk about all of them in a single post. This version brings a multitude of new features including exciting additions from one of our two [2019 Google Summer of Code][] students -and one [NSF REU][] student. -Some highlights are given below, whilst -the [release notes][] list all the changes in this version. +and one [NSF REU][] student as well as **full Windows support**. +Some highlights are given below, whilst the [release notes][] list all the changes in this version. ## Capped Distance Searches -Gsoc student, Ayush Suhane (@ayushsuhane), worked on integrating faster distance search algorithms +GSoC student, Ayush Suhane (@ayushsuhane), worked on integrating [faster distance search algorithms][] (such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. This resulted in two new functions [`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and @@ -41,13 +41,29 @@ where `idx` is a `(n, 2)` array of the indices of the atoms and `dists` is the distance between these atoms. For full details on the implementation of this and the expected performance improvements -see Ayush's post on [Improvements in distance search methods][]. +see Ayush's post on [faster distance search algorithms][]. ## Analysis improvements +NSF REU student [Henry Mull][] implemented a new analysis module [`MDAnalysis.analysis.dihedrals`][] which includes analysis classes for +- **fast dihedral angle calculation** (useful for featurization and dimensionality reduction in dihedral space as well as conformational analysis), +- **Ramachandran** analysis (protein backbone dihedrals) including functions and data to plot allowed and generously allowed regions, +- **Janin** analysis (protein sidechain dihedrals) -- nsf dihedral work -- density flexibility -- rdf_s +![Ramachandran plot](https://www.mdanalysis.org/docs/_images/rama_demo_plot.png) + + +[Irfan Alibar][] improved the [`density_from_Universe()`](https://www.mdanalysis.org/docs/documentation_pages/analysis/density.html#MDAnalysis.analysis.density.density_from_Universe) function, which now allows the user to exactly specify the region in which a density should be calculated. +In this way, it becomes easier to calculate densities on identical grids for different simulations so that these densities can be compared more easily. + +[Shujie Fan][] added [site specific radial distribution function][] analysis. The [`InterRDF_s()`][] function calculates the radial distribution function relative to a single or a few particles (a "site"). +The function helps with the analysis of the coordination of ions and ligands in binding sites of proteins or other biomolecules, for instance, the distribution of oxygen ligand atoms around sodium ions. +Importantly, many of these sites can be computed at the same time, which improves performance because the most time consuming part of almost all analysis tasks, the loading of the trajectory data from disk into memory, only has to be done once, and then multiple computations can be performed with the data in memory. + +## Windows support +Since 0.19.2, Windows is fully supported *under Python 3.4+* (Python 2.7 is not officially supported because of technical difficulties, which we decided not to address because of limited developer time and the fact that Python 3 is now the recommended version of Python). + +For Windows we recommend the [conda installation][]. +If you want to install with `pip` or from source then you will need the full Microsoft developer environment with Microsoft Visual C++ 14.0. ## Improvements to file readers @@ -64,7 +80,7 @@ see Ayush's post on [Improvements in distance search methods][]. - guess_bonds (thanks to above methods) - geometry selections faster (thanks to above) -- make_whole (cpp rewrite) +- make_whole (C++ rewrite) - fragment finding (cpp rewrite) - improvements to AtomGroup internals @@ -76,13 +92,13 @@ This release brings a few new deprecations as the package heads towards a final These parameters should instead be given to the run() method of the class. * Almost all "save()", "save_results()", "save_table()" methods in analysis classes. - * Deprecated use of core.flags, the deprecation messages for this give advice + * Deprecated use of `core.flags`, the deprecation messages for this give advice on how to replace this functionality. ## Author statistics Altogether this represents the work of 16 contributors from around the world, -and featured the work of 5 new contributors: +and featured the work of five new contributors: - [Irfan Alibay][] - [Shujie Fan][] - [Andrew R. McCluskey][] @@ -90,7 +106,7 @@ and featured the work of 5 new contributors: - [Paul Smith][] -## Upgrading to MDAnalysis version 0.19 +## Upgrading to MDAnalysis version 0.19.x To get all these features run either `conda update -c conda-forge mdanalysis` or `pip install --upgrade MDAnalysis`. @@ -99,9 +115,13 @@ or `pip install --upgrade MDAnalysis`. [NSF REU]: https://becksteinlab.physics.asu.edu/positions/115/research-experience-for-undergraduates-summer-2018 [release notes]: {{ site.github.wiki }}/ReleaseNotes0190 [periodic KDTrees]: https://www.mdanalysis.org/mdanalysis/documentation_pages/lib/pkdtree.html -[Improvements in distance search methods]: {{ site.baseurl }}{% post_url 2018-08-30-gsoc18-distancesearch %} +[faster distance search algorithms]: {{ site.baseurl }}{% post_url 2018-11-16-gsoc18-distancesearch %} [On-the-fly transformations]: {{ site.baseurl }}{% post_url 2018-08-30-on-the-fly-transformations %} [visualization of trajectories with nglview]: {{ site.baseurl }}{% post_url 2016-03-14-nglview %} +[`MDAnalysis.analysis.dihedrals`]: https://www.mdanalysis.org/docs/documentation_pages/analysis/dihedrals.html +[site specific radial distribution function]: https://www.mdanalysis.org/docs/documentation_pages/analysis/rdf.html#site-specific-radial-distribution-function +[`InterRDF_s()`]: https://www.mdanalysis.org/docs/documentation_pages/analysis/rdf.html#MDAnalysis.analysis.rdf.InterRDF_s +[conda installation]: https://www.mdanalysis.org/pages/installation_quick_start/#conda [Irfan Alibar]: https://github.com/IAlibay [Shujie Fan]: https://github.com/VOD555 [Andrew R. McCluskey]: https://github.com/arm61 From ab90ce16c4b50403840ef07153d8dde0268814cd Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Wed, 28 Nov 2018 17:11:46 -0700 Subject: [PATCH 08/12] dated 0.19.x release post to Dec 1 --- ...{2018-10-09-release-0.19.0.md => 2018-12-01-release-0.19.x.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2018-10-09-release-0.19.0.md => 2018-12-01-release-0.19.x.md} (100%) diff --git a/_posts/2018-10-09-release-0.19.0.md b/_posts/2018-12-01-release-0.19.x.md similarity index 100% rename from _posts/2018-10-09-release-0.19.0.md rename to _posts/2018-12-01-release-0.19.x.md From 7940196138e88c5f9837ba13e85b746d67809132 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Wed, 28 Nov 2018 17:12:02 -0700 Subject: [PATCH 09/12] fixed internal link in 2018-11-28-gsoc18-distancesearch.md --- _posts/2018-11-28-gsoc18-distancesearch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2018-11-28-gsoc18-distancesearch.md b/_posts/2018-11-28-gsoc18-distancesearch.md index 55639bcb..bf3f5921 100644 --- a/_posts/2018-11-28-gsoc18-distancesearch.md +++ b/_posts/2018-11-28-gsoc18-distancesearch.md @@ -97,7 +97,7 @@ This was a flavor of what work was done during GSoC'18. Apart from performance i [Google Summer of Code]: https://summerofcode.withgoogle.com/projects/#5050592943144960 [NumFOCUS]: https://numfocus.org/ [Ayush Suhane]: https://github.com/ayushsuhane -[to improve the performance of pairwise distance computations]: {% post_url 2018-04-26-gsoc-students %}#ayush-suhane-improve-distance-search-methods-in-mdanalysis +[to improve the performance of pairwise distance computations]: {{ site.baseurl }}{% post_url 2018-04-26-gsoc-students %}#ayush-suhane-improve-distance-search-methods-in-mdanalysis [`MDAnalysis.lib.distances.capped_distance`]: https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance [`MDAnalysis.lib.distances.self_capped_distance`]: https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.self_capped_distance [report]: https://gist.github.com/ayushsuhane/fd114cda20e93b0f61a8acb6d25d3276 From 2b24c4d7c9737287c7ddf28e14502c9b74ec741e Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Wed, 28 Nov 2018 17:20:05 -0700 Subject: [PATCH 10/12] fixes in 0.19.x post --- _posts/2018-12-01-release-0.19.x.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/_posts/2018-12-01-release-0.19.x.md b/_posts/2018-12-01-release-0.19.x.md index 1824952d..ae9efbcc 100644 --- a/_posts/2018-12-01-release-0.19.x.md +++ b/_posts/2018-12-01-release-0.19.x.md @@ -5,14 +5,14 @@ title: Release 0.19.0, 0.19.1, 0.19.2 A new version of MDAnalysis has been released! Or rather, three new releases in quick succession, so we just talk about all of them in a single post. -This version brings a multitude of new features -including exciting additions from one of our two [2019 Google Summer of Code][] students -and one [NSF REU][] student as well as **full Windows support**. + + +This version brings a multitude of new features including exciting additions from one of our two [2019 Google Summer of Code][] students (other cool new features from GSOC2018 will be unveiled in the next release...) and one [NSF REU][] student as well as **full Windows support**. Some highlights are given below, whilst the [release notes][] list all the changes in this version. ## Capped Distance Searches -GSoC student, Ayush Suhane (@ayushsuhane), worked on integrating [faster distance search algorithms][] +GSoC student Ayush Suhane (@ayushsuhane), worked on integrating [faster distance search algorithms][] (such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. This resulted in two new functions [`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and @@ -52,7 +52,7 @@ NSF REU student [Henry Mull][] implemented a new analysis module [`MDAnalysis.an ![Ramachandran plot](https://www.mdanalysis.org/docs/_images/rama_demo_plot.png) -[Irfan Alibar][] improved the [`density_from_Universe()`](https://www.mdanalysis.org/docs/documentation_pages/analysis/density.html#MDAnalysis.analysis.density.density_from_Universe) function, which now allows the user to exactly specify the region in which a density should be calculated. +[Irfan Alibay][] improved the [`density_from_Universe()`](https://www.mdanalysis.org/docs/documentation_pages/analysis/density.html#MDAnalysis.analysis.density.density_from_Universe) function, which now allows the user to exactly specify the region in which a density should be calculated. In this way, it becomes easier to calculate densities on identical grids for different simulations so that these densities can be compared more easily. [Shujie Fan][] added [site specific radial distribution function][] analysis. The [`InterRDF_s()`][] function calculates the radial distribution function relative to a single or a few particles (a "site"). @@ -115,14 +115,13 @@ or `pip install --upgrade MDAnalysis`. [NSF REU]: https://becksteinlab.physics.asu.edu/positions/115/research-experience-for-undergraduates-summer-2018 [release notes]: {{ site.github.wiki }}/ReleaseNotes0190 [periodic KDTrees]: https://www.mdanalysis.org/mdanalysis/documentation_pages/lib/pkdtree.html -[faster distance search algorithms]: {{ site.baseurl }}{% post_url 2018-11-16-gsoc18-distancesearch %} -[On-the-fly transformations]: {{ site.baseurl }}{% post_url 2018-08-30-on-the-fly-transformations %} +[faster distance search algorithms]: {{ site.baseurl }}{% post_url 2018-11-28-gsoc18-distancesearch %} [visualization of trajectories with nglview]: {{ site.baseurl }}{% post_url 2016-03-14-nglview %} [`MDAnalysis.analysis.dihedrals`]: https://www.mdanalysis.org/docs/documentation_pages/analysis/dihedrals.html [site specific radial distribution function]: https://www.mdanalysis.org/docs/documentation_pages/analysis/rdf.html#site-specific-radial-distribution-function [`InterRDF_s()`]: https://www.mdanalysis.org/docs/documentation_pages/analysis/rdf.html#MDAnalysis.analysis.rdf.InterRDF_s [conda installation]: https://www.mdanalysis.org/pages/installation_quick_start/#conda -[Irfan Alibar]: https://github.com/IAlibay +[Irfan Alibay]: https://github.com/IAlibay [Shujie Fan]: https://github.com/VOD555 [Andrew R. McCluskey]: https://github.com/arm61 [Henry Mull]: https://github.com/hfmull From a8c3935e12320e7d181ebe0e954c4a655d5fc69a Mon Sep 17 00:00:00 2001 From: Max Linke Date: Sat, 1 Dec 2018 21:43:33 +0100 Subject: [PATCH 11/12] Update 2018-12-01-release-0.19.x.md minimal wording changes to show we have performance improvments thanks to this years GSoC Project. --- _posts/2018-12-01-release-0.19.x.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2018-12-01-release-0.19.x.md b/_posts/2018-12-01-release-0.19.x.md index ae9efbcc..e2d62d96 100644 --- a/_posts/2018-12-01-release-0.19.x.md +++ b/_posts/2018-12-01-release-0.19.x.md @@ -13,8 +13,8 @@ Some highlights are given below, whilst the [release notes][] list all the chang ## Capped Distance Searches GSoC student Ayush Suhane (@ayushsuhane), worked on integrating [faster distance search algorithms][] -(such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. -This resulted in two new functions +(such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. His work improved many distance search based analysis methods like the calculation of radial distribution functions. +There are now two new low-level functions [`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and [`MDAnalysis.lib.distances.self_capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.self_capped_distance), which find all pairwise distances between particles up to a given maximum distance. From 5c74be830e30b49618b7676de21912083813da2f Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Sat, 1 Dec 2018 15:45:14 -0700 Subject: [PATCH 12/12] finalized 0.19.x post - added more text for file reader improvements - added more links - created the ReleaseNotes0190, ReleaseNotes0191, ReleaseNotes0192 pages in the wiki - spell check - signed with The MDAnalysisTeam --- _posts/2018-12-01-release-0.19.x.md | 53 ++++++++++++++--------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/_posts/2018-12-01-release-0.19.x.md b/_posts/2018-12-01-release-0.19.x.md index e2d62d96..3e8acd54 100644 --- a/_posts/2018-12-01-release-0.19.x.md +++ b/_posts/2018-12-01-release-0.19.x.md @@ -7,19 +7,12 @@ A new version of MDAnalysis has been released! Or rather, three new releases in quick succession, so we just talk about all of them in a single post. -This version brings a multitude of new features including exciting additions from one of our two [2019 Google Summer of Code][] students (other cool new features from GSOC2018 will be unveiled in the next release...) and one [NSF REU][] student as well as **full Windows support**. +This version brings a multitude of **fixes**, [**deprecations**](#deprecations), and **new features** including exciting additions from one of our two [2019 Google Summer of Code][] students (other cool new features from GSOC2018 will be unveiled in the next release...) and one [NSF REU][] student as well as **full Windows support**. Some highlights are given below, whilst the [release notes][] list all the changes in this version. -## Capped Distance Searches +## GSoC 2018: Capped Distance Searches -GSoC student Ayush Suhane (@ayushsuhane), worked on integrating [faster distance search algorithms][] -(such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. His work improved many distance search based analysis methods like the calculation of radial distribution functions. -There are now two new low-level functions -[`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and -[`MDAnalysis.lib.distances.self_capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.self_capped_distance), -which find all pairwise distances between particles up to a given maximum distance. -By specifying a maximum distance to the search, it is possible to optimise the search, -leading to greatly improved performance especially in larger systems. +GSoC student Ayush Suhane (@ayushsuhane) worked on integrating [faster distance search algorithms][] (such as the grid search in the new [`MDAnalysis.lib.nsgrid`](https://www.mdanalysis.org/docs/documentation_pages/lib/nsgrid.html) neighbor search library and [periodic KDTrees][]) for limited distance searches. His work improved many distance search based analysis methods like the calculation of radial distribution functions. There are now two new low-level functions [`MDAnalysis.lib.distances.capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.capped_distance) and [`MDAnalysis.lib.distances.self_capped_distance`](https://www.mdanalysis.org/docs/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.self_capped_distance), which find all pairwise distances between particles up to a given maximum distance. By specifying a maximum distance to the search, it is possible to optimize the search, leading to greatly improved performance especially in larger systems. For example to find all contacts between oxygen and hydrogen up to 5.0 Å ```python @@ -44,7 +37,7 @@ For full details on the implementation of this and the expected performance impr see Ayush's post on [faster distance search algorithms][]. ## Analysis improvements -NSF REU student [Henry Mull][] implemented a new analysis module [`MDAnalysis.analysis.dihedrals`][] which includes analysis classes for +**NSF REU** student [Henry Mull][] implemented a new analysis module [`MDAnalysis.analysis.dihedrals`][] which includes analysis classes for - **fast dihedral angle calculation** (useful for featurization and dimensionality reduction in dihedral space as well as conformational analysis), - **Ramachandran** analysis (protein backbone dihedrals) including functions and data to plot allowed and generously allowed regions, - **Janin** analysis (protein sidechain dihedrals) @@ -67,33 +60,32 @@ If you want to install with `pip` or from source then you will need the full Mic ## Improvements to file readers -- lammps dump reader -- chainreader -- traj slice object -- memory reader -- hybrid36 pdb -- settle constraints -- top parser does bonds/angles/dihedrals +- For the LAMMPS dump reader one can now pass an [`atom_style` keyword][atom_style] argument to specify what is on each line, for instance, `atom_style = 'id type charge x y z'`. This provides much greater flexibility to read different dump files. +- The [ChainReader][] with argument `continuous=True` can now correctly handle continuous XTC or TRR trajectories that were split into multiple files with Gromacs `gmx mdrun -noappend`; in particular it will handle overlapping frames in such a way that only the last generated frame is included and the trajectory contains strictly monotonously increasing time steps. This means, Gromacs folks will never have to manually concatenate their trajectories for use with MDAnalysis. +- When slicing a trajectory as with `traj = u.trajectory[start:stop:step]` then this returns now a trajectory slice object (an iterable), which can be passed around and then iterated over: essentially, it's a trajectory that knows that it should only deliver a subset of frames. Functions like `len(traj)` are also fast (O(1)), very similar to how Python 3's `range()` object functions. See [FrameIterators][] for more details. +- The [MemoryReader][] is now a full first-class citizen in MDAnalysis, which can keep coordinates *and* velocities, forces, box dimensions in memory. It is a versatile swiss-army knife, both for fast analysis and also visualization with nglview (e.g., [fit trajectory in memory, then visualize][trajectory_magic.ipynb]). +- new hybrid36 PDB-like format +- The Gromacs TPR parser now reads SETTLE constraints. +- The Amber top parser reads bonds/angles/dihedrals. ## Miscellaneous performance improvements -- guess_bonds (thanks to above methods) +- `guess_bonds` (thanks to above methods) - geometry selections faster (thanks to above) -- make_whole (C++ rewrite) -- fragment finding (cpp rewrite) +- `make_whole` (C++ rewrite) +- fragment finding (C++ rewrite) - improvements to AtomGroup internals ## Deprecations This release brings a few new deprecations as the package heads towards a final API: - * start/stop/step are deprecated in the initialization of Analysis classes. - These parameters should instead be given to the run() method of the class. - * Almost all "save()", "save_results()", "save_table()" methods in - analysis classes. - * Deprecated use of `core.flags`, the deprecation messages for this give advice - on how to replace this functionality. +- `start`/`stop`/`step` are deprecated in the initialization of Analysis classes. These parameters should instead be given to the run() method of the class. +- Almost all "`save()`", "`save_results()`", "`save_table()`" methods in analysis classes. +- Deprecated use of `core.flags`, the deprecation messages for this give advice + on how to replace this functionality. +- Default ``filename`` directory of `align.AlignTraj` is deprecated and will change in 1.0 to the current directory. ## Author statistics @@ -111,6 +103,8 @@ and featured the work of five new contributors: To get all these features run either `conda update -c conda-forge mdanalysis` or `pip install --upgrade MDAnalysis`. +— The MDAnalysis Team + [2019 Google Summer of Code]: {{ site.baseurl }}{% post_url 2018-04-26-gsoc-students %} [NSF REU]: https://becksteinlab.physics.asu.edu/positions/115/research-experience-for-undergraduates-summer-2018 [release notes]: {{ site.github.wiki }}/ReleaseNotes0190 @@ -121,6 +115,11 @@ or `pip install --upgrade MDAnalysis`. [site specific radial distribution function]: https://www.mdanalysis.org/docs/documentation_pages/analysis/rdf.html#site-specific-radial-distribution-function [`InterRDF_s()`]: https://www.mdanalysis.org/docs/documentation_pages/analysis/rdf.html#MDAnalysis.analysis.rdf.InterRDF_s [conda installation]: https://www.mdanalysis.org/pages/installation_quick_start/#conda +[atom_style]: https://www.mdanalysis.org/docs/documentation_pages/topology/LAMMPSParser.html#atom-styles +[FrameIterators]: https://www.mdanalysis.org/docs/documentation_pages/coordinates/base.html#frameiterators +[ChainReader]: https://www.mdanalysis.org/docs/documentation_pages/coordinates/chain.html +[MemoryReader]: https://www.mdanalysis.org/docs/documentation_pages/coordinates/memory.html +[trajectory_magic.ipynb]: https://github.com/MDAnalysis/WorkshopHackathon2018/blob/master/01_IntroToMDAnalysis/notebooks/trajectory_magic.ipynb [Irfan Alibay]: https://github.com/IAlibay [Shujie Fan]: https://github.com/VOD555 [Andrew R. McCluskey]: https://github.com/arm61