Skip to content

Commit

Permalink
finalized 0.19.x post
Browse files Browse the repository at this point in the history
- 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
  • Loading branch information
orbeckst committed Dec 1, 2018
1 parent a8c3935 commit 5c74be8
Showing 1 changed file with 26 additions and 27 deletions.
53 changes: 26 additions & 27 deletions _posts/2018-12-01-release-0.19.x.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand All @@ -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

Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 5c74be8

Please sign in to comment.