1# -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8 -*-
2======================
3 MDAnalysis CHANGELOG
4======================
5
6The rules for this file:
7  * entries are sorted newest-first.
8  * summarize sets of changes - don't reproduce every git log comment here.
9  * don't ever delete anything.
10  * keep the format consistent (79 char width, M/D/Y date format) and do not
11    use tabs but use spaces for formatting
12  * accompany each entry with github issue/PR number (Issue #xyz)
13  * release numbers follow "Semantic Versioning" http://semver.org
14
15------------------------------------------------------------------------------
1611/06/18 richardjgowers
17  * 0.19.2
18
19Changes
20  * Added Windows support
21
2211/05/18 orbeckst, PicoCentauri, richardjgowers, zemanj
23  * 0.19.1
24
25Fixes
26   * limit output of Chainreader __repr__ (#2109)
27   * added missing docs for lib.pkdtree (#2104)
28   * Added sphinx markup for FrameIterator (#2106)
29   * fixed error for residues and segments containing 0 atoms (#1999)
30   * fixed numpy deprecation warnings (#2122, #2123)
31   * Fixed reading PDB files with DOS line ending (#2128)
32
33Deprecations
34   * Default ``filename`` directory of align.AlignTraj is deprecated and
35     will change in 1.0 to the current directory.
36
3710/09/18 tylerjereddy, richardjgowers, palnabarun, orbeckst, kain88-de, zemanj,
38         VOD555, davidercruz, jbarnoud, ayushsuhane, hfmull, micaela-matta,
39         sebastien.buchoux, arm61, p-j-smith, IAlibay
40
41  * 0.19.0
42
43Enhancements
44  * Added bond/angle/dihedral reading in PARM7 TOPParser (PR #2052)
45  * Replaced multiple apply (_apply_distmat, _apply_kdtree)
46    methods in distance based selections with
47    lib.distances.capped_distance for automatic selection of
48    distance evaluation method. (PR #2035)
49  * Modified analysis.rdf.InterRDF to use lib.distances.capped_distance
50    to handle rdf calculations for large systems. (PR #2013)
51  * Added return_distances argument in lib.distances.capped_distances
52    to evaluate and return distances only when required. Modified
53    the optimization rules in lib.distances._determine_method for
54    faster computations. (PR #2041)
55  * Added method search_tree in lib.pkdtree to find all the pairs between
56    two kdtrees. (PR #2041)
57  * Added a wrapper of lib.nsgrid in lib.distances.self_capped_distance
58    and lib.distances.capped_distanceto automatically chose the fastest
59    method for distance based calculations. (PR #2008)
60  * Added Grid search functionality in lib.nsgrid for faster distance based
61    calculations. (PR #2008)
62  * Modified around selections to work with KDTree and periodic boundary
63    conditions.  Should reduce memory usage (#974 PR #2022)
64  * Modified topology.guessers.guess_bonds to automatically select the
65    fastest method for guessing bonds using
66    lib.distance.self_capped_distance (PR # 2006)
67  * Added lib.distances.self_capped_distance to internally select the
68    optimized method for distance evaluations of coordinates with itself. (PR # 2006)
69  * Added augment functionality to create relevant images of particles
70    in the vicinity of central cell to handle periodic boundary
71    conditions (PR #1977)
72  * Added lib.distances.capped_distance function to quickly calculate all distances
73    up to a given maximum distance (PR #1941)
74  * Added a rotation coordinate transformation (PR #1937)
75  * Added a box centering trajectory transformation (PR #1946)
76  * Added a on-the-fly trajectory transformations API and a coordinate translation
77    function (Issue #786)
78  * Added various duecredit stubs
79  * Import time reduced by a factor two (PR #1881)
80  * Added compound kwarg to center, centroid, center_of_geometry, center_of_mass (PR #1903)
81  * Added rdf.InterRDF_s to calculate site-specific pair distribution
82    functions (PR #1815)
83  * Increased performance of (repeated) calls to AtomGroup.pack_into_box()
84    (PR #1922)
85  * Added boolean property *Group.isunique (PR #1922)
86  * Added *Group.copy() methods returning an identical copy of the respective
87    group (PR #1922)
88  * Use a faster function to deduplicate indices (PR #1951)
89  * Calculations in *Group.center() are performed in double precision (#PR1936)
90  * Functions in lib.distances accept coordinate arrays of arbitrary dtype
91    (PR #1936)
92  * Added pbc kwarg to Bond/Angle/Dihedral/Improper object value method,
93    default True. (Issue #1938)
94  * ChainReader can correctly handle continuous trajectories split into multiple files,
95    generated with gromacs -noappend (PR #1728)
96  * MDAnalysis.lib.mdamath now supports triclinic boxes and rewrote in Cython (PR #1965)
97  * AtomGroup.write can write a trajectory of selected frames (Issue #1037)
98  * Added dihedrals.py with Dihedral, Ramachandran, and Janin classes to
99    analysis module (PR #1997, PR #2033)
100  * Added the analysis.data module for reference data used in analysis (PR #2033)
101  * Added analysis.dihedrals with Ramachandran class to analysis module (PR #1997)
102  * Added augment functionality to create relevant images of particles
103  * Most functions in `MDanalysis.lib.distances` previously only accepting
104    arrays of coordinates now also accept single coordinates as input (PR #2048,
105    Issues #1262 #1938)
106  * Performance improvements to make_whole (PR #1965)
107  * Performance improvements to fragment finding (PR #2028)
108  * Added user-defined boxes in density code (PR #2005)
109  * MemoryReader now can accept velocities and forces (PR #2080)
110  * Universe.transfer_to_memory now copies dimensions, velocities and forces
111    (where possible) (Issue #1041 PR #2080)
112
113Fixes
114  * Rewind in the SingleFrameReader now reads the frame from the file (Issue #1929)
115  * Fixed order of indices in Angle/Dihedral/Improper repr
116  * coordinates.memory.MemoryReader now takes np.ndarray only (Issue #1685)
117  * Silenced warning when duecredit is not installed (Issue #1872)
118  * Fixed HBondAnalysis not considering PBC for distances (Issue #1878)
119  * Adding new TopologyAttrs with values defined always coerces this into
120    a numpy array (Issue #1876)
121  * Groups passed to select_atoms() are now type checked (Issue #1852)
122  * Fixed inconsistent handling of groups with/without duplicates in
123    pack_into_box() (Issue #1911)
124  * Fixed format of MODEL number in PDB file writing (Issue #1950)
125  * PDBWriter now properly sets start value
126  * Introduced compatibility for pbd files hybrid36 format encoding (Issue #1897)
127  * Zero length TopologyGroup now return proper shape array via to_indices
128    (Issue #1974)
129  * Added periodic boundary box support to the Tinker file reader (Issue #2001)
130  * Modifying coordinates by assignation is consistently persistent when using
131    the memory reader (Issue #2018)
132  * Allow import of WaterBridgeAnalysis from analysis.hbonds (#2064)
133  * Fixed SphericalLayer and SphericalZone selections with pbc=True.  Previously
134    these shifted all atoms to inside the primary unit cell when calculating the
135    center of the reference group (Issue #1795)
136  * PCA analysis now uses start frame as reference frame rather than 0th frame
137    (PR #2055)
138  * Fixed trajectory iteration from a MDAnalysis.Universe.empty (#2076)
139  * Fixed copies MemoryReader not linking to the underlying coordinate array
140    on initial Timestep (Issue #2081 PR #2080)
141
142Changes
143  * TopologyAttrs are now statically typed (Issue #1876)
144  * updated meta data for new PyPi (#1837)
145  * AtomGroup.atoms, ResidueGroup.residues, and SegmentGroup.segments now return
146    themselves instead of a new object to increase performance (PR #1922)
147  * *Group.unique now returns a new object only if the respective group contains
148    duplicates. Otherwise, the group itself is returned. Repeated access of
149    *Group.unique will always return the same object unless the group is
150    updated or modified. (PR #1922)
151  * SurvivalProbability does not dilute SP anymore when the reference frame (t0)
152    cannot find any molecules in the first place. (PR #1995)
153  * The TPR parser reads SETTLE constraints as bonds. (Issue #1949)
154  * Indexing a trajectory with a slice or an array now returns an iterable
155    (Issue #1894)
156  * Removed unused function MDAnalysis.lb.mdamath.one_to_many_pointers()
157    (issue #2010)
158  * Box input for functions in `MDAnalysis.lib.distances` is now consistently
159    enforced to be of the form ``[lx, ly, lz, alpha, beta, gamma]`` as required
160    by the docs (Issue #2046, PR #2048)
161  * Added periodic keyword to select_atoms (#759)
162  * PCA.transform now requires that PCA.run() has already been called
163    otherwise a ValueError is raised (PR #2055)
164  * The quiet keyword has been removed and replaced with verbose (Issue #1975
165    PR #2055)
166  * MDAnalysis.Universe.empty now creates a MemoryReader trajectory (#2076 #2077)
167
168Deprecations
169  * start/stop/step are deprecated in the initialization of Analysis classes.
170    These parameters should instead be given to the run() method of the class.
171    (Issue #1463 #1979 PR #2055)
172  * Almost all "save()", "save_results()", "save_table()" methods in
173    analysis classes were deprecated and will be removed in 1.0 (Issue
174    #1972 and #1745)
175  * Deprecated use of core.flags. For use_pbc, the pbc keyword should
176    be used, use_KDTree_routines is obsolete as all distance calculations
177    select the fastest method, all other uses of flags are deprecated.
178    (#782)
179
180Testsuite
181  * skip tests for duecredit when duecredit is not installed (#1906)
182  * updated meta data for PyPi and updated README and INSTALL
183
18404/15/18 tylerjereddy, richardjgowers, palnabarun, bieniekmateusz, kain88-de,
185         orbeckst, xiki-tempula, navyakhare, zemanj, ayushsuhane, davidercruz,
186         jbarnoud
187
188  * 0.18.0
189
190Enhancements
191  * Added flatten_dict function that flattens nested dicts into shallow
192    dicts with tuples as keys.
193  * Can now pass multiple attributes as a list to groupby function.
194    Eg ag.groupby(["masses","charges"])
195    (Issue #1839)
196  * Added reading of record types (ATOM/HETATM) for PDB, PDBQT and PQR formats
197    (Issue #1753)
198  * Added Universe.copy to allow creation of an independent copy of a Universe
199    (Issue #1029)
200  * Added copy method to various core classes including Reader, TransTable,
201    Topology, TopologyAttr (Issue #1029)
202  * Added `reindex` option to GROWriter to preserve original atom ids when set to
203    False (Issue #1777)
204  * Can now pass 'atom_style' keyword argument when parsing Lammps Data files
205    to specify what is on each line.  Eg atom_style = 'id type charge x y z'
206    (Issue #1791)
207  * Added periodic boundary condition option to HydrogenBondAnalysis (Issue #1188)
208  * Added duecredit to prepare a summary of the citations, when a user
209    uses MDAnalysis (Issue #412)
210  * Added AtomGroup, ResidueGroup and SegmentGroup to the top module namespace
211
212Fixes
213  * Fixed MPI fork() warning when importing MDAnalysis in an Infiniband-enabled
214    MPI environment (PR #1794)
215  * Fixed waterdynamics SurvivalProbability ignoring the t0 start time
216    (Issue #1759)
217  * AtomGroup.dimensions now strictly returns a copy (Issue #1582)
218  * lib.distances.transform_StoR now checks input type (Issue #1699)
219  * libdcd now writes correct length of remark section (Issue #1701)
220  * DCDReader now reports the correct time based on istart information (PR #1767)
221  * added requirement scipy >= 1.0.0 (absolutely needed: >= 0.19) (Issue #1775)
222  * Universe.empty now warns about empty Residues and Segmnets (Issue #1771)
223  * AMBER netcdf reader now defaults to mmap=None as described in the docs
224    (meaning mmap=True for files and NOT in memory), thus avoiding
225    memory problems on big trajectories (Issue #1807)
226  * analysis.align: fixed output and catch more cases with
227    SelectionError when selections are incompatible (Issue #1809)
228  * fix cython 0.28 compiler error
229  * DCD istart was wrongly interpreted as frames (only in 0.17.0) instead of
230    integrator timesteps, which lead to large time-offsets when reading and
231    writing DCD files; now istart is correctly interpreted when reading and
232    when writing, istart=None will set it to the CHARMM default nsavc but the
233    default is istart=0, which will make the DCD start at frame 0 (Issue #1819)
234  * Can now parse PDB files without resids (Issue #1854)
235  * Fixed periodic KDTree, now requires Biopython version 1.71 onwards (Issue #1857)
236  * fixed a bug in visualization.streamlines (Issue #1617)
237  * Updated TPR parser for GROMACS 2018 (Issue #1796)
238  * Fixed reading of PQR files generated by Gromacs (Issue #1804)
239
240Changes
241  * scipy >= 1.0.0 is now required (issue #1775 because of PR #1758)
242
243Deprecations
244  * undeprecated creating Groups from list of Components (Issue #1847)
245
246Testsuite
247  * Unit tests for unwanted side effects when importing MDAnalysis
248  * MDAnalysis.visualization is now tested
249
25001/24/18 richardjgowers, rathann, orbeckst, tylerjereddy, mtiberti, kain88-de,
251         jbarnoud, nestorwendt, mmattaNU, jmborr, sobuelow, sseyler, rcortini,
252         xiki-tempula, manuel.nuno.melo
253
254  * 0.17.0
255
256Enhancements
257  * added support for GSD format topology/trajectory parser (PR #1693)
258  * spherical selections tokens can use the periodic KDTree (PR #1733)
259  * added Amber residue names to 'protein' atom selection (PR #1704)
260  * KDTree for neighbor search on periodic systems (PR #1660, #1692)
261  * Python versions 3.4 and upwards are now supported (Issue #260)
262  * added Universe.empty to allow Universes of custom size to be constructed
263    without any files (PR #1533)
264  * add minimal topology reader that is able to load coordinate/trajectory
265    files on their own without requiring a topology file (Issue #1371)
266  * added "parse_n_atoms" to Reader API and implemented this for DCD, INPCRD,
267    NCDF, TRR and XTC formats (PR #1533)
268  * added 'all_coordinates' keyword to Universe to also load the topology file
269    as a frame of the reader together with the trajectory files (PR #1533)
270  * add low level lib.formats.libdcd module for reading/writing DCD (PR #1372)
271  * replace old DCD reader with a Python 3 ready DCD reader (Issue #659)
272  * about 20% speed improvements for GNM analysis. (PR #1579)
273  * added support for Tinker TXYZ and ARC files
274  * libmdaxdr and libdcd classes can now be pickled (PR #1680)
275  * speed up atomgroup.rotate when point = (0, 0, 0) (Issue #1707)
276  * introduce the water bridge analysis module (PR #1722)
277  * Universe.add_TopologyAttr now accepts strings to add a given attribute
278    to the Universe (Issue #1092, PR #1186)
279  * The TPR parser populate the `moltypes` and `molnums` topology attributes;
280    the `moltype` and `molnum` selection keyword are added
281    (Issue #1555, PR #1578)
282  * use gridDataFormats >= 0.4.0 for new 'type' kwarg in
283    analysis.density.Density.export() to enable writing DX files
284    compatible with (buggy) PyMOL (#1725)
285
286Deprecations
287  * HydrogenBondAnalysis detect_hydrogens=heuristic is marked for deprecation in 1.0
288  * timeseries keyword format is replaced by order. The format keyword is marked for deprecation in 1.0
289
290Fixes
291  * Fixed analysis.psa.dist_mat_to_vec not returning int values (Issue #1507)
292  * Fixed triclinic PBC transform for a- and b- axes (Issue #1697)
293  * Fixed nuclinfo.tors() not converting delta (Issue #1572)
294  * Changed _calc_dihedral and Dihedral.value() to match IUPAC convention
295    (Issue #1565)
296  * Fixed _calc_dihedral returning negative angles as positive (Issue #1554)
297  * correctly read little-endian TRZ files on big-endian architectures (issue
298    #1424)
299  * Fixed type matching and inclusion compilation warnings for the
300    ENCORE analysis package (issue #1390)
301  * Fix extra deprecation warnings for instant segment and residue selectors
302    (Issue #1476)
303  * Accessing segments from a universe with an instant selector now issues a
304    deprecation warning as expected (Issue #1478)
305  * Fixed Angle.angle method return NaN values when angle was very close
306    to 180 degrees (Issue #1556)
307  * Fixed analysis.rms.RMSD failure with select != "all" (Issue #1487)
308  * Fixed analysis.rms.RMSD: group RMSD calculation does not
309    superimpose groupselections anymore (issue #720)
310  * XDR files now avoid offset recalculation on a rewind (PR #1667)
311  * Universe creation doesn't Matryoshka NamedStream anymore (PR #1669)
312  * Fixed triclinic unit cell distances for box edges (Issue #1475)
313  * Fixed analysis.rms.RMSD: selections are now applied to atomgroup, not to
314    atomgroup.universe
315  * Default filename argument for AlignTraj works again (Issue #1713)
316  * Fixed analysis.rms.RMSD failed when selection is unicode (PR #1710)
317  * Fixed analysis.align.AlignTraj failed when step > 1 (Issue #1714)
318
319Changes
320  * generate pairwise distance matrix, analysis.psa.PSAnalysis.D, by default
321    when analysis.psa.PSAnalysis.run_pairs_analysis is run (Issue #1507)
322  * remove deprecated TimeSeriesCollection
323  * remove deprecated analysis.align.rms_fit_trj
324  * remove deprecated analysis.contacts.ContactAnalysis
325  * remove deprecated analysis.contacts.ContactAnalysis1
326  * remove deprecated analysis.hbonds.hbond_analysis 1-indexing
327  * remove deprecated analysis.rms `target` keyword from functions
328  * remove deprecated analysis.rms.RMSD `mass_weighted` keyword
329  * remove deprecated analysis.align `mass_weighted` keyword from classes
330  * remove deprecated analysis.psa `mass_weighted` keyword from classes
331  * use fast scipy.io.netcdf pure python implementation for reading of Amber
332    netcdf3 trajctories instead of netCDF4 but use netCDF4 for fast
333    writing (if available) or fall back to netcdf (see also Issue #506)
334  * libmdaxdr classes now accept more argument types for a write (PR #1442)
335  * libmdaxdr classes now raise EOFError when accessing another frame after
336    the end of the file. Used to raise IOError.
337  * Universe.load_new() now returns the universe itself instead of
338    tuple (filename_or_array, trajectory_type) (Issue #1613)
339  * docs: URLs to (www|docs).mdanalysis.org now link to SSL-encrypted site
340    (see issue MDAnalysis/MDAnalysis.github.io#61)
341  * attributes can not be assigned to AtomGroups (and similar objects) unless
342    they are part of the Universe topology (Issue #1092 PR #1186)
343
344
34506/29/17 richardjgowers, rathann, jbarnoud, orbeckst, utkbansal
346
347  * 0.16.2
348
349Deprecations
350  * deprecated core.Timeseries module for 0.17.0 (Issue #1383)
351  * deprecated instant selectors for 1.0 (Issue #1377)
352  * deprecated the core.flag registry for 1.0 (Issue #782)
353
354Fixes
355  * fixed GROWriter truncating long resids from the wrong end (Issue #1395)
356  * Fixed dtype of numpy arrays to accomodate 32 bit architectures (Issue #1362)
357  * Groups are hashable on python 3 (Issue #1397)
358
359Changes
360  * scipy and matplotlib are now required dependencies (Issue #1159)
361
362
363Changes
364  * scipy and matplotlib are now required dependencies (Issue #1159)
365
366Testsuite
367  * Port to pytest - removed nose as a dependency (Issue #884)
368
369
37006/03/17 utkbansal, kain88-de, xiki-tempula, kaplajon, wouterboomsma,
371         richardjgowers, Shtkddud123, QuantumEntangledAndy, orbeckst,
372         kaceyreidy
373
374  * 0.16.1
375
376Enhancements
377  * Universe now works with StringIO objects for topologies and trajectories.
378  * Residues with the same residue ids are not merged by default now
379    (apply to PDB, GRO) (Issue #1306)
380  * Improved print to screen format in waterdynamics module (using
381    ProgressMeter).
382  * PQRParser now treats insertion codes properly (Issue #1317)
383  * made online docs responsive with the Alabaster Sphinx theme (#378)
384
385Fixes
386  * In Universe.transfer_to_memory(): dt is now adjusted with step (Issue #1310)
387  * Various documentation sphinx errors (PR #1312)
388  * Bugfix in confdistmatrix.get_distance_matrix; now works on all trajectory types.
389    (issue #1324)
390  * Fixed bug "no molecules in water selection" in waterdynamics analysis
391    module.
392  * Fix hbond_analysis cannot deal with Universe where no two atoms are with 3A.
393    (PR #1325)
394  * Fix PDBParser docs for conect (issue #1246)
395  * Fixed bug where amber topology files would fail to load if number of atoms was
396    exactly divisible by number of atoms per line (issue #1331)
397  * Fixed incorrect handling of residue names with trailing numbers in
398    HydrogenBondAnalysis (issue #801)
399  * Fixed AnalysisBase class provides numerical start,stop,step values (PR #1340)
400  * Fixed PSFParser not creating multiple residues for identical resids in
401    different segments. (Issue #1347, PR #1348)
402  * Add the OC1 and OC2 from amber99sb-ildn to hydrogen bond acceptors (issue #1342)
403  * Fix RMSF run return value (PR #1354)
404  * Fixed documentation in pca (Issue #1378 PR #1379)
405
406Changes
407  * Enable various pylint warnings to increase python 3 compatibility
408  * Change Mathjax cdn (Issue #1313)
409  * Change mass_weight to weights for PSA analysis
410  * Move mass_weights deprecation to version 0.18
411  * Docs moved to http://docs.mdanalysis.org (Issue #1315)
412    and made responsive (Alabaster theme with readable-sphinx CSS)
413    (Issue #378)
414  * speed improvements parsing PDB / PDBQT / PQR / XYZ coordinate reader (Issue #1308)
415
416
41704/10/17 kain88-de, fiona-naughton, richardjgowers, tyler.je.reddy, jdetle
418         euhruska, orbeckst, rbrtdlg, jbarnoud, wouterboomsma, shanmbic,
419         dotsdl, manuel.nuno.melo, utkbansal, vedantrathore, shobhitagarwal1612,
420         xiki-tempula, kash1102, vedantrathore
421
422  * 0.16.0
423
424Enhancements
425  * Added 'filename' attribute to 'MemoryReader'
426  * GRO reader conforms to the reader API standard(#1196)
427  * Improved __str__ and __repr__ of 'GroupBase' class in
428    MDAnalysis.core.groups (addresses Issue #1223)
429  * Added dynamic selections (addresses Issues #175 and #1074).
430  * Added 'MemoryReader' class to allow manipulation of trajectory data
431    in-memory, which can provide substantial speed-ups to certain
432    calculations.
433  * Universe creation now takes an 'in_memory' option, which will
434    transfer the corresponding trajectory to memory. Likewise a new
435    'Universe.transfer_to_memory()' method makes it possible to make
436    this transfer after construction of the universe
437  * Added 'in_memory' option to 'rms_fit_trj', which makes it possible
438    to do in-place (in-memory) alignment of trajectories.
439  * All classes derived from 'AnalysisBase' now display a ProgressMeter
440    with 'quiet=False'
441  * The 'run' method from all 'AnalysisBase' derived classes return the
442    class itself.
443  * Added boolean flag at lib.distances.USED_OPENMP to reveal if
444    OpenMP was used in compilation (Issue #883)
445  * Added Principal Component Analysis module for linear dimensionality
446    reduction.
447  * Added Auxiliary module for reading additional timeseries data alongside
448    trajectories (Issue #785)
449  * Added AnalysisFromFunction & analysis_class, see (Issue #946 and PR #950)
450  * Established the MDAnalysis.analysis.legacy module for unmaintained
451    analysis code (Issue #743)
452  * Added ProgressMeter to 'transfer_to_memory' function, to show progress
453    of loading trajectory to memory (Issue #1028 and PR #1055).
454  * Selecting atoms by resid now respects icodes if they were present. Ie
455    select_atoms('resid 163A') works! (Issue #839 PR #1066)
456  * Added ability to read MMTF format files (#907 PR #1069)
457  * Added MDAnalysis.fetch_mmtf function to download from PDB and create
458    Universe (#810 PR #1082)
459  * Added coordinates.null.NullWriter, which behaves like a Writer but
460    ignores all input; useful for suppressing output.
461  * Added random access support to GMSReader and TRJReader (#1081)
462  * Added atomgroup.center(weights, pbc) method to calculate the center
463    of a group given weights
464  * Universe anchors (for unpickling) now use a uuid (rather than filename)
465    to distinguish themselves by default. Can still use anchor_name kwarg to
466    control the anchor name manually. (PR #1125)
467  * Added groupby method to Group objects. (PR #1112)
468  * Added `singleframe` attribute to Writer API to exclude from known Writers
469    for a single frame (Issue #1199 PR #1201)
470  * Correct the display error of HydrogenBondAnalysis when start is not 0 or
471    step is not one.
472  * Groups (atomgroup, residuegroup, and segmentgroup) have more operators,
473    included set operators (Issue #726)
474  * Universes built with Merge now use the MemoryReader (Issue #1251)
475  * speed improvement for analysis.gnm.closeContactGNMAnalysis(...,
476    weights="size") by about 5x (partially Issue #1191)
477
478Fixes
479  * Trajectory slicing made completely Pythonic (Issue #918 PR #1195)
480  * Argument validation of dist_mat_to_vec is fixed (#597 PR #1183)
481  * Give correct error when the topology file format is not recognized (Issue #982)
482  * Give correct error when file doesn't exist/ has bad permissions (Issue #981)
483  * Improvement of analysis/waterdynamics module (Issue #935)
484  * Removed MDAnalysis.analysis.PDBToBinaryTraj (Issue #1035)
485  * MDAnalysis.analysis.distances.between() is no longer broken
486  * GROWriter resids now truncated properly (Issue #886)
487  * reading/writing lambda value in trr files (Issue #859)
488  * fix __iter__/next redundancy (Issue #869)
489  * SingleFrameReader now raises StopIteration instead of IOError on calling
490    next (Issue #869)
491  * Display of Deprecation warnings doesn't affect other modules anymore (Issue #754)
492  * Changed nframes to n_frames in analysis modules for consistency (Issue #890)
493  * fixed incompatibility with newer matplotlib in analysis.hole
494  * Fixed modules that improperly documented and/or used frame slicing
495    defaults (#914)
496  * Fixed same interRDF can be run twice (Issue #924)
497  * Support for TPR files produced by Gromacs-2016 (Issue #932)
498  * Fixed parsing PDB files with CONECT records to TER entries (Issue #936)
499  * Fixed parsing PDB files with single entry in CONECT record (Issue #937)
500  * Progress meters are now displayed as expected on jupyter notebooks
501    (Issue #927)
502  * Reset trajectory to 0 after sliced iteration (Issue #1031)
503  * Fixed rotaxis returning NaN if a=b (Issue #1045)
504  * Fixed align_principal_axis onto a principal axes (Issue #1045)
505  * Fixed NCDFWriter wrote velocities instead of forces if
506    convert_units=False was set: now correctly writes forces (PR #1113)
507  * Fixed warn about missing cython package in dev builds
508  * Fix align.rotation_matrix checks array shape equality (Issue #1152)
509  * Fixed strange error when writing a PDB with 0 atoms (Issue #1083 PR #1103)
510  * Fixed selections using operators backwards ('prop 10 > mass') and sensitivity
511    about whitespace around these (PR #1156 Issue #1011 #1009)
512  * Fixed PSA analysis is now using AlignTraj
513  * Fixed Principal Axes to order from highest to lowest eigenval (Issue #1162)
514  * Fixed analysis.density with soluteselection and notwithin_coordinates_factory
515    when using KDTree (Issue #1211)
516  * GRO files with greater than 99,999 residues now read correctly (Issue #728)
517
518Changes
519  * Started unifying the API of analysis classes (named internally
520    "Bauhaus" style; see Issue #719)
521  * Added protected variable _frame_index to to keep track of frame iteration
522    number in AnalysisBase
523  * Added new AlignTraj class for alignment. (Issue #845)
524  * Added new diffusionmap module for dimension reduction (Issue #857)
525  * Added new PCA module for dimension reduction (PR #896)
526  * Qcprot now takes N x 3 arrays instead of 3 x N arrays. This gives about a
527    40% speed up. (PR #930)
528  * The ProgressMeter class now has a `dynamic` keyword argument. It is now
529    recommended to provide format strings using the new python format syntax,
530    the old %-based syntax is still available but will be deprecated.
531    (PR #944)
532  * Analysis.rms.RMSD now confirms to standard analysis API (Issue #893)
533  * Fragments in Universe.fragment are now sorted by the index of their first
534    atom. (Issue 1007)
535  * atoms.tranform/translate/rotate/rotateby return original atomgroup
536    (Issue #1010)
537  * atoms.translate/rotateby don't accept AtomGroup tuples as
538    parameters anymore (Issue #1025)
539  * atoms.rotate can be given center of rotation (Issue #1022)
540  * XTCFile and TRRFile only raise IOError now on error.
541  * Deprecate usage of MDAnalysis.core.AtomGroup
542  * get_writer_for() returns NullWriter when filename=None instead of
543    raising TypeError and filename is now a required arg instead of kwarg
544  * moved coordinates.base.ChainReader to coordinates.chain.ChainReader
545  * renamed private method ChainReader.get_flname() to ChainReader._get_filename()
546  * totaltime now considers the first frame to be at time 0 (Issue #1137)
547  * analysis.rms.RMSF now conforms to standard analysis API (PR #1136)
548  * analysis.rms/align function keyword `mass_weighted` is replaced
549    by generic `weights='mass'`. This new keyword allows to pass it an
550    arbitrary weights array as well. (PR #1136)
551  * Renamed various base classes for clarity.  Iobase -> IOBase,
552    Reader -> ReaderBase, SingleFrameReader -> SingleFrameReaderBase,
553    Writer -> WriterBase, TopologyReader -> TopologyReaderBase,
554    SelectionWriter -> SelectionWriterBase (Issue #921)
555  * Selection writers do not have a 'wa' mode anymore, but they have a 'close'
556    method (Issue #1244)
557  * Remove deprecated PrimitivePDB* classes
558  * Remove deprecated `delta` keyword for ChainReader
559  * Remove deprecated permissive_pdb_reader flag
560  * Removed superfluous and confusing keywords `start` and `end` for resid
561    selection in analysis.helanal.helanal_main() and
562    analysis.helanal.helanal_trajectory()
563  * weights="size" parameter in analysis.gnm.closeContactGNMAnalysis to
564    replace MassWeight=True
565  * bump minimum numpy version to 1.10.4
566
567Deprecations (Issue #599)
568  * Use of rms_fit_trj deprecated in favor of AlignTraj class (Issue #845)
569  * Moved analysis.x3dna to the analysis.legacy module (Issue #906)
570  * The keyword argument *quiet* is deprecated in favor of *verbose*
571    throughout the library (Issue #903)
572  * MassWeight=True parameter in analysis.gnm.closeContactGNMAnalysis
573    deprecated in favor of weights="size".
574
575Testsuite
576  * Make knownfailure work even without parentheses.
577  * Added a plugin to list the non-closed file handle (Issue #853, PR #874).
578    The plugin can be disabled with --no-open-files.
579  * The test_failure test can be made fail by setting the MDA_FAILURE_TEST
580    environment variable (PR #874)
581  * replaced XTC_HOLE test trajectory with more meaningful one MULTIPDB_HOLE
582  * install external packages on Travis (SETUP == full: HOLE, clustalw)
583    to test additional analysis code (Issue #898)
584  * removed usage of random numbers from tests (Issue #958)
585  * test_imports now always uses the correct source directory (Issue #939).
586
587
58805/15/16 jandom, abhinavgupta94, orbeckst, kain88-de, hainm, jbarnoud,
589         dotsdl, richardjgowers, BartBruininks, jdetle, pedrishi,
590         fiona-naughton, jdetle
591
592  * 0.15.0
593
594Metadata
595
596  * link download_url to GitHub releases so that Depsy recognizes
597    contributors (issue #749)
598  * a __version__ variable is now exposed; it is built by setup.py from the
599    AUTHORS file (Issue #784)
600
601API Changes
602
603  * rmsd doesn't superimpose by default anymore. The superposition
604    is controlled by the 'superposition' keyword now. (see issue #562, #822)
605
606Enhancements
607
608  * Add conda build scripts (Issue #608)
609  * Added read-only property giving Universe init kwargs (Issue #292)
610  * Added 'crdbox' as AMBER Trj format extension (Issue #846)
611  * Iteration and seeking in PDB files made faster (Issue #848)
612
613Fixes
614  * Fixed TypeError in PSAnalysis heatmap-dendrogram plotting (Issue #1018)
615  * ENT file format added to PDB Readers/Writers/Parsers (Issue #834)
616  * rmsd now returns proper value when given array of weights (Issue #814)
617  * change_release now finds number and dev (Issue #776)
618  * units.py now correctly prints errors for unknown units.
619  * test_shear_from_matrix doesn't fail for MKL builds anymore (Issue #757)
620  * HEADER and TITLE now appear just once in the PDB. (Issue #741) (PR #761)
621  * MOL2 files without substructure section can now be read (Issue #816)
622  * MOL2 files can be written without substructure section (Issue #816)
623  * GRO files with an incomplete set of velocities can now be read (Issue #820)
624  * Fixed Atom.position/velocity/force returning a view onto Timestep array
625    (Issue #755)
626  * PDB files can now read a CRYST entry if it happens before model headers
627    (Issue #849)
628  * Fixed HistoryReader returning 1 based frame indices (Issue #851)
629
630Changes
631  * Added zero_based indices for HBondsAnalysis. (Issue #807)
632  * Generalized contact analysis class `Contacts` added. (Issue #702)
633  * Removed Bio.PDBParser and sloppy structure builder and all of
634    MDAnalysis.coordinates.pdb (Issue #777)
635  * PDB parsers/readers/writers replaced by "permissive"/"primitive"
636    counterparts (formerly known as PrimitivePDBReader); the
637    'permissive' keyword for Universe is now ignored and only the
638    native MDAnalysis PDBReader is being used (Issue #777)
639  * PDBReader only opens a single file handle in its lifetime,
640    previously opened & closed handle each frame (Issue #850)
641
642Deprecations (Issue #599)
643  * Use of PrimitivePDBReader/Writer/Parser deprecated in favor of PDBReader/
644    Writer/Parser (Issue #777)
645  * Deprecated all `get_*` and `set_*` methods of Groups.
646  * Deprecation warnings for accessing atom attributes from Residue,
647    ResidueGroup, Segment, SegmentGroup. Will not be present or will
648    give per-level results.
649  * Deprecation warnings for accessing plural residue attributes from
650    Residue or Segment (will disappear), or from SegmentGroup (will give
651    per-Segment results).
652  * Deprecation warnings for accessing plural segment attributes from Segment
653    (will disappear).
654  * Deprecated Atom number, pos, centroid, universe setter
655  * Deprecated AtomGroup serials, write_selection
656  * Deprecated Residue name, id
657  * Deprecated Segment id, name
658  * Deprecated as_Universe function; not needed
659  * Deprecated ContactAnalysis and ContactAnalysis1 classes
660
661Testsuite
662  * metadata update: link download_url to GitHub releases so that
663    Depsy recognizes contributors (issue #749) and added
664    @richardjgowers as maintainer
665  * a __version__ variable is now exposed; it is built by setup.py from the
666    AUTHORS file (Issue #784)
667  * Removed all bare assert (Issue #724)
668  * added tempdir module
669
670
67102/28/16 tyler.je.reddy, kain88-de, jbarnoud, richardjgowers, orbeckst
672         manuel.nuno.melo, Balasubra, Saxenauts, mattihappy
673
674  * 0.14.0
675
676API Changes
677
678  * Offsets files for Gromacs trajectory formats have been changed to a numpy
679    style format '.npz'. Offsets files will be regenerated when you load a
680    xtc/trr trajectory again. (Issue #441)
681  * rotation_matrix now accepts array-likes as input
682
683Enhancement
684
685  * XDR file seeking errors now report system errno. (PR #678)
686  * Offsets reading for xtc/trr files has been sped up. (Issue #441)
687  * select_atoms now implicitly ORs multiple values after a keyword for
688    many types of selections (Issue #345)
689  * Performance improvements for the PDBReader of about 10%
690  * LinearDensity analysis module added, which allows to compute linear mass
691    and charge density profiles along the three cartesian axes of the cell.
692    Works for orthorombic, fixed volume cells only. (Issue #670)
693  * Trajectories can now be sliced using a boolean array (Issue #725)
694
695Changes
696
697  * xdrlib was rebranded libmdaxdr. (Issue #679)
698  * xdrlib has been ported to cython. (Issue #441)
699  * util.NamedStream no longer inherits from basestring (Issue #649)
700  * Short TRZ titles are striped from trailing spaces. A friendlier error
701    message is raised when the TRZ writer is asked to write a title longer
702    than 80 characters. (Issue #689)
703  * PDB doesn't save charge information anymore
704  * coordinates.core.get_writer_for uses the user defined format if provided
705    before trying to deduce the format from file extension. (Issue #712)
706
707Fixes
708
709  * Syntax error corrected in psa.py (Issue #738)
710  * XDR file seeking and telling working again for large files (Issue #677).
711  * ContactAnalysis1 run method now starts at frame index 0 by default (Issue #624)
712  * Fixed PrimitivePDBWriter alignment of the atom name. (Issue #639 and #647)
713  * The 'atom' selection keyword returns an empty selection rather than an
714    error when no atoms are are found. (Issue #644)
715  * nucleic selection will now detect nucleic residue names suffixed with 3 or 5
716    (Issue #461)
717  * Fixed Reader returning all frames with stop in slice was 0 (Issue #672)
718  * Fixed NCDFReader not reading dt (Issue #676)
719  * Fixed PDB-Topology read bonds for atom ids larger then 10000 (Issue #693)
720  * Fixed Type Error in qcprot.pyx when no rotation can be fond (Issue #705)
721  * Fixed cyzone selection failing in orthogonal systems (Issue #710)
722  * Fixed Error in calculation of average grid density (Issue #716)
723  * Fixed indexing an AtomGroup using a list of bools now working (Issue #729)
724
725Testsuite
726  * Added the cleanup plugin (--with-mda_cleanup) to delete offset files
727    after tests have run (Issue 669)
728  * Made memleak testing python 3 compliant (Issue 662). It may be a moot
729    point since python 3.4 now cleverly deals with leaks.
730
731
73201/16/16 tyler.je.reddy, kain88-de, richardjgowers, manuel.nuno.melo,
733         orbeckst, Balasubra
734
735  * 0.13.0
736
737API Changes
738
739  * ChainReader `delta` keyword deprecated in favor of `dt`. (Issue #522)
740  * XYZWriter can now be used as a container format for different protein models
741    as well as a normal trajectory. If `n_atoms` is None (default) MDAnalysis
742    assumes that it is used as a container and won't give a warning if the
743    number of atoms differs between frames.
744  * GROWriter.fmt strings updated to use format style (Issue #494)
745  * removed MDAnalysis.lib.parallel.distances; use the new backend="OpenMP"
746    keyword for the functions in MDAnalysis.lib.distances (Issue #530)
747
748Enhancement
749
750  * ChainReader now reports times properly summed over sub-readers (Issue #522)
751  * GRO file reading approximately 50% faster for large files (Issue #212)
752  * GRO file writing now will write velocities where possible (Issue #494)
753  * Added bonded selection (Issue #362)
754  * Spherical layer and spherical zone selections now much faster (Issue #362)
755  * new keyword "backend" for accelerated functions in MDAnalysis.lib.distances
756    to select "serial" or "OpenMP"-enabled versions of the code; the default
757    is "serial" so old code will behave as before (see Issue #530)
758  * Lammps data file parsing improved greatly.  Should now support all files,
759    and triclinic geometry. (Issue #139)
760  * Added analysis.polymer, currently with PersistenceLength tool (Issue #460)
761  * Added analysis.rdf, with InterRDF tool. (Issue #460)
762  * Made Reader.check_slice_indices a public method (Issue #604)
763  * analysis.helanal.helanal_main() now returns results as dict
764  * Added keyword to update selection every frame in density calculation (Issue #584)
765  * New keywords start, stop, step for density.density_from_Universe()
766    to slice a trajectory.
767  * MOL2Reader now reads molecule and substructure into ts.data
768  * All subclasses of ProtoReader, Writer and TopologyReader are automatically
769    added to the MDAnalysis directory of I/O (Issue #431)
770
771Changes
772
773  * built html doc files are no longer version controlled (Issue #491)
774  * The lib._distances and lib_distances_openmp libraries now have a
775    OPENMP_ENABLED boolean flag which indicates if openmp was used in
776    compilation.  (Issue #530)
777  * analysis.helanal.helanal_trajectory() and helanal_main() now use a
778    logger at level INFO to output all their computed values instead
779    of printing to stdout
780  * default offset for ProgressMeter was changed from 0 to 1 (to match
781    the change from 1- to 0-based ts.frame counting)
782  * removed superfluous analysis.density.density_from_trajectory();
783    use density_from_Universe(TOPOL, TRAJ) instead.
784  * MOL2Writer.write now only writes a single frame (Issue #521)
785
786Fixes
787
788  * Fixed select_atoms requiring a trajectory be loaded (Issue #270)
789  * AtomGroup timesteps no longer cached (Issue #606)
790  * GROWriter now truncates atom numbers over 99999 (Issue #550)
791  * AMBER netcdf writer now correctly uses float32 precision (Issue #518)
792  * Fixed a numpy incompatibility in `analysis.leaflet.LeafletFinder`.
793    (Issue #533)
794  * Cleaned up `MDAnalysis.Writer` docs regarding `dt` usage. (Issue #522)
795  * Fixed setup-time dependency on numpy that broke pip installs. (Issue #479)
796  * Fixed unpickling errors due to lingering dead universes. (Issue #487)
797  * Fixed analysis.density modules requiring the defunct `skip` attribute
798    on trajectories. (Issue #489)
799  * ten2eleven camelcase fixer now deals with centerOfMass (Issue #470)
800  * ten2eleven will now convert numatoms to n_atoms argument
801    for writer() functions (Issue #470)
802  * Fixed non-compliant Amber NCDFWriter (Issue #488)
803  * Fixed many Timestep methods failing when positions weren't present
804    (Issue #512)
805  * Fixed PointSelection using KDTree (Issue #362)
806  * Fixed GROParser getting tripped up by some file (Issue #548)
807  * Fixed writing dx files from analysis.density.density_from_Universe()
808    (Issue #544 and #410)
809  * Fixed base.Reader._check_slice_indices not liking numpy ints
810    (Issue #604)
811  * Fixed broken analysis.helanal.helanal_trajectory() and
812    helanal_main()
813  * Fixed lib.util.greedy_splitext() (now returns full path)
814  * Fixed MOL2Reader not reading molecule and substructure on init
815    (Issue #521)
816  * Fixed MOL2Writer rereading frames when writing them (Issue #521)
817  * Fixed PDBWriter not writing occupancies from atoms (Issue #620)
818
819Testsuite
820  * removed ez_setup.py
821
822
82310/08/15
824
825  * 0.12.1 kain88-de, orbeckst, richardjgowers
826
827API Changes
828
829Enhancements
830
831Changes
832
833Fixes
834  * Fixed OpenMP detection on Linux/OSX #459
835  * Fixed reading of LAMMPS trajectory times: default unit ought
836    to be fs and not ps
837  * Fixed setting of dt for DCDReader (and LAMMPS DCDReader) with
838    keyword argument Universe(..., dt=<dt>)
839  * Fixed a bug in topology.core.guess_atom_element where a
840    single digit atom name would raise an IndexError (#476)
841  * Fixed numpy -> np in LeafletFinder
842
84310/04/15 kain88-de, richardjgowers, dotsdl, sseyler, orbeckst, jbarnoud
844
845  * 0.12.0
846
847API Changes
848
849  * PrimitivePDBReader now imports occupancies into the `TimeStep` object.
850    (Issue #396)
851  * Atoms without a Universe now return NoDataError instead of
852    AttributeError
853  * AtomGroups of zero length or containing Atoms with no Universe raise
854    a NoDataError when trying to access Universe
855  * Atoms now keep a strong reference to Universe, meaning they
856    do not become orphaned when the Universe goes out of scope (Issue #297)
857
858Enhancements
859
860  * `Atom` and `AtomGroup` now expose occupancy value as `occupancy` and
861    `occupancies` properties (Issue #396)
862  * XYZReader now supports frame indexing (Issue #428)
863  * Reader objects can now be sliced using lists and arrays of indices
864    (Issue #437)
865  * `PSAnalysis` now includes Hausdorff pairs analysis and associated nearest
866    neighbor plotting method (Issue #438)
867  * New class `PSAPair` added to MDAnalysis.analysis.psa for handling
868    Hausdorff pairs analysis (Issue #438)
869  * `PSAnalysis` can now generate annotated heat maps (Issue #438)
870  * Added three new distance functions to MDAnalysis.analysis.psa (Issue #438)
871  * Additional getters added to `Path` and `PSAnalysis` (Issue #438)
872  * MSD matrix function now globally available in MDAnalysis.analysis.psa
873    (Issue #438)
874  * Function for obtaining coordinate axes from numpy trajectories now
875    globally available in MDAnalysis.analysis.psa (Issue #438)
876  * TPR parser updated for Gromacs 5.0.x and 5.1 (Issue #456)
877  * Setup.py now looks for some configuration values in a config file. Each
878    config option can also be changed via environment variables if they are
879    prefixed with 'MDA_'. Current options are 'use_cython', 'ues_openmp', 'debug_cflags'
880
881Changes
882  * An AtomGroup with 0 atoms now yields an `IndexError` on call to
883    `AtomGroup.write` (Issue #434)
884  * `PSA` changed to `PSAnalysis` to reduce namespace clutter (Issue #438)
885  * To build with debug-symbols use 'MDA_DEBUG_CFLAGS' instead of 'MDA_DEBUG_CFLAGS'
886
887Fixes
888  * Fixed minor issue in lib.mdamath.make_whole where if all bonds
889    were correctly sized, it wouldn't notice that multiple fragments
890    had been given. (Issue #445)
891  * Fixed issue with PDB Topology parsing where if serials went
892    over 100k, they wrapped to '***', breaking the parser (Issue #446)
893  * Fixed AtomGroup.sequence() (Issue #451)
894  * Fixed PrimitivePDBParser not detecting when resids had looped over
895    10,000. The original resid is stored as Atom.resnum (Issue #454)
896  * Fixed TPR topology parser to treat all bonded interactions available in
897    Gromacs 5.1 (Issue #222 and #352, pull request #463).
898
89909/07/15  tyler.je.reddy, richardjgowers, alejob, orbeckst, dotsdl,
900        manuel.nuno.melo, cyanezstange, khuston, ivirshup, kain88-de,
901        gormanstock
902
903  * 0.11.0
904
905  This release brings large changes to many parts of the API and might
906  break many existing scripts. For a full guide on the API changes,
907  please see:
908
909  https://github.com/MDAnalysis/mdanalysis/wiki/MDAnalysis-0.11-unifying-release-user-guide
910
911  Migrating old scripts has been made easier with the introduction of
912  the ten2eleven tool which is part of the package.
913  Details on how to use this are available at:
914
915  https://github.com/MDAnalysis/mdanalysis/wiki/Migrating-MDAnalysis-code-with-ten2eleven.py
916
917  API Changes
918
919  * Changed AtomGroup counting methods to properties with different
920    names: numberOfAtoms() to n_atoms, numberOfResidues() to
921    n_residues, numberOfSegments() --> n_segments (Issue #376)
922  * Changed trajectory reader numframes to n_frames (Issue #376)
923  * Changed Timestep.numatoms to n_atoms (Issue #376)
924  * Deprecated the use of the 'fullgroup' selection keyword (Issue #268)
925  * Changed atom.number attribute to atom.index (Issue #372)
926  * Changed many AtomGroup methods to properties.  These are: indices,
927    masses, charges, names, types, radii, resids, resnames, resnums,
928    segids (Issue #372)
929  * Timestep can now only init using an integer argument (which
930    represents the number of atoms) (Issue #250)
931  * Added from_timestep and from_coordinates construction methods
932    to base.Timestep (Issue #250)
933  * Removed KDTree and CoordinateNeighbor from MDAnalaysis. If you
934    want to search in cartesian coordinates directly for nighboring
935    points use the BioPython KDTree or scikit-learn Neighbors module.
936    The AtomNeighborSearch class has been ported to use the BioPython
937    KDTree and is now located in MDAnalaysis.lib.NeighborSearch.
938    MDAnalaysis.KDTree still exists in this version so load the
939    NeighborSearch module but is deprecated and will be removed in
940    1.0. (Issue #383)
941  * Moved MDAnalysis.core.transformations to
942    MDAnalysis.lib.transformations (Issue #287)
943  * Moved MDAnalysis.core.util to MDAnalysis.lib.util (Issue #287)
944  * Moved MDAnalysis.core.log to MDAnalysis.lib.log (Issue #287)
945  * Moved MDAnalysis.core.units to MDAnalysis.units (Issue #287)
946  * Moved MDAnalysis.core.distances to MDAnalysis.lib.distances
947    (Issue #287)
948  * Moved MDAnalysis.core.parallel to MDAnalysis.lib.parallel
949    (Issue #287)
950  * Moved norm, normal, angle, stp and dihedral from lib.util to
951    lib.mdamath (Issue #287)
952  * AtomGroup.bond .angle .dihedral and .improper now return the
953    corresponding TopologyObject rather than performing the calculation
954    (Issue #373)
955  * All TopologyObjects now have a "value" method to evaluate them
956    (Issue #373)
957  * TopologyGroup now has a "values" methods to evaluate all contained
958    bonds (Issue #373)
959  * MDAnalysis.lib.distances.calc_torsions renamed to calc_dihedrals
960    (Issue #373)
961  * TopologyGroup.selectBonds renamed to select_bonds (Issue #389)
962  * deprecated camelCase AtomGroup methods in favour of underscore_style
963    (Issue #389)
964  * deprecate lib.distances.applyPBC in favour of apply_PBC (Issue #389)
965  * AtomGroup.res[names,ids,nums] and AtomGroup.segids now give arrays
966    of equal size to AtomGroup (Issue #385)
967  * ResidueGroup.segids now gives arrays of equal size to ResidueGroup
968    (Issue #385)
969  * AtomGroup setters `set_<property>` now plural for consistency with
970    property names (Issue #385)
971  * DCDReader no longer supports the "skip" keyword.  Use slicing
972    on reader iteration to achieve same affect. (Issue #350)
973  * All Readers have a default "dt" of 1.0 ps.  This applies also to
974    single frame readers, these would previously raise an error on
975    accessing dt. (Issue #350)
976  * NCDF Reader no longer has a default skip_timestep of 1 (Issue #350)
977
978  Enhancements
979
980  * Added the 'global' selection keyword (Issue #268)
981  * Added Jmol selection writer (Issue #356)
982  * Added reading of Hoomd XML files (Issue #333)
983    These can only act as topology information for now
984  * Tests can now detect memleaks on a per-test basis (Issue #323)
985  * AtomGroups can now be pickled/unpickled (Issue #293)
986  * Universes can have a __del__ method (not actually added) without
987    leaking (Issue #297)
988  * Added reading of DL_Poly format CONFIG and HISTORY files, these can
989    both act as both Topology and Coordinate information (Issue #298)
990  * Timestep objects now have __eq__ method (Issue #294)
991  * coordinates.base.Timestep now can handle velocities and forces
992    (Issue #294)
993  * Waterdynamics analysis module added, including five analysis
994    classes: Hydrogen Bond Lifetimes, Water Orientational Relaxation,
995    Angular Distribution, Mean Square Displacement and Survival
996    Probability. Documentation and test are included. (Issue #300)
997  * RMSF class added to rms analysis module
998  * ProgressMeter now outputs every *interval* number of ``update``
999    calls (Issue #313)
1000  * Created lib.mdamath for common mathematical functions. (Issue #287)
1001  * All Timesteps have the has_positions has_velocities and has_forces
1002    boolean flags (Issue #213)
1003  * Timesteps can now allocate velocities and forces if they weren't
1004    originally created with these through the use of the has_ flags.
1005    (Issue #213)
1006  * Timesteps now store 'dt' and 'time_offset' if passed to them by
1007    Reader to calculate time attribute (Issues #306 and #307)
1008  * MDAnalysis.selection: can also be written to a NamedStream
1009  * Added function lib.mdamath.make_whole to "unbreak" molecules
1010    over periodic boundaries. (Issue #355)
1011  * Added triclinic_dimensions to Timestep, returns representation of
1012    unit cell as triclinic vectors (Issue #276)
1013  * Added setter to bfactors property (Issue #372)
1014  * Added AtomGroup altLocs and serials properties with setters.
1015    (Issue #372)
1016  * MDAnalysis.core.AtomGroup.Merge now copies across bonding
1017    information (Issue #249)
1018
1019  Changes
1020
1021  * numpy >= 1.5 required
1022  * A ProtoReader class intermediate between IObase and Reader was added
1023    so specific Readers can be subclassed without __del__ (the
1024    ChainReader and SingleFrameReader), thus preventing memleaks
1025    (Issue #312).
1026  * Atoms (and all container classes thereof) are now bound to Universes
1027    only via weakrefs. If Universes are not explicitly kept in scope
1028    Atoms will become orphaned. (Issue #297)
1029  * Removed FormatError, now replaced by ValueError (Issue #294)
1030  * base.Reader now defines __iter__ and __iter__ removed from many
1031    Readers (now use base.Reader implementation) (Issue #350)
1032  * Timestep._x _y and _z are now read only (Issue #213)
1033  * moved MDAnalysis.selections.base.get_writer() to
1034    MDAnalysis.selections.get_writer() to break a circular import. This
1035    should not affect any code because
1036    MDAnalysis.selections.get_writer() already existed.
1037  * distances.contact_matrix now treats the particle distance with
1038    itself as a contact for sparse matrices and numpy arrays. The
1039    progress reporting for sparse calculations has been removed.
1040    (Issue #375)
1041  * TopologyObjects and TopologyGroup moved to core.topologyobjects
1042    module (Issue #373)
1043  * Consolidated coordinates.guess_format and topology.guess_format to
1044    lib.util.guess_format  (Issue #336)
1045
1046  Fixes
1047
1048  * All Writers now refer to time between written Timesteps as "dt",
1049    was previously "delta" in some Writers. (Issue #206)
1050  * Topology files can now be compressed (Issue #336)
1051  * Fixed PDB Parser and Reader requiring occupancy field (Issue #396)
1052  * Amber TRJ and NCDF Reader & Writers now use 'dt' instead of 'delta'
1053    to refer to time elapsed between timesteps. (Issue #350 and #206)
1054  * Fixed TPRParser considering LJ 1..4 exclusions as bonds (Issue #351)
1055  * ChainReaders no longer cause memory leak (Issue #312)
1056  * analysis.hbonds.HydrogenBondAnalysis performs a sanity check for
1057    static selections (Issue #296)
1058  * Fixed TRZWriter failing when passed a non TRZTimestep (Issue #302)
1059  * relative imports are now banned in unit testing modules
1060    (Issue #189)
1061  * Fixed bug and added DivisionByZero exception in
1062    analysis/waterdynamics.py in SurvivalProbability. (Issue #327)
1063  * Fixed parsing of PDB header data for PrimitivePDBReader (Issue #332)
1064  * Fixed contact_matrix handles periodic boundary conditions correctly
1065    for sparse matrices. (Issue #375)
1066  * Fixed analysis.hole not using CPOINT (Issue #384)
1067  * Fixed XTC/TRR .dt rewinding the trajectory (Issue #407)
1068  * Fixed TopologyGroup.from_indices not guessing topology object class
1069    (Issue #409)
1070  * Fixed TopologyGroup.__contains__ failing if different instance of
1071    same bond was queried. (Issue #409)
1072
1073Testsuite
1074  * Overhaul of the test subsystem.
1075  * Tests now implement nose plugins, as a submodule. (Issue 331)
1076    Available plugins are: memleak testing, stderr capturing (for quieter
1077    test runs), and proper knownfailure implementation (Issue 338).
1078
1079
108006/01/15  richardjgowers, caio s. souza, manuel.nuno.melo, orbeckst,
1081          sseyler
1082  * 0.10.0
1083
1084  Enhancements
1085
1086  * Improved performance of PDB Reading.  Up to 3x faster. (Issue #212)
1087  * Added the 'same ... as' selection keyword (Issue #217)
1088  * Added guess_bonds keyword argument to Universe creation.  This will attempt to
1089    guess all topology information on Universe creation. (Issue #245)
1090  * Added guess_bonds method to AtomGroup. (Issue #245)
1091  * All TopologyObjects (Bond, Angle etc) now have is_guessed attribute
1092  * TopologyGroup now has alternate constructor method, .from_indices()
1093  * Added TopologyObject.indices property
1094  * Amber netCDF4 Reader will now read Forces (Issue #257)
1095  * Amber netCDF4 Writer will now write Velocities and Forces
1096  * Added Amber coordinate/restart file reader (Issue #262)
1097  * Structural superpositions (MDAnalysis.analysis.align) can work
1098    with partial matches of atoms.
1099  * new path similarity analysis module MDAnalysis.analysis.psa
1100  * AtomGroup and TopologyGroup can now be indexed by numpy boolean arrays
1101    works identically to numpy masks. (Issue #282)
1102
1103  Changes
1104
1105  * TopologyGroup can now have zero length, and will evaluate to False
1106    when empty.
1107  * Renamed TopologyGroup.dump_contents to "to_indices"
1108  * Deprecated 'bonds' keyword from Universe and replaced with 'guess_bonds'
1109  * PrimitivePDBReader now requires the numatoms keyword
1110  * Structural superpositions (MDAnalysis.analysis.align) use partial
1111    matches of atoms by default (use strict=True for old behavior)
1112  * Function rmsd() was removed from MDAnalysis.analysis.align name
1113    space and should be accessed as MDAnalysis.analysis.rms.rmsd()
1114
1115  Fixes
1116
1117  * bynum selections now work from AtomGroup instances (Issue #275)
1118  * Cylinder selections now work from AtomGroup instances and honor
1119    PBC (Issue #274)
1120  * NetCDFWriter previously always wrote velocities/forces if found
1121    in timestep, rather than following how the Writer was created.
1122
1123
112404/20/15  tyler.je.reddy, richardjgowers, orbeckst
1125  * 0.9.2
1126
1127  Enhancements
1128
1129  * Can now set velocity from Atom object. (Issue 221)
1130  * Atom object now has force attribute for getting/setting forces (requires a
1131    trajectory with forces) (Issue 221)
1132  * Added wrap method. Wrap allows the centers of groups of atoms to be
1133    moved within the primary unit cell without breaking up the group. (Issue 190)
1134
1135  Changes
1136
1137  * The MDAnalysis project moved from Google Code to GitHub: the new
1138    website is http://www.mdanalysis.org and the new source code
1139    repository is at https://github.com/MDAnalysis/mdanalysis
1140  * "applications" were removed from the mdanalysis source code
1141    repository and now exist as independent repositories under
1142    https://github.com/MDAnalysis/
1143  * Using a non-existent atom name as an instant selector now raises
1144    AttributeError instead of SelectionError (Issue 220)
1145
1146  Fixes
1147
1148  * trajectory objects are now properly closed in unit tests (Issue 256)
1149
1150
115103/27/15  manuel.nuno.melo, richardjgowers, comconadin
1152  * 0.9.1
1153
1154  Enhancements
1155
1156  * XYZ file format can be used without an associated topology file.
1157  * GAMESS output files can be read as trajectories for calculations of
1158    type ``SURFACE'' and ``OPTIMIZE'' (work wit both GAMESS-US and Firefly)
1159
1160  Changes
1161
1162  * removed undocumented MDAnalysis.builder module
1163
1164  Fixes
1165
1166  * TRR coordinate access via _y and _z now works properly (Issue 224)
1167
116803/15/15  richardjgowers, tyler.je.reddy, orbeckst, e.jjordan12, zhuyi.xue,
1169          bala.biophysics, dotsdl, sebastien.buchoux
1170  * 0.9.0
1171
1172  Enhancements
1173
1174  * offsets for XTC and TRR trajectories now stored and retrieved
1175    automatically; improves init times for large trajectories (Issue 208)
1176  * docs now use secure mathjax CDN (Issue 182)
1177  * minor improvements to helanal docstring
1178  * Support for reading altloc records in PDB files
1179  * Cap proteins with ACE and NMA terminal caps
1180  * MOL2 read and write support
1181  * 2D streamplot code no longer uses deprecated matplotlib.nxutils module
1182  * core.distances.calc_angles and calc_torsions now accept an optional box
1183    argument to consider periodic boundary conditions in their calculation
1184    (Issue 172)
1185  * TopologyGroup angles and torsions methods both have a pbc flag, (default
1186    False) to toggle consideration of periodic boundaries
1187  * XYZWriter (write simple XYZ trajectories)
1188  * TRZReader upgrades, seeking and numframes faster
1189  * PQRWriter (write PQR files)
1190  * HydrogenBond analysis: new keyword distance_type to alternatively
1191    look at the distance between heavy atoms (Issue 185)
1192  * TopologyGroup/TopologyDict system overhauled. (Issue 194)
1193  * TopologyObject class created, Bonds/Angles/etc nicer to work with.
1194  * Topology information is now loaded lazily into Universe, can be forced to
1195    load all with u.load_topology(). All topology information is now stored in
1196    .bonds .angles .torsions and .impropers attributes.
1197  * Added support for improper torsions.
1198  * AtomGroup now has .bonds .angles .torsions and .impropers attributes which
1199    retrieve relevant TopologyGroups
1200  * Increased performance of topology.core.guess_bonds greatly
1201  * Added topology.core.guess_angles guess_torsions and guess_improper_torsions
1202    which given accurate bond information can calculate the rest of the
1203    topology info.
1204  * Universe topology information is now settable after initialisation using lists of indices
1205    such as those provided by the guess_* functions.
1206  * Added LAMMPS data parser for topology files with the .data suffix. Can also
1207    read single frame coordinate & velocity information from these files.
1208    (Issue 139)
1209  * Added Fragments.  Fragments are continuously bonded groups of atoms.
1210    These are lazily built, and accessible via the Atom.fragment and AtomGroup.fragments
1211    attributes.
1212    (Issue 190)
1213  * Added ability to remove items from Universe cache with _clear_caches.
1214  * Added ability to define dimensions from AtomGroup, Universe and Timestep for most
1215    formats.
1216    (Issue 203)
1217  * streamIO: many readers can directly use gzip- or bzip2 compressed
1218    files or a stream (such as cStringIO.StringIO) wrapped in
1219    util.NamedStream; currently supported: PDB, PSF, CRD, PQR, PDBQT,
1220    GRO, MOL2, XYZ
1221  * Added hydrogen bonding time autocorrelation analysis module
1222    (analysis.hbonds.HydrogenBondAutoCorrel)
1223  * Added energy units to core.units (Issue 214)
1224  * New AtomGroup.split() method to produce a list of AtomGroups for each atom,
1225    residue, or segment
1226  * New AtomGroup.sequence() method to extract a protein sequence.
1227  * Can pass subclasses of Reader and Topology reader to Universe init to allow
1228    custom readers to be defined. (Issue 198)
1229  * Added Atom.bonded_atoms property.  This returns an AtomGroup of the Atoms
1230    that are bonded to a given Atom. (Issue 219)
1231  * Added atom selections to ContactAnalysis (Issue 169)
1232
1233
1234  Changes
1235
1236  * DCD unitcell format changed: MDAnalysis will now read it as [A,
1237    gamma, B, beta, alpha, C] instead of [A, alpha, B, beta, gamma,
1238    C]. The new CHARMM box vector unitcell format is heuristically guessed.
1239    (see Issue 187 for a full discussion and implications).
1240  * __getstate__() and __setstate__() raise an NotImplementedError for
1241    Universe and AtomGroup; before they were silently accepted on
1242    pickling and a cryptic "TypeError: AtomGroup is not callable" was
1243    raised (see also Issue 173 for detailed explanation)
1244  * XTC/TRR reader raise IOError with errorcode EIO (instead of
1245    ENODATA) when the last frame is reached and EBADF (instead of
1246    EFAULT) for any other issues (partially addresses Issue 150,
1247    Windows compatibility)
1248  * Universe.bonds now returns a TopologyGroup not a list.  TopologyGroup can be
1249    iterated over; list(universe.bonds) should provide a fix to legacy code.
1250  * PQR reader will now set segid to a chainID if found in the PQR
1251    file (previously, the segid would always be set to 'SYSTEM').
1252  * util.anyopen() only returns the stream and not the tuple (stream,
1253    filename) anymore; it tries to set stream.name instead
1254  * topology reading now done via classes (similar to trajectory reading)
1255    rather than functions.
1256    (Issue 210)
1257
1258
1259  Fixes
1260
1261  * fixed DCD triclinic unit cell reading and writing (although the new CHARMM
1262    format with the box matrix is not supported for writing) (Issue 187)
1263    ATTENTION: Support for triclinic boxes from DCDs was BROKEN prior to this fix!
1264  * fixed creation of residues and segments in Merge()
1265  * resolves Issue 188 regarding Helanal Finish Argument
1266  * fixed Issue 184 (TPR files with double precision)
1267  * fixed Issue 199 (FutureWarning in pyqcprot)
1268
1269
127004/01/14  orbeckst, jandom, zhuyi.xue, xdeupi, tyler.je.reddy,
1271          manuel.nuno.melo, danny.parton, sebastien.buchoux, denniej0,
1272          rmcgibbo, richardjgowers, lennardvanderfeltz, bernardin.alejandro
1273          matthieu.chavent
1274
1275  * 0.8.1
1276
1277  (Note: 0.8.0 contains a subset of these changes; 0.8.0 is deprecated)
1278
1279  Enhancements
1280
1281  * Named selections can now be passed to selectAtoms (Issue 174)
1282  * (experimental) MDAnalysis.visualization namespace added along with
1283    2D/3D streamplot modules & documentation for them
1284  * TRR file handling is now fully aware of missing coordinate/velocity/force
1285    information when reading and writing frames.
1286  * MDAnalysis.analysis.contacts.ContactAnalysis1 run() method
1287    now allows trajectory slicing (Issue 161)
1288  * Merge AtomGroups into a new Universe (Issue 157)
1289  * TPR parser (currently limited to versions 58, 73 and 83 of the
1290    Gromacs TPR format (Gromacs 4.0 to 4.6.1), see Issue 2)
1291  * fast XTC seeking (Issue 127)
1292  * changing resid (set_resid()) or segid (set_segid()) changes the
1293    topology and lists of resids/segids can be assigned to
1294    groups of objects (AtomGroup, ResidueGroup)
1295  * helanal: additional output of local bend and unit twist angles
1296    (Issue 133)
1297  * added support for reading DMS files (DESRES molecular structure)
1298  * bond connectivity information can be guessed from a PDB file if
1299    the bond=True keyword is set in Universe (Issue 23)
1300  * MDAnalysis.analysis.rms.RMSD: calculation of additional RMSDs
1301  * Plugin to generate nucleic acid helicoidal parameters using X3DNA;
1302    (must install working version 2.1 of X3DNA independently)
1303  * can use advanced slicing (with arbitrary lists or arrays) at all
1304    levels of the hierarchy (Issue 148)
1305  * coordinate readers and writers can be used as context managers
1306    with the 'with' statement
1307  * Can load multiple trajectories as Universe(topology, traj2, traj2,
1308    ...) in addition to providing all trajectories as a list,
1309    i.e. Universe(topology, [traj1, traj2, ...])
1310  * added support for YASP and IBIsCO formats (.trz) (Issue 152)
1311  * new methods for AtomGroup: packIntoBox([inplace=True])
1312  * added non-standard "extended" PDB format (XPDB) that reads
1313    five-digit residue numbers
1314  * util.convert_aa_code() recognizes non-standard residue names such
1315    as HSE, GLUH, GLH, ...
1316  * added new geometrics selections: sphlayer, sphzone, cylayer, cyzone
1317  * added TopologyDict and TopologyGroup classes for bond analysis
1318  * added calc_bonds, calc_angles and calc_torsions cython functions to
1319    core.distances for quickly calculating bond information
1320  * added applyPBC(coords, box) function to core.distances to move
1321    coordinates to within the primary unit cell
1322  * many AtomGroup methods now support 'pbc' flag to move atoms to within
1323    primary unitcell before calculation.  This behaviour can also be
1324    toggled using the core.flags['use_pbc'] flag (Issue 156)
1325  * MDAnalysis.analysis.rms.rmsd(): new center keyword so that one can
1326    immediately calculate the minimum rmsd of two rigid-body superimposed
1327    structures
1328
1329  Changes
1330
1331  * libxdrfile2 is now used instead of libxdrfile. libxdrfile2 is distributed
1332    under GPLv2
1333  * dropped support for Python 2.5; minimum requirement is Python 2.6
1334    (Issue 130)
1335  * almost all methods of AtomGroup return NumPy arrays
1336  * slicing and indexing of AtomGroup, Residue, ResidueGroup, Segment,
1337    SegmentGroup will now always return an appropriate object and
1338    never a simple list
1339  * removed Timeseries.principleAxis (probably was never working)
1340  * dependent on Biopython >= 1.59 (Issue 147)
1341  * Hydrogen bond analysis defaults to updating selection 1 and 2 for
1342    every timestep in order to avoid unexpected behavior (Issue 138)
1343  * AtomGroup.velocities is now a (managed) attribute and not a method
1344    anymore: replace 'ag.velocities()' with 'ag.velocities'
1345  * changed the name of the flag 'convert_gromacs_lengths' to 'convert_lengths'
1346
1347  Fixes
1348
1349  * asUniverse now also accepts any instance that inherits from
1350    MDAnalysis.Universe (Issue 176)
1351  * fixed XDR writer incorrect use of delta parameter (Issue 154)
1352  * fixed incorrect computation of distances in serial and parallel
1353    distance_array() with PBC (Issue 151)
1354  * fixed Issue 129 (hole.py module pipe/file closure)
1355  * fixed array comparison bug in MDAnalysis.analysis.helanal
1356    and various enhancements to the helanal module
1357  * fixed MDAnalysis.analysis.rms.RMSD.run(): gave incorrect results
1358    if ref_frame != 0
1359  * alignto() now checks that the two selections describe the same
1360    atoms (fixes Issue 143)
1361  * slicing of ResidueGroup will now produce a ResidueGroup, and
1362    slicing of a SegmentGroup will produce a SegmentGroup, not a list
1363    as before (fixes Issue 135)
1364  * detect OpenMP-capable compiler during setup (Issue 145), which should allow
1365    users of Mac OS X 10.7 and 10.8 to build MDAnalysis using Apple's
1366    C-compiler (clang) (Issue 142) although they will not get a parallel
1367    version of distance_array.
1368  * PDB with blank lines gave IndexError (Issue 158)
1369  * fixed AtomGroup.ts Timestep instance not containing all available
1370    information (Issue 163)
1371  * fixed Timestep copy method returning a base Timestep rather than
1372    appropriate format (Issue 164)
1373
137412/24/12 danny.parton, jandom, orbeckst, jjlights03, jphillips, naveen.michaudagrawal, andy.somogyi, sebastien.buchoux
1375
1376  * 0.7.7
1377
1378  Enhancements
1379
1380  * multithreaded distance_array() (Issue 80, experimental); see the
1381    new core.parallel.distance module
1382  * MDAnalysis.analysis.rms for simple RMSD analysis
1383  * format of input coordinates can be set as (filename, format)
1384    tuples (Issue 76)
1385  * new AtomGroup.asphericity() and AtomGroup.shapeParameter()
1386    methods to compute shape descriptors.
1387  * access to forces (AtomGroup.forces with get_forces() and set_forces();
1388    the default unit for force is kJ/(mol*A) and it is automatically
1389    converted from/to native). Currently, only the TRR Reader/Writer
1390    support forces.
1391  * all element masses
1392  * logger reports current version when starting
1393
1394  Fixes
1395
1396  * fixed Issue 115 (GROReader now uses fixed-column width format to read GRO files)
1397  * fixed Issue 116 (Failed to write AMBER netcdf trajectory from AtomGroup)
1398  * fixed Issue 117 (could not write Gromacs XTC/TRR from AMBER netcdf)
1399  * fixed Issue 120 (DCDWriter: wrote wrong unitcell information)
1400  * fixed Issue 121 (PSFParser would fail with IndexError for files without SEGID)
1401  * Issue 122 (made installation of netCDF4 library optional, which
1402    means that users of the AMBER netcdf Reader/Writer will have to
1403    manually install the library and its dependencies netcdf and HDF5,
1404    see https://code.google.com/p/mdanalysis/wiki/netcdf)
1405
140606/30/12 orbeckst, joshua.adelman, andy.somogyi, tyler.je.reddy, lukas.grossar, denniej0, danny.parton
1407
1408  * 0.7.6
1409
1410  Enhancements
1411
1412  * GRO file velocities may be accessed as AtomGroup.velocities()
1413    or Atom.velocity (Issue 102)
1414  * PrimitivePDBReader can be sliced
1415  * AMBER NetCDF (binary trajectory) reader and writer, supporting
1416    coordinates and velocities; requires netcdf4-python (Issue 109)
1417  * additional attributes and methods for AtomGroup to consolidate
1418    the interface to the Timestep: attribute 'positions' and
1419    'get_positions()' can be used instead of the 'coordinates()'
1420    method. get/set methods for both positions and velocities.
1421  * almost all Readers now support some form of slicing; unsupported
1422    slicing operations will raise a TypeError
1423  * additional analysis for Nucleic Acid order parameters
1424    (MDAnalysis.analysis.nuclinfo)
1425  * AMBER TOPParser now able to do both amber10 and amber12 formats
1426    (Issue 100)
1427
1428  Changes
1429
1430  * selectAtoms: updated *nucleic* and *nucleicxstal* selection definition
1431    *nucleic* includes the two-letter NA code that follows gromacs topolgy
1432    format and *nucleicxstal* allows for the one-letter NA code that follows
1433    the PDB Database code.
1434  * HydrogenBondAnalysis: multiple enhancements and changes (Issue 103)
1435    - many new analysis functions (see docs)
1436    - run() does not return the results anymore; results are simply
1437      stored as attribute timeseries (similar to other analysis tools)
1438    - only write per-frame debugging messages to the logfile when the
1439      new verbose keyword is set to True
1440    - more reliable detection of hydrogens bonded to heavy atoms
1441    - remove duplicate hydrogen bonds from the output
1442  * removed CHO and EAM (formyl and ethanol termini of gA in CHARMM)
1443    from the set of residues recognized as protein (collision with
1444    commonly used CHO for cholesterol)
1445  * PrimitivePDBWriter: special segid SYSTEM is translated to empty
1446    chainID
1447  * In order to write multi frame PDB files, the multiframe=True
1448    keyword must be supplied or use the MultiPDBWriter
1449  * empty AtomGroup can be constructed or can result from a selection
1450    without matches; it does *not* raise NoDataError anymore (Issue 12)
1451  * all single frame readers denote the first (and only) frame as
1452    frame number 1 (i.e. ts.frame == 1); it used to be 0 but 1 is
1453    consistent with the way this is is handled with real trajectories
1454  * requires Biopython >= 1.51 (fixes for Issue 112 and Issue 113)
1455  * Atom.type is always stored as a string.
1456
1457  Fixes
1458
1459  * HydrogenBondAnalysis: NH1 and NH2 were not recognized
1460  * GROWriter: enforce maximum resname and atomname length of 5 chars
1461  * Universe.load_new() raised a NameError (thanks to JiyongPark.77)
1462  * fixed Issue 105 (trajectory snapshots could not be written to PDB)
1463  * fixed Issue 107 (NAMD/VMD space delimited PSF files can be
1464    autodetected and read); important when using CGENFF atom types
1465    (thanks to JiyongPark.77 for initial patch)
1466  * fixed Issue 101 (could not write single frame to trr file)
1467  * fixed: permissive=True flag was ignored in Universe and hence the
1468    PrimitivePDBReader was always selected even if the Biopython one
1469    was desired
1470  * fixed Issue 112 (used removed Biopython constructs in
1471    MDAnalysis.analysis.align.fasta2select; thanks to francesco.oteri
1472    for a test case and fix)
1473  * fixed failing 'type' selection for topology formats that read an
1474    atom type as an integer (such as the AMBER parser)
1475  * fixed Issue 111 (NAN in pycpqrot and RMSD calculation)
1476  * fixed Issue 113 (replaced outdated Biopython to call ClustalW)
1477
1478
147902/16/12 sebastien.buchoux, orbeckst
1480
1481  * 0.7.5.1
1482
1483Fixes
1484  * added: missing files (Issue 95)
1485  * removed: unused delaunay-related files
1486
1487Testsuite
1488  * test package is now called 'MDAnalysisTests'
1489  * tests AND data are now bundled together in MDAnalysisTests
1490  * MDAnalysis and MDAnalysisTests packages MUST have the same
1491    release number (they need to stay in sync); MDAnalysisTests
1492    will NOT run if a release mismatch is detected
1493  * see Issue #87 and
1494    https://github.com/MDAnalysis/mdanalysis/wiki/UnitTests
1495
1496
149702/11/12 orbeckst, sebastien.buchoux, jandom, hallben, lukasgrossar
1498
1499  * 0.7.5
1500
1501  MDAnalysis can now be found on PyPI, allowing simple installation
1502  from the internet. Metadata was added to setup to facilitate PyPI
1503  upload and pages on the wiki describe how to do this.
1504  In addition, Debian/Ubuntu packages are also available.
1505
1506  Note that in order to run UnitTests one needs the separate package
1507  MDAnalysisTests (also release 0.7.5).
1508
1509  Enhancements
1510
1511  * new method OtherWriter() for trajectory readers to generate a
1512    writer for any format that has been initialised for the common
1513    basic values
1514  * new simple Residue.chi1_selection() selection
1515  * new distances.between() function (EXPERIMENTAL)
1516  * support LAMMPS non-standard DCD files (Issue 84; EXPERIMENTAL)
1517  * read and write multi-frame PDB files (Issue 77; EXPERIMENTAL)
1518  * extend the PDB parsing, support CONECT and REMARK entries
1519  * new GNM-based trajectory analysis module (Issue 90)
1520  * Read/Write velocities with TRR, new attribute Atom.velocity
1521    and AtomGroup.velocities() (Issue 91)
1522  * hydrogen bond analysis detects a range of GLYCAM atom types
1523    and utils.convert_aa_code will also accept GLYCAM-style residue
1524    names (Issue 92)
1525  * XYZ reader: can set timestep (Issue 92)
1526
1527  Changes
1528
1529  * The UnitTests are now integrated with the separate test data in a
1530    separate Python package named MDAnalysisTests; to run the tests
1531    for 0.7.5 one will need MDAnalysisTests-0.7.5 (Issue 87).
1532  * install a range of analysis dependencies right away: networkx,
1533    biopython, GridDataFormats (usually all painless); leave scipy and
1534    matplotlib to the user and the local package manager
1535  * When writing a trajectory and converting units, effectively a copy
1536    of the timestep is made and the in-memory timestep is not
1537    altered. In this way, analysis after writing a frame will still
1538    see the coordinates in MDAnalysis units and not converted units.
1539
1540  Fixes
1541
1542  * analysis.align.rms_fit_traj(): can output fitted trajectory to any
1543    supported format not just the input format
1544  * fixed ProgressMeter: default format string was broken
1545  * fixed: ResidueGroup and SegmentGroup indexing (did not work with
1546    numpy.int64 etc) and now raise TypeError if it does not fit
1547  * fixed HydrogenBondingAnalysis backbone donor list: had C but
1548    should have been O (this was supposed to be fixed with r849 in
1549    0.7.4 but a typo crept in). NOTE: analysis might have produced
1550    partially wrong results.
1551  * fixed: dihedral() and other methods using core.util.angle() sometimes
1552    returned nan instead of +pi or -pi
1553  * fixed: writing a trajectory from chained CRD files gave garbage
1554    coordinates (Issue 81)
1555  * fixed: support files for docs are now in included in the source
1556    distribution (thanks to Sebastien Buchoux; Issue 82)
1557  * fixed: core.util.iterable() would wrongly detect unicode strings
1558    as "iterable"; this lead the Reader autodections and then the
1559    ChainReader fail with "Runtime Error: Maximum recursion depth
1560    exceeded" for single filenames provided as a unicode string.
1561  * fixed: HBond analysis pickling of tables (Issue 92)
1562
1563
156407/09/11 orbeckst, dcaplan, jandom
1565
1566  * 0.7.4
1567
1568  Enhancements
1569
1570  * Universe() got new keywords topology_format and format to allow
1571    the user to specify the file formats instead of deriving it from the
1572    extensions (does not work with "chained" files at the moment); thanks to
1573    Michael Lerner for the suggestion
1574  * Chain trajectory reader allows frame indexing.
1575  * Issue 75: additional donors and acceptors keywords for H-bond analysis
1576  * structural alignment functions alignto() and rms_fit_traj() can also take a
1577    list of selection strings in order to define atom groups with fixed atom
1578    order and alignto() preserves the order of supplied AtomGroups for the
1579    special select values "all" and None.
1580  * new set_* methods for AtomGroup allows changing of Atom attributes
1581    for all members of the group (such as the segid) (EXPERIMENTAL)
1582  * new Atom and Residue attribute resnum that can be used to store
1583    the canonical PDB residue number (EXPERIMENTAL)
1584
1585  Fixes
1586
1587  * fixed Issue 74 (bug in AMBER topology parser which would show up for
1588    certain numbers of input lines; thanks to htaoyu1)
1589  * fix for Issue 48 (sparse contact_matrix in distances.py was slow when
1590    written in pure python; optimized in c code using scipy.weave)
1591  * HydrogenBondingAnalysis: donor atom name CO --> O (proper backbone
1592    oxygen); without the fix one misses most of the backbone H-bonds
1593  * alignto() and rms_fit_trj(): order of mobile and reference
1594    selection was reversed when supplied as a tuple (sel1, sel2)
1595
1596  Changes
1597
1598  * replaced analysis.util.progress_meter() with class core.log.ProgressMeter
1599
1600  * Issue 28: split off test data trajectories and structures from
1601    MDAnalaysis/tests/data into separate package MDAnalysisTestData, which is
1602    required to run the UnitTests from release 0.7.4 onwards. Numbering matches
1603    the earliest MDAnalysis release for which the data is needed. Any later
1604    releases of MDAnalysis will also use these test data unless a
1605    MDAnalysisTestData package with a higher release number is available.
1606
1607  Testsuite
1608
1609   * Split off test data trajectories and structures from
1610     MDAnalaysis/tests/data into separate package. (Issue 28)
1611   * Numbering matches the earliest MDAnalysis release for which the data is
1612     needed. Any later releases of MDAnalysis will also use these test data
1613     unless a MDAnalysisTestData package with a higher release number is
1614     available.
1615
1616
161705/22/11 orbeckst, jandom, Benjamin Hall, Paul Rigor, dcaplan,
1618         Christian Beckstein (logo), denniej0
1619
1620  * 0.7.3
1621
1622  Removals
1623
1624  * completely removed the old core.rms_fitting module (and thus we also do not
1625    depend on the LAPACK library anymore, which should simplify installation);
1626    use the functions accessible through MDAnalysis.analysis.align (which are
1627    faster and use QCPROT)
1628
1629  Enhancements
1630
1631  * PDBQT (autodock) format added (reading and writing of single frames)
1632  * new attributes universe.trajectory.frame and universe.trajectory.frame:
1633    report the current frame number and time (e.g. in ps) of the current frame
1634    of the trajectory
1635  * new attribute Timestep.volume (unit cell volume)
1636  * new special methods of AtomGroup: bond(), angle(), improper() in
1637    addition to the calculation of dihedral()
1638  * HELANAL helix analysis in MDAnalysis.analysis.helanal; Python
1639    implementation of helanal.f from
1640    http://www.ccrnp.ncifcrf.gov/users/kumarsan/HELANAL/helanal.html (Benjamin
1641    Hall, used under GPL v2+)
1642  * hydrogen bonds analysis in MDAnalysis.analysis.hbonds
1643  * MDAnalysis.analysis.distances.dist() for calculating distances between
1644    matching atoms in two groups
1645  * MDAnalysis logo by Christian Beckstein (and a reformatting of the
1646    online docs to match the logo theme)
1647
1648  Change of behaviour
1649
1650  * alignto() and rms_fit_trj(): changed keyword 'select' default from
1651    'backbone' to 'all'
1652
1653  Fixes
1654
1655  * fixed alignto() (raised KeyError)
1656  * fixed Issue 57 (check for illegal coordinates when writing PDB and GRO)
1657  * use spaces everywhere and no TABs and tell emacs and vim to keep it that
1658    way (Issue 69)
1659  * fixed Issue 70 (problems with instant atom selections)
1660
1661
166203/31/11 orbeckst, dcaplan, naveen.michaudagrawal
1663  * 0.7.2
1664  * NOTE: minimum Python version required is 2.5 (since 0.6.3)
1665
1666  Enhancements
1667
1668  * loading from a PDB sets segid to the chain id if it exists
1669  * PrimitivePDBWriter uses first letter of segid as PDB chain id
1670  * aliased segment.name to segment.id
1671  * new method AtomGroup.bbox() that returns the orthorhombic bounding box
1672  * enhancements of the analysis.density module (build density
1673    from B-factors)
1674  * PQR radius is now an attribute of Atom; AtomGroup.radii() returns the
1675    radii as a NumPy array; internally B-factor has also become an
1676    attribute of each Atom.
1677  * recognise many more OPLS/AA and Amber residue names as "protein"
1678  * recognise more atom masses (taken from CHARMM27 and Gromacs) and
1679    atom types (from CHARMM, Amber, OPLS, GROMOS) and moved
1680    masses and types into new module topology.tables; the type recognition
1681    is still incomplete but can be easily enhanced in tables
1682  * analysis.align: convenience functions rotation_matrix() and alignto()
1683  * TrajectoryReader gained Writer() method which returns an appropriate
1684    TrajectoryWriter instance that can be used for processing this
1685    trajectory (enhancement of the Trajectory API); if no Writer is known
1686    then a NotImplementedError is raised
1687  * doc improvements
1688
1689  Fixes
1690
1691  * installation: removed dependency on Cython; developer should
1692    use setup_developer.py instead of setup.py (Issue 66)
1693  * Fixed a problem with the strict PDBReader: raised exception when the
1694    pdb did not contain a segid
1695  * Support for PDBs with 4 character resnames and segID output when
1696    writing (Issue 63) --- makes the (default) PrimitivePDBReader/Writer
1697    more suitable for NAMD/CHARMM but breaks strict PDB standard. If
1698    you need full PDB reading capabilities, use the strict PDB reader
1699    [i.e. use Universe(..., permissive=False)]
1700  * fixed bug in (experimental) phi and psi selections
1701  * fixed bugs in reading of unit cells (Issue 60, Issue 61, Issue 34)
1702  * universe.trajectory.delta returns the full precision dt value
1703    instead of a value rounded to 4 decimals (Issue 64)
1704  * fixed bug in DCDWriter (XTC->DCD was broken, Issue 59)
1705
170602/08/11 orbeckst, denniej0, jandom, tyler.je.reddy, Joshua Adelman
1707  * 0.7.1 release
1708  * online documentation
1709  * AMBER topology and trj capabilities (netcdf not yet available)
1710  * PQR file reading support
1711  * new analysis.contacts.ContactAnalysis1 class that supports a
1712    native contact analysis between arbitrary groups
1713  * new examples (e.g. peptide helix clustering in a membrane)
1714  * fixed Issue 58 (align.rms_fit_trj; fix reported by Joshua Adelman)
1715  * new analysis module 'density': creation and analysis of volume data
1716  * fast RMSD aligner based on Douglas Theobald's QCP method for
1717    calculating the minimum RMSD between two structures and
1718    determining the optimal least-squares rotation matrix;
1719    replaces the slower previous code (implemented by Joshua Adelman from
1720    his pyqcprot package https://github.com/synapticarbors/pyqcprot);
1721    deprecated core.rms_fitting.rms_rotation_matrix() and scheduled for
1722    removal in 0.8
1723  * uses cython instead of pyrex
1724
172511/05/10 orbeckst, denniej0, tyler.je.reddy, danny.parton, joseph.goose
1726  * major release 0.7.0
1727    (includes changes that can BREAK BACKWARDS COMPATIBILITY)
1728  * Removed ALL DEPRECATED code:
1729    - AtomGroup.principleAxes (Issue 33)
1730    - DCD.DCDReader.dcd_header() and DCD.DCDWriter.dcd_header()
1731      (use _dcd_header())
1732    - Universe.dcd (and Universe.xtc, Universe.trr...) --- from
1733      now on only Universe.trajectory is supported.
1734      WILL BREAK LEGACY CODE!
1735    - removed the following packages from top-level MDAnalysis
1736      name space:
1737          - AtomGroup, Selection: import them from MDAnalysis.core if
1738            really needed (e.g. 'import MDAnalysis.core.AtomGroup')
1739          - distances, rms_fitting: 'import MDAnalysis.analysis.distances'
1740            or 'import MDAnalysis.analysis.align.rms_fitting' (the
1741            actual modules still live in MDAnalysis.core but they
1742            might get moved in the future and bundled with
1743            transformations)
1744          - 'from MDAnalysis import *' will only get ['Timeseries',
1745            'Universe', 'asUniverse', 'Writer', 'collection']
1746          - removed copy flag from distance_array and self_distance_array:
1747            setting it to False would always give wrong results so there was
1748            no good reason keeping it around
1749  * whitespace is no longer required around parentheses for
1750    selectAtoms strings but the old syntax with white space
1751    still works (Issue 43)
1752  * improved trajectory writing
1753    - MDAnalysis.Writer() factory function that provides an
1754      appropriate writer for the desired file format
1755    - Writer.write() accepts a Timestep, a Universe, or a
1756      arbitrary AtomGroup (e.g. from a selection); this is much
1757      more flexible than Writer.write_next_timestep()
1758  * New attributes for trajectory readers: dt (time between
1759    frames) and totaltime (length of the trajectory)
1760  * Changes to AtomGroup
1761    - Indexing is made consistent with the way lists behave:
1762       1. indexing with integers returns a single Atom
1763       2. slicing always returns a new AtomGroup
1764       3. advanced slicing with a list or array returns a new
1765          AtomGroup (NEW, fixes Issue 36)
1766    - AtomGroup coordinates can be manipulated (translate(),
1767      rotate() and rotateby() methods; when appropriate, these methods
1768      can take AtomGroups or arrays to determine coordinates)
1769    - new attributes 'residues' and 'segments' for AtomGroup to give
1770      access to the list of residue/segment objects of the group
1771    - new exception 'NoDataError'; raised when creation of an empty
1772      AtomGroup is attempted (see also Issue 12)
1773    - consistent representation of the Segment > Residue > Atom
1774      hierarchy: all classes related to AtomGroup have the
1775      attributes 'atoms', 'residues', 'segments' which provide
1776      access to groups of the corresponding objects
1777  * improvements to Residue, ResidueGroup and Segment classes
1778    - documented accessing residues from Segment as
1779      Segment.r<resid>; resid is 1-based -- BREAKS OLD CODE
1780      that relied on this being 0-based
1781    - added SegmentGroup class
1782          - can write from Residue, ResidueGroup and Segment (Issue 46)
1783          - residue name attribute of a Segment now consistently
1784            returns a ResidueGroup (Issue 47) -- MIGHT BREAK OLD CODE
1785          - added documentation and examples in the doc strings
1786          - new special dihedral angle selections defined for Residue
1787            class to simplify analysis of backbone torsions (experimental)
1788  * new contact_matrix method for calculating contacts
1789    (Issue 30); for large (N > ~10000) coordinate arrays
1790    automatically switches to a method using a sparse matrix (slower)
1791  * more example scripts (e.g. for membrane analysis, trajectory writing,
1792    coordinate transformations)
1793  * CRDReader added (fixes  Issue 40 ) ... it will work for both
1794    standard and extended formats: NO special flags needed.
1795  * CRDWriter will now write extended crd files: NO special flags needed.
1796  * By default, PDB files are read with the PrimitivePDBReader and not
1797    the Bio.PDB reader anymore because the latter can drop atoms when
1798    they have the same name in a residue (which happens for systems
1799    generated from MD simulations) The PrimitivePDBReader copes just fine
1800    with those cases (but does not handle esoteric PDB features such as
1801    alternative atoms and insertion codes that are not needed for
1802    handling MD simulation data).
1803      - The default behaviour of MDAnalysis  can be set through the flag
1804        MDAnalysis.core.flag['permissive_pdb_reader']. The default is True.
1805      - One can always manually select the PDB reader by providing the
1806        permissive keyword to Universe; e.g. Universe(...,permissive=False)
1807        will read the input file with the Bio.PDB reader. This might be
1808        useful when processing true Protein Databank PDB files.
1809  * fixed Issue 51 (distance_array() did not properly check its
1810    input and wrong results could be returned if the input was a
1811    float64 and a float32 array)
1812
181309/19/10 orbeckst
1814  * quick-fix release 0.6.4.1
1815  * fixed import issue with python 2.5 (Issue 41)
1816
181709/16/10 orbeckst, danny.parton
1818  * release 0.6.4
1819  * GRO writer added
1820  * fixed XTC writer (Issue 38)
1821  * convert box representations (Issue 37)
1822  * primitive PDB parser added (slightly faster and ignores
1823    correctness of resids, atomnames etc but reads CRYST1 into unitcell)
1824  * Universe gained the 'permissive' flag to switch on the
1825    primitive PDB parser/reader
1826  * Simple 'chained reader' which enables a Universe to
1827    transparently read a list of trajectory files (Issue 39).
1828  * Additional methods for AtomGroup: numberOfResidues(), resids(), resnames()
1829  * new bilayer analysis script for membrane composition on a
1830    per-leaflet basis (examples/membrane-composition.py); also
1831    renamed examples/leaflet.py to membrane-leaflets.py
1832
183307/08/10 orbeckst, denniej0, danny.parton, philipwfowler
1834  * 0.6.3 release
1835  * minimum requirement is python 2.4 (using with_statement in the
1836    analysis module and we have not tested on 2.3 in a while)
1837  * analysis modules (MDAnalysis.analysis):
1838     - lipid bilayer leaflet detection
1839     - native contact analysis ("q1-q2")
1840     - rms-fitting based on sequence alignment
1841  * write selections for other codes from AtomGroups (VMD, pymol, CHARMM,
1842    Gromacs ndx)
1843  * gro reader (Issue 31)
1844  * better API for loading a topology and a coordinate file in Universe()
1845  * trajectory reader: DCDReader can reverse trajectory with negative
1846    step increment; XTC/TRRReader can do simple (forward) slices by doing
1847    (slow!) sequential iteration
1848  * deprecated principleAxes() and introduced principalAxes() with less
1849    confusing return values (Issue 33).
1850  * fixed wrong unitcell dimensions for XTC/TRR (Issue 34)
1851  * added basic XYZ reader with compression support (Issue 35)
1852  * PDB reader guesses masses (unknown elements are set to 0)
1853  * installation requires Biopython (www.biopython.org)
1854
185505/28/10 orbeckst, denniej0
1856  * 0.6.2 release
1857  * removed a number of imports from the top level (such as rms_fitting);
1858    this might break some scripts that still rely on the layout that was
1859    used for 0.5.x (which is now officially declared deprecated)
1860  * defined trajectory API
1861  * deprecated DCD.dcd_header --> DCD._dcd_header
1862  * XTC and TRR compute numframes by iterating through trajectory (slow!)
1863  * introduced units: base units are ps (time) and Angstrom (length); see core.flags
1864  * XTC and TRR automatically convert between native Gromacs units (ps, nm) and
1865    base units (uses core.flags['convert_gromacs_lengths'] = True)
1866  * more test cases
1867  * *really* FIXED Issue 16 (can easy_install from tar file)
1868  * FIXED a bug in AtomGroup.principalAxes()
1869  * added dependency information to setup.py (numpy and
1870    biopython by default; nose for tests)
1871
187204/30/10 orbeckst
1873
1874  * 0.6.1 release
1875  * can build a simple Universe from a PDB file (FIXES Issue 11)
1876  * can read Gromacs XTC and TRR files (FIXES Issue 1) but no
1877    Timeseries or Collections yet for those formats
1878  * removed Universe.load_new_dcd() and Universe.load_new_pdb()
1879    --- use the generic Universe.load_new() (MIGHT BREAK OLD CODE)
1880  * removed deprecated Universe._dcd attribute (MIGHT BREAK OLD CODE)
1881  * FIXED bug in PDB.PDBWriter and CRD.CRDWriter
1882  * use SloppyPDB in order to cope with large PDB files
1883  * core.distances.self_distance_array() is now behaving the
1884    same way as distance_array()
1885  * defined Trajectory API (see MDAnalysis/coordinates/__init__.py)
1886  * renamed _dcdtest to dcdtimeseries (will not affect old code)
1887  * unit tests added (still need more test cases)
1888
188903/31/10 orbeckst, denniej0
1890  * 0.6.0 release
1891  * added KDTree and Neighbour searching code from Biopython for
1892    faster distance selections: used for AROUND selections;
1893    POINT is using distance matrix by default as this is
1894    faster. This can be configured with core.flags
1895  * core.flags infrastructure to tweak behaviour at run time
1896  * updated LICENSE file with Biopython License
1897  * some selections for nucleic acids
1898  * completely reorganized directory structure to make
1899    enhancements easier to incorporate
1900  * FIXED (partial): Issue 18 (Timeseries from a universe.segID
1901    selection, reported by lordnapi)
1902  * FIXED: Issue 19 (Timeseries collections were broken,
1903    reported by Jiyong)
1904  * can write single frames as pdb or crd (AtomGroup gained the
1905    write() method)
1906  * some selections for nucleic acids
1907  * completely reorganized directory structure to make
1908    enhancements easier to incorporate
1909  * FIXED: Issue 19 (Timeseries collections were broken)
1910  * improved installation
1911     - EasyInstall (setuptools) support (FIXED Issue 16)
1912     - better instructions in INSTALL
1913     - slightly better handling of the configuration of the fast
1914       linear algebra libs via the setup.cfg file
1915
191608/23/08 naveen, orbeckst
1917  * 0.5.1 release
1918  * primitive PDB writer (only works if coordinates were read from a pdb)
1919  * B-factor property (detailed implementation subject to change)
1920  * periodic flag for PointSelection
1921  * new correl series: orientation vector for 3-site molecules
1922    (to calculate the water dipole moment of SPC or TIP3P)
1923  * distance.distance_array() bug fixed (see doc string)
1924  * updated LICENSE file UIUC Open Source License
1925
192601/29/08 orbeckst
1927  * prepared 0.5.0 release. Includes previously disabled
1928    distance code, PDB reader, incomplete XTC reader (code by
1929    Benjamin Hall), and marginally updated documentation &
1930    licenses
1931
193211/12/07 naveen
1933  * prepared for release outside lab
1934