From dfc53fd0722bb0ea6c2f2eead3cf1392fc452916 Mon Sep 17 00:00:00 2001 From: ss62171 Date: Sat, 7 Mar 2020 06:17:57 +0530 Subject: [PATCH 1/7] Fix #2590: Created new axes for plot of persistence_length. --- package/MDAnalysis/analysis/polymer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package/MDAnalysis/analysis/polymer.py b/package/MDAnalysis/analysis/polymer.py index e699628c38b..1878a7a1430 100644 --- a/package/MDAnalysis/analysis/polymer.py +++ b/package/MDAnalysis/analysis/polymer.py @@ -270,7 +270,8 @@ def plot(self, ax=None): """ import matplotlib.pyplot as plt if ax is None: - ax = plt.gca() + plt.figure() + ax = plt.axes() ax.plot(self.x, self.results, 'ro', label='Result') ax.plot(self.x, self.fit, label='Fit') ax.set_xlabel(r'x') From efb301c6fad3dabeca1fd0b339e3c84b731ee778 Mon Sep 17 00:00:00 2001 From: ss62171 Date: Tue, 10 Mar 2020 04:19:40 +0530 Subject: [PATCH 2/7] Added test for checking axes and CHANGELOGS updated --- package/CHANGELOG | 4 +++- testsuite/MDAnalysisTests/analysis/test_persistencelength.py | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package/CHANGELOG b/package/CHANGELOG index 46ee8181641..9c04fda5499 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -15,7 +15,8 @@ The rules for this file: ------------------------------------------------------------------------------ mm/dd/yy richardjgowers, kain88-de, lilyminium, p-j-smith, bdice, joaomcteixeira, PicoCentauri, davidercruz, jbarnoud, RMeli, IAlibay, mtiberti, CCook96, - Yuan-Yu, xiki-tempula, HTian1997, Iv-Hristov, hmacdope, AnshulAngaria + Yuan-Yu, xiki-tempula, HTian1997, Iv-Hristov, hmacdope, AnshulAngaria, + Shubham Sharma * 0.21.0 @@ -58,6 +59,7 @@ Fixes argument. The directives parsed into bonds, angles, impropers, and dihedrals now match TPRParser. (PR #2408) * Added parmed to setup.py + * PersistenceLength.plot() now grab new axes if current axes not provided (Issue #2590) Enhancements * New analysis.hole2 module for HOLE interfacing. Contains a function (hole) diff --git a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py index a6acbc837b9..d1d9095eeb5 100644 --- a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py +++ b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py @@ -92,6 +92,11 @@ def test_plot_with_ax(self, p_run): ax2 = p_run.plot(ax=ax) assert ax2 is ax + + def test_current_axes(self, p_run): + ax = plt.figure() + ax2 = p_run.plot() + assert ax2 is not ax def test_perform_fit_warn(self, p_run): with pytest.warns(DeprecationWarning): From 6594e767540aa6ce2429f0b9c2a063aec87933a2 Mon Sep 17 00:00:00 2001 From: ss62171 Date: Tue, 10 Mar 2020 05:17:04 +0530 Subject: [PATCH 3/7] test updated --- testsuite/MDAnalysisTests/analysis/test_persistencelength.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py index d1d9095eeb5..c88576d3bb1 100644 --- a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py +++ b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py @@ -94,8 +94,8 @@ def test_plot_with_ax(self, p_run): assert ax2 is ax def test_current_axes(self, p_run): - ax = plt.figure() ax2 = p_run.plot() + fig, ax = plt.subplots() assert ax2 is not ax def test_perform_fit_warn(self, p_run): From b31498d28761de98161bf4ac0da20c3c469a89c6 Mon Sep 17 00:00:00 2001 From: ss62171 Date: Fri, 13 Mar 2020 03:32:54 +0530 Subject: [PATCH 4/7] test_updated --- testsuite/MDAnalysisTests/analysis/test_persistencelength.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py index c88576d3bb1..2f9cd57e589 100644 --- a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py +++ b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py @@ -94,8 +94,8 @@ def test_plot_with_ax(self, p_run): assert ax2 is ax def test_current_axes(self, p_run): + fig, ax = plt.subplots() ax2 = p_run.plot() - fig, ax = plt.subplots() assert ax2 is not ax def test_perform_fit_warn(self, p_run): From 05950caafbf46e95f6c23d2271a2c2eb9f26197f Mon Sep 17 00:00:00 2001 From: ss62171 Date: Fri, 13 Mar 2020 06:59:04 +0530 Subject: [PATCH 5/7] Some nitpick changes --- package/CHANGELOG | 4 ++-- package/MDAnalysis/analysis/polymer.py | 2 +- testsuite/MDAnalysisTests/analysis/test_persistencelength.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/CHANGELOG b/package/CHANGELOG index 9c04fda5499..1e3e9ebb36c 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -16,7 +16,7 @@ The rules for this file: mm/dd/yy richardjgowers, kain88-de, lilyminium, p-j-smith, bdice, joaomcteixeira, PicoCentauri, davidercruz, jbarnoud, RMeli, IAlibay, mtiberti, CCook96, Yuan-Yu, xiki-tempula, HTian1997, Iv-Hristov, hmacdope, AnshulAngaria, - Shubham Sharma + ss62171 * 0.21.0 @@ -59,7 +59,6 @@ Fixes argument. The directives parsed into bonds, angles, impropers, and dihedrals now match TPRParser. (PR #2408) * Added parmed to setup.py - * PersistenceLength.plot() now grab new axes if current axes not provided (Issue #2590) Enhancements * New analysis.hole2 module for HOLE interfacing. Contains a function (hole) @@ -94,6 +93,7 @@ Enhancements * Added ParmEdParser, ParmEdReader and ParmEdConverter to convert between a parmed.Structure and MDAnalysis Universe (PR #2404) * Improve the distance search in water bridge analysis with capped_distance (PR #2480) + * PersistenceLength.plot() now create new axes if current axes not provided (Issue #2590) Changes * Removed `format` keyword from :meth:`MemoryReader.timeseries` (Issue #1453, diff --git a/package/MDAnalysis/analysis/polymer.py b/package/MDAnalysis/analysis/polymer.py index 1878a7a1430..c40a4f0c536 100644 --- a/package/MDAnalysis/analysis/polymer.py +++ b/package/MDAnalysis/analysis/polymer.py @@ -271,7 +271,7 @@ def plot(self, ax=None): import matplotlib.pyplot as plt if ax is None: plt.figure() - ax = plt.axes() + ax = plt.subplot() ax.plot(self.x, self.results, 'ro', label='Result') ax.plot(self.x, self.fit, label='Fit') ax.set_xlabel(r'x') diff --git a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py index 2f9cd57e589..479b98e9df4 100644 --- a/testsuite/MDAnalysisTests/analysis/test_persistencelength.py +++ b/testsuite/MDAnalysisTests/analysis/test_persistencelength.py @@ -95,7 +95,7 @@ def test_plot_with_ax(self, p_run): def test_current_axes(self, p_run): fig, ax = plt.subplots() - ax2 = p_run.plot() + ax2 = p_run.plot(ax=None) assert ax2 is not ax def test_perform_fit_warn(self, p_run): From d02e6668f7f217d8dedad3ea8bcee04e420035ac Mon Sep 17 00:00:00 2001 From: ss62171 Date: Sat, 21 Mar 2020 03:17:27 +0530 Subject: [PATCH 6/7] polymer.py updated --- package/CHANGELOG | 2203 ++++++++++++++++++++++++ package/MDAnalysis/analysis/polymer.py | 3 +- 2 files changed, 2204 insertions(+), 2 deletions(-) create mode 100644 package/CHANGELOG diff --git a/package/CHANGELOG b/package/CHANGELOG new file mode 100644 index 00000000000..36b7b4973fc --- /dev/null +++ b/package/CHANGELOG @@ -0,0 +1,2203 @@ +# -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8 -*- +====================== + MDAnalysis CHANGELOG +====================== + +The rules for this file: + * entries are sorted newest-first. + * summarize sets of changes - don't reproduce every git log comment here. + * don't ever delete anything. + * keep the format consistent (79 char width, M/D/Y date format) and do not + use tabs but use spaces for formatting + * accompany each entry with github issue/PR number (Issue #xyz) + * release numbers follow "Semantic Versioning" http://semver.org + +------------------------------------------------------------------------------ +mm/dd/yy richardjgowers, kain88-de, lilyminium, p-j-smith, bdice, joaomcteixeira, + PicoCentauri, davidercruz, jbarnoud, RMeli, IAlibay, mtiberti, CCook96, + Yuan-Yu, xiki-tempula, HTian1997, Iv-Hristov, hmacdope, AnshulAngaria, + ss62171 + + * 0.21.0 + +Fixes + * Fixed mda.Merge for Universes without coordinates (Issue #2470)(PR #2580) + * PCA(align=True) now correctly aligns the trajectory and computes the + correct means and covariance matrix (Issue #2561) + * Correct args order of base.AnalysisFromFunction (Issue #2503) + * encore.dres() returns dimensionality reduction details instead of a + reference to itself (Issue #2471) + * Handle exception when PDBWriter is trying to remove an invalid StringIO + (Issue #2512) + * Clarifies density_from_Universe docs and adds user warning (Issue #2372) + * Fix upstream deprecation of `matplotlib.axis.Tick` attributes in + `MDAnalysis.analysis.psa` + * PDBWriter now uses first character of segid as ChainID (Issue #2224) + * Adds a more detailed warning when attempting to read chamber-style parm7 + files (Issue #2475) + * ClusterCollection.get_ids now returns correctly (Issue #2464) + * Removes files for stubs mainly introduced in 0.11.0 (Issue #2443) + * Removes support for reading AMBER NetCDF files with `cell_angle` units set + to `degrees` instead of the convention agreed `degree` (Issue #2327). + * Removes the MassWeight option from gnm (PR #2479). + * AtomGroup.guess_bonds now uses periodic boundary information when available + (Issue #2350) + * Chainreader and continuous option work correctly when readers work for more + than one format (Issue #2353) + * PDBQTParser now gives icode TopologyAttrs (Issue #2361) + * GROReader and GROWriter now can handle boxes with box vectors >1000nm + * Guess atom element with uppercase name + * TopologyGroup no longer reshapes the type, guessed, and order properties + (Issue #2392) + * Added test to check for unexpected attributes in TopologyParsers (Issue #2387) + * PDB files no longer lose chainIDs when reading files without segIDs (Issue #2389) + * The expected frames are made available when a trajectory slice is sliced itself + with an incomplete slice and/or with a negative step (Issue #2413) + * TXYZ parser uses strings for the atom types like other parsers (Issue #2435) + * ITPParser now parses ITP *and* TOP files from GROMACS, reads #include files, and + substitutes #define variables both from the file and when passed in as a keyword + argument. The directives parsed into bonds, angles, impropers, and dihedrals now + match TPRParser. (PR #2408) + * Added parmed to setup.py + * Fixed example docs for polymer persistence length (#2582) + +Enhancements + * New analysis.hole2 module for HOLE interfacing. Contains a function (hole) + for running HOLE on singular PDB files and class (HoleAnalysis) for + trajectories (PR #2523) + * Changed selection wildcards to support multiple wildcards (#2436) + * Added coordinate reader and writer for NAMD binary coordinate format (PR #2485) + * Improved ClusterCollection and Cluster string representations (Issue #2464) + * XYZ parser store elements attribute (#2420) and XYZ write uses the elements + attribute, if present (#2421). + * Enhanges exception message when trajectory output file has no extension assigned. + * Uniforms exception handling between Python 2.7 and Python 3: raised exceptions + do not contain previous exceptions traceback. Uses six package to handle + py27 and py3 compatibility (PR #2357) + * Expanded selection wildcards to the start and middle of strings (Issue #2370) + * Added type checking and conversion to Connection TopologyAttrs (Issue #2373) + * New analysis.hydrogenbonds.HydrogenBondAnalysis class for the analysis of + hydrogen bonds. Simpler interface, more extensible and better performance + than analysis.hbonds.HydrogenBondAnalysis (PR #2237) + * GSD reader is now supported on Windows (Issue #1923, PR #2384) + * Empty Universe with 0 atoms is possible (Issue #2383) + * Added ITPParser to parse GROMACS itp topology files (PR #2381) + * Added match_atoms keyword to analysis.align (Issue #2285, PR #2380) + * Added wrap/unwrap transformations (PR #2038) + * Read TPR files from Gromacs 2020 (Issue #2412 and #2428) + * Added analysis.align.AverageStructure to get the average structure of an + out-of-memory trajectory (Issue #2039) + * Added _add_TopologyObjects, _delete_TopologyObjects, and public convenience + methods to Universe. Added type and order checking to _Connection + topologyattrs. (PR #2382) + * Added radius_cut_q as a method to contacts.Contacts (PR #2458) + * Added ParmEdParser, ParmEdReader and ParmEdConverter to + convert between a parmed.Structure and MDAnalysis Universe (PR #2404) + * Improve the distance search in water bridge analysis with capped_distance (PR #2480) + * PersistenceLength.plot() now create new axes if current axes not provided (Issue #2590) + +Changes + * Removed `format` keyword from :meth:`MemoryReader.timeseries` (Issue #1453, + #2443) + * Deprecated :class:`LAMMPSDataConverter` has now been removed (Issue #2564) + * Removed AtomGroup stubs (PR #1070, Issue #2443). + * encore.hes() doesn't accept the details keyword anymore, it always returns + the relevant details instead, consistently with ces() and dres(), in the + form of a dictionary (Issue #2465) + * Removed instant selectors on Universe and Group objects (e.g. AtomGroup.C, + Segment.r1, Universe.s4AKE). Use select_atoms instead (Issue #1377) + * Calling Universe() now raises a TypeError advising you to use Universe.empty. + Universe.empty() now no longer has n_atoms=0 as default. (Issue #2527) + * deprecated `start`, `stop`, and `step` keywords have been removed from `__init__` + in :class:`AnalysisBase`. These should now be called in :meth:`AnalysisBase.run` + (Issue #1463) + * Standardize `select` keyword by removing `selection`, `atomselection` + and `ref_select` (Issue #2461, Issue #2530) + * Removes support for setting `start`/`stop`/`step` trajecotry slicing + keywords on :class:`HOLEtraj` construction. Also removes undocumented + support for passing :class:`HOLE` parameters to :meth:`HOLEtraj.run` + (Issue #2513). + * Removes the `nproc` keyword from + :class:`Waterdynamics.HydrogenBondLifetimes` as the multiprocessing functionality + did not work in some cases(Issues #2511). + * Added `min_mass` parameter to `guess_hydrogens` function in `HydrogenBondAnalysis` + set to 0.9 by default (Issue #2472) + * Removes `save()` function from contacts, diffusionmap, hole, LinearDensity, + and rms (Issue #1745). + * Removes; `save_table()` from :class:`HydrogenBondAnalysis`, + `save_results()` from :class:`HydrogenBondAutoCorrel`, and + `save_results()`/`filename`/`store` from :class:`PSAnalysis`. Also sets + the deprecation of `hbonds/hbond_analysis.py` to v1.0 (Issues #1745, + #2486, #2487, #2491, #2492). + * Removes the `format` and `skip` keywords from :meth:`DCDReader.timeseries` + (Issue #2443) + * `fullgroup` selection has now been removed (#268) + * AlignTraj `save()` method has been removed and the `filename` variable now + defaults to the current working directory (Issues #2099, #1745, #2443) + * Removed `MDAnalysis.migration` (Issue #2490, PR #2496) + * The fasta2select now always assumes that the gap character in a sequence + is "-" (Issue #2448, PR #2457) + * Removed core.flags. Default behaviour (eg pbc, units) now defaults to + the default setting of the flag before removal. If you were using flags + you will now have to supply the flag setting as keyword arguments to + function calls. (Issue #782) + +Deprecations + * analysis.hole is deprecated in 1.0 (remove in 2.0) + * analysis.hbonds.HydrogenBondAnalysis is deprecated in 1.0 (remove in 2.0) + + +09/05/19 IAlibay, richardjgowers + + * 0.20.1 + +Fixes + * The NetCDF writer now writes `cell_angle` units as `degree` instead of + `degrees` in accordance with the AMBER NetCDF convention (Issue #2327). + * Fixed installation without Cython (Issue #2337) + + +08/28/19 micaela-matta, xiki-tempula, zemanj, mattwthompson, orbeckst, aliehlen, + dpadula85, jbarnoud, manuel.nuno.melo, richardjgowers, mattwthompson, + ayushsuhane, picocentauri, NinadBhat, bieniekmateusz, p-j-smith, Lp0lp, + IAlibay, tyler.je.reddy, aakognole, RMeli, lilyminium + + * 0.20.0 + +Enhancements + * improved metal atom guess (Issue #2323) + * improved atom element guessing in topology.guessers to check for elements + after the first element (#2313) + * added the zero-based index selection keyword (Issue #1959) + * added position averaging transformation that makes use of the + transformations API (PR #2208) + * added find_hydrogen_donors to analysis.bonds.hbond_autocorrel to + automatically determine donors where possible (#2181) + * added analysis.polymer.sort_backbone to rearrange backbone atoms into + sequential order (bondwise) (PR #2141) + * added record_type to select_atoms language (PR #2179) + * center, centroid, center_of_geometry, center_of_mass can now be computed per + molecule or per fragment (PR #2182) + * Atoms (AtomGroups) have a new fragindex (fragindices) property corresponding + to the respective fragment (fragments) (PR #2182) + * Atom-, Residue-, and SegmentGroups have a new unwrap() method allowing to + make compounds (group/residues/segments/fragments/molecules) that are broken + across periodic boundaries whole (Issues #1004 and #1185, PR #2189) + * lib.mdamath.make_whole() now returns the resulting coordinates and is able + to operate out-of-place, i.e., without modifying atom coordinates (PR #2189) + * lib.mdamath.triclinic_vectors() got an optional argument allowing to specify + the dtype of the returned box matrix. (Issue #2200, PR #2201) + * added return_distances kwarg to self_capped_distance (Issue #2101, PR #2202) + * *Group.wrap() now returns wrapped positions and can optionally work + out-of-place (Issue #2203, PR #2204) + * Improved performance of AtomGroup creation from ResidueGroups and + SegmentGroups via ResidueGroup.atoms or SegmentGroup.atoms, respectively. + This speeds up all methods using these mechanisms. (Issue #2203, PR #2204) + * added more Van-der-Waals radii to improve guess_bonds (#2138, PR #2142) + * added *Group.accumulate() (PR #2192) + * added compound kwarg to total_mass and total_charge (PR #2192) + * updated HydrogenBondAutoCorrel to use capped_distance in place of + distance_array. (Issue #2103, PR #2209) + * updated analysis.distances.contact_matrix to use capped_distance. (Issue #2102, + PR #2215) + * added functionality to write files in compressed form(gz,bz2). (Issue #2216, + PR #2221) + * survival probability additions: residues, intermittency, step with performance, + (PR #2226) + * added unwrap keyword to center (PR #2275) + * added unwrap keyword to center_of_geometry (PR #2279) + * added unwrap keyword to center_of_mass (PR #2286) + * added unwrap keyword to moment_of_inertia (PR #2287) + * added unwrap keyword to asphericity (PR #2290) + * add high order water bridge support to water bridge analysis. (PR #2087) + +Changes + * added support for scale_factor in NCDFReader (Issue #2323) + * added official support for Python 3.7 (PR #1963) + * stopped official support of Python 3.4 (#2066, PR #2174) + * In lib.mdamath, calculations within triclinic_box(), triclinic_vectors(), + and box_volume() are performed in double precision. If a supplied box is + invalid, an all-zero array or zero is returned, respectively. (Issue #2200, + PR #2201) + * changed fudge_factor in guess_bonds to deal with new vdw radii (#2138, PR #2142) + * bump minimum numpy version to 1.13.3 + * changed the water bridge analysis output format (PR #2087) + +Fixes + * fixed ChainReader setting format with format keyword (Issue #2334) + * fixed lack of check for scaling of NCDFReader velocities (Issue #2323) + * fixed PDBReader and PDBWriter newlines for PDB header (Issue #2324) + * fixes ProgressMeter issues with older Jupyter Lab versions (Issue #2078) + * fixes ProgressMeter behaviour for non-AnalysisBase methods (Issue #2084) + * fixed mol2 parser for status bit strings (Issue #2318) + * fixed reading AMBER topologies with negative ATOMIC_NUMBERS (Issue #2306) + * fixed reading bz2 compressed psf files (Issue #2232) + * fixed mol2 comment header handling (Issue #2261) + * fixed reading PDB files with partial CRYST lines (Issue #2252) + * fixed transformation tests not being run (Issue #2241) + * fixed the segmentation fault in capped_distances (Issue #2164, PR #2169) + * fixed gcc support in MacOS (Issue #2162, PR #2163) + * fixed error when reading bonds/angles/dihedrals from gsd file (Issue #2152, + PR #2154) + * fixed error when reading bonds/angles/dihedrals from hoomdxml file + (Issue #2151, PR #2153) + * fixed MacOS (XCode) library compatibility + (Issue #2144) + * fixed lib.nsgrid segfault for coordinates very close to the box boundary + (Issue #2132, PR #2136) + * fixed Lint error + (Issue #2148, PR #2149) + * Fixed Empty select_atoms string, now raises warning and returns empty + AtomGroup (Issue #2112) + * Read TPR files from Gromacs 2019 (PR #2161) + * Fixed copying Universes created from PDB files (record_type attribute + was problematic) (Issue #2178 #1926, PR #2179) + * Fixed writing CONECT records when writing PDB files that are a + subsection of original Universe (Issue #2194) + * PDBReader now correctly reads HEADER information (Issue #2195) + * Fixed reading MMTF files with some optional fields missing + (Issue #2193) + * Wrapped coordinates, i.e., coordinates resulting from *Group.wrap(), + *Group.pack_into_box(), or lib.distances.apply_PBC() are now guaranteed + to lie within the central periodic image (including its lower but + *exluding* its upper boundaries) (Issue #2200, PR #2201) + * *Group.wrap() is now guaranteed to only work on atoms actually belonging to + the calling group. (Issue #2203, PR #2204) + * Fixed documentation of MDAnalysis.analysis.contacts + * Enforced consistent dtype (numpy.float32) of Universe.dimensions and + Timestep.dimensions for all Universes and Readers (Issue #2190, PR #2213) + * Fixed analysis.nucleic.hydroxyl() function: correctly recognize the + 2'-hydroxyl hydrogen H2'; gave wrong results (Issue #2218) + * A clear message that the .pdb universe cannot contain a different number of + atoms from frame to frame (Issue #1998, PR #2219) + * Fixed reading multiframe GRO files, currently only the first frame will be + read. (Issue #2276 PR #2277) + * fixed calculation of Chi torsion in nucleic acid analysis (Issue #2248) + * Fixed parallelization failure in get_distance_matrix() (Issue #2060, PR #2301) + +Deprecations + * analysis.polymer.PersistenceLength no longer requires the perform_fit() + method to be used, this is done automatically in run() + +Testsuite + * Raised minimum pytest version to 3.3.0, warns now uses the `match` + argument instead of `match_expr` (Issue #2329) + * Add tests for the new water bridge analysis (PR #2087) + +11/06/18 richardjgowers + * 0.19.2 + +Changes + * Added Windows support + + +11/05/18 orbeckst, PicoCentauri, richardjgowers, zemanj + * 0.19.1 + +Fixes + * limit output of Chainreader __repr__ (#2109) + * added missing docs for lib.pkdtree (#2104) + * Added sphinx markup for FrameIterator (#2106) + * fixed error for residues and segments containing 0 atoms (#1999) + * fixed numpy deprecation warnings (#2122, #2123) + * Fixed reading PDB files with DOS line ending (#2128) + +Deprecations + * Default ``filename`` directory of align.AlignTraj is deprecated and + will change in 1.0 to the current directory. + +10/09/18 tylerjereddy, richardjgowers, palnabarun, orbeckst, kain88-de, zemanj, + VOD555, davidercruz, jbarnoud, ayushsuhane, hfmull, micaela-matta, + sebastien.buchoux, arm61, p-j-smith, IAlibay + + * 0.19.0 + +Enhancements + * Added bond/angle/dihedral reading in PARM7 TOPParser (PR #2052) + * Replaced multiple apply (_apply_distmat, _apply_kdtree) + methods in distance based selections with + lib.distances.capped_distance for automatic selection of + distance evaluation method. (PR #2035) + * Modified analysis.rdf.InterRDF to use lib.distances.capped_distance + to handle rdf calculations for large systems. (PR #2013) + * Added return_distances argument in lib.distances.capped_distances + to evaluate and return distances only when required. Modified + the optimization rules in lib.distances._determine_method for + faster computations. (PR #2041) + * Added method search_tree in lib.pkdtree to find all the pairs between + two kdtrees. (PR #2041) + * Added a wrapper of lib.nsgrid in lib.distances.self_capped_distance + and lib.distances.capped_distanceto automatically chose the fastest + method for distance based calculations. (PR #2008) + * Added Grid search functionality in lib.nsgrid for faster distance based + calculations. (PR #2008) + * Modified around selections to work with KDTree and periodic boundary + conditions. Should reduce memory usage (#974 PR #2022) + * Modified topology.guessers.guess_bonds to automatically select the + fastest method for guessing bonds using + lib.distance.self_capped_distance (PR # 2006) + * Added lib.distances.self_capped_distance to internally select the + optimized method for distance evaluations of coordinates with itself. (PR # 2006) + * Added augment functionality to create relevant images of particles + in the vicinity of central cell to handle periodic boundary + conditions (PR #1977) + * Added lib.distances.capped_distance function to quickly calculate all distances + up to a given maximum distance (PR #1941) + * Added a rotation coordinate transformation (PR #1937) + * Added a box centering trajectory transformation (PR #1946) + * Added a on-the-fly trajectory transformations API and a coordinate translation + function (Issue #786) + * Added various duecredit stubs + * Import time reduced by a factor two (PR #1881) + * Added compound kwarg to center, centroid, center_of_geometry, center_of_mass (PR #1903) + * Added rdf.InterRDF_s to calculate site-specific pair distribution + functions (PR #1815) + * Increased performance of (repeated) calls to AtomGroup.pack_into_box() + (PR #1922) + * Added boolean property *Group.isunique (PR #1922) + * Added *Group.copy() methods returning an identical copy of the respective + group (PR #1922) + * Use a faster function to deduplicate indices (PR #1951) + * Calculations in *Group.center() are performed in double precision (#PR1936) + * Functions in lib.distances accept coordinate arrays of arbitrary dtype + (PR #1936) + * Added pbc kwarg to Bond/Angle/Dihedral/Improper object value method, + default True. (Issue #1938) + * ChainReader can correctly handle continuous trajectories split into multiple files, + generated with gromacs -noappend (PR #1728) + * MDAnalysis.lib.mdamath now supports triclinic boxes and rewrote in Cython (PR #1965) + * AtomGroup.write can write a trajectory of selected frames (Issue #1037) + * Added dihedrals.py with Dihedral, Ramachandran, and Janin classes to + analysis module (PR #1997, PR #2033) + * Added the analysis.data module for reference data used in analysis (PR #2033) + * Added analysis.dihedrals with Ramachandran class to analysis module (PR #1997) + * Added augment functionality to create relevant images of particles + * Most functions in `MDanalysis.lib.distances` previously only accepting + arrays of coordinates now also accept single coordinates as input (PR #2048, + Issues #1262 #1938) + * Performance improvements to make_whole (PR #1965) + * Performance improvements to fragment finding (PR #2028) + * Added user-defined boxes in density code (PR #2005) + * MemoryReader now can accept velocities and forces (PR #2080) + * Universe.transfer_to_memory now copies dimensions, velocities and forces + (where possible) (Issue #1041 PR #2080) + +Fixes + * Rewind in the SingleFrameReader now reads the frame from the file (Issue #1929) + * Fixed order of indices in Angle/Dihedral/Improper repr + * coordinates.memory.MemoryReader now takes np.ndarray only (Issue #1685) + * Silenced warning when duecredit is not installed (Issue #1872) + * Fixed HBondAnalysis not considering PBC for distances (Issue #1878) + * Adding new TopologyAttrs with values defined always coerces this into + a numpy array (Issue #1876) + * Groups passed to select_atoms() are now type checked (Issue #1852) + * Fixed inconsistent handling of groups with/without duplicates in + pack_into_box() (Issue #1911) + * Fixed format of MODEL number in PDB file writing (Issue #1950) + * PDBWriter now properly sets start value + * Introduced compatibility for pbd files hybrid36 format encoding (Issue #1897) + * Zero length TopologyGroup now return proper shape array via to_indices + (Issue #1974) + * Added periodic boundary box support to the Tinker file reader (Issue #2001) + * Modifying coordinates by assignation is consistently persistent when using + the memory reader (Issue #2018) + * Allow import of WaterBridgeAnalysis from analysis.hbonds (#2064) + * Fixed SphericalLayer and SphericalZone selections with pbc=True. Previously + these shifted all atoms to inside the primary unit cell when calculating the + center of the reference group (Issue #1795) + * PCA analysis now uses start frame as reference frame rather than 0th frame + (PR #2055) + * Fixed trajectory iteration from a MDAnalysis.Universe.empty (#2076) + * Fixed copies MemoryReader not linking to the underlying coordinate array + on initial Timestep (Issue #2081 PR #2080) + +Changes + * TopologyAttrs are now statically typed (Issue #1876) + * updated meta data for new PyPi (#1837) + * AtomGroup.atoms, ResidueGroup.residues, and SegmentGroup.segments now return + themselves instead of a new object to increase performance (PR #1922) + * *Group.unique now returns a new object only if the respective group contains + duplicates. Otherwise, the group itself is returned. Repeated access of + *Group.unique will always return the same object unless the group is + updated or modified. (PR #1922) + * SurvivalProbability does not dilute SP anymore when the reference frame (t0) + cannot find any molecules in the first place. (PR #1995) + * The TPR parser reads SETTLE constraints as bonds. (Issue #1949) + * Indexing a trajectory with a slice or an array now returns an iterable + (Issue #1894) + * Removed unused function MDAnalysis.lb.mdamath.one_to_many_pointers() + (issue #2010) + * Box input for functions in `MDAnalysis.lib.distances` is now consistently + enforced to be of the form ``[lx, ly, lz, alpha, beta, gamma]`` as required + by the docs (Issue #2046, PR #2048) + * Added periodic keyword to select_atoms (#759) + * PCA.transform now requires that PCA.run() has already been called + otherwise a ValueError is raised (PR #2055) + * The quiet keyword has been removed and replaced with verbose (Issue #1975 + PR #2055) + * MDAnalysis.Universe.empty now creates a MemoryReader trajectory (#2076 #2077) + +Deprecations + * start/stop/step are deprecated in the initialization of Analysis classes. + These parameters should instead be given to the run() method of the class. + (Issue #1463 #1979 PR #2055) + * Almost all "save()", "save_results()", "save_table()" methods in + analysis classes were deprecated and will be removed in 1.0 (Issue + #1972 and #1745) + * Deprecated use of core.flags. For use_pbc, the pbc keyword should + be used, use_KDTree_routines is obsolete as all distance calculations + select the fastest method, all other uses of flags are deprecated. + (#782) + +Testsuite + * skip tests for duecredit when duecredit is not installed (#1906) + * updated meta data for PyPi and updated README and INSTALL + +04/15/18 tylerjereddy, richardjgowers, palnabarun, bieniekmateusz, kain88-de, + orbeckst, xiki-tempula, navyakhare, zemanj, ayushsuhane, davidercruz, + jbarnoud + + * 0.18.0 + +Enhancements + * Added flatten_dict function that flattens nested dicts into shallow + dicts with tuples as keys. + * Can now pass multiple attributes as a list to groupby function. + Eg ag.groupby(["masses","charges"]) + (Issue #1839) + * Added reading of record types (ATOM/HETATM) for PDB, PDBQT and PQR formats + (Issue #1753) + * Added Universe.copy to allow creation of an independent copy of a Universe + (Issue #1029) + * Added copy method to various core classes including Reader, TransTable, + Topology, TopologyAttr (Issue #1029) + * Added `reindex` option to GROWriter to preserve original atom ids when set to + False (Issue #1777) + * Can now pass 'atom_style' keyword argument when parsing Lammps Data files + to specify what is on each line. Eg atom_style = 'id type charge x y z' + (Issue #1791) + * Added periodic boundary condition option to HydrogenBondAnalysis (Issue #1188) + * Added duecredit to prepare a summary of the citations, when a user + uses MDAnalysis (Issue #412) + * Added AtomGroup, ResidueGroup and SegmentGroup to the top module namespace + +Fixes + * Fixed MPI fork() warning when importing MDAnalysis in an Infiniband-enabled + MPI environment (PR #1794) + * Fixed waterdynamics SurvivalProbability ignoring the t0 start time + (Issue #1759) + * AtomGroup.dimensions now strictly returns a copy (Issue #1582) + * lib.distances.transform_StoR now checks input type (Issue #1699) + * libdcd now writes correct length of remark section (Issue #1701) + * DCDReader now reports the correct time based on istart information (PR #1767) + * added requirement scipy >= 1.0.0 (absolutely needed: >= 0.19) (Issue #1775) + * Universe.empty now warns about empty Residues and Segmnets (Issue #1771) + * AMBER netcdf reader now defaults to mmap=None as described in the docs + (meaning mmap=True for files and NOT in memory), thus avoiding + memory problems on big trajectories (Issue #1807) + * analysis.align: fixed output and catch more cases with + SelectionError when selections are incompatible (Issue #1809) + * fix cython 0.28 compiler error + * DCD istart was wrongly interpreted as frames (only in 0.17.0) instead of + integrator timesteps, which lead to large time-offsets when reading and + writing DCD files; now istart is correctly interpreted when reading and + when writing, istart=None will set it to the CHARMM default nsavc but the + default is istart=0, which will make the DCD start at frame 0 (Issue #1819) + * Can now parse PDB files without resids (Issue #1854) + * Fixed periodic KDTree, now requires Biopython version 1.71 onwards (Issue #1857) + * fixed a bug in visualization.streamlines (Issue #1617) + * Updated TPR parser for GROMACS 2018 (Issue #1796) + * Fixed reading of PQR files generated by Gromacs (Issue #1804) + +Changes + * scipy >= 1.0.0 is now required (issue #1775 because of PR #1758) + +Deprecations + * undeprecated creating Groups from list of Components (Issue #1847) + +Testsuite + * Unit tests for unwanted side effects when importing MDAnalysis + * MDAnalysis.visualization is now tested + + +01/24/18 richardjgowers, rathann, orbeckst, tylerjereddy, mtiberti, kain88-de, + jbarnoud, nestorwendt, mmattaNU, jmborr, sobuelow, sseyler, rcortini, + xiki-tempula, manuel.nuno.melo + + * 0.17.0 + +Enhancements + * added support for GSD format topology/trajectory parser (PR #1693) + * spherical selections tokens can use the periodic KDTree (PR #1733) + * added Amber residue names to 'protein' atom selection (PR #1704) + * KDTree for neighbor search on periodic systems (PR #1660, #1692) + * Python versions 3.4 and upwards are now supported (Issue #260) + * added Universe.empty to allow Universes of custom size to be constructed + without any files (PR #1533) + * add minimal topology reader that is able to load coordinate/trajectory + files on their own without requiring a topology file (Issue #1371) + * added "parse_n_atoms" to Reader API and implemented this for DCD, INPCRD, + NCDF, TRR and XTC formats (PR #1533) + * added 'all_coordinates' keyword to Universe to also load the topology file + as a frame of the reader together with the trajectory files (PR #1533) + * add low level lib.formats.libdcd module for reading/writing DCD (PR #1372) + * replace old DCD reader with a Python 3 ready DCD reader (Issue #659) + * about 20% speed improvements for GNM analysis. (PR #1579) + * added support for Tinker TXYZ and ARC files + * libmdaxdr and libdcd classes can now be pickled (PR #1680) + * speed up atomgroup.rotate when point = (0, 0, 0) (Issue #1707) + * introduce the water bridge analysis module (PR #1722) + * Universe.add_TopologyAttr now accepts strings to add a given attribute + to the Universe (Issue #1092, PR #1186) + * The TPR parser populate the `moltypes` and `molnums` topology attributes; + the `moltype` and `molnum` selection keyword are added + (Issue #1555, PR #1578) + * use gridDataFormats >= 0.4.0 for new 'type' kwarg in + analysis.density.Density.export() to enable writing DX files + compatible with (buggy) PyMOL (#1725) + +Deprecations + * HydrogenBondAnalysis detect_hydrogens=heuristic is marked for deprecation in 1.0 + * timeseries keyword format is replaced by order. The format keyword is marked for deprecation in 1.0 + +Fixes + * Fixed analysis.psa.dist_mat_to_vec not returning int values (Issue #1507) + * Fixed triclinic PBC transform for a- and b- axes (Issue #1697) + * Fixed nuclinfo.tors() not converting delta (Issue #1572) + * Changed _calc_dihedral and Dihedral.value() to match IUPAC convention + (Issue #1565) + * Fixed _calc_dihedral returning negative angles as positive (Issue #1554) + * correctly read little-endian TRZ files on big-endian architectures (issue + #1424) + * Fixed type matching and inclusion compilation warnings for the + ENCORE analysis package (issue #1390) + * Fix extra deprecation warnings for instant segment and residue selectors + (Issue #1476) + * Accessing segments from a universe with an instant selector now issues a + deprecation warning as expected (Issue #1478) + * Fixed Angle.angle method return NaN values when angle was very close + to 180 degrees (Issue #1556) + * Fixed analysis.rms.RMSD failure with select != "all" (Issue #1487) + * Fixed analysis.rms.RMSD: group RMSD calculation does not + superimpose groupselections anymore (issue #720) + * XDR files now avoid offset recalculation on a rewind (PR #1667) + * Universe creation doesn't Matryoshka NamedStream anymore (PR #1669) + * Fixed triclinic unit cell distances for box edges (Issue #1475) + * Fixed analysis.rms.RMSD: selections are now applied to atomgroup, not to + atomgroup.universe + * Default filename argument for AlignTraj works again (Issue #1713) + * Fixed analysis.rms.RMSD failed when selection is unicode (PR #1710) + * Fixed analysis.align.AlignTraj failed when step > 1 (Issue #1714) + +Changes + * generate pairwise distance matrix, analysis.psa.PSAnalysis.D, by default + when analysis.psa.PSAnalysis.run_pairs_analysis is run (Issue #1507) + * remove deprecated TimeSeriesCollection + * remove deprecated analysis.align.rms_fit_trj + * remove deprecated analysis.contacts.ContactAnalysis + * remove deprecated analysis.contacts.ContactAnalysis1 + * remove deprecated analysis.hbonds.hbond_analysis 1-indexing + * remove deprecated analysis.rms `target` keyword from functions + * remove deprecated analysis.rms.RMSD `mass_weighted` keyword + * remove deprecated analysis.align `mass_weighted` keyword from classes + * remove deprecated analysis.psa `mass_weighted` keyword from classes + * use fast scipy.io.netcdf pure python implementation for reading of Amber + netcdf3 trajctories instead of netCDF4 but use netCDF4 for fast + writing (if available) or fall back to netcdf (see also Issue #506) + * libmdaxdr classes now accept more argument types for a write (PR #1442) + * libmdaxdr classes now raise EOFError when accessing another frame after + the end of the file. Used to raise IOError. + * Universe.load_new() now returns the universe itself instead of + tuple (filename_or_array, trajectory_type) (Issue #1613) + * docs: URLs to (www|docs).mdanalysis.org now link to SSL-encrypted site + (see issue MDAnalysis/MDAnalysis.github.io#61) + * attributes can not be assigned to AtomGroups (and similar objects) unless + they are part of the Universe topology (Issue #1092 PR #1186) + + +06/29/17 richardjgowers, rathann, jbarnoud, orbeckst, utkbansal + + * 0.16.2 + +Deprecations + * deprecated core.Timeseries module for 0.17.0 (Issue #1383) + * deprecated instant selectors for 1.0 (Issue #1377) + * deprecated the core.flag registry for 1.0 (Issue #782) + +Fixes + * fixed GROWriter truncating long resids from the wrong end (Issue #1395) + * Fixed dtype of numpy arrays to accomodate 32 bit architectures (Issue #1362) + * Groups are hashable on python 3 (Issue #1397) + + +Changes + * scipy and matplotlib are now required dependencies (Issue #1159) + +Testsuite + * Port to pytest - removed nose as a dependency (Issue #884) + + +06/03/17 utkbansal, kain88-de, xiki-tempula, kaplajon, wouterboomsma, + richardjgowers, Shtkddud123, QuantumEntangledAndy, orbeckst, + kaceyreidy + + * 0.16.1 + +Enhancements + * Universe now works with StringIO objects for topologies and trajectories. + * Residues with the same residue ids are not merged by default now + (apply to PDB, GRO) (Issue #1306) + * Improved print to screen format in waterdynamics module (using + ProgressMeter). + * PQRParser now treats insertion codes properly (Issue #1317) + * made online docs responsive with the Alabaster Sphinx theme (#378) + +Fixes + * In Universe.transfer_to_memory(): dt is now adjusted with step (Issue #1310) + * Various documentation sphinx errors (PR #1312) + * Bugfix in confdistmatrix.get_distance_matrix; now works on all trajectory types. + (issue #1324) + * Fixed bug "no molecules in water selection" in waterdynamics analysis + module. + * Fix hbond_analysis cannot deal with Universe where no two atoms are with 3A. + (PR #1325) + * Fix PDBParser docs for conect (issue #1246) + * Fixed bug where amber topology files would fail to load if number of atoms was + exactly divisible by number of atoms per line (issue #1331) + * Fixed incorrect handling of residue names with trailing numbers in + HydrogenBondAnalysis (issue #801) + * Fixed AnalysisBase class provides numerical start,stop,step values (PR #1340) + * Fixed PSFParser not creating multiple residues for identical resids in + different segments. (Issue #1347, PR #1348) + * Add the OC1 and OC2 from amber99sb-ildn to hydrogen bond acceptors (issue #1342) + * Fix RMSF run return value (PR #1354) + * Fixed documentation in pca (Issue #1378 PR #1379) + +Changes + * Enable various pylint warnings to increase python 3 compatibility + * Change Mathjax cdn (Issue #1313) + * Change mass_weight to weights for PSA analysis + * Move mass_weights deprecation to version 0.18 + * Docs moved to http://docs.mdanalysis.org (Issue #1315) + and made responsive (Alabaster theme with readable-sphinx CSS) + (Issue #378) + * speed improvements parsing PDB / PDBQT / PQR / XYZ coordinate reader (Issue #1308) + + +04/10/17 kain88-de, fiona-naughton, richardjgowers, tyler.je.reddy, jdetle + euhruska, orbeckst, rbrtdlg, jbarnoud, wouterboomsma, shanmbic, + dotsdl, manuel.nuno.melo, utkbansal, vedantrathore, shobhitagarwal1612, + xiki-tempula, kash1102, vedantrathore + + * 0.16.0 + +Enhancements + * Added 'filename' attribute to 'MemoryReader' + * GRO reader conforms to the reader API standard(#1196) + * Improved __str__ and __repr__ of 'GroupBase' class in + MDAnalysis.core.groups (addresses Issue #1223) + * Added dynamic selections (addresses Issues #175 and #1074). + * Added 'MemoryReader' class to allow manipulation of trajectory data + in-memory, which can provide substantial speed-ups to certain + calculations. + * Universe creation now takes an 'in_memory' option, which will + transfer the corresponding trajectory to memory. Likewise a new + 'Universe.transfer_to_memory()' method makes it possible to make + this transfer after construction of the universe + * Added 'in_memory' option to 'rms_fit_trj', which makes it possible + to do in-place (in-memory) alignment of trajectories. + * All classes derived from 'AnalysisBase' now display a ProgressMeter + with 'quiet=False' + * The 'run' method from all 'AnalysisBase' derived classes return the + class itself. + * Added boolean flag at lib.distances.USED_OPENMP to reveal if + OpenMP was used in compilation (Issue #883) + * Added Principal Component Analysis module for linear dimensionality + reduction. + * Added Auxiliary module for reading additional timeseries data alongside + trajectories (Issue #785) + * Added AnalysisFromFunction & analysis_class, see (Issue #946 and PR #950) + * Established the MDAnalysis.analysis.legacy module for unmaintained + analysis code (Issue #743) + * Added ProgressMeter to 'transfer_to_memory' function, to show progress + of loading trajectory to memory (Issue #1028 and PR #1055). + * Selecting atoms by resid now respects icodes if they were present. Ie + select_atoms('resid 163A') works! (Issue #839 PR #1066) + * Added ability to read MMTF format files (#907 PR #1069) + * Added MDAnalysis.fetch_mmtf function to download from PDB and create + Universe (#810 PR #1082) + * Added coordinates.null.NullWriter, which behaves like a Writer but + ignores all input; useful for suppressing output. + * Added random access support to GMSReader and TRJReader (#1081) + * Added atomgroup.center(weights, pbc) method to calculate the center + of a group given weights + * Universe anchors (for unpickling) now use a uuid (rather than filename) + to distinguish themselves by default. Can still use anchor_name kwarg to + control the anchor name manually. (PR #1125) + * Added groupby method to Group objects. (PR #1112) + * Added `singleframe` attribute to Writer API to exclude from known Writers + for a single frame (Issue #1199 PR #1201) + * Correct the display error of HydrogenBondAnalysis when start is not 0 or + step is not one. + * Groups (atomgroup, residuegroup, and segmentgroup) have more operators, + included set operators (Issue #726) + * Universes built with Merge now use the MemoryReader (Issue #1251) + * speed improvement for analysis.gnm.closeContactGNMAnalysis(..., + weights="size") by about 5x (partially Issue #1191) + +Fixes + * Trajectory slicing made completely Pythonic (Issue #918 PR #1195) + * Argument validation of dist_mat_to_vec is fixed (#597 PR #1183) + * Give correct error when the topology file format is not recognized (Issue #982) + * Give correct error when file doesn't exist/ has bad permissions (Issue #981) + * Improvement of analysis/waterdynamics module (Issue #935) + * Removed MDAnalysis.analysis.PDBToBinaryTraj (Issue #1035) + * MDAnalysis.analysis.distances.between() is no longer broken + * GROWriter resids now truncated properly (Issue #886) + * reading/writing lambda value in trr files (Issue #859) + * fix __iter__/next redundancy (Issue #869) + * SingleFrameReader now raises StopIteration instead of IOError on calling + next (Issue #869) + * Display of Deprecation warnings doesn't affect other modules anymore (Issue #754) + * Changed nframes to n_frames in analysis modules for consistency (Issue #890) + * fixed incompatibility with newer matplotlib in analysis.hole + * Fixed modules that improperly documented and/or used frame slicing + defaults (#914) + * Fixed same interRDF can be run twice (Issue #924) + * Support for TPR files produced by Gromacs-2016 (Issue #932) + * Fixed parsing PDB files with CONECT records to TER entries (Issue #936) + * Fixed parsing PDB files with single entry in CONECT record (Issue #937) + * Progress meters are now displayed as expected on jupyter notebooks + (Issue #927) + * Reset trajectory to 0 after sliced iteration (Issue #1031) + * Fixed rotaxis returning NaN if a=b (Issue #1045) + * Fixed align_principal_axis onto a principal axes (Issue #1045) + * Fixed NCDFWriter wrote velocities instead of forces if + convert_units=False was set: now correctly writes forces (PR #1113) + * Fixed warn about missing cython package in dev builds + * Fix align.rotation_matrix checks array shape equality (Issue #1152) + * Fixed strange error when writing a PDB with 0 atoms (Issue #1083 PR #1103) + * Fixed selections using operators backwards ('prop 10 > mass') and sensitivity + about whitespace around these (PR #1156 Issue #1011 #1009) + * Fixed PSA analysis is now using AlignTraj + * Fixed Principal Axes to order from highest to lowest eigenval (Issue #1162) + * Fixed analysis.density with soluteselection and notwithin_coordinates_factory + when using KDTree (Issue #1211) + * GRO files with greater than 99,999 residues now read correctly (Issue #728) + +Changes + * Started unifying the API of analysis classes (named internally + "Bauhaus" style; see Issue #719) + * Added protected variable _frame_index to to keep track of frame iteration + number in AnalysisBase + * Added new AlignTraj class for alignment. (Issue #845) + * Added new diffusionmap module for dimension reduction (Issue #857) + * Added new PCA module for dimension reduction (PR #896) + * Qcprot now takes N x 3 arrays instead of 3 x N arrays. This gives about a + 40% speed up. (PR #930) + * The ProgressMeter class now has a `dynamic` keyword argument. It is now + recommended to provide format strings using the new python format syntax, + the old %-based syntax is still available but will be deprecated. + (PR #944) + * Analysis.rms.RMSD now confirms to standard analysis API (Issue #893) + * Fragments in Universe.fragment are now sorted by the index of their first + atom. (Issue 1007) + * atoms.tranform/translate/rotate/rotateby return original atomgroup + (Issue #1010) + * atoms.translate/rotateby don't accept AtomGroup tuples as + parameters anymore (Issue #1025) + * atoms.rotate can be given center of rotation (Issue #1022) + * XTCFile and TRRFile only raise IOError now on error. + * Deprecate usage of MDAnalysis.core.AtomGroup + * get_writer_for() returns NullWriter when filename=None instead of + raising TypeError and filename is now a required arg instead of kwarg + * moved coordinates.base.ChainReader to coordinates.chain.ChainReader + * renamed private method ChainReader.get_flname() to ChainReader._get_filename() + * totaltime now considers the first frame to be at time 0 (Issue #1137) + * analysis.rms.RMSF now conforms to standard analysis API (PR #1136) + * analysis.rms/align function keyword `mass_weighted` is replaced + by generic `weights='mass'`. This new keyword allows to pass it an + arbitrary weights array as well. (PR #1136) + * Renamed various base classes for clarity. Iobase -> IOBase, + Reader -> ReaderBase, SingleFrameReader -> SingleFrameReaderBase, + Writer -> WriterBase, TopologyReader -> TopologyReaderBase, + SelectionWriter -> SelectionWriterBase (Issue #921) + * Selection writers do not have a 'wa' mode anymore, but they have a 'close' + method (Issue #1244) + * Remove deprecated PrimitivePDB* classes + * Remove deprecated `delta` keyword for ChainReader + * Remove deprecated permissive_pdb_reader flag + * Removed superfluous and confusing keywords `start` and `end` for resid + selection in analysis.helanal.helanal_main() and + analysis.helanal.helanal_trajectory() + * weights="size" parameter in analysis.gnm.closeContactGNMAnalysis to + replace MassWeight=True + * bump minimum numpy version to 1.10.4 + +Deprecations (Issue #599) + * Use of rms_fit_trj deprecated in favor of AlignTraj class (Issue #845) + * Moved analysis.x3dna to the analysis.legacy module (Issue #906) + * The keyword argument *quiet* is deprecated in favor of *verbose* + throughout the library (Issue #903) + * MassWeight=True parameter in analysis.gnm.closeContactGNMAnalysis + deprecated in favor of weights="size". + +Testsuite + * Make knownfailure work even without parentheses. + * Added a plugin to list the non-closed file handle (Issue #853, PR #874). + The plugin can be disabled with --no-open-files. + * The test_failure test can be made fail by setting the MDA_FAILURE_TEST + environment variable (PR #874) + * replaced XTC_HOLE test trajectory with more meaningful one MULTIPDB_HOLE + * install external packages on Travis (SETUP == full: HOLE, clustalw) + to test additional analysis code (Issue #898) + * removed usage of random numbers from tests (Issue #958) + * test_imports now always uses the correct source directory (Issue #939). + + +05/15/16 jandom, abhinavgupta94, orbeckst, kain88-de, hainm, jbarnoud, + dotsdl, richardjgowers, BartBruininks, jdetle, pedrishi, + fiona-naughton, jdetle + + * 0.15.0 + +Metadata + + * link download_url to GitHub releases so that Depsy recognizes + contributors (issue #749) + * a __version__ variable is now exposed; it is built by setup.py from the + AUTHORS file (Issue #784) + +API Changes + + * rmsd doesn't superimpose by default anymore. The superposition + is controlled by the 'superposition' keyword now. (see issue #562, #822) + +Enhancements + + * Add conda build scripts (Issue #608) + * Added read-only property giving Universe init kwargs (Issue #292) + * Added 'crdbox' as AMBER Trj format extension (Issue #846) + * Iteration and seeking in PDB files made faster (Issue #848) + +Fixes + * Fixed TypeError in PSAnalysis heatmap-dendrogram plotting (Issue #1018) + * ENT file format added to PDB Readers/Writers/Parsers (Issue #834) + * rmsd now returns proper value when given array of weights (Issue #814) + * change_release now finds number and dev (Issue #776) + * units.py now correctly prints errors for unknown units. + * test_shear_from_matrix doesn't fail for MKL builds anymore (Issue #757) + * HEADER and TITLE now appear just once in the PDB. (Issue #741) (PR #761) + * MOL2 files without substructure section can now be read (Issue #816) + * MOL2 files can be written without substructure section (Issue #816) + * GRO files with an incomplete set of velocities can now be read (Issue #820) + * Fixed Atom.position/velocity/force returning a view onto Timestep array + (Issue #755) + * PDB files can now read a CRYST entry if it happens before model headers + (Issue #849) + * Fixed HistoryReader returning 1 based frame indices (Issue #851) + +Changes + * Added zero_based indices for HBondsAnalysis. (Issue #807) + * Generalized contact analysis class `Contacts` added. (Issue #702) + * Removed Bio.PDBParser and sloppy structure builder and all of + MDAnalysis.coordinates.pdb (Issue #777) + * PDB parsers/readers/writers replaced by "permissive"/"primitive" + counterparts (formerly known as PrimitivePDBReader); the + 'permissive' keyword for Universe is now ignored and only the + native MDAnalysis PDBReader is being used (Issue #777) + * PDBReader only opens a single file handle in its lifetime, + previously opened & closed handle each frame (Issue #850) + +Deprecations (Issue #599) + * Use of PrimitivePDBReader/Writer/Parser deprecated in favor of PDBReader/ + Writer/Parser (Issue #777) + * Deprecated all `get_*` and `set_*` methods of Groups. + * Deprecation warnings for accessing atom attributes from Residue, + ResidueGroup, Segment, SegmentGroup. Will not be present or will + give per-level results. + * Deprecation warnings for accessing plural residue attributes from + Residue or Segment (will disappear), or from SegmentGroup (will give + per-Segment results). + * Deprecation warnings for accessing plural segment attributes from Segment + (will disappear). + * Deprecated Atom number, pos, centroid, universe setter + * Deprecated AtomGroup serials, write_selection + * Deprecated Residue name, id + * Deprecated Segment id, name + * Deprecated as_Universe function; not needed + * Deprecated ContactAnalysis and ContactAnalysis1 classes + +Testsuite + * metadata update: link download_url to GitHub releases so that + Depsy recognizes contributors (issue #749) and added + @richardjgowers as maintainer + * a __version__ variable is now exposed; it is built by setup.py from the + AUTHORS file (Issue #784) + * Removed all bare assert (Issue #724) + * added tempdir module + + +02/28/16 tyler.je.reddy, kain88-de, jbarnoud, richardjgowers, orbeckst + manuel.nuno.melo, Balasubra, Saxenauts, mattihappy + + * 0.14.0 + +API Changes + + * Offsets files for Gromacs trajectory formats have been changed to a numpy + style format '.npz'. Offsets files will be regenerated when you load a + xtc/trr trajectory again. (Issue #441) + * rotation_matrix now accepts array-likes as input + +Enhancement + + * XDR file seeking errors now report system errno. (PR #678) + * Offsets reading for xtc/trr files has been sped up. (Issue #441) + * select_atoms now implicitly ORs multiple values after a keyword for + many types of selections (Issue #345) + * Performance improvements for the PDBReader of about 10% + * LinearDensity analysis module added, which allows to compute linear mass + and charge density profiles along the three cartesian axes of the cell. + Works for orthorombic, fixed volume cells only. (Issue #670) + * Trajectories can now be sliced using a boolean array (Issue #725) + +Changes + + * xdrlib was rebranded libmdaxdr. (Issue #679) + * xdrlib has been ported to cython. (Issue #441) + * util.NamedStream no longer inherits from basestring (Issue #649) + * Short TRZ titles are striped from trailing spaces. A friendlier error + message is raised when the TRZ writer is asked to write a title longer + than 80 characters. (Issue #689) + * PDB doesn't save charge information anymore + * coordinates.core.get_writer_for uses the user defined format if provided + before trying to deduce the format from file extension. (Issue #712) + +Fixes + + * Syntax error corrected in psa.py (Issue #738) + * XDR file seeking and telling working again for large files (Issue #677). + * ContactAnalysis1 run method now starts at frame index 0 by default (Issue #624) + * Fixed PrimitivePDBWriter alignment of the atom name. (Issue #639 and #647) + * The 'atom' selection keyword returns an empty selection rather than an + error when no atoms are are found. (Issue #644) + * nucleic selection will now detect nucleic residue names suffixed with 3 or 5 + (Issue #461) + * Fixed Reader returning all frames with stop in slice was 0 (Issue #672) + * Fixed NCDFReader not reading dt (Issue #676) + * Fixed PDB-Topology read bonds for atom ids larger then 10000 (Issue #693) + * Fixed Type Error in qcprot.pyx when no rotation can be fond (Issue #705) + * Fixed cyzone selection failing in orthogonal systems (Issue #710) + * Fixed Error in calculation of average grid density (Issue #716) + * Fixed indexing an AtomGroup using a list of bools now working (Issue #729) + +Testsuite + * Added the cleanup plugin (--with-mda_cleanup) to delete offset files + after tests have run (Issue 669) + * Made memleak testing python 3 compliant (Issue 662). It may be a moot + point since python 3.4 now cleverly deals with leaks. + + +01/16/16 tyler.je.reddy, kain88-de, richardjgowers, manuel.nuno.melo, + orbeckst, Balasubra + + * 0.13.0 + +API Changes + + * ChainReader `delta` keyword deprecated in favor of `dt`. (Issue #522) + * XYZWriter can now be used as a container format for different protein models + as well as a normal trajectory. If `n_atoms` is None (default) MDAnalysis + assumes that it is used as a container and won't give a warning if the + number of atoms differs between frames. + * GROWriter.fmt strings updated to use format style (Issue #494) + * removed MDAnalysis.lib.parallel.distances; use the new backend="OpenMP" + keyword for the functions in MDAnalysis.lib.distances (Issue #530) + +Enhancement + + * ChainReader now reports times properly summed over sub-readers (Issue #522) + * GRO file reading approximately 50% faster for large files (Issue #212) + * GRO file writing now will write velocities where possible (Issue #494) + * Added bonded selection (Issue #362) + * Spherical layer and spherical zone selections now much faster (Issue #362) + * new keyword "backend" for accelerated functions in MDAnalysis.lib.distances + to select "serial" or "OpenMP"-enabled versions of the code; the default + is "serial" so old code will behave as before (see Issue #530) + * Lammps data file parsing improved greatly. Should now support all files, + and triclinic geometry. (Issue #139) + * Added analysis.polymer, currently with PersistenceLength tool (Issue #460) + * Added analysis.rdf, with InterRDF tool. (Issue #460) + * Made Reader.check_slice_indices a public method (Issue #604) + * analysis.helanal.helanal_main() now returns results as dict + * Added keyword to update selection every frame in density calculation (Issue #584) + * New keywords start, stop, step for density.density_from_Universe() + to slice a trajectory. + * MOL2Reader now reads molecule and substructure into ts.data + * All subclasses of ProtoReader, Writer and TopologyReader are automatically + added to the MDAnalysis directory of I/O (Issue #431) + +Changes + + * built html doc files are no longer version controlled (Issue #491) + * The lib._distances and lib_distances_openmp libraries now have a + OPENMP_ENABLED boolean flag which indicates if openmp was used in + compilation. (Issue #530) + * analysis.helanal.helanal_trajectory() and helanal_main() now use a + logger at level INFO to output all their computed values instead + of printing to stdout + * default offset for ProgressMeter was changed from 0 to 1 (to match + the change from 1- to 0-based ts.frame counting) + * removed superfluous analysis.density.density_from_trajectory(); + use density_from_Universe(TOPOL, TRAJ) instead. + * MOL2Writer.write now only writes a single frame (Issue #521) + +Fixes + + * Fixed select_atoms requiring a trajectory be loaded (Issue #270) + * AtomGroup timesteps no longer cached (Issue #606) + * GROWriter now truncates atom numbers over 99999 (Issue #550) + * AMBER netcdf writer now correctly uses float32 precision (Issue #518) + * Fixed a numpy incompatibility in `analysis.leaflet.LeafletFinder`. + (Issue #533) + * Cleaned up `MDAnalysis.Writer` docs regarding `dt` usage. (Issue #522) + * Fixed setup-time dependency on numpy that broke pip installs. (Issue #479) + * Fixed unpickling errors due to lingering dead universes. (Issue #487) + * Fixed analysis.density modules requiring the defunct `skip` attribute + on trajectories. (Issue #489) + * ten2eleven camelcase fixer now deals with centerOfMass (Issue #470) + * ten2eleven will now convert numatoms to n_atoms argument + for writer() functions (Issue #470) + * Fixed non-compliant Amber NCDFWriter (Issue #488) + * Fixed many Timestep methods failing when positions weren't present + (Issue #512) + * Fixed PointSelection using KDTree (Issue #362) + * Fixed GROParser getting tripped up by some file (Issue #548) + * Fixed writing dx files from analysis.density.density_from_Universe() + (Issue #544 and #410) + * Fixed base.Reader._check_slice_indices not liking numpy ints + (Issue #604) + * Fixed broken analysis.helanal.helanal_trajectory() and + helanal_main() + * Fixed lib.util.greedy_splitext() (now returns full path) + * Fixed MOL2Reader not reading molecule and substructure on init + (Issue #521) + * Fixed MOL2Writer rereading frames when writing them (Issue #521) + * Fixed PDBWriter not writing occupancies from atoms (Issue #620) + +Testsuite + * removed ez_setup.py + + +10/08/15 + + * 0.12.1 kain88-de, orbeckst, richardjgowers + +API Changes + +Enhancements + +Changes + +Fixes + * Fixed OpenMP detection on Linux/OSX #459 + * Fixed reading of LAMMPS trajectory times: default unit ought + to be fs and not ps + * Fixed setting of dt for DCDReader (and LAMMPS DCDReader) with + keyword argument Universe(..., dt=
) + * Fixed a bug in topology.core.guess_atom_element where a + single digit atom name would raise an IndexError (#476) + * Fixed numpy -> np in LeafletFinder + +10/04/15 kain88-de, richardjgowers, dotsdl, sseyler, orbeckst, jbarnoud + + * 0.12.0 + +API Changes + + * PrimitivePDBReader now imports occupancies into the `TimeStep` object. + (Issue #396) + * Atoms without a Universe now return NoDataError instead of + AttributeError + * AtomGroups of zero length or containing Atoms with no Universe raise + a NoDataError when trying to access Universe + * Atoms now keep a strong reference to Universe, meaning they + do not become orphaned when the Universe goes out of scope (Issue #297) + +Enhancements + + * `Atom` and `AtomGroup` now expose occupancy value as `occupancy` and + `occupancies` properties (Issue #396) + * XYZReader now supports frame indexing (Issue #428) + * Reader objects can now be sliced using lists and arrays of indices + (Issue #437) + * `PSAnalysis` now includes Hausdorff pairs analysis and associated nearest + neighbor plotting method (Issue #438) + * New class `PSAPair` added to MDAnalysis.analysis.psa for handling + Hausdorff pairs analysis (Issue #438) + * `PSAnalysis` can now generate annotated heat maps (Issue #438) + * Added three new distance functions to MDAnalysis.analysis.psa (Issue #438) + * Additional getters added to `Path` and `PSAnalysis` (Issue #438) + * MSD matrix function now globally available in MDAnalysis.analysis.psa + (Issue #438) + * Function for obtaining coordinate axes from numpy trajectories now + globally available in MDAnalysis.analysis.psa (Issue #438) + * TPR parser updated for Gromacs 5.0.x and 5.1 (Issue #456) + * Setup.py now looks for some configuration values in a config file. Each + config option can also be changed via environment variables if they are + prefixed with 'MDA_'. Current options are 'use_cython', 'ues_openmp', 'debug_cflags' + +Changes + * An AtomGroup with 0 atoms now yields an `IndexError` on call to + `AtomGroup.write` (Issue #434) + * `PSA` changed to `PSAnalysis` to reduce namespace clutter (Issue #438) + * To build with debug-symbols use 'MDA_DEBUG_CFLAGS' instead of 'MDA_DEBUG_CFLAGS' + +Fixes + * Fixed minor issue in lib.mdamath.make_whole where if all bonds + were correctly sized, it wouldn't notice that multiple fragments + had been given. (Issue #445) + * Fixed issue with PDB Topology parsing where if serials went + over 100k, they wrapped to '***', breaking the parser (Issue #446) + * Fixed AtomGroup.sequence() (Issue #451) + * Fixed PrimitivePDBParser not detecting when resids had looped over + 10,000. The original resid is stored as Atom.resnum (Issue #454) + * Fixed TPR topology parser to treat all bonded interactions available in + Gromacs 5.1 (Issue #222 and #352, pull request #463). + +09/07/15 tyler.je.reddy, richardjgowers, alejob, orbeckst, dotsdl, + manuel.nuno.melo, cyanezstange, khuston, ivirshup, kain88-de, + gormanstock + + * 0.11.0 + + This release brings large changes to many parts of the API and might + break many existing scripts. For a full guide on the API changes, + please see: + + https://github.com/MDAnalysis/mdanalysis/wiki/MDAnalysis-0.11-unifying-release-user-guide + + Migrating old scripts has been made easier with the introduction of + the ten2eleven tool which is part of the package. + Details on how to use this are available at: + + https://github.com/MDAnalysis/mdanalysis/wiki/Migrating-MDAnalysis-code-with-ten2eleven.py + + API Changes + + * Changed AtomGroup counting methods to properties with different + names: numberOfAtoms() to n_atoms, numberOfResidues() to + n_residues, numberOfSegments() --> n_segments (Issue #376) + * Changed trajectory reader numframes to n_frames (Issue #376) + * Changed Timestep.numatoms to n_atoms (Issue #376) + * Deprecated the use of the 'fullgroup' selection keyword (Issue #268) + * Changed atom.number attribute to atom.index (Issue #372) + * Changed many AtomGroup methods to properties. These are: indices, + masses, charges, names, types, radii, resids, resnames, resnums, + segids (Issue #372) + * Timestep can now only init using an integer argument (which + represents the number of atoms) (Issue #250) + * Added from_timestep and from_coordinates construction methods + to base.Timestep (Issue #250) + * Removed KDTree and CoordinateNeighbor from MDAnalaysis. If you + want to search in cartesian coordinates directly for nighboring + points use the BioPython KDTree or scikit-learn Neighbors module. + The AtomNeighborSearch class has been ported to use the BioPython + KDTree and is now located in MDAnalaysis.lib.NeighborSearch. + MDAnalaysis.KDTree still exists in this version so load the + NeighborSearch module but is deprecated and will be removed in + 1.0. (Issue #383) + * Moved MDAnalysis.core.transformations to + MDAnalysis.lib.transformations (Issue #287) + * Moved MDAnalysis.core.util to MDAnalysis.lib.util (Issue #287) + * Moved MDAnalysis.core.log to MDAnalysis.lib.log (Issue #287) + * Moved MDAnalysis.core.units to MDAnalysis.units (Issue #287) + * Moved MDAnalysis.core.distances to MDAnalysis.lib.distances + (Issue #287) + * Moved MDAnalysis.core.parallel to MDAnalysis.lib.parallel + (Issue #287) + * Moved norm, normal, angle, stp and dihedral from lib.util to + lib.mdamath (Issue #287) + * AtomGroup.bond .angle .dihedral and .improper now return the + corresponding TopologyObject rather than performing the calculation + (Issue #373) + * All TopologyObjects now have a "value" method to evaluate them + (Issue #373) + * TopologyGroup now has a "values" methods to evaluate all contained + bonds (Issue #373) + * MDAnalysis.lib.distances.calc_torsions renamed to calc_dihedrals + (Issue #373) + * TopologyGroup.selectBonds renamed to select_bonds (Issue #389) + * deprecated camelCase AtomGroup methods in favour of underscore_style + (Issue #389) + * deprecate lib.distances.applyPBC in favour of apply_PBC (Issue #389) + * AtomGroup.res[names,ids,nums] and AtomGroup.segids now give arrays + of equal size to AtomGroup (Issue #385) + * ResidueGroup.segids now gives arrays of equal size to ResidueGroup + (Issue #385) + * AtomGroup setters `set_` now plural for consistency with + property names (Issue #385) + * DCDReader no longer supports the "skip" keyword. Use slicing + on reader iteration to achieve same affect. (Issue #350) + * All Readers have a default "dt" of 1.0 ps. This applies also to + single frame readers, these would previously raise an error on + accessing dt. (Issue #350) + * NCDF Reader no longer has a default skip_timestep of 1 (Issue #350) + + Enhancements + + * Added the 'global' selection keyword (Issue #268) + * Added Jmol selection writer (Issue #356) + * Added reading of Hoomd XML files (Issue #333) + These can only act as topology information for now + * Tests can now detect memleaks on a per-test basis (Issue #323) + * AtomGroups can now be pickled/unpickled (Issue #293) + * Universes can have a __del__ method (not actually added) without + leaking (Issue #297) + * Added reading of DL_Poly format CONFIG and HISTORY files, these can + both act as both Topology and Coordinate information (Issue #298) + * Timestep objects now have __eq__ method (Issue #294) + * coordinates.base.Timestep now can handle velocities and forces + (Issue #294) + * Waterdynamics analysis module added, including five analysis + classes: Hydrogen Bond Lifetimes, Water Orientational Relaxation, + Angular Distribution, Mean Square Displacement and Survival + Probability. Documentation and test are included. (Issue #300) + * RMSF class added to rms analysis module + * ProgressMeter now outputs every *interval* number of ``update`` + calls (Issue #313) + * Created lib.mdamath for common mathematical functions. (Issue #287) + * All Timesteps have the has_positions has_velocities and has_forces + boolean flags (Issue #213) + * Timesteps can now allocate velocities and forces if they weren't + originally created with these through the use of the has_ flags. + (Issue #213) + * Timesteps now store 'dt' and 'time_offset' if passed to them by + Reader to calculate time attribute (Issues #306 and #307) + * MDAnalysis.selection: can also be written to a NamedStream + * Added function lib.mdamath.make_whole to "unbreak" molecules + over periodic boundaries. (Issue #355) + * Added triclinic_dimensions to Timestep, returns representation of + unit cell as triclinic vectors (Issue #276) + * Added setter to bfactors property (Issue #372) + * Added AtomGroup altLocs and serials properties with setters. + (Issue #372) + * MDAnalysis.core.AtomGroup.Merge now copies across bonding + information (Issue #249) + + Changes + + * numpy >= 1.5 required + * A ProtoReader class intermediate between IObase and Reader was added + so specific Readers can be subclassed without __del__ (the + ChainReader and SingleFrameReader), thus preventing memleaks + (Issue #312). + * Atoms (and all container classes thereof) are now bound to Universes + only via weakrefs. If Universes are not explicitly kept in scope + Atoms will become orphaned. (Issue #297) + * Removed FormatError, now replaced by ValueError (Issue #294) + * base.Reader now defines __iter__ and __iter__ removed from many + Readers (now use base.Reader implementation) (Issue #350) + * Timestep._x _y and _z are now read only (Issue #213) + * moved MDAnalysis.selections.base.get_writer() to + MDAnalysis.selections.get_writer() to break a circular import. This + should not affect any code because + MDAnalysis.selections.get_writer() already existed. + * distances.contact_matrix now treats the particle distance with + itself as a contact for sparse matrices and numpy arrays. The + progress reporting for sparse calculations has been removed. + (Issue #375) + * TopologyObjects and TopologyGroup moved to core.topologyobjects + module (Issue #373) + * Consolidated coordinates.guess_format and topology.guess_format to + lib.util.guess_format (Issue #336) + + Fixes + + * All Writers now refer to time between written Timesteps as "dt", + was previously "delta" in some Writers. (Issue #206) + * Topology files can now be compressed (Issue #336) + * Fixed PDB Parser and Reader requiring occupancy field (Issue #396) + * Amber TRJ and NCDF Reader & Writers now use 'dt' instead of 'delta' + to refer to time elapsed between timesteps. (Issue #350 and #206) + * Fixed TPRParser considering LJ 1..4 exclusions as bonds (Issue #351) + * ChainReaders no longer cause memory leak (Issue #312) + * analysis.hbonds.HydrogenBondAnalysis performs a sanity check for + static selections (Issue #296) + * Fixed TRZWriter failing when passed a non TRZTimestep (Issue #302) + * relative imports are now banned in unit testing modules + (Issue #189) + * Fixed bug and added DivisionByZero exception in + analysis/waterdynamics.py in SurvivalProbability. (Issue #327) + * Fixed parsing of PDB header data for PrimitivePDBReader (Issue #332) + * Fixed contact_matrix handles periodic boundary conditions correctly + for sparse matrices. (Issue #375) + * Fixed analysis.hole not using CPOINT (Issue #384) + * Fixed XTC/TRR .dt rewinding the trajectory (Issue #407) + * Fixed TopologyGroup.from_indices not guessing topology object class + (Issue #409) + * Fixed TopologyGroup.__contains__ failing if different instance of + same bond was queried. (Issue #409) + +Testsuite + * Overhaul of the test subsystem. + * Tests now implement nose plugins, as a submodule. (Issue 331) + Available plugins are: memleak testing, stderr capturing (for quieter + test runs), and proper knownfailure implementation (Issue 338). + + +06/01/15 richardjgowers, caio s. souza, manuel.nuno.melo, orbeckst, + sseyler + * 0.10.0 + + Enhancements + + * Improved performance of PDB Reading. Up to 3x faster. (Issue #212) + * Added the 'same ... as' selection keyword (Issue #217) + * Added guess_bonds keyword argument to Universe creation. This will attempt to + guess all topology information on Universe creation. (Issue #245) + * Added guess_bonds method to AtomGroup. (Issue #245) + * All TopologyObjects (Bond, Angle etc) now have is_guessed attribute + * TopologyGroup now has alternate constructor method, .from_indices() + * Added TopologyObject.indices property + * Amber netCDF4 Reader will now read Forces (Issue #257) + * Amber netCDF4 Writer will now write Velocities and Forces + * Added Amber coordinate/restart file reader (Issue #262) + * Structural superpositions (MDAnalysis.analysis.align) can work + with partial matches of atoms. + * new path similarity analysis module MDAnalysis.analysis.psa + * AtomGroup and TopologyGroup can now be indexed by numpy boolean arrays + works identically to numpy masks. (Issue #282) + + Changes + + * TopologyGroup can now have zero length, and will evaluate to False + when empty. + * Renamed TopologyGroup.dump_contents to "to_indices" + * Deprecated 'bonds' keyword from Universe and replaced with 'guess_bonds' + * PrimitivePDBReader now requires the numatoms keyword + * Structural superpositions (MDAnalysis.analysis.align) use partial + matches of atoms by default (use strict=True for old behavior) + * Function rmsd() was removed from MDAnalysis.analysis.align name + space and should be accessed as MDAnalysis.analysis.rms.rmsd() + + Fixes + + * bynum selections now work from AtomGroup instances (Issue #275) + * Cylinder selections now work from AtomGroup instances and honor + PBC (Issue #274) + * NetCDFWriter previously always wrote velocities/forces if found + in timestep, rather than following how the Writer was created. + + +04/20/15 tyler.je.reddy, richardjgowers, orbeckst + * 0.9.2 + + Enhancements + + * Can now set velocity from Atom object. (Issue 221) + * Atom object now has force attribute for getting/setting forces (requires a + trajectory with forces) (Issue 221) + * Added wrap method. Wrap allows the centers of groups of atoms to be + moved within the primary unit cell without breaking up the group. (Issue 190) + + Changes + + * The MDAnalysis project moved from Google Code to GitHub: the new + website is http://www.mdanalysis.org and the new source code + repository is at https://github.com/MDAnalysis/mdanalysis + * "applications" were removed from the mdanalysis source code + repository and now exist as independent repositories under + https://github.com/MDAnalysis/ + * Using a non-existent atom name as an instant selector now raises + AttributeError instead of SelectionError (Issue 220) + + Fixes + + * trajectory objects are now properly closed in unit tests (Issue 256) + + +03/27/15 manuel.nuno.melo, richardjgowers, comconadin + * 0.9.1 + + Enhancements + + * XYZ file format can be used without an associated topology file. + * GAMESS output files can be read as trajectories for calculations of + type ``SURFACE'' and ``OPTIMIZE'' (work wit both GAMESS-US and Firefly) + + Changes + + * removed undocumented MDAnalysis.builder module + + Fixes + + * TRR coordinate access via _y and _z now works properly (Issue 224) + +03/15/15 richardjgowers, tyler.je.reddy, orbeckst, e.jjordan12, zhuyi.xue, + bala.biophysics, dotsdl, sebastien.buchoux + * 0.9.0 + + Enhancements + + * offsets for XTC and TRR trajectories now stored and retrieved + automatically; improves init times for large trajectories (Issue 208) + * docs now use secure mathjax CDN (Issue 182) + * minor improvements to helanal docstring + * Support for reading altloc records in PDB files + * Cap proteins with ACE and NMA terminal caps + * MOL2 read and write support + * 2D streamplot code no longer uses deprecated matplotlib.nxutils module + * core.distances.calc_angles and calc_torsions now accept an optional box + argument to consider periodic boundary conditions in their calculation + (Issue 172) + * TopologyGroup angles and torsions methods both have a pbc flag, (default + False) to toggle consideration of periodic boundaries + * XYZWriter (write simple XYZ trajectories) + * TRZReader upgrades, seeking and numframes faster + * PQRWriter (write PQR files) + * HydrogenBond analysis: new keyword distance_type to alternatively + look at the distance between heavy atoms (Issue 185) + * TopologyGroup/TopologyDict system overhauled. (Issue 194) + * TopologyObject class created, Bonds/Angles/etc nicer to work with. + * Topology information is now loaded lazily into Universe, can be forced to + load all with u.load_topology(). All topology information is now stored in + .bonds .angles .torsions and .impropers attributes. + * Added support for improper torsions. + * AtomGroup now has .bonds .angles .torsions and .impropers attributes which + retrieve relevant TopologyGroups + * Increased performance of topology.core.guess_bonds greatly + * Added topology.core.guess_angles guess_torsions and guess_improper_torsions + which given accurate bond information can calculate the rest of the + topology info. + * Universe topology information is now settable after initialisation using lists of indices + such as those provided by the guess_* functions. + * Added LAMMPS data parser for topology files with the .data suffix. Can also + read single frame coordinate & velocity information from these files. + (Issue 139) + * Added Fragments. Fragments are continuously bonded groups of atoms. + These are lazily built, and accessible via the Atom.fragment and AtomGroup.fragments + attributes. + (Issue 190) + * Added ability to remove items from Universe cache with _clear_caches. + * Added ability to define dimensions from AtomGroup, Universe and Timestep for most + formats. + (Issue 203) + * streamIO: many readers can directly use gzip- or bzip2 compressed + files or a stream (such as cStringIO.StringIO) wrapped in + util.NamedStream; currently supported: PDB, PSF, CRD, PQR, PDBQT, + GRO, MOL2, XYZ + * Added hydrogen bonding time autocorrelation analysis module + (analysis.hbonds.HydrogenBondAutoCorrel) + * Added energy units to core.units (Issue 214) + * New AtomGroup.split() method to produce a list of AtomGroups for each atom, + residue, or segment + * New AtomGroup.sequence() method to extract a protein sequence. + * Can pass subclasses of Reader and Topology reader to Universe init to allow + custom readers to be defined. (Issue 198) + * Added Atom.bonded_atoms property. This returns an AtomGroup of the Atoms + that are bonded to a given Atom. (Issue 219) + * Added atom selections to ContactAnalysis (Issue 169) + + + Changes + + * DCD unitcell format changed: MDAnalysis will now read it as [A, + gamma, B, beta, alpha, C] instead of [A, alpha, B, beta, gamma, + C]. The new CHARMM box vector unitcell format is heuristically guessed. + (see Issue 187 for a full discussion and implications). + * __getstate__() and __setstate__() raise an NotImplementedError for + Universe and AtomGroup; before they were silently accepted on + pickling and a cryptic "TypeError: AtomGroup is not callable" was + raised (see also Issue 173 for detailed explanation) + * XTC/TRR reader raise IOError with errorcode EIO (instead of + ENODATA) when the last frame is reached and EBADF (instead of + EFAULT) for any other issues (partially addresses Issue 150, + Windows compatibility) + * Universe.bonds now returns a TopologyGroup not a list. TopologyGroup can be + iterated over; list(universe.bonds) should provide a fix to legacy code. + * PQR reader will now set segid to a chainID if found in the PQR + file (previously, the segid would always be set to 'SYSTEM'). + * util.anyopen() only returns the stream and not the tuple (stream, + filename) anymore; it tries to set stream.name instead + * topology reading now done via classes (similar to trajectory reading) + rather than functions. + (Issue 210) + + + Fixes + + * fixed DCD triclinic unit cell reading and writing (although the new CHARMM + format with the box matrix is not supported for writing) (Issue 187) + ATTENTION: Support for triclinic boxes from DCDs was BROKEN prior to this fix! + * fixed creation of residues and segments in Merge() + * resolves Issue 188 regarding Helanal Finish Argument + * fixed Issue 184 (TPR files with double precision) + * fixed Issue 199 (FutureWarning in pyqcprot) + + +04/01/14 orbeckst, jandom, zhuyi.xue, xdeupi, tyler.je.reddy, + manuel.nuno.melo, danny.parton, sebastien.buchoux, denniej0, + rmcgibbo, richardjgowers, lennardvanderfeltz, bernardin.alejandro + matthieu.chavent + + * 0.8.1 + + (Note: 0.8.0 contains a subset of these changes; 0.8.0 is deprecated) + + Enhancements + + * Named selections can now be passed to selectAtoms (Issue 174) + * (experimental) MDAnalysis.visualization namespace added along with + 2D/3D streamplot modules & documentation for them + * TRR file handling is now fully aware of missing coordinate/velocity/force + information when reading and writing frames. + * MDAnalysis.analysis.contacts.ContactAnalysis1 run() method + now allows trajectory slicing (Issue 161) + * Merge AtomGroups into a new Universe (Issue 157) + * TPR parser (currently limited to versions 58, 73 and 83 of the + Gromacs TPR format (Gromacs 4.0 to 4.6.1), see Issue 2) + * fast XTC seeking (Issue 127) + * changing resid (set_resid()) or segid (set_segid()) changes the + topology and lists of resids/segids can be assigned to + groups of objects (AtomGroup, ResidueGroup) + * helanal: additional output of local bend and unit twist angles + (Issue 133) + * added support for reading DMS files (DESRES molecular structure) + * bond connectivity information can be guessed from a PDB file if + the bond=True keyword is set in Universe (Issue 23) + * MDAnalysis.analysis.rms.RMSD: calculation of additional RMSDs + * Plugin to generate nucleic acid helicoidal parameters using X3DNA; + (must install working version 2.1 of X3DNA independently) + * can use advanced slicing (with arbitrary lists or arrays) at all + levels of the hierarchy (Issue 148) + * coordinate readers and writers can be used as context managers + with the 'with' statement + * Can load multiple trajectories as Universe(topology, traj2, traj2, + ...) in addition to providing all trajectories as a list, + i.e. Universe(topology, [traj1, traj2, ...]) + * added support for YASP and IBIsCO formats (.trz) (Issue 152) + * new methods for AtomGroup: packIntoBox([inplace=True]) + * added non-standard "extended" PDB format (XPDB) that reads + five-digit residue numbers + * util.convert_aa_code() recognizes non-standard residue names such + as HSE, GLUH, GLH, ... + * added new geometrics selections: sphlayer, sphzone, cylayer, cyzone + * added TopologyDict and TopologyGroup classes for bond analysis + * added calc_bonds, calc_angles and calc_torsions cython functions to + core.distances for quickly calculating bond information + * added applyPBC(coords, box) function to core.distances to move + coordinates to within the primary unit cell + * many AtomGroup methods now support 'pbc' flag to move atoms to within + primary unitcell before calculation. This behaviour can also be + toggled using the core.flags['use_pbc'] flag (Issue 156) + * MDAnalysis.analysis.rms.rmsd(): new center keyword so that one can + immediately calculate the minimum rmsd of two rigid-body superimposed + structures + + Changes + + * libxdrfile2 is now used instead of libxdrfile. libxdrfile2 is distributed + under GPLv2 + * dropped support for Python 2.5; minimum requirement is Python 2.6 + (Issue 130) + * almost all methods of AtomGroup return NumPy arrays + * slicing and indexing of AtomGroup, Residue, ResidueGroup, Segment, + SegmentGroup will now always return an appropriate object and + never a simple list + * removed Timeseries.principleAxis (probably was never working) + * dependent on Biopython >= 1.59 (Issue 147) + * Hydrogen bond analysis defaults to updating selection 1 and 2 for + every timestep in order to avoid unexpected behavior (Issue 138) + * AtomGroup.velocities is now a (managed) attribute and not a method + anymore: replace 'ag.velocities()' with 'ag.velocities' + * changed the name of the flag 'convert_gromacs_lengths' to 'convert_lengths' + + Fixes + + * asUniverse now also accepts any instance that inherits from + MDAnalysis.Universe (Issue 176) + * fixed XDR writer incorrect use of delta parameter (Issue 154) + * fixed incorrect computation of distances in serial and parallel + distance_array() with PBC (Issue 151) + * fixed Issue 129 (hole.py module pipe/file closure) + * fixed array comparison bug in MDAnalysis.analysis.helanal + and various enhancements to the helanal module + * fixed MDAnalysis.analysis.rms.RMSD.run(): gave incorrect results + if ref_frame != 0 + * alignto() now checks that the two selections describe the same + atoms (fixes Issue 143) + * slicing of ResidueGroup will now produce a ResidueGroup, and + slicing of a SegmentGroup will produce a SegmentGroup, not a list + as before (fixes Issue 135) + * detect OpenMP-capable compiler during setup (Issue 145), which should allow + users of Mac OS X 10.7 and 10.8 to build MDAnalysis using Apple's + C-compiler (clang) (Issue 142) although they will not get a parallel + version of distance_array. + * PDB with blank lines gave IndexError (Issue 158) + * fixed AtomGroup.ts Timestep instance not containing all available + information (Issue 163) + * fixed Timestep copy method returning a base Timestep rather than + appropriate format (Issue 164) + +12/24/12 danny.parton, jandom, orbeckst, jjlights03, jphillips, naveen.michaudagrawal, andy.somogyi, sebastien.buchoux + + * 0.7.7 + + Enhancements + + * multithreaded distance_array() (Issue 80, experimental); see the + new core.parallel.distance module + * MDAnalysis.analysis.rms for simple RMSD analysis + * format of input coordinates can be set as (filename, format) + tuples (Issue 76) + * new AtomGroup.asphericity() and AtomGroup.shapeParameter() + methods to compute shape descriptors. + * access to forces (AtomGroup.forces with get_forces() and set_forces(); + the default unit for force is kJ/(mol*A) and it is automatically + converted from/to native). Currently, only the TRR Reader/Writer + support forces. + * all element masses + * logger reports current version when starting + + Fixes + + * fixed Issue 115 (GROReader now uses fixed-column width format to read GRO files) + * fixed Issue 116 (Failed to write AMBER netcdf trajectory from AtomGroup) + * fixed Issue 117 (could not write Gromacs XTC/TRR from AMBER netcdf) + * fixed Issue 120 (DCDWriter: wrote wrong unitcell information) + * fixed Issue 121 (PSFParser would fail with IndexError for files without SEGID) + * Issue 122 (made installation of netCDF4 library optional, which + means that users of the AMBER netcdf Reader/Writer will have to + manually install the library and its dependencies netcdf and HDF5, + see https://code.google.com/p/mdanalysis/wiki/netcdf) + +06/30/12 orbeckst, joshua.adelman, andy.somogyi, tyler.je.reddy, lukas.grossar, denniej0, danny.parton + + * 0.7.6 + + Enhancements + + * GRO file velocities may be accessed as AtomGroup.velocities() + or Atom.velocity (Issue 102) + * PrimitivePDBReader can be sliced + * AMBER NetCDF (binary trajectory) reader and writer, supporting + coordinates and velocities; requires netcdf4-python (Issue 109) + * additional attributes and methods for AtomGroup to consolidate + the interface to the Timestep: attribute 'positions' and + 'get_positions()' can be used instead of the 'coordinates()' + method. get/set methods for both positions and velocities. + * almost all Readers now support some form of slicing; unsupported + slicing operations will raise a TypeError + * additional analysis for Nucleic Acid order parameters + (MDAnalysis.analysis.nuclinfo) + * AMBER TOPParser now able to do both amber10 and amber12 formats + (Issue 100) + + Changes + + * selectAtoms: updated *nucleic* and *nucleicxstal* selection definition + *nucleic* includes the two-letter NA code that follows gromacs topolgy + format and *nucleicxstal* allows for the one-letter NA code that follows + the PDB Database code. + * HydrogenBondAnalysis: multiple enhancements and changes (Issue 103) + - many new analysis functions (see docs) + - run() does not return the results anymore; results are simply + stored as attribute timeseries (similar to other analysis tools) + - only write per-frame debugging messages to the logfile when the + new verbose keyword is set to True + - more reliable detection of hydrogens bonded to heavy atoms + - remove duplicate hydrogen bonds from the output + * removed CHO and EAM (formyl and ethanol termini of gA in CHARMM) + from the set of residues recognized as protein (collision with + commonly used CHO for cholesterol) + * PrimitivePDBWriter: special segid SYSTEM is translated to empty + chainID + * In order to write multi frame PDB files, the multiframe=True + keyword must be supplied or use the MultiPDBWriter + * empty AtomGroup can be constructed or can result from a selection + without matches; it does *not* raise NoDataError anymore (Issue 12) + * all single frame readers denote the first (and only) frame as + frame number 1 (i.e. ts.frame == 1); it used to be 0 but 1 is + consistent with the way this is is handled with real trajectories + * requires Biopython >= 1.51 (fixes for Issue 112 and Issue 113) + * Atom.type is always stored as a string. + + Fixes + + * HydrogenBondAnalysis: NH1 and NH2 were not recognized + * GROWriter: enforce maximum resname and atomname length of 5 chars + * Universe.load_new() raised a NameError (thanks to JiyongPark.77) + * fixed Issue 105 (trajectory snapshots could not be written to PDB) + * fixed Issue 107 (NAMD/VMD space delimited PSF files can be + autodetected and read); important when using CGENFF atom types + (thanks to JiyongPark.77 for initial patch) + * fixed Issue 101 (could not write single frame to trr file) + * fixed: permissive=True flag was ignored in Universe and hence the + PrimitivePDBReader was always selected even if the Biopython one + was desired + * fixed Issue 112 (used removed Biopython constructs in + MDAnalysis.analysis.align.fasta2select; thanks to francesco.oteri + for a test case and fix) + * fixed failing 'type' selection for topology formats that read an + atom type as an integer (such as the AMBER parser) + * fixed Issue 111 (NAN in pycpqrot and RMSD calculation) + * fixed Issue 113 (replaced outdated Biopython to call ClustalW) + + +02/16/12 sebastien.buchoux, orbeckst + + * 0.7.5.1 + +Fixes + * added: missing files (Issue 95) + * removed: unused delaunay-related files + +Testsuite + * test package is now called 'MDAnalysisTests' + * tests AND data are now bundled together in MDAnalysisTests + * MDAnalysis and MDAnalysisTests packages MUST have the same + release number (they need to stay in sync); MDAnalysisTests + will NOT run if a release mismatch is detected + * see Issue #87 and + https://github.com/MDAnalysis/mdanalysis/wiki/UnitTests + + +02/11/12 orbeckst, sebastien.buchoux, jandom, hallben, lukasgrossar + + * 0.7.5 + + MDAnalysis can now be found on PyPI, allowing simple installation + from the internet. Metadata was added to setup to facilitate PyPI + upload and pages on the wiki describe how to do this. + In addition, Debian/Ubuntu packages are also available. + + Note that in order to run UnitTests one needs the separate package + MDAnalysisTests (also release 0.7.5). + + Enhancements + + * new method OtherWriter() for trajectory readers to generate a + writer for any format that has been initialised for the common + basic values + * new simple Residue.chi1_selection() selection + * new distances.between() function (EXPERIMENTAL) + * support LAMMPS non-standard DCD files (Issue 84; EXPERIMENTAL) + * read and write multi-frame PDB files (Issue 77; EXPERIMENTAL) + * extend the PDB parsing, support CONECT and REMARK entries + * new GNM-based trajectory analysis module (Issue 90) + * Read/Write velocities with TRR, new attribute Atom.velocity + and AtomGroup.velocities() (Issue 91) + * hydrogen bond analysis detects a range of GLYCAM atom types + and utils.convert_aa_code will also accept GLYCAM-style residue + names (Issue 92) + * XYZ reader: can set timestep (Issue 92) + + Changes + + * The UnitTests are now integrated with the separate test data in a + separate Python package named MDAnalysisTests; to run the tests + for 0.7.5 one will need MDAnalysisTests-0.7.5 (Issue 87). + * install a range of analysis dependencies right away: networkx, + biopython, GridDataFormats (usually all painless); leave scipy and + matplotlib to the user and the local package manager + * When writing a trajectory and converting units, effectively a copy + of the timestep is made and the in-memory timestep is not + altered. In this way, analysis after writing a frame will still + see the coordinates in MDAnalysis units and not converted units. + + Fixes + + * analysis.align.rms_fit_traj(): can output fitted trajectory to any + supported format not just the input format + * fixed ProgressMeter: default format string was broken + * fixed: ResidueGroup and SegmentGroup indexing (did not work with + numpy.int64 etc) and now raise TypeError if it does not fit + * fixed HydrogenBondingAnalysis backbone donor list: had C but + should have been O (this was supposed to be fixed with r849 in + 0.7.4 but a typo crept in). NOTE: analysis might have produced + partially wrong results. + * fixed: dihedral() and other methods using core.util.angle() sometimes + returned nan instead of +pi or -pi + * fixed: writing a trajectory from chained CRD files gave garbage + coordinates (Issue 81) + * fixed: support files for docs are now in included in the source + distribution (thanks to Sebastien Buchoux; Issue 82) + * fixed: core.util.iterable() would wrongly detect unicode strings + as "iterable"; this lead the Reader autodections and then the + ChainReader fail with "Runtime Error: Maximum recursion depth + exceeded" for single filenames provided as a unicode string. + * fixed: HBond analysis pickling of tables (Issue 92) + + +07/09/11 orbeckst, dcaplan, jandom + + * 0.7.4 + + Enhancements + + * Universe() got new keywords topology_format and format to allow + the user to specify the file formats instead of deriving it from the + extensions (does not work with "chained" files at the moment); thanks to + Michael Lerner for the suggestion + * Chain trajectory reader allows frame indexing. + * Issue 75: additional donors and acceptors keywords for H-bond analysis + * structural alignment functions alignto() and rms_fit_traj() can also take a + list of selection strings in order to define atom groups with fixed atom + order and alignto() preserves the order of supplied AtomGroups for the + special select values "all" and None. + * new set_* methods for AtomGroup allows changing of Atom attributes + for all members of the group (such as the segid) (EXPERIMENTAL) + * new Atom and Residue attribute resnum that can be used to store + the canonical PDB residue number (EXPERIMENTAL) + + Fixes + + * fixed Issue 74 (bug in AMBER topology parser which would show up for + certain numbers of input lines; thanks to htaoyu1) + * fix for Issue 48 (sparse contact_matrix in distances.py was slow when + written in pure python; optimized in c code using scipy.weave) + * HydrogenBondingAnalysis: donor atom name CO --> O (proper backbone + oxygen); without the fix one misses most of the backbone H-bonds + * alignto() and rms_fit_trj(): order of mobile and reference + selection was reversed when supplied as a tuple (sel1, sel2) + + Changes + + * replaced analysis.util.progress_meter() with class core.log.ProgressMeter + + * Issue 28: split off test data trajectories and structures from + MDAnalaysis/tests/data into separate package MDAnalysisTestData, which is + required to run the UnitTests from release 0.7.4 onwards. Numbering matches + the earliest MDAnalysis release for which the data is needed. Any later + releases of MDAnalysis will also use these test data unless a + MDAnalysisTestData package with a higher release number is available. + + Testsuite + + * Split off test data trajectories and structures from + MDAnalaysis/tests/data into separate package. (Issue 28) + * Numbering matches the earliest MDAnalysis release for which the data is + needed. Any later releases of MDAnalysis will also use these test data + unless a MDAnalysisTestData package with a higher release number is + available. + + +05/22/11 orbeckst, jandom, Benjamin Hall, Paul Rigor, dcaplan, + Christian Beckstein (logo), denniej0 + + * 0.7.3 + + Removals + + * completely removed the old core.rms_fitting module (and thus we also do not + depend on the LAPACK library anymore, which should simplify installation); + use the functions accessible through MDAnalysis.analysis.align (which are + faster and use QCPROT) + + Enhancements + + * PDBQT (autodock) format added (reading and writing of single frames) + * new attributes universe.trajectory.frame and universe.trajectory.frame: + report the current frame number and time (e.g. in ps) of the current frame + of the trajectory + * new attribute Timestep.volume (unit cell volume) + * new special methods of AtomGroup: bond(), angle(), improper() in + addition to the calculation of dihedral() + * HELANAL helix analysis in MDAnalysis.analysis.helanal; Python + implementation of helanal.f from + http://www.ccrnp.ncifcrf.gov/users/kumarsan/HELANAL/helanal.html (Benjamin + Hall, used under GPL v2+) + * hydrogen bonds analysis in MDAnalysis.analysis.hbonds + * MDAnalysis.analysis.distances.dist() for calculating distances between + matching atoms in two groups + * MDAnalysis logo by Christian Beckstein (and a reformatting of the + online docs to match the logo theme) + + Change of behaviour + + * alignto() and rms_fit_trj(): changed keyword 'select' default from + 'backbone' to 'all' + + Fixes + + * fixed alignto() (raised KeyError) + * fixed Issue 57 (check for illegal coordinates when writing PDB and GRO) + * use spaces everywhere and no TABs and tell emacs and vim to keep it that + way (Issue 69) + * fixed Issue 70 (problems with instant atom selections) + + +03/31/11 orbeckst, dcaplan, naveen.michaudagrawal + * 0.7.2 + * NOTE: minimum Python version required is 2.5 (since 0.6.3) + + Enhancements + + * loading from a PDB sets segid to the chain id if it exists + * PrimitivePDBWriter uses first letter of segid as PDB chain id + * aliased segment.name to segment.id + * new method AtomGroup.bbox() that returns the orthorhombic bounding box + * enhancements of the analysis.density module (build density + from B-factors) + * PQR radius is now an attribute of Atom; AtomGroup.radii() returns the + radii as a NumPy array; internally B-factor has also become an + attribute of each Atom. + * recognise many more OPLS/AA and Amber residue names as "protein" + * recognise more atom masses (taken from CHARMM27 and Gromacs) and + atom types (from CHARMM, Amber, OPLS, GROMOS) and moved + masses and types into new module topology.tables; the type recognition + is still incomplete but can be easily enhanced in tables + * analysis.align: convenience functions rotation_matrix() and alignto() + * TrajectoryReader gained Writer() method which returns an appropriate + TrajectoryWriter instance that can be used for processing this + trajectory (enhancement of the Trajectory API); if no Writer is known + then a NotImplementedError is raised + * doc improvements + + Fixes + + * installation: removed dependency on Cython; developer should + use setup_developer.py instead of setup.py (Issue 66) + * Fixed a problem with the strict PDBReader: raised exception when the + pdb did not contain a segid + * Support for PDBs with 4 character resnames and segID output when + writing (Issue 63) --- makes the (default) PrimitivePDBReader/Writer + more suitable for NAMD/CHARMM but breaks strict PDB standard. If + you need full PDB reading capabilities, use the strict PDB reader + [i.e. use Universe(..., permissive=False)] + * fixed bug in (experimental) phi and psi selections + * fixed bugs in reading of unit cells (Issue 60, Issue 61, Issue 34) + * universe.trajectory.delta returns the full precision dt value + instead of a value rounded to 4 decimals (Issue 64) + * fixed bug in DCDWriter (XTC->DCD was broken, Issue 59) + +02/08/11 orbeckst, denniej0, jandom, tyler.je.reddy, Joshua Adelman + * 0.7.1 release + * online documentation + * AMBER topology and trj capabilities (netcdf not yet available) + * PQR file reading support + * new analysis.contacts.ContactAnalysis1 class that supports a + native contact analysis between arbitrary groups + * new examples (e.g. peptide helix clustering in a membrane) + * fixed Issue 58 (align.rms_fit_trj; fix reported by Joshua Adelman) + * new analysis module 'density': creation and analysis of volume data + * fast RMSD aligner based on Douglas Theobald's QCP method for + calculating the minimum RMSD between two structures and + determining the optimal least-squares rotation matrix; + replaces the slower previous code (implemented by Joshua Adelman from + his pyqcprot package https://github.com/synapticarbors/pyqcprot); + deprecated core.rms_fitting.rms_rotation_matrix() and scheduled for + removal in 0.8 + * uses cython instead of pyrex + +11/05/10 orbeckst, denniej0, tyler.je.reddy, danny.parton, joseph.goose + * major release 0.7.0 + (includes changes that can BREAK BACKWARDS COMPATIBILITY) + * Removed ALL DEPRECATED code: + - AtomGroup.principleAxes (Issue 33) + - DCD.DCDReader.dcd_header() and DCD.DCDWriter.dcd_header() + (use _dcd_header()) + - Universe.dcd (and Universe.xtc, Universe.trr...) --- from + now on only Universe.trajectory is supported. + WILL BREAK LEGACY CODE! + - removed the following packages from top-level MDAnalysis + name space: + - AtomGroup, Selection: import them from MDAnalysis.core if + really needed (e.g. 'import MDAnalysis.core.AtomGroup') + - distances, rms_fitting: 'import MDAnalysis.analysis.distances' + or 'import MDAnalysis.analysis.align.rms_fitting' (the + actual modules still live in MDAnalysis.core but they + might get moved in the future and bundled with + transformations) + - 'from MDAnalysis import *' will only get ['Timeseries', + 'Universe', 'asUniverse', 'Writer', 'collection'] + - removed copy flag from distance_array and self_distance_array: + setting it to False would always give wrong results so there was + no good reason keeping it around + * whitespace is no longer required around parentheses for + selectAtoms strings but the old syntax with white space + still works (Issue 43) + * improved trajectory writing + - MDAnalysis.Writer() factory function that provides an + appropriate writer for the desired file format + - Writer.write() accepts a Timestep, a Universe, or a + arbitrary AtomGroup (e.g. from a selection); this is much + more flexible than Writer.write_next_timestep() + * New attributes for trajectory readers: dt (time between + frames) and totaltime (length of the trajectory) + * Changes to AtomGroup + - Indexing is made consistent with the way lists behave: + 1. indexing with integers returns a single Atom + 2. slicing always returns a new AtomGroup + 3. advanced slicing with a list or array returns a new + AtomGroup (NEW, fixes Issue 36) + - AtomGroup coordinates can be manipulated (translate(), + rotate() and rotateby() methods; when appropriate, these methods + can take AtomGroups or arrays to determine coordinates) + - new attributes 'residues' and 'segments' for AtomGroup to give + access to the list of residue/segment objects of the group + - new exception 'NoDataError'; raised when creation of an empty + AtomGroup is attempted (see also Issue 12) + - consistent representation of the Segment > Residue > Atom + hierarchy: all classes related to AtomGroup have the + attributes 'atoms', 'residues', 'segments' which provide + access to groups of the corresponding objects + * improvements to Residue, ResidueGroup and Segment classes + - documented accessing residues from Segment as + Segment.r; resid is 1-based -- BREAKS OLD CODE + that relied on this being 0-based + - added SegmentGroup class + - can write from Residue, ResidueGroup and Segment (Issue 46) + - residue name attribute of a Segment now consistently + returns a ResidueGroup (Issue 47) -- MIGHT BREAK OLD CODE + - added documentation and examples in the doc strings + - new special dihedral angle selections defined for Residue + class to simplify analysis of backbone torsions (experimental) + * new contact_matrix method for calculating contacts + (Issue 30); for large (N > ~10000) coordinate arrays + automatically switches to a method using a sparse matrix (slower) + * more example scripts (e.g. for membrane analysis, trajectory writing, + coordinate transformations) + * CRDReader added (fixes Issue 40 ) ... it will work for both + standard and extended formats: NO special flags needed. + * CRDWriter will now write extended crd files: NO special flags needed. + * By default, PDB files are read with the PrimitivePDBReader and not + the Bio.PDB reader anymore because the latter can drop atoms when + they have the same name in a residue (which happens for systems + generated from MD simulations) The PrimitivePDBReader copes just fine + with those cases (but does not handle esoteric PDB features such as + alternative atoms and insertion codes that are not needed for + handling MD simulation data). + - The default behaviour of MDAnalysis can be set through the flag + MDAnalysis.core.flag['permissive_pdb_reader']. The default is True. + - One can always manually select the PDB reader by providing the + permissive keyword to Universe; e.g. Universe(...,permissive=False) + will read the input file with the Bio.PDB reader. This might be + useful when processing true Protein Databank PDB files. + * fixed Issue 51 (distance_array() did not properly check its + input and wrong results could be returned if the input was a + float64 and a float32 array) + +09/19/10 orbeckst + * quick-fix release 0.6.4.1 + * fixed import issue with python 2.5 (Issue 41) + +09/16/10 orbeckst, danny.parton + * release 0.6.4 + * GRO writer added + * fixed XTC writer (Issue 38) + * convert box representations (Issue 37) + * primitive PDB parser added (slightly faster and ignores + correctness of resids, atomnames etc but reads CRYST1 into unitcell) + * Universe gained the 'permissive' flag to switch on the + primitive PDB parser/reader + * Simple 'chained reader' which enables a Universe to + transparently read a list of trajectory files (Issue 39). + * Additional methods for AtomGroup: numberOfResidues(), resids(), resnames() + * new bilayer analysis script for membrane composition on a + per-leaflet basis (examples/membrane-composition.py); also + renamed examples/leaflet.py to membrane-leaflets.py + +07/08/10 orbeckst, denniej0, danny.parton, philipwfowler + * 0.6.3 release + * minimum requirement is python 2.4 (using with_statement in the + analysis module and we have not tested on 2.3 in a while) + * analysis modules (MDAnalysis.analysis): + - lipid bilayer leaflet detection + - native contact analysis ("q1-q2") + - rms-fitting based on sequence alignment + * write selections for other codes from AtomGroups (VMD, pymol, CHARMM, + Gromacs ndx) + * gro reader (Issue 31) + * better API for loading a topology and a coordinate file in Universe() + * trajectory reader: DCDReader can reverse trajectory with negative + step increment; XTC/TRRReader can do simple (forward) slices by doing + (slow!) sequential iteration + * deprecated principleAxes() and introduced principalAxes() with less + confusing return values (Issue 33). + * fixed wrong unitcell dimensions for XTC/TRR (Issue 34) + * added basic XYZ reader with compression support (Issue 35) + * PDB reader guesses masses (unknown elements are set to 0) + * installation requires Biopython (www.biopython.org) + +05/28/10 orbeckst, denniej0 + * 0.6.2 release + * removed a number of imports from the top level (such as rms_fitting); + this might break some scripts that still rely on the layout that was + used for 0.5.x (which is now officially declared deprecated) + * defined trajectory API + * deprecated DCD.dcd_header --> DCD._dcd_header + * XTC and TRR compute numframes by iterating through trajectory (slow!) + * introduced units: base units are ps (time) and Angstrom (length); see core.flags + * XTC and TRR automatically convert between native Gromacs units (ps, nm) and + base units (uses core.flags['convert_gromacs_lengths'] = True) + * more test cases + * *really* FIXED Issue 16 (can easy_install from tar file) + * FIXED a bug in AtomGroup.principalAxes() + * added dependency information to setup.py (numpy and + biopython by default; nose for tests) + +04/30/10 orbeckst + + * 0.6.1 release + * can build a simple Universe from a PDB file (FIXES Issue 11) + * can read Gromacs XTC and TRR files (FIXES Issue 1) but no + Timeseries or Collections yet for those formats + * removed Universe.load_new_dcd() and Universe.load_new_pdb() + --- use the generic Universe.load_new() (MIGHT BREAK OLD CODE) + * removed deprecated Universe._dcd attribute (MIGHT BREAK OLD CODE) + * FIXED bug in PDB.PDBWriter and CRD.CRDWriter + * use SloppyPDB in order to cope with large PDB files + * core.distances.self_distance_array() is now behaving the + same way as distance_array() + * defined Trajectory API (see MDAnalysis/coordinates/__init__.py) + * renamed _dcdtest to dcdtimeseries (will not affect old code) + * unit tests added (still need more test cases) + +03/31/10 orbeckst, denniej0 + * 0.6.0 release + * added KDTree and Neighbour searching code from Biopython for + faster distance selections: used for AROUND selections; + POINT is using distance matrix by default as this is + faster. This can be configured with core.flags + * core.flags infrastructure to tweak behaviour at run time + * updated LICENSE file with Biopython License + * some selections for nucleic acids + * completely reorganized directory structure to make + enhancements easier to incorporate + * FIXED (partial): Issue 18 (Timeseries from a universe.segID + selection, reported by lordnapi) + * FIXED: Issue 19 (Timeseries collections were broken, + reported by Jiyong) + * can write single frames as pdb or crd (AtomGroup gained the + write() method) + * some selections for nucleic acids + * completely reorganized directory structure to make + enhancements easier to incorporate + * FIXED: Issue 19 (Timeseries collections were broken) + * improved installation + - EasyInstall (setuptools) support (FIXED Issue 16) + - better instructions in INSTALL + - slightly better handling of the configuration of the fast + linear algebra libs via the setup.cfg file + +08/23/08 naveen, orbeckst + * 0.5.1 release + * primitive PDB writer (only works if coordinates were read from a pdb) + * B-factor property (detailed implementation subject to change) + * periodic flag for PointSelection + * new correl series: orientation vector for 3-site molecules + (to calculate the water dipole moment of SPC or TIP3P) + * distance.distance_array() bug fixed (see doc string) + * updated LICENSE file UIUC Open Source License + +01/29/08 orbeckst + * prepared 0.5.0 release. Includes previously disabled + distance code, PDB reader, incomplete XTC reader (code by + Benjamin Hall), and marginally updated documentation & + licenses + +11/12/07 naveen + * prepared for release outside lab diff --git a/package/MDAnalysis/analysis/polymer.py b/package/MDAnalysis/analysis/polymer.py index 95d881f86b5..a1fd0f8978d 100644 --- a/package/MDAnalysis/analysis/polymer.py +++ b/package/MDAnalysis/analysis/polymer.py @@ -268,8 +268,7 @@ def plot(self, ax=None): """ import matplotlib.pyplot as plt if ax is None: - plt.figure() - ax = plt.subplot() + fig, ax = plt.subplots() ax.plot(self.x, self.results, 'ro', label='Result') ax.plot(self.x, self.fit, label='Fit') ax.set_xlabel(r'x') From 7c1f1f7a7ef86282fc21b0a5862bb6f6d3a5e103 Mon Sep 17 00:00:00 2001 From: ss62171 Date: Sat, 21 Mar 2020 04:00:11 +0530 Subject: [PATCH 7/7] CHANGELOG updated --- package/CHANGELOG | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/package/CHANGELOG b/package/CHANGELOG index 36b7b4973fc..3cd34f4b38f 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -16,11 +16,21 @@ The rules for this file: mm/dd/yy richardjgowers, kain88-de, lilyminium, p-j-smith, bdice, joaomcteixeira, PicoCentauri, davidercruz, jbarnoud, RMeli, IAlibay, mtiberti, CCook96, Yuan-Yu, xiki-tempula, HTian1997, Iv-Hristov, hmacdope, AnshulAngaria, - ss62171 + ss62171, Luthaf, yuxuanzhuang, abhishandy, mlnance, shfrz, orbeckst, + wvandertoorn * 0.21.0 Fixes + * Updated tests to have explicit fixtures (Issue #2618) + * XDR offsets now read from trajectory if offsets file read-in fails on + IOError (Issue #1893, PR #2611) + * Fixed the deprecation warning from `collections` library in `flatten_dict` + (Issue #2605) + * Fixed test for the `save_paths` and `load` methods of :class:`PSAnalysis` + (Issue #2593) + * Fixes outdated :class:`TRJReader` documentation on random frame access + (Issue #2398) * Fixed mda.Merge for Universes without coordinates (Issue #2470)(PR #2580) * PCA(align=True) now correctly aligns the trajectory and computes the correct means and covariance matrix (Issue #2561) @@ -30,7 +40,7 @@ Fixes * Handle exception when PDBWriter is trying to remove an invalid StringIO (Issue #2512) * Clarifies density_from_Universe docs and adds user warning (Issue #2372) - * Fix upstream deprecation of `matplotlib.axis.Tick` attributes in + * Fix upstream deprecation of `matplotlib.axis.Tick` attributes in `MDAnalysis.analysis.psa` * PDBWriter now uses first character of segid as ChainID (Issue #2224) * Adds a more detailed warning when attempting to read chamber-style parm7 @@ -38,7 +48,7 @@ Fixes * ClusterCollection.get_ids now returns correctly (Issue #2464) * Removes files for stubs mainly introduced in 0.11.0 (Issue #2443) * Removes support for reading AMBER NetCDF files with `cell_angle` units set - to `degrees` instead of the convention agreed `degree` (Issue #2327). + to `degrees` instead of the convention agreed `degree` (Issue #2327). * Removes the MassWeight option from gnm (PR #2479). * AtomGroup.guess_bonds now uses periodic boundary information when available (Issue #2350) @@ -60,8 +70,13 @@ Fixes match TPRParser. (PR #2408) * Added parmed to setup.py * Fixed example docs for polymer persistence length (#2582) + * Fixed HydrogenBondAnalysis to return atom indices rather than atom ids (PR #2572). + Fixed the check for bond information in the _get_dh_pairs method (Issue #2396). + * Added missing selection module to leaflet.py (Issue #2612) Enhancements + * Added new density.DensityAnalysis (Issue #2502) + * Added ability to use Chemfiles as a trajectory reader backend (PR #1862) * New analysis.hole2 module for HOLE interfacing. Contains a function (hole) for running HOLE on singular PDB files and class (HoleAnalysis) for trajectories (PR #2523) @@ -94,9 +109,15 @@ Enhancements * Added ParmEdParser, ParmEdReader and ParmEdConverter to convert between a parmed.Structure and MDAnalysis Universe (PR #2404) * Improve the distance search in water bridge analysis with capped_distance (PR #2480) + * Added weights_groupselections option in RMSD for mapping custom weights + to groupselections (PR #2610, Issue #2429) * PersistenceLength.plot() now create new axes if current axes not provided (Issue #2590) Changes + * Removed `details` from `ClusteringMethod`s (Issue #2575, PR #2620) + * Removed deprecated :meth:`PersistenceLength.perform_fit` (Issue #2596) + * Changed :meth:`PSAnalysis.generate_paths` keywords `store` and `filename` + defaults to `False` and `None` (Issue #2593) * Removed `format` keyword from :meth:`MemoryReader.timeseries` (Issue #1453, #2443) * Deprecated :class:`LAMMPSDataConverter` has now been removed (Issue #2564) @@ -108,15 +129,15 @@ Changes Segment.r1, Universe.s4AKE). Use select_atoms instead (Issue #1377) * Calling Universe() now raises a TypeError advising you to use Universe.empty. Universe.empty() now no longer has n_atoms=0 as default. (Issue #2527) - * deprecated `start`, `stop`, and `step` keywords have been removed from `__init__` - in :class:`AnalysisBase`. These should now be called in :meth:`AnalysisBase.run` + * deprecated `start`, `stop`, and `step` keywords have been removed from `__init__` + in :class:`AnalysisBase`. These should now be called in :meth:`AnalysisBase.run` (Issue #1463) * Standardize `select` keyword by removing `selection`, `atomselection` and `ref_select` (Issue #2461, Issue #2530) * Removes support for setting `start`/`stop`/`step` trajecotry slicing keywords on :class:`HOLEtraj` construction. Also removes undocumented support for passing :class:`HOLE` parameters to :meth:`HOLEtraj.run` - (Issue #2513). + (Issue #2513). * Removes the `nproc` keyword from :class:`Waterdynamics.HydrogenBondLifetimes` as the multiprocessing functionality did not work in some cases(Issues #2511). @@ -145,6 +166,9 @@ Changes Deprecations * analysis.hole is deprecated in 1.0 (remove in 2.0) * analysis.hbonds.HydrogenBondAnalysis is deprecated in 1.0 (remove in 2.0) + * analysis.density.density_from_Universe() (remove in 2.0) + * analysis.density.notwithin_coordinates_factory() (remove in 2.0) + * analysis.density.density_from_PDB and BfactorDensityCreator (remove in 2.0) 09/05/19 IAlibay, richardjgowers