File: CHANGELOG

package info (click to toggle)
mdanalysis 2.4.2%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 109,240 kB
  • sloc: python: 73,917; ansic: 8,185; makefile: 145; sh: 97
file content (3053 lines) | stat: -rw-r--r-- 155,995 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
# -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8 -*-
======================
 MDAnalysis CHANGELOG
======================

The rules for this file:
  * entries are sorted newest-first.
  * summarize sets of changes - don't reproduce every git log comment here.
  * don't ever delete anything.
  * keep the format consistent (79 char width, M/D/Y date format) and do not
    use tabs but use spaces for formatting
  * accompany each entry with github issue/PR number (Issue #xyz)
  * release numbers follow "Semantic Versioning" http://semver.org

------------------------------------------------------------------------------
01/04/23 IAlibay

 * 2.4.2

Fixes
  * np.histogramdd calls in :class:`DensityAnalysis` now pass the `density`
    argument rather than the NumPy 1.24 removed `normed` (PR #3976)
  * visualization.streamlines_3D and visualization.streamlines no longer
    rely on the scalar return of an numpy array elementwise comparison which
    is no longer supported as of NumPy 1.25 (PR #3977)


12/17/22 IAlibay

 * 2.4.1

Fixes
* Fixes pyproject.toml minimum pin for biopython


12/16/22 IAlibay, Luthaf, hmacdope, rafaelpap, jbarnoud, BFedder, aya9aladdin,
         jaclark5, jfennick, lilyminium, orbeckst, Hakarishirenai

 * 2.4.0

Fixes
  * Update hbond analysis doc string to use exclusive bound language 
    (Issue #3847)
  * XTC and TRR readers now fail with IOError when a status except EOK (=0) is
    detected on reading a frame instead of silently continuing
  * Consolidate license files across MDAnalysis library packages (PR #3939)
  * Kwargs passed through to `MemoryReader` when using `transfer_to_memory()`
    and `in_memory=True`.
  * NoDataError raised on empty atomgroup provided to `DCDReader.timeseries` 
    was changed to ValueError (see #3901). A matching ValueError was added to
    `MemoryReader.timeseries`(PR #3890). 
  * Removes ``pbc`` kwarg from ``AtomGroup.wrap`` (Issue #3909)
  * LAMMPSDump Reader translates the box to the origin (#3741)
  * hbond analysis: access hbonds results through new results member in count_by_ids() and count_by_type()
  * Auxiliary; determination of representative frames: Removed undefined
    behaviour for cutoff values < -1 (PR # 3749)
  * Fixes distances.between not always returning AtomGroup (Issue #3794)
  * Upgrade to chemfiles 0.10.3 (Issue #3798)
  * fixes guessed_attributes and read_attributes methods of the Topology class, as 
    those methods were giving unexpected results for some topology attributes
    (e.g. bonds, angles) (PR #3779).

Enhancements
  * MDAnalysis now follows PEP621 (PR #3528)
  * Added a reader for GROMACS TNG files based on PyTNG (PR #3765,
    Issue #3237, partially addressing Issue #865) 
  * Added ability for hbond analysis to use types when resnames are not 
    present (Issue #3847)
  * Added explanatory warnings when hbond analysis doesn't find any hbonds
    (Issue #3847)
  * Improve C content of libxdr Cython, add `read_direct` methods to read 
    coordinates, velocities and forces directly into memoryviews of `Timestep`
    attributes, make `TRR` timestep have positions, velocities and forces on
    `__init__`. (Issue #3891 PR  #3892).
  * Improve C content of libdcd Cython (Issue #3882, PR #3888)
  * The timeseries method for exporting coordinates from multiple frames to a
    NumPy array was added to ProtoReader (PR #3890)
  * MDAnalysis now officially supports py3.11 (Issue #3878)
  * LAMMPSDump Reader optionally unwraps trajectories with image flags upon 
    loading (Issue #3843)
  * LAMMPSDump Reader now imports velocities and forces (Issue #3843)
  * Minimum NumPy version for py3.11 is now set to 1.23.2.
  * Added decorator to check for an empty atom group, applied in topological 
    attributes(Issue #3837)
  * AuxReaders now have a memory_limit parameter to control when memory usage
    warnings are issued. (PR # 3749)
  * MDAnalysis.units now has a lookup dictionary called MDANALYSIS_BASE_UNITS
    where unit types like length or speed are mapped to their base units in
    MDAnalysis (i.e. "A" or "A/ps") (PR # 3749)
  * A new AuxReader for the GROMACS EDR file format was implemented.
    (Issue # 3629, PR # 3749)
  * Added benchmarks for bonds topology attribute (Issue #3785, PR #3806)
  * Added isolayer selection method (Issue #3845)

Changes
 * Minimum numpy version for python 3.10 and Windows has been raised to 1.22.3
   (PR #3903)
 * Replaced deprecated Bio.pairwise2 with Bio.align.PairwiseAligner in
   MDAnalysis.analysis.align.sequence_alignment (Issue #3950)
 * Increased minimal version of biopython to 1.80 (Issue #3950)
 * Moved `libmdanalysis` cython header to `lib`(Issue #3912, PR #3913)
 * Auxiliary; determination of representative frames: The default value for
   cutoff is now None, not -1. Negative values are now turned
   to None. (PR #3749)
 * `MDAnalysis.coordinates.base.add_auxiliary()` now supports adding of
    multiple auxiliary data points at the same time. To this end, the API was
    rewritten and now expects dictionaries of `desired attribute name`:
    `name in auxiliary data file` as input. Adding all data found in the
    auxiliary data source is possible by omitting the dictionary and explicitly
    passing the AuxReader instance as `auxdata`. (PR #3749)
  * The "AMBER" entry in setup.py's extra_requires has now been removed. Please
    use `pip install ./package[extra_formats]` instead (PR #3810)
  * `Universe.empty` emmits less warnings (PR #3814)
  * adding element attribute to TXYZParser if all atom names are valid element symbols (PR #3826)

Deprecations
  * Direct indexing of results in analysis.nucleicacids' NucPairDist
    and WatsonCrickDist classes is deprecated and will be removed in 2.5.0.
    Please use `results.pair_distances` instead (Issue #3744)
  * Deprecated analysis.align.sequence_alignment() for removal in 3.0 (#3950)
  * Add deprecation warning for `timestep` copying in DCDReader
    (Issue #3889, PR #3888)
  * Add deprecation warning for inclusive stop indexing in
    MemoryReader.timeseries (PR #3894)


08/29/22 IAlibay, PicoCentauri, orbeckst, hmacdope, rmeli, miss77jun, rzhao271,
         yuxuanzhuang, hsadia538, lilyminium

 * 2.3.0

Fixes
  * Fixes awk call in deploy.yaml tests for macos runners (Issue #3693)
  * add a 0.5 for correct midpoints in hole analysis (Issue #3715)
  * Fix reading error when PDB CONECT records are corrupt. (Issue #988)
  * Fix writing unusable PDB CONECT records with index>100000. (Issue #988)

Enhancements
  * Add a new `formalcharge` attribute for storing formal charges (PR #3755)
  * Add the ability to read & write formal charges from PDB files (PR #3755)
  * Change functions in `lib.distances` to accept AtomGroups as well as NumPy
    arrays (CZI Performance track PR #3730)
  * Add `norm` parameter to InterRDF, InterRDF_s to normalize as rdf,
    number density or do not normalize at all. (Issue #3687)
  * Additional logger.info output when per-frame analysis starts (PR #3710)
  * Timestep has been converted to a Cython Extension type
    (CZI Performance track, PR #3683)
  * Refactor make_downshift_arrays with vector operation in numpy(PR #3724)
  * Optimize topology serialization/construction by lazy-building _RA and _SR.

Changes
  * To add additional optional packages for different file formats when
    using `pip` use the new "extra_formats" extras_require target as in
    `pip install ./package[extra_formats]` (Issue #3701, PR #3711)
  * Minimum supported NumPy version is now 1.20 (1.21 for macosx-arm64)
    as per NEP29 (PR #3737)
  * Narrowed variable scope to reduce use of OpenMP `private` clause (PR #3706, PR
    #3728)

Deprecations
  * The extras_requires target "AMBER" for `pip install ./package[AMBER]`
    will be removed in 2.4. Use "extra_formats". (Issue #3701, PR #3711)
  * Deprecate `density` parameter in favor of `norm` in InterRDF_s
    (Issue #3687)


06/01/22 IAlibay, BFedder, inomag, Agorfa, aya9aladdin, shudipto-amin, cbouy,
         HenokB, umak1106, tamandeeps, Mrqeoqqt, megosato, AnirG, rishu235,
         mtiberti, manishsaini6421, Sukeerti1, robotjellyzone, markvrma, alescoulie,
         mjtadema, PicoCentauri, Atharva7K, aditi2906, orbeckst, yuxuanzhuang,
         rsexton2, rafaelpap, richardjgowers, orioncohen

 * 2.2.0

Fixes
  * Fixed issue where Reader.copy() did not preserve optional arguments
    and kwargs passed to the original class (Issue #3664, PR #3685)
  * Iterating a SingleFrameReaderBase trajectory now rewinds the
    reader, resetting any modified trajectory attributes to those
    read from file. Fixes behavior that was previously undefined (Issue #3423)
  * Fixed Reader.copy() did not preserve convert_units=False (see PR #3642)
  * Fix the competition when generating offsets from multiple processes by
    using a interprocess file lock. (Issue #1988, PR #3375)
  * Fix the error when trying to load a corrupted offset file (Issue #3230
    PR #3375)
  * Fixed `OpenMMTopologyParser` not working when some or none of the elements
    are present in the openmm topology (Issue #3317, PR #3511).
  * Remove None from filenames in analysis.hole.HoleAnalysis (PR #3650)
  * Fixed Numpy deprecation warnings about elementwise comparisons.
    (Issue #3535, PR #3619)
  * Fixed encore.covariance.covariance_matrix not working when providing
    an external reference (Issue #3539, PR #3621)
  * Fixed LinearDensity not working with grouping='residues' or 'segments'
    (Issue #3571, PR #3572)
  * LinearDensity now uses the definition of Avogadro's number from
    MDAnalysis.units, which has more significant digits.
    (Issue #3571, PR #3572)
  * MOL2 can read files without providing optional columns:
    subst_id, subst_name and charge. (Issue #3385, PR #3598)
  * When converting an AtomGroup to an RDKit molecule (PR #3044):
    - the atoms are now in the same order
    - the output of `atom.GetMonomerInfo().GetName()` now follows the
      guidelines for PDB files while the original name is still available
      through `atom.GetProp("_MDAnalysis_name")`
    - using `NoImplicit=False` should no longer throw a `SanitizationError`
  * Contacts can now accept static AtomGroups as well as selection texts.
    (Issue #2666, PR #3565)
  * Fixed DumpReader triclinic box dimensions reading. (Issue #3386, PR #3403)
  * Updated the badge in README of MDAnalysisTest to point to Github CI Actions
  * Fixed FrameIteratorIndices doesn't rewind. (Issue #3416)
  * Fixed BAT method Cartesian modifies input data. (Issue #3501)

Enhancements
  * Add smarts_kwargs to allow greater flexiblity with smarts atom selection
    (Issue #3469, PR #3470).
  * Added DL_POLY Classic support. Now HISTORY files from DL_POLY Classic can be
  * used. (Issue #3678)
  * Wheels and dist now get automatically built and deployed on release
    triggers (Issue #1300, PR #3680)
  * Added equations for `center_of_mass` and `center_of_geometry`to
    documentation (PR #3671)
  * Added `center_of_charge` attribute (PR #3671)
  * Added `frames` argument to AnalysisBase.run to allow analysis to run on
    arbitrary list of frames (Issue #1985)
  * LinearDensity now works with updating AtomGroups (Issue #2508, PR #3617)
  * Link PMDA in documentation (PR #3652)
  * Added MSD example where multiple replicates are combined(Issue #3578
    PR #3633)
  * PCA class now has an inverse-PCA function. The inverse transform can
    also be extrapolated to certain non-PCA atoms. (PR #3596, Issue #2703)
  * `DistanceMatrix` class in MDAnalysis.analysis.diffusionmap now also
    accepts `AtomGroup` as a valid argument (Issue #3486, PR #3541)
  * Improves the RDKitConverter's accuracy (PR #3044): AtomGroups containing
    monatomic ion charges or edge cases with nitrogen, sulfur, phosphorus and
    conjugated systems should now have correctly assigned bond orders and
    charges.
  * New optimized AnalysisBase derived Watson-Crick distance analysis class in
    analysis.nucleicacids
  * CRD extended format can now be explicitly requested with the `extended`
    keyword (Issue #3605)
  * Added benchmarks in lib.distances for enhancement (Issue #3205, PR #3641)

Changes
  * smarts selection's `maxMatches` now defaults to max(1000, n_atoms*10)
    instead of the standard RDKit default of 1000 (Issue #3469, PR #3470).
  * `fasteners` package is now a core dependency (Issues #3230, #1988, PR #3375)
  * The minimm Python, NumPy, and SciPy versions (following NEP29) are now 3.8,
    1.19, and 1.5.0; GSD now also has a minimum version of 1.9.3 and networkx
    has minimum version 2.0 (Issue #3665)
  * LinearDensity now saves the histogram bin edges for easier plotting as
    "hist_bin_edges" for each dimension xyz in the results dictionary.
    (Issue #2508, PR #3617)
  * ITPParser no longer adds an angle for water molecules that have the SETTLE
    constraint applied to them. This mirrors the way the constraint is handled
    in AMBER. (Issue #2417, PR #3564)

Deprecations
  * The old results attributes for LinearDensity are now deprecated and will be
    removed in version 3.0.0. (Issue #2508, PR #3617)
    - "pos" is now "mass_density",
    - "char" is now "charge_density"
    - "std" entries are now "stddev"



03/06/22 IAlibay, melomcr, mdd31, ianmkenney, richardjgowers, hmacdope,
         orbeckst, scal444, p-j-smith, edisj, Atharva7K, ojeda-e, jbarnoud,
         yangtcai

 * 2.1.0

Fixes
  * Use uint64_t loop counters in C level distance functions to avoid overflow
    for large arrays (Issue #3512, PR #3513).
  * Prevents attempts to close an already closed NamedStream (Issue #3386)
  * Added missing exe_err import in hole.py. Fixed a bug in HoleAnalysis where
    kwarg was passed instead of object to generate path (Issue #3493, PR #3496)
  * Fixes creation of vmd surfaces in hole2 when using non-contiguous frames
    with start/stop/step (Issue #3476)
  * Allow empty strings to be passed to HydrogenBondAnalysis (Issue #3453).
  * Avoid integer overflow in NSGrid with too many grids (Issue #3183)
  * Fix ITPParser charge reading (Issue #3419).
  * TRRWriter preserves timestep data (Issue #3350).
  * Fixed Universe creation from a custom object which only provided a topology,
    previously raised a TypeError. (Issue #3443)
  * Documentation fixes (Issues #3224, #2667)
  * Fixed string attributes (e.g. resname, segid) not working on Residues and Segments
    created using add_Residue and add_Segment (Issue #3437)

Enhancements
  * Added dielectric analysis module (PR #2118)
  * Supports TPR files produced by Gromacs 2022 (PR #3514)
  * Add support for millisecond and microsecond units (Issue #3473, PR #3491)
  * Adds :meth:`parse_n_atoms` to H5MD reader (Issue #3465)
  * Add option for custom compiler flags for C/C++ on build and remove march
    option from setup.cfg (Issue #3428, PR #3429).
  * Added R/S Chirality support to RDKit parsed molecules
  * Added MDAnalysis.lib.distances.minimize_vectors

Changes
  * `packaging` is now a core dependency for MDAnalysis
  * Indexing a group (AtomGroup, ResidueGroup, or SegmentGroup) with None
    raises a TypeError (Issue #3092, PR #3517)
  * TRZReader now defaults to a `dt` of 1.0 (instead of 0.0 previously) when
    it cannot be obtained from file (Issue #3257)
  * Dropped python 3.6 support and raised minimum numpy version to 1.18.0
    (NEP29)

Deprecations
  * Deprecated the 'pbc' kwarg for various Group methods, the 'wrap' kwarg
    should be used instead. (Issue #1760)


08/21/21 tylerjereddy, richardjgowers, IAlibay, hmacdope, orbeckst, cbouy,
         lilyminium, daveminh, jbarnoud, yuxuanzhuang, VOD555, ianmkenney,
         calcraven,xiki-tempula, mieczyslaw, manuel.nuno.melo, PicoCentauri,
         hanatok, rmeli, aditya-kamath, tirkarthi, LeonardoBarneschi, hejamu,
         biogen98, orioncohen, z3y50n, hp115, ojeda-e, thadanipaarth, HenryKobin,
         1ut, sulays, ahy3nz, fiszczyp, fiona-naughton

  * 2.0.0

Fixes
  * Added an `rdkit_kwargs` parameter to pass arguments to the RDKitConverter
    from the `select_atoms` method (Issue #3319, PR #3324)
  * Fixes AtomGroup.unique, ResidueGroup.unique, SegmentGroup.unique not
    sorting the output atoms. The returned group is now always a copy.
    (Issue #3364, Issue #2977, PR #3368)
  * Only GRO files with unit cells defined with 3 or 9 entries are now
    supported (Issue #3305)
  * Ensures that reading and writing of GRO files with missing unit cell
    information is consistently treated (Issue #3305)
  * Fixed sometimes wrong sorting of atoms into fragments when unwrapping
    (Issue #3352, PR #3353)
  * Fixed missing array flatten preventing PCA from running when mean positions
    provided and bugs causing tests to incorrectly pass (Issue #2728, PR #3296)
  * DL_POLY HISTORY file may contain unit cell dimensions even if there are
    no periodic boundary conditions (imcom=0) (Issue #3314, PR #3312).
  * New RDKitConverter cache system to fix issue #2958 (PR #2942)
  * Fixed OpenMM converter documentation not showing up in the Converters
    section (Issue #3262, PR #2882)
  * WaterBridgeAnalysis double counts the water (Issue #3119, PR #3120)
  * NCDFReader now defaults to a dt value of 1.0 ps when it cannot estimate
    it from the first two frames of the file (Issue #3166)
  * Get chi1_selection to match canonical gamma atoms (Issue #2044)
  * ITPParser now accepts relative paths (Issue #3037, PR #3108)
  * Fixed issue with unassigned 'GAP' variable in fasta2algin function when
    resids are provided in input (Issue #3124)
  * Improve diffusionmap coverage (Issue #3208)
  * Removed deprecated parameters `n_jobs` and `precompute_distances` of
    sklearn.cluster.KMeans (Issue #2986)
  * Helix_analysis coverage raised to 100% and `from __future__ import`
    removed (Issue #3209)
  * Fixed 'sphzone', 'sphlayer', 'cyzone', and 'cylayer' to return empty if the
   zone/layer is empty, consistent with 'around' (Issue #2915)
  * A Universe created from an ROMol with no atoms returns now a Universe
    with 0 atoms (Issue #3142)
  * PDBParser will check for the presence of the chainID attribute of an
    atom group and use these values instead of just using the end of segid.
    If no chainID attribute is present, then a default value will be
    provided. If the chainID for an atom is invalid (longer than one character,
    not alpha-numeric, blank) it will be replaced with a default. (Issue #3144)
  * ValueError raised when empty atomgroup is given to DensityAnalysis
    without a user defined grid. UserWarning displayed when user defined
    grid is provided. (Issue #3055)
  * Fixed import of several `__all__` lists (PR #3013)
  * atommethods (_get_prev/next_residues_by_resid) returns empty residue group
    when given empty residue group (Issue #3089)
  * MOL2 files without bonds can now be read and written (Issue #3057)
  * Write `CONECT` record only once in multi-model PDB files (Issue #3018)
  * Add '.nc' as a recognised extension for the NCDFWriter (Issue #3030)
  * PDB parser now assigns empty records for partially missing/invalid elements
    instead of not assigning the elements attribute at all (Issue #2422)
  * PDB writer now uses elements attribute instead of guessing elements from
    atom name (Issue #2423)
  * Cleanup and parametrization of test_atomgroup.py (Issue #2995)
  * The methods provided by topology attributes now appear in the
    documentation (Issue #1845)
  * AtomGroup.center now works correctly for compounds + unwrapping
    (Issue #2984)
  * Avoid using deprecated array indexing in topology attributes
    (Issue #2990, PR #2991)
  * ParmedParser no longer guesses elements if they are not recognised, instead
    empty strings are assigned (Issue #2933)
  * Instead of using ATOM for both ATOM and HETATM, HETATM record type
    keyword is properly written out by PDB writer (Issue #1753, PR #2880).
  * Change referenced PDB standard version to 3.3 (Issue #2906).
  * Fixed reading in masses and charges from a hoomdxml file
    (Issue #2888, PR #2889)
  * Bond attribute is no longer set if PDB file contains no CONECT records
    (Issue #2832)
  * ResidueAttrs now have Atom as a target class by default; ICodes and
    Molnums now have default target_classes (#2803, PR #2805)
  * Selections on emtpy AtomGroups now return an empty AtomGroup instead of an
    error (Issue #2765)
  * TOPParser no longer guesses elements when missing atomic number records
    (Issues #2449, #2651)
  * Testsuite does not any more matplotlib.use('agg') (#2191)
  * In ChainReader, read_frame does not trigger change of iterating position.
    (Issue #2723, PR #2815)
  * TRZReader now checks `n_atoms` on reading. (Issue #2817, PR #2820)
  * TRZWriter now writes `n_atoms` to the file. (Issue #2817, PR #2820)
  * rdf.InterRDF_s density keyword documented and now gives correct results for
    density=True; the keyword was available since 0.19.0 but with incorrect
    semantics and not documented and did not produce correct results (Issue
    #2811, PR #2812)
  * In hydrogenbonds.hbond_analysis.HydrogenbondAnalysis an AttributeError
    was thrown when finding D-H pairs via the topology if `hydrogens` was an
    empty AtomGroup (Issue #2848)
  * Fixed performance regression on select_atoms for string selections (#2751)
  * Fixed the DMSParser, allowing the creation of multiple segids sharing
    residues with identical resids (Issue #1387, PR #2872)
  * H5MD files are now picklable with H5PYPicklable (Issue #2890, PR #2894)
  * Fixed Janin analysis residue filtering (include CYSH) (Issue #2898)
  * libmdaxdr and libdcd classes in their last frame can now be pickled
    (Issue #2878, PR #2911)
  * AtomGroup now are pickled/unpickled without looking for its anchored
    Universe (PR #2893)
  * ensure that unistd.h is included on macOS when compiling ENCORE's spe.c
    (Issue #2934)
  * Fix tests for analysis.bat that could fail when run in parallel and that
    would create a test artifact (Issue #2979, PR #2981)
  * Fix syntax warning over comparison of literals using is (Issue #3066)
  * new `Results` class now can be pickled/unpickled. (PR #3309)

Enhancements
  * LAMMPSDumpReader can now read coordinates in all the different LAMMPS
    coordinate conventions. Both LAMMPSDumpReader and LAMMPSDumpParser are no
    longer hardcoded to a set column layout (Issue #3358, PR #3360).
  * Add a ``sort`` keyword to AtomGroup.select_atoms for ordered selections
    (Issue #3364, PR #3368)
  * Adds AtomGroup.asunique, ResidueGroup.asunique, SegmentGroup.asunique
    with optional sorting. The returned group may or may not be a copy
    if it is already unique and/or sorted. (Issue #3364, PR #3368)
  * Adds ``issorted`` property (PR #3368)
  * MOL2 parser populates elements attribute from SYBYL atom types (Issue #3062)
  * Added guessers for aromaticity and Gasteiger partial charges (Issue #2468,
    PR #2926)
  * Added `Results` class for storing analysis results (#3115, PR #3233)
  * Added intra_bonds, intra_angles, intra_dihedrals etc. to return only
    the connections involving atoms within the AtomGroup, instead of
    including atoms outside the AtomGroup (Issue #1264, #2821, PR #3200)
  * Added del_TopologyAttr function (PR #3069)
  * Switch GNMAnalysis to AnalysisBase (Issue #3243)
  * Adds python 3.9 support (Issue #2974, PR #3027, #3245)
  * Added an MDAnalysis shields.io badge to the README (Issue #3227, PR #3229)
  * Added sort method to the atomgroup (Issue #2976, PR #3188)
  * ITPParser now reads [ atomtypes ] sections in ITP files, used for charges
    and masses not defined in the [ atoms ] sections
  * Add `set_dimensions` transformation class for setting constant
    box dimensions for all timesteps in trajectory (Issue #2691)
  * Added a ValueError raised when not given a gridcenter while
    providing grid dimensions to DensityAnalysis, also added
    check for NaN in the input (Issue #3148, PR #3154)
  * Read TPR files from Gromacs 2021 (Issue #3180)
  * Adds preliminary support for the ppc64le platform with minimal
    dependencies (Issue #3127, PR #3149)
  * Caches can now undergo central validation at the Universe level, opening
    the door to more useful caching. Already applied to fragment caching
    (Issue #2376, PR #3135)
  * Code for operations on compounds refactored, centralized and optimized for
    performance (Issue #3000, PR #3005)
  * Added automatic selection class generation for TopologyAttrs,
    FloatRangeSelection, and BoolSelection (Issues #2925, #2875; PR #2927)
  * Added 'to' operator, negatives, scientific notation, and arbitrary
    whitespace for ranges (Issue #3054, PR #2927)
  * Added `atol` and `rtol` keywords for float comparison (PR #2927)
  * Improved performance of the ParmEd converter (Issue #3028, PR #3029)
  * Improved analysis class docstrings, and added missing classes to the
    `__all__` list (PR #2998)
  * The PDB writer gives more control over how to write the atom ids
    (Issue #1072, PR #2886)
  * Preliminary support for the Linux ARM64 platform with minimal
    dependencies (PR #2956)
  * Refactored analysis.helanal into analysis.helix_analysis
    (Issue #2452, PR #2622)
  * Improved MSD code to accept `AtomGroup` and reject `UpdatingAtomGroup`
    and improved docs (Issue #2784)
  * Added the RDKitParser which creates a `core.topology.Topology` object from
    an `rdkit.Chem.rdchem.Mol` object, and the RDKitReader to read coordinates
    from RDKit conformers (Issue #2468, PR #2707)
  * Added the `Aromaticities` topology attribute, and the `aromatic` selection
    token (Issue #2468, PR #2707)
  * Added the `from_smiles` classmethod to the Universe (Issue #2468, PR #2707)
  * Added computation of Mean Squared Displacements (#2438, PR #2619)
  * Improved performances when parsing TPR files (PR #2804)
  * Added converter between Cartesian and Bond-Angle-Torsion coordinates (PR #2668)
  * Added Hydrogen Bond Lifetime via existing autocorrelation features (PR #2791)
  * Added Hydrogen Bond Lifetime keyword "between" (PR #2791)
  * Added lib.pickle_file_io module for pickling file handlers. (PR #2723)
  * Added pickle function to `Universe` and all Readers (without transformation)
    (PR #2723)
  * Dead code removed from the TPR parser and increased test coverage (PR #2840)
  * TPR parser exposes the elements topology attribute (PR #2858, see Issue #2553)
  * Added `H5MDReader` to coordinate readers (Issue #762, PR #2787)
  * Added new kwargs `select_remove` and `select_protein` to
    analysis.dihedrals.Janin analysis to give user more fine grained control
    over selections (PR #2899)
  * Improved performance of select_atoms on strings (e.g. name, type, resname) and
    'protein' selection (#2751 PR #2755)
  * Added an RDKit converter that works for any input with all hydrogens
    explicit in the topology (Issue #2468, PR #2775)
  * Added `TransformationBase`. Implemented threadlimit and add an attribute for
    checking if it can be used in parallel analysis. (Issue #2996, PR #2950)
  * Improved performance of H5MDReader by using h5py.Dataset.read_direct()
    to transfer data from HDF5 file into timestep. (PR #3293)
  * Added `H5MDWriter` to coordinate writers (Issue #2866, PR #3189)

Changes
  * NCDFWriter now allows for the writing of `scale_factor` attributes for
    trajectory variables. Default writing is no `scale_factor` except for
    velocities where it is 20.455 (Issue #2327)
  * Update the API for coordinate writers to reflect practice:
    start. stop, step are not required anymore (#3392)
  * Aliased bfactors to tempfactors (Issue #1901, PR#3345)
  * The RDKitParser now raises an error if only part of the atoms have metadata
    on residues (Issue #3318, PR #3325)
  * `analysis.pca.PCA` class now stores `p_components`, `variance`,
    `cumulated_variance` and `mean_atoms` using the
    `analysis.base.Results` class (Issues #3275 #3285)
  * Timestep now stores information in 'C' memory layout instead of
    the previous 'F' default (PR #1738)
  * `analysis.rdf.InterRDF` and `analysis.rdf.InterRDF_s` now store
    their result attributes using the `analysis.base.Results` class
    (Issue #3276, #3261)
  * Adds a `force` parameter to the RDKitConverter to allow conversion of
    molecules with no hydrogen atom, and a `set_converter_cache_size` function
    to change how many items are retained in the cache (PR #2942)
  * `hydrogenbonds.WaterBridgeAnalysis.generate_table()` now returns the table; as previously,
    it also generates the `table` attribute but the attribute will be removed in 3.0.0.
  * `hydrogenbonds.WaterBridgeAnalysis` now stores data using the
    `hydrogenbonds.WaterBridgeAnalysis.results` attribute
    (Issue #3261, Issue #3270)
  * Introduces a new converter API with all converters in MDAnalysis.converters
    (Issue #2790, PR #2882)
  * The ParmEd classes were moved to the `converters` module (PR #2882)
  * The `convert_to` method of the AtomGroup is now case-insensitive and
    passes keyword arguments to the underlying converter. It can also be used
    as `convert_to.lowercase_pkg_name()` for tab-completion (PR #2882)
  * `analysis.polymer.PersistenceLength` class now stores `lb`,
    `lp` and `fit` using the `analysis.base.Results` class
    (Issues #3289, #3291)
  * `analysis.hole2.HoleAnalysis` now stores ``sphpdbs``, ``outfiles``
    and ``profiles`` in the `analysis.base.Results` class (Issues #3261, #3269)
  * `analysis.diffusionmap.DistanceMatrix` class now stores `dist_matrix`
    using the `analysis.base.Results` class (Issues #3288, #3290)
  * `helix_analysis.HELANAL` now uses the `analysis.base.Results` class to
    store results attributes (Issue #3261, #3267)
  * `analysis.align.AlignTraj` and `analysis.align.AverageStructure` now store
    their result attributes using the `analysis.base.Results` class
    (Issues #3278 and #3261)
  * `analysis.hydrogenbonds.hbond_analysis.HydrogenBondAnalyis` now stores
    `hbonds` data using the `analysis.base.Results class (Issues #3271, #3261)
  * `analysis.rms.RMSD` and `analysis.rms.RMSF` classes now store `rmsd` and
    `rmsf` data using the `analysis.base.Results` class (Issues #3274 #3261)
  * `analysis.dihedrals` classes now store angle data using the
    `results.angles` attribute (Issue #3261)
  * `msd.EinsteinMSD` now uses the `analysis.base.Results` class to store
    analysis results (Issue #3261)
  * `bat.BAT` now uses the `analysis.base.Results` class to store the `bat`
    results attribute (Issue #3261, #3272)
  * `contacts.Contacts` now stores data using the `Contacts.results.timeseries`
    attribute. `Contacts.timeseries` is now deprecated (Issue #3261)
  * `DensityAnalysis` now uses the `results.density` attribute for storing
    data. The `DensityAnalysis.density` attribute is now deprecated
    (Issue #3261)
  * Deprecated analysis.hbonds.hbond_analysis has been removed in favour of
    analysis.hydrogenbonds.hbond_analysis (Issues #2739, #2746)
  * `GNMAnalysis`, `LinearDensity`, `PersistenceLength` and
    `AnalysisFromFunction` use the `results` attribute.
  * Fixed inaccurate docstring inside the RMSD class (Issue #2796, PR #3134)
  * TPRParser now loads TPR files with `tpr_resid_from_one=True` by default,
    which starts TPR resid indexing from 1 (instead of 0 as in 1.x) (Issue #2364, PR #3152)
  * Introduces encore specific C compiler arguments to allow for lowering of
    optimisations on non-x86 platforms (Issue #1389, PR #3149)
  * Continuous integration uses mamba rather than conda to install the
    dependencies (PR #2983)
  * removes deprecated `as_Universe` function from MDAnalysis.core.universe,
    as a result :class:`MDAnalysis.analysis.leaflet.LeafletFinder` now only
    accepts Universes for its `universe` argument (Issue #2920)
  * deprecated Python escape sequence usage has been fixed in our test suite,
    and the test suite will now raise an error for this usage of `\` (PR #2885)
  * deprecated NumPy type aliases have been replaced with their actual types
    (see upstream NumPy PR 14882), and our pytest configuration will raise an
    error for any violation when testing with development NumPy builds
    (`1.20.0`)
  * Changes development status from Beta to Mature (Issue #2773)
  * Removes deprecated MDAnalysis.analysis.hole, please use
    MDAnalysis.analysis.hole2.hole instead (Issue #2739)
  * Replaces use of mock in favour of unittest.mock (Issue #2777)
  * Removes support for passing `atoms` to XYZWriter. (Issue #2739, PR #2754)
  * Removes; deprecated support for using Writer.write(Timestep), deprecated
    Writer.write_next_timestep, use write() instead. (Issue #2739)
  * Removes deprecated density_from_Universe, density_from_PDB, Bfactor2RMSF,
    and notwithin_coordinates_factory from MDAnalysis.analysis.density
    (Issue #2739)
  * Removes deprecated ProgressMeter (Issue #2739)
  * Removes deprecated MDAnalysis.units.N_Avogadro (PR #2737)
  * Dropped Python 2 support
  * Set Python 3.6 as the minimum supported version (Issue #2541)
  * Changes the minimal NumPy version to 1.16.0 (Issue #2827, PR #2831)
  * Sets the minimal RDKit version for CI to 2020.03.1 (Issue #2827, PR #2831)
  * Removes deprecated waterdynamics.HydrogenBondLifetimes (PR #2842)
  * Make NeighborSearch return empty atomgroup, residue, segments instead of list (Issue #2892, PR #2907)
  * Updated Universe creation function signatures to named arguments (Issue #2921)
  * The transformation was changed from a function/closure to a class with
    `__call__` (Issue #2860, PR #2859)
  * deprecated ``analysis.helanal`` module has been removed in favour of
    ``analysis.helix_analysis`` (PR #2929)
  * Move water bridge analysis from hbonds to hydrogenbonds (Issue #2739 PR #2913)
  * `threadpoolctl` is required for installation (Issue #2860)
  * Added OpenMM coordinate and topology converters (Issue #2863, PR #2917)
  * Writing a TRZ file with no box information now raises a warning (Issue #3307)

Deprecations
  * Deprecated the `bfactors` topology attribute in favour of `tempfactors`.
    In 2.0 `bfactors` is simply an alias of `tempfactors`; in 3.0 `bfactors`
    will be removed. (Issue #1901, PR #3345)
  * The attributes `p_components`, `variance`, `cumulated_variance` and
    `mean_atoms` in `analysis.pca.PCA` are now deprecated in favour of
    `results.p_components`, `results.variance`, `results.cumulated_variance`
    and `results.mean_atoms`. They will be removed in 3.0.0
    (Issues #3275 #3285)
  * The `bins`, `edges`, `count`, `rdf` attributes for `analysis.rdf.InterRDF`
    and `analysis.rdf.InterRDF_s`, and `cdf` attributes for
    `analysis.rdf.InterRDF_s` are now deprecated in favour of `results.bins`,
    `results.edges`, `results.count`, `results.rdf` and `results.cdf`
    (Issue #3276, #3261)
  * The `hydrogenbonds.WaterBridgeAnalysis.table` attribute is now deprecated and will
    be removed in 3.0.0.
  * The `hydrogenbonds.WaterBridgeAnalysis.network` attribute is now deprecated
    in favour of `hydrogenbonds.WaterBridgeAnalysis.results.network`. It will be
    removed in 3.0.0 (Issue #3261, Issue #3270)
  * The `analysis.Contacts.timeseries` attribute is now deprecated in favour of
    `analysis.Contacts.results.timeseries`. It will be removed in 3.0.0
    (Issue #3261)
  * In 3.0.0 the ParmEd classes will only be accessible from the
    `MDAnalysis.converters` module.
  * The `analysis.polymer.PersistenceLength.lb`,
    `analysis.polymer.PersistenceLength.lp` and
    `analysis.polymer.PersistenceLength.fit` attributes are now deprecated in
    favour of `analysis.polymer.PersistenceLength.results.lb`,
    `analysis.polymer.PersistenceLength.results.lp` and
    `analysis.polymer.PersistenceLength.results.fit` respectively. They will
    be removed in 3.0.0 (Issues #3289, #3291)
  * The ``sphpdbs``, ``outfiles`` and ``profiles`` attributes of
    `analysis.hole2.HoleAnalysis` are now deprecated in favour of
    ``results.sphpdbs``, ``results.outfiles`` and
    ``results.profiles`` (Issues #3261, #3269)
  * The `analysis.diffusionmap.DistanceMatrix.dist_matrix` is now deprecated in
    favour of `analysis.diffusionmap.DistanceMatrix.results.dist_matrix`.
    It will be removed in 3.0.0 (Issues #3288, #3290)
  * The `analysis.align.AlignTraj.rmsd` attribute is now deprecated in
    favour of `analysis.align.AlignTraj.results.rmsd` (Issue #3278, #3261)
  * The `universe`, `positions`, and `rmsd` attributes of
    `analysis.align.AverageStructure` are now deprecated in favour of
    `results.universe`, `results.positions`, and `results.rmsd`
    (Issue #3278, #3261)
  * The `hbonds` attribute of
    `hydrogenbonds.hbond_analysis.HydrogenBondAnalysis.hbonds` is now
    deprecated in favour of `results.hbonds` (Issues #3271, #3261)
  * The `analysis.rms.RMSD.rmsd` and `analysis.rms.RMSF.rmsf` attributes are
    now deprecated in favour of `analysis.rms.RMSD.results.rmsd` and
    `analysis.rms.RMSF.results.rmsf` respectively. They will be removed in
    3.0.0 (Issues #3274, #3261)
  * The `angles` attribute for the `dihedrals` classes (Dihedral,
    Ramachandran, Janin) is now deprecated in favour of `results.angles`. It
    will be removed in 3.0.0 (Issue #3261)
  * The `analysis.Contacts.timeseries` attribute is now deprecated in favour of
    `analysis.Contacts.results.timeseries`. It will be removed in 3.0.0
    (Issue #3261)
  * The `density` attribute of `analysis.density.DensityAnalysis` is now
    deprecated in favour of `results.density`. It will be removed in 3.0.0
    (Issue #3261)
  * The analysis.hbonds.hbond_autocorrel code has been moved to
    analysis.hydrogenbonds.hbond_autocorrel and will be removed
    from analysis.hbonds in 3.0.0 (PR #3258)
  * In 2.1.0 the TRZReader will default to a dt of 1.0 ps when failing to
    read it from the input TRZ trajectory.


05/01/21  IAlibay

  * 1.1.1

Fixes
  * Remove absolute paths from package upload to pypi.


04/28/21  richardjgowers, IAlibay, tylerjereddy, xiki-tempula, lilyminium,
          zemanj, PicoCentauri

  * 1.1.0

Fixes
  * Removes use of absolute paths in setup.py to avoid Windows installation
    failures (Issue #3129)
  * Adds test for crashes caused by small box NSGrid searches (Issue #2670)
  * Replaces decreated NumPy type aliases and fixes NEP 34 explicit ragged
    array warnings (PR #3139, backports PRs #2845 and #2834)
  * Fixed several issues with NSGrid and triclinic boxes not finding some pairs.
    (Issues #2229 #2345 #2919, PR #2937).
  * Removed deprecation warning from numpy in hbond_autocorrel
    (Issue #2987 PR #3242)
  * Fixed bug in exclusion matrix of hbond_autocorrel (PR #3242)

Changes
  * Maximum pinned versions in setup.py removed for python 3.6+ (PR #3139)

Deprecations
  * ParmEdConverter no longer accepts Timestep objects at all
    (Issue #3031, PR #3172)
  * NCDFWriter `scale_factor` writing will change in version 2.0 to
    better match AMBER outputs (Issue #2327)
  * Deprecated using the last letter of the segid as the
    chainID when writing PDB files (Issue #3144)
  * Deprecated tempfactors and bfactors being separate
    TopologyAttrs, with a warning (PR #3161)
  * hbonds.WaterBridgeAnalysis will be removed in 2.0.0 and
    replaced with hydrogenbonds.WaterBridgeAnalysis (#3111)
  * TPRParser indexing resids from 0 by default is deprecated.
    From 2.0 TPRParser will index resids from 1 by default.


Enhancements
  * Added `get_connections` method to get bonds, angles, dihedrals, etc.
    with or without atoms outside the group (Issues #1264, #2821, PR #3160)
  * Added `tpr_resid_from_one` keyword to select whether TPRParser
    indexes resids from 0 or 1 (Issue #2364, PR #3153)


01/17/21 richardjgowers, IAlibay, orbeckst, tylerjereddy, jbarnoud,
         yuxuanzhuang, lilyminium, VOD555, p-j-smith, bieniekmateusz,
         calcraven, ianmkenney, rcrehuet, manuel.nuno.melo, hanatok

  * 1.0.1

Fixes
  * Due to issues with the reliability/accuracy of `nsgrid`, this method is
    currently not recommended for use. It has also been removed as an option
    from lib.capped_distance and lib.self_capped_distance. Please use PKDTree
    instead (Issue #2930)
  * Development status changed from beta to mature (Issue #2773)
  * pip installation only requests Python 2.7-compatible packages (#2736)
  * Testsuite does not use any more matplotlib.use('agg') (#2191)
  * The methods provided by topology attributes now appear in the
    documentation (Issue #1845)
  * AtomGroup.center now works correctly for compounds + unwrapping
    (Issue #2984)
  * In ChainReader, read_frame does not trigger change of iterating position.
    (Issue #2723, PR #2815)
  * empty_atomgroup.select_atoms('name *') now returns an empty
    AtomGroup instead of TypeError (Issue #2765)
  * TRZReader now checks `n_atoms` on reading. (Issue #2817, PR #2820)
  * TRZWriter now writes `n_atoms` to the file. (Issue #2817, PR #2820)
  * rdf.InterRDF_s density keyword documented and now gives correct results for
    density=True; the keyword was available since 0.19.0 but with incorrect
    semantics and not documented and did not produce correct results (Issue
    #2811, PR #2812)
  * In hydrogenbonds.hbond_analysis.HydrogenbondAnalysis an AttributeError
    was thrown when finding D-H pairs via the topology if `hydrogens` was an
    empty AtomGroup (Issue #2848)
  * Fixed reading in masses and charges from a hoomdxml file
    (Issue #2888, PR #2889)
  * Fixed performance regression on select_atoms for string selections (#2751)
  * Fixed the DMSParser, allowing the creation of multiple segids sharing
    residues with identical resids (Issue #1387, PR #2872)
  * Fixed missing space between floats in helanal output files (PR #2733)
  * ensure that unistd.h is included on macOS when compiling ENCORE's spe.c
    (Issue #2934)

Enhancements
  * Improved performance of the ParmEd converter (Issue #3028, PR #3029)
  * Improved performances when parsing TPR files (PR #2804)

Changes (not affecting users)
  * Continuous integration uses mamba rather than conda to install the
    dependencies (PR #2983)

Deprecations
  * waterdynamics.HydrogenBondLifetimes will be removed in 2.0.0 and
    replaced with hydrogenbonds.HydrogenBondAnalysis.lifetime() (#2547)
  * lib.util.echo() will be removed in 2.0.0
  * core.universe.as_Universe() will be removed in 2.0.0
  * analysis.leaflets.LeafletFinder() will not accept a filename any more,
    only a Universe, in 2.0.0
  * analysis.helanal will be removed in 2.0.0 and replaced by
    analysis.helix_analysis (PR #2622)


06/09/20 richardjgowers, kain88-de, lilyminium, p-j-smith, bdice, joaomcteixeira,
         PicoCentauri, davidercruz, jbarnoud, RMeli, IAlibay, mtiberti, CCook96,
         Yuan-Yu, xiki-tempula, HTian1997, Iv-Hristov, hmacdope, AnshulAngaria,
         ss62171, Luthaf, yuxuanzhuang, abhishandy, mlnance, shfrz, orbeckst,
         wvandertoorn, cbouy, AmeyaHarmalkar, Oscuro-Phoenix, andrrizzi, WG150,
         tylerjereddy, Marcello-Sega

  * 1.0.0

Fixes
  * MOL2Writer now accepts both Universes and AtomgGroups (Issue #2717)
  * Use user-provided `remark` in `XYZWriter` (Issue #2692)
  * Added more informative error messages about topology attributes
    (Issue #2565)
  * Made NoDataError a subclass of ValueError *and* AttributeError
    (Issue #2635)
  * Fixed select_atoms("around 0.0 ...") selections and capped_distance
    causing a segfault (Issue #2656 PR #2665)
  * `PDBWriter` writes unitary `CRYST1` record (cubic box with sides of 1 Ã…)
    when `u.dimensions` is `None` or `np.zeros(6)` (Issue #2679, PR #2685)
  * Ensures principal_axes() returns axes with the right hand convention (Issue #2637)
  * Fixed retrieval of auxiliary information after getting the last timestep
    of the trajectory (Issue #2674, PR #2683).
  * n_components correctly selects PCA components (Issue #2623)
  * Use internal residue indices instead of resids for similarity and connectivity
    selections (Issues #2669 and #2672, PR #2673)
  * Checks for cryo-em 1 A^3 default CRYST1 record,
    disabling setting of box dimensions if found (Issue #2599)
  * mdamath.angles now returns np.pi instead of -np.pi in cases of
    lower bound roundoff errors. (Issue #2632, PR #2634)
  * Proper error message for AlignTraj on trajectory without mass (Issue #2469)
  * Updated tests to have explicit fixtures (Issue #2618)
  * XDR offsets now read from trajectory if offsets file read-in fails on
    IOError (Issue #1893, PR #2611)
  * Fixed the deprecation warning from `collections` library in `flatten_dict`
    (Issue #2605)
  * Fixed test for the `save_paths` and `load` methods of :class:`PSAnalysis`
    (Issue #2593)
  * Fixes outdated :class:`TRJReader` documentation on random frame access
    (Issue #2398)
  * Fixed mda.Merge for Universes without coordinates (Issue #2470)(PR #2580)
  * PCA(align=True) now correctly aligns the trajectory and computes the
    correct means and covariance matrix (Issue #2561)
  * Correct args order of base.AnalysisFromFunction (Issue #2503)
  * encore.dres() returns dimensionality reduction details instead of a
    reference to itself (Issue #2471)
  * Handle exception when PDBWriter is trying to remove an invalid StringIO
    (Issue #2512)
  * Clarifies density_from_Universe docs and adds user warning (Issue #2372)
  * Fix upstream deprecation of `matplotlib.axis.Tick` attributes in
    `MDAnalysis.analysis.psa`
  * PDBWriter now uses last character of segid as ChainID (Issue #2224)
  * Adds a more detailed warning when attempting to read chamber-style parm7
    files (Issue #2475)
  * ClusterCollection.get_ids now returns correctly (Issue #2464)
  * Removes files for stubs mainly introduced in 0.11.0 (Issue #2443)
  * Removes support for reading AMBER NetCDF files with `cell_angle` units set
    to `degrees` instead of the convention agreed `degree` (Issue #2327).
  * Removes the MassWeight option from gnm (PR #2479).
  * AtomGroup.guess_bonds now uses periodic boundary information when available
    (Issue #2350)
  * Chainreader and continuous option work correctly when readers work for more
    than one format (Issue #2353)
  * PDBQTParser now gives icode TopologyAttrs (Issue #2361)
  * GROReader and GROWriter now can handle boxes with box vectors >1000nm
    (Issue #2371)
  * Guess atom element with uppercase name
  * TopologyGroup no longer reshapes the type, guessed, and order properties
    (Issue #2392)
  * Added test to check for unexpected attributes in TopologyParsers (Issue #2387)
  * PDB files no longer lose chainIDs when reading files without segIDs (Issue #2389)
  * The expected frames are made available when a trajectory slice is sliced itself
    with an incomplete slice and/or with a negative step (Issue #2413)
  * TXYZ parser uses strings for the atom types like other parsers (Issue #2435)
  * ITPParser now parses ITP *and* TOP files from GROMACS, reads #include files, and
    substitutes #define variables both from the file and when passed in as a keyword
    argument. The directives parsed into bonds, angles, impropers, and dihedrals now
    match TPRParser. (PR #2408)
  * Added parmed to setup.py
  * Fixed example docs for polymer persistence length (#2582)
  * Fixed HydrogenBondAnalysis to return atom indices rather than atom ids (PR #2572).
    Fixed the check for bond information in the _get_dh_pairs method (Issue #2396).
  * Added missing selection module to leaflet.py (Issue #2612)
  * Contact Analysis class respects PBC (Issue #2368)

Enhancements
  * Added support for FHI-AIMS input files (PR #2705)
  * vastly improved support for 32-bit Windows (PR #2696)
  * Added methods to compute the root-mean-square-inner-product of subspaces
    and the cumulative overlap of a vector in a subspace for PCA (PR #2613)
  * Added .frames and .times arrays to AnalysisBase (Issue #2661)
  * Added elements attribute to PDBParser (Issue #2553, #2647)
  * Added new density.DensityAnalysis (Issue #2502)
  * Added ability to use Chemfiles as a trajectory reader backend (PR #1862)
  * New analysis.hole2 module for HOLE interfacing. Contains a function (hole)
    for running HOLE on singular PDB files and class (HoleAnalysis) for
    trajectories (PR #2523)
  * Changed selection wildcards to support multiple wildcards (#2436)
  * Added coordinate reader and writer for NAMD binary coordinate format (PR #2485)
  * Improved ClusterCollection and Cluster string representations (Issue #2464)
  * XYZ parser store elements attribute (#2420) and XYZ write uses the elements
    attribute, if present (#2421).
  * Enhanges exception message when trajectory output file has no extension assigned.
  * Uniforms exception handling between Python 2.7 and Python 3: raised exceptions
    do not contain previous exceptions traceback. Uses six package to handle
    py27 and py3 compatibility (PR #2357)
  * Expanded selection wildcards to the start and middle of strings (Issue #2370)
  * Added type checking and conversion to Connection TopologyAttrs (Issue #2373)
  * New analysis.hydrogenbonds.HydrogenBondAnalysis class for the analysis of
    hydrogen bonds. Simpler interface, more extensible and better performance
    than analysis.hbonds.HydrogenBondAnalysis (PR #2237)
  * GSD reader is now supported on Windows (Issue #1923, PR #2384)
  * Empty Universe with 0 atoms is possible (Issue #2383)
  * Added ITPParser to parse GROMACS itp topology files (PR #2381)
  * Added match_atoms keyword to analysis.align (Issue #2285, PR #2380)
  * Added wrap/unwrap transformations (PR #2038)
  * Read TPR files from Gromacs 2020 (Issue #2412 and #2428)
  * Added analysis.align.AverageStructure to get the average structure of an
    out-of-memory trajectory (Issue #2039)
  * Added _add_TopologyObjects, _delete_TopologyObjects, and public convenience
    methods to Universe. Added type and order checking to _Connection
    topologyattrs. (PR #2382)
  * Added radius_cut_q as a method to contacts.Contacts (PR #2458)
  * Added ParmEdParser, ParmEdReader and ParmEdConverter to
    convert between a parmed.Structure and MDAnalysis Universe (PR #2404)
  * Improve the distance search in water bridge analysis with capped_distance (PR #2480)
  * Added weights_groupselections option in RMSD for mapping custom weights
    to groupselections (PR #2610, Issue #2429)
  * PersistenceLength.plot() now create new axes if current axes not provided (Issue #2590)
  * Added a correlations module to provide functionality for analysis modules to
    calculate the discrete autocorrelation function in a standardised way. Added
    the capability to allow intermittent behaviour (PR #2256)

Changes
  * Unused `MDAnalysis.lib.mdamath._angle` has been removed (Issue #2650)
  * Refactored dihedral selections and Ramachandran.__init__ to speed up
    dihedral selections for faster tests (Issue #2671, PR #2706)
  * Removes the deprecated `t0`, `tf`, and `dtmax` from
    :class:Waterdynamics.SurvivalProbability. Instead the `start`, `stop` and
    `tau_max` keywords should be passed to
    :meth:`Waterdynamics.SurvivalProbability.run`. Furthermore, the `stop`
    keyword is now exclusive instead of inclusive (Issue #2524).
  * :meth:`align.fasta2select` now writes `alnfilename` and `treefilename` to
    the current working directory (Issue #2701)
  * Removes duplicate `NUMBER_TO_ELEMENTS` table from topology._elements,
    `Z2SYMB` from topology.tables should now be used instead (Issue #2699)
  * Deprecated :class:`ProgressMeter` and replaced it with :class:`ProgressBar` using
    the tqdm package (Issue #928, PR #2617). Also fixes issue #2504.
  * Removed `details` from `ClusteringMethod`s (Issue #2575, PR #2620)
  * Removed deprecated :meth:`PersistenceLength.perform_fit` (Issue #2596)
  * Changed :meth:`PSAnalysis.generate_paths` keywords `store` and `filename`
    defaults to `False` and `None` (Issue #2593)
  * Removed `format` keyword from :meth:`MemoryReader.timeseries` (Issue #1453,
    #2443)
  * Deprecated :class:`LAMMPSDataConverter` has now been removed (Issue #2564)
  * Removed AtomGroup stubs (PR #1070, Issue #2443).
  * encore.hes() doesn't accept the details keyword anymore, it always returns
    the relevant details instead, consistently with ces() and dres(), in the
    form of a dictionary (Issue #2465)
  * Removed instant selectors on Universe and Group objects (e.g. AtomGroup.C,
    Segment.r1, Universe.s4AKE).  Use select_atoms instead (Issue #1377)
  * Calling Universe() now raises a TypeError advising you to use Universe.empty.
    Universe.empty() now no longer has n_atoms=0 as default. (Issue #2527)
  * deprecated `start`, `stop`, and `step` keywords have been removed from `__init__`
    in :class:`AnalysisBase`. These should now be called in :meth:`AnalysisBase.run`
    (Issue #1463)
  * Standardize `select` keyword by removing `selection`, `atomselection`
    and `ref_select` (Issue #2461, Issue #2530)
  * Removes support for setting `start`/`stop`/`step` trajecotry slicing
    keywords on :class:`HOLEtraj` construction. Also removes undocumented
    support for passing :class:`HOLE` parameters to :meth:`HOLEtraj.run`
    (Issue #2513).
  * Removes the `nproc` keyword from
    :class:`Waterdynamics.HydrogenBondLifetimes` as the multiprocessing functionality
    did not work in some cases(Issues #2511).
  * Added `min_mass` parameter to `guess_hydrogens` function in `HydrogenBondAnalysis`
    set to 0.9 by default (Issue #2472)
  * Removes `save()` function from contacts, diffusionmap, hole, LinearDensity,
    and rms (Issue #1745).
  * Removes; `save_table()` from :class:`HydrogenBondAnalysis`,
    `save_results()` from :class:`HydrogenBondAutoCorrel`, and
    `save_results()`/`filename`/`store` from :class:`PSAnalysis`. Also sets
    the deprecation of `hbonds/hbond_analysis.py` to v1.0 (Issues #1745,
    #2486, #2487, #2491, #2492).
  * Removes the `format` and `skip` keywords from :meth:`DCDReader.timeseries`
    (Issue #2443)
  * `fullgroup` selection has now been removed (#268)
  * AlignTraj `save()` method has been removed and the `filename` variable now
    defaults to the current working directory (Issues #2099, #1745, #2443)
  * Removed `MDAnalysis.migration` (Issue #2490, PR #2496)
  * The fasta2select now always assumes that the gap character in a sequence
    is "-" (Issue #2448, PR #2457)
  * Removed core.flags.  Default behaviour (eg pbc, units) now defaults to
    the default setting of the flag before removal.  If you were using flags
    you will now have to supply the flag setting as keyword arguments to
    function calls. (Issue #782)

Deprecations
  * analysis.hole is deprecated in 1.0 (remove in 2.0)
  * analysis.hbonds.HydrogenBondAnalysis is deprecated in 1.0 (remove in 2.0)
  * analysis.density.density_from_Universe() (remove in 2.0)
  * analysis.density.notwithin_coordinates_factory() (remove in 2.0)
  * analysis.density.density_from_PDB and BfactorDensityCreator (remove in 2.0)
  * Writer.write_next_timestep is deprecated, use write() instead (remove in 2.0)
  * Writer.write(Timestep) is deprecated, use either a Universe or AtomGroup


09/05/19 IAlibay, richardjgowers

  * 0.20.1

Fixes
  * The NetCDF writer now writes `cell_angle` units as `degree` instead of
    `degrees` in accordance with the AMBER NetCDF convention (Issue #2327).
  * Fixed installation without Cython (Issue #2337)


08/28/19 micaela-matta, xiki-tempula, zemanj, mattwthompson, orbeckst, aliehlen,
         dpadula85, jbarnoud, manuel.nuno.melo, richardjgowers, mattwthompson,
         ayushsuhane, picocentauri, NinadBhat, bieniekmateusz, p-j-smith, Lp0lp,
         IAlibay, tyler.je.reddy, aakognole, RMeli, lilyminium

  * 0.20.0

Enhancements
  * improved metal atom guess (Issue #2323)
  * improved atom element guessing in topology.guessers to check for elements
    after the first element (#2313)
  * added the zero-based index selection keyword (Issue #1959)
  * added position averaging transformation that makes use of the
    transformations API (PR #2208)
  * added find_hydrogen_donors to analysis.bonds.hbond_autocorrel to
    automatically determine donors where possible (#2181)
  * added analysis.polymer.sort_backbone to rearrange backbone atoms into
    sequential order (bondwise) (PR #2141)
  * added record_type to select_atoms language (PR #2179)
  * center, centroid, center_of_geometry, center_of_mass can now be computed per
    molecule or per fragment (PR #2182)
  * Atoms (AtomGroups) have a new fragindex (fragindices) property corresponding
    to the respective fragment (fragments) (PR #2182)
  * Atom-, Residue-, and SegmentGroups have a new unwrap() method allowing to
    make compounds (group/residues/segments/fragments/molecules) that are broken
    across periodic boundaries whole (Issues #1004 and #1185, PR #2189)
  * lib.mdamath.make_whole() now returns the resulting coordinates and is able
    to operate out-of-place, i.e., without modifying atom coordinates (PR #2189)
  * lib.mdamath.triclinic_vectors() got an optional argument allowing to specify
    the dtype of the returned box matrix. (Issue #2200, PR #2201)
  * added return_distances kwarg to self_capped_distance (Issue #2101, PR #2202)
  * *Group.wrap() now returns wrapped positions and can optionally work
    out-of-place (Issue #2203, PR #2204)
  * Improved performance of AtomGroup creation from ResidueGroups and
    SegmentGroups via ResidueGroup.atoms or SegmentGroup.atoms, respectively.
    This speeds up all methods using these mechanisms. (Issue #2203, PR #2204)
  * added more Van-der-Waals radii to improve guess_bonds (#2138, PR #2142)
  * added *Group.accumulate() (PR #2192)
  * added compound kwarg to total_mass and total_charge (PR #2192)
  * updated HydrogenBondAutoCorrel to use capped_distance in place of
    distance_array. (Issue #2103, PR #2209)
  * updated analysis.distances.contact_matrix to use capped_distance. (Issue #2102,
    PR #2215)
  * added functionality to write files in compressed form(gz,bz2). (Issue #2216,
    PR #2221)
  * survival probability additions: residues, intermittency, step with performance,
    (PR #2226)
  * added unwrap keyword to center (PR #2275)
  * added unwrap keyword to center_of_geometry (PR #2279)
  * added unwrap keyword to center_of_mass (PR #2286)
  * added unwrap keyword to moment_of_inertia (PR #2287)
  * added unwrap keyword to asphericity (PR #2290)
  * add high order water bridge support to water bridge analysis. (PR #2087)

Changes
  * added support for scale_factor in NCDFReader (Issue #2323)
  * added official support for Python 3.7 (PR #1963)
  * stopped official support of Python 3.4 (#2066, PR #2174)
  * In lib.mdamath, calculations within triclinic_box(), triclinic_vectors(),
    and box_volume() are performed in double precision. If a supplied box is
    invalid, an all-zero array or zero is returned, respectively. (Issue #2200,
    PR #2201)
  * changed fudge_factor in guess_bonds to deal with new vdw radii (#2138, PR #2142)
  * bump minimum numpy version to 1.13.3
  * changed the water bridge analysis output format (PR #2087)

Fixes
  * fixed ChainReader setting format with format keyword (Issue #2334)
  * fixed lack of check for scaling of NCDFReader velocities (Issue #2323)
  * fixed PDBReader and PDBWriter newlines for PDB header (Issue #2324)
  * fixes ProgressMeter issues with older Jupyter Lab versions (Issue #2078)
  * fixes ProgressMeter behaviour for non-AnalysisBase methods (Issue #2084)
  * fixed mol2 parser for status bit strings (Issue #2318)
  * fixed reading AMBER topologies with negative ATOMIC_NUMBERS (Issue #2306)
  * fixed reading bz2 compressed psf files (Issue #2232)
  * fixed mol2 comment header handling (Issue #2261)
  * fixed reading PDB files with partial CRYST lines (Issue #2252)
  * fixed transformation tests not being run (Issue #2241)
  * fixed the segmentation fault in capped_distances (Issue #2164, PR #2169)
  * fixed gcc support in MacOS (Issue #2162, PR #2163)
  * fixed error when reading bonds/angles/dihedrals from gsd file (Issue #2152,
    PR #2154)
  * fixed error when reading bonds/angles/dihedrals from hoomdxml file
    (Issue #2151, PR #2153)
  * fixed MacOS (XCode) library compatibility
    (Issue #2144)
  * fixed lib.nsgrid segfault for coordinates very close to the box boundary
    (Issue #2132, PR #2136)
  * fixed Lint error
    (Issue #2148, PR #2149)
  * Fixed Empty select_atoms string, now raises warning and returns empty
    AtomGroup (Issue #2112)
  * Read TPR files from Gromacs 2019 (PR #2161)
  * Fixed copying Universes created from PDB files (record_type attribute
    was problematic) (Issue #2178 #1926, PR #2179)
  * Fixed writing CONECT records when writing PDB files that are a
    subsection of original Universe (Issue #2194)
  * PDBReader now correctly reads HEADER information (Issue #2195)
  * Fixed reading MMTF files with some optional fields missing
    (Issue #2193)
  * Wrapped coordinates, i.e., coordinates resulting from *Group.wrap(),
    *Group.pack_into_box(), or lib.distances.apply_PBC() are now guaranteed
    to lie within the central periodic image (including its lower but
    *exluding* its upper boundaries) (Issue #2200, PR #2201)
  * *Group.wrap() is now guaranteed to only work on atoms actually belonging to
    the calling group. (Issue #2203, PR #2204)
  * Fixed documentation of MDAnalysis.analysis.contacts
  * Enforced consistent dtype (numpy.float32) of Universe.dimensions and
    Timestep.dimensions for all Universes and Readers (Issue #2190, PR #2213)
  * Fixed analysis.nucleic.hydroxyl() function: correctly recognize the
    2'-hydroxyl hydrogen H2'; gave wrong results (Issue #2218)
  * A clear message that the .pdb universe cannot contain a different number of
    atoms from frame to frame (Issue #1998, PR #2219)
  * Fixed reading multiframe GRO files, currently only the first frame will be
    read. (Issue #2276 PR #2277)
  * fixed calculation of Chi torsion in nucleic acid analysis (Issue #2248)
  * Fixed parallelization failure in get_distance_matrix() (Issue #2060, PR #2301)

Deprecations
  * analysis.polymer.PersistenceLength no longer requires the perform_fit()
    method to be used, this is done automatically in run()

Testsuite
  * Raised minimum pytest version to 3.3.0, warns now uses the `match`
    argument instead of `match_expr` (Issue #2329)
  * Add tests for the new water bridge analysis (PR #2087)

11/06/18 richardjgowers
  * 0.19.2

Changes
  * Added Windows support


11/05/18 orbeckst, PicoCentauri, richardjgowers, zemanj
  * 0.19.1

Fixes
   * limit output of Chainreader __repr__ (#2109)
   * added missing docs for lib.pkdtree (#2104)
   * Added sphinx markup for FrameIterator (#2106)
   * fixed error for residues and segments containing 0 atoms (#1999)
   * fixed numpy deprecation warnings (#2122, #2123)
   * Fixed reading PDB files with DOS line ending (#2128)

Deprecations
   * Default ``filename`` directory of align.AlignTraj is deprecated and
     will change in 1.0 to the current directory.

10/09/18 tylerjereddy, richardjgowers, palnabarun, orbeckst, kain88-de, zemanj,
         VOD555, davidercruz, jbarnoud, ayushsuhane, hfmull, micaela-matta,
         sebastien.buchoux, arm61, p-j-smith, IAlibay

  * 0.19.0

Enhancements
  * Added bond/angle/dihedral reading in PARM7 TOPParser (PR #2052)
  * Replaced multiple apply (_apply_distmat, _apply_kdtree)
    methods in distance based selections with
    lib.distances.capped_distance for automatic selection of
    distance evaluation method. (PR #2035)
  * Modified analysis.rdf.InterRDF to use lib.distances.capped_distance
    to handle rdf calculations for large systems. (PR #2013)
  * Added return_distances argument in lib.distances.capped_distances
    to evaluate and return distances only when required. Modified
    the optimization rules in lib.distances._determine_method for
    faster computations. (PR #2041)
  * Added method search_tree in lib.pkdtree to find all the pairs between
    two kdtrees. (PR #2041)
  * Added a wrapper of lib.nsgrid in lib.distances.self_capped_distance
    and lib.distances.capped_distanceto automatically chose the fastest
    method for distance based calculations. (PR #2008)
  * Added Grid search functionality in lib.nsgrid for faster distance based
    calculations. (PR #2008)
  * Modified around selections to work with KDTree and periodic boundary
    conditions.  Should reduce memory usage (#974 PR #2022)
  * Modified topology.guessers.guess_bonds to automatically select the
    fastest method for guessing bonds using
    lib.distance.self_capped_distance (PR # 2006)
  * Added lib.distances.self_capped_distance to internally select the
    optimized method for distance evaluations of coordinates with itself. (PR # 2006)
  * Added augment functionality to create relevant images of particles
    in the vicinity of central cell to handle periodic boundary
    conditions (PR #1977)
  * Added lib.distances.capped_distance function to quickly calculate all distances
    up to a given maximum distance (PR #1941)
  * Added a rotation coordinate transformation (PR #1937)
  * Added a box centering trajectory transformation (PR #1946)
  * Added a on-the-fly trajectory transformations API and a coordinate translation
    function (Issue #786)
  * Added various duecredit stubs
  * Import time reduced by a factor two (PR #1881)
  * Added compound kwarg to center, centroid, center_of_geometry, center_of_mass (PR #1903)
  * Added rdf.InterRDF_s to calculate site-specific pair distribution
    functions (PR #1815)
  * Increased performance of (repeated) calls to AtomGroup.pack_into_box()
    (PR #1922)
  * Added boolean property *Group.isunique (PR #1922)
  * Added *Group.copy() methods returning an identical copy of the respective
    group (PR #1922)
  * Use a faster function to deduplicate indices (PR #1951)
  * Calculations in *Group.center() are performed in double precision (#PR1936)
  * Functions in lib.distances accept coordinate arrays of arbitrary dtype
    (PR #1936)
  * Added pbc kwarg to Bond/Angle/Dihedral/Improper object value method,
    default True. (Issue #1938)
  * ChainReader can correctly handle continuous trajectories split into multiple files,
    generated with gromacs -noappend (PR #1728)
  * MDAnalysis.lib.mdamath now supports triclinic boxes and rewrote in Cython (PR #1965)
  * AtomGroup.write can write a trajectory of selected frames (Issue #1037)
  * Added dihedrals.py with Dihedral, Ramachandran, and Janin classes to
    analysis module (PR #1997, PR #2033)
  * Added the analysis.data module for reference data used in analysis (PR #2033)
  * Added analysis.dihedrals with Ramachandran class to analysis module (PR #1997)
  * Added augment functionality to create relevant images of particles
  * Most functions in `MDanalysis.lib.distances` previously only accepting
    arrays of coordinates now also accept single coordinates as input (PR #2048,
    Issues #1262 #1938)
  * Performance improvements to make_whole (PR #1965)
  * Performance improvements to fragment finding (PR #2028)
  * Added user-defined boxes in density code (PR #2005)
  * MemoryReader now can accept velocities and forces (PR #2080)
  * Universe.transfer_to_memory now copies dimensions, velocities and forces
    (where possible) (Issue #1041 PR #2080)

Fixes
  * Rewind in the SingleFrameReader now reads the frame from the file (Issue #1929)
  * Fixed order of indices in Angle/Dihedral/Improper repr
  * coordinates.memory.MemoryReader now takes np.ndarray only (Issue #1685)
  * Silenced warning when duecredit is not installed (Issue #1872)
  * Fixed HBondAnalysis not considering PBC for distances (Issue #1878)
  * Adding new TopologyAttrs with values defined always coerces this into
    a numpy array (Issue #1876)
  * Groups passed to select_atoms() are now type checked (Issue #1852)
  * Fixed inconsistent handling of groups with/without duplicates in
    pack_into_box() (Issue #1911)
  * Fixed format of MODEL number in PDB file writing (Issue #1950)
  * PDBWriter now properly sets start value
  * Introduced compatibility for pbd files hybrid36 format encoding (Issue #1897)
  * Zero length TopologyGroup now return proper shape array via to_indices
    (Issue #1974)
  * Added periodic boundary box support to the Tinker file reader (Issue #2001)
  * Modifying coordinates by assignation is consistently persistent when using
    the memory reader (Issue #2018)
  * Allow import of WaterBridgeAnalysis from analysis.hbonds (#2064)
  * Fixed SphericalLayer and SphericalZone selections with pbc=True.  Previously
    these shifted all atoms to inside the primary unit cell when calculating the
    center of the reference group (Issue #1795)
  * PCA analysis now uses start frame as reference frame rather than 0th frame
    (PR #2055)
  * Fixed trajectory iteration from a MDAnalysis.Universe.empty (#2076)
  * Fixed copies MemoryReader not linking to the underlying coordinate array
    on initial Timestep (Issue #2081 PR #2080)

Changes
  * TopologyAttrs are now statically typed (Issue #1876)
  * updated meta data for new PyPi (#1837)
  * AtomGroup.atoms, ResidueGroup.residues, and SegmentGroup.segments now return
    themselves instead of a new object to increase performance (PR #1922)
  * *Group.unique now returns a new object only if the respective group contains
    duplicates. Otherwise, the group itself is returned. Repeated access of
    *Group.unique will always return the same object unless the group is
    updated or modified. (PR #1922)
  * SurvivalProbability does not dilute SP anymore when the reference frame (t0)
    cannot find any molecules in the first place. (PR #1995)
  * The TPR parser reads SETTLE constraints as bonds. (Issue #1949)
  * Indexing a trajectory with a slice or an array now returns an iterable
    (Issue #1894)
  * Removed unused function MDAnalysis.lb.mdamath.one_to_many_pointers()
    (issue #2010)
  * Box input for functions in `MDAnalysis.lib.distances` is now consistently
    enforced to be of the form ``[lx, ly, lz, alpha, beta, gamma]`` as required
    by the docs (Issue #2046, PR #2048)
  * Added periodic keyword to select_atoms (#759)
  * PCA.transform now requires that PCA.run() has already been called
    otherwise a ValueError is raised (PR #2055)
  * The quiet keyword has been removed and replaced with verbose (Issue #1975
    PR #2055)
  * MDAnalysis.Universe.empty now creates a MemoryReader trajectory (#2076 #2077)

Deprecations
  * start/stop/step are deprecated in the initialization of Analysis classes.
    These parameters should instead be given to the run() method of the class.
    (Issue #1463 #1979 PR #2055)
  * Almost all "save()", "save_results()", "save_table()" methods in
    analysis classes were deprecated and will be removed in 1.0 (Issue
    #1972 and #1745)
  * Deprecated use of core.flags. For use_pbc, the pbc keyword should
    be used, use_KDTree_routines is obsolete as all distance calculations
    select the fastest method, all other uses of flags are deprecated.
    (#782)

Testsuite
  * skip tests for duecredit when duecredit is not installed (#1906)
  * updated meta data for PyPi and updated README and INSTALL

04/15/18 tylerjereddy, richardjgowers, palnabarun, bieniekmateusz, kain88-de,
         orbeckst, xiki-tempula, navyakhare, zemanj, ayushsuhane, davidercruz,
         jbarnoud

  * 0.18.0

Enhancements
  * Added flatten_dict function that flattens nested dicts into shallow
    dicts with tuples as keys.
  * Can now pass multiple attributes as a list to groupby function.
    Eg ag.groupby(["masses","charges"])
    (Issue #1839)
  * Added reading of record types (ATOM/HETATM) for PDB, PDBQT and PQR formats
    (Issue #1753)
  * Added Universe.copy to allow creation of an independent copy of a Universe
    (Issue #1029)
  * Added copy method to various core classes including Reader, TransTable,
    Topology, TopologyAttr (Issue #1029)
  * Added `reindex` option to GROWriter to preserve original atom ids when set to
    False (Issue #1777)
  * Can now pass 'atom_style' keyword argument when parsing Lammps Data files
    to specify what is on each line.  Eg atom_style = 'id type charge x y z'
    (Issue #1791)
  * Added periodic boundary condition option to HydrogenBondAnalysis (Issue #1188)
  * Added duecredit to prepare a summary of the citations, when a user
    uses MDAnalysis (Issue #412)
  * Added AtomGroup, ResidueGroup and SegmentGroup to the top module namespace

Fixes
  * Fixed MPI fork() warning when importing MDAnalysis in an Infiniband-enabled
    MPI environment (PR #1794)
  * Fixed waterdynamics SurvivalProbability ignoring the t0 start time
    (Issue #1759)
  * AtomGroup.dimensions now strictly returns a copy (Issue #1582)
  * lib.distances.transform_StoR now checks input type (Issue #1699)
  * libdcd now writes correct length of remark section (Issue #1701)
  * DCDReader now reports the correct time based on istart information (PR #1767)
  * added requirement scipy >= 1.0.0 (absolutely needed: >= 0.19) (Issue #1775)
  * Universe.empty now warns about empty Residues and Segmnets (Issue #1771)
  * AMBER netcdf reader now defaults to mmap=None as described in the docs
    (meaning mmap=True for files and NOT in memory), thus avoiding
    memory problems on big trajectories (Issue #1807)
  * analysis.align: fixed output and catch more cases with
    SelectionError when selections are incompatible (Issue #1809)
  * fix cython 0.28 compiler error
  * DCD istart was wrongly interpreted as frames (only in 0.17.0) instead of
    integrator timesteps, which lead to large time-offsets when reading and
    writing DCD files; now istart is correctly interpreted when reading and
    when writing, istart=None will set it to the CHARMM default nsavc but the
    default is istart=0, which will make the DCD start at frame 0 (Issue #1819)
  * Can now parse PDB files without resids (Issue #1854)
  * Fixed periodic KDTree, now requires Biopython version 1.71 onwards (Issue #1857)
  * fixed a bug in visualization.streamlines (Issue #1617)
  * Updated TPR parser for GROMACS 2018 (Issue #1796)
  * Fixed reading of PQR files generated by Gromacs (Issue #1804)

Changes
  * scipy >= 1.0.0 is now required (issue #1775 because of PR #1758)

Deprecations
  * undeprecated creating Groups from list of Components (Issue #1847)

Testsuite
  * Unit tests for unwanted side effects when importing MDAnalysis
  * MDAnalysis.visualization is now tested

01/24/18 richardjgowers, rathann, orbeckst, tylerjereddy, mtiberti, kain88-de,
         jbarnoud, nestorwendt, mmattaNU, jmborr, sobuelow, sseyler, rcortini,
         xiki-tempula, manuel.nuno.melo

  * 0.17.0

Enhancements
  * added support for GSD format topology/trajectory parser (PR #1693)
  * spherical selections tokens can use the periodic KDTree (PR #1733)
  * added Amber residue names to 'protein' atom selection (PR #1704)
  * KDTree for neighbor search on periodic systems (PR #1660, #1692)
  * Python versions 3.4 and upwards are now supported (Issue #260)
  * added Universe.empty to allow Universes of custom size to be constructed
    without any files (PR #1533)
  * add minimal topology reader that is able to load coordinate/trajectory
    files on their own without requiring a topology file (Issue #1371)
  * added "parse_n_atoms" to Reader API and implemented this for DCD, INPCRD,
    NCDF, TRR and XTC formats (PR #1533)
  * added 'all_coordinates' keyword to Universe to also load the topology file
    as a frame of the reader together with the trajectory files (PR #1533)
  * add low level lib.formats.libdcd module for reading/writing DCD (PR #1372)
  * replace old DCD reader with a Python 3 ready DCD reader (Issue #659)
  * about 20% speed improvements for GNM analysis. (PR #1579)
  * added support for Tinker TXYZ and ARC files
  * libmdaxdr and libdcd classes can now be pickled (PR #1680)
  * speed up atomgroup.rotate when point = (0, 0, 0) (Issue #1707)
  * introduce the water bridge analysis module (PR #1722)
  * Universe.add_TopologyAttr now accepts strings to add a given attribute
    to the Universe (Issue #1092, PR #1186)
  * The TPR parser populate the `moltypes` and `molnums` topology attributes;
    the `moltype` and `molnum` selection keyword are added
    (Issue #1555, PR #1578)
  * use gridDataFormats >= 0.4.0 for new 'type' kwarg in
    analysis.density.Density.export() to enable writing DX files
    compatible with (buggy) PyMOL (#1725)

Deprecations
  * HydrogenBondAnalysis detect_hydrogens=heuristic is marked for deprecation in 1.0
  * timeseries keyword format is replaced by order. The format keyword is marked for deprecation in 1.0

Fixes
  * Fixed analysis.psa.dist_mat_to_vec not returning int values (Issue #1507)
  * Fixed triclinic PBC transform for a- and b- axes (Issue #1697)
  * Fixed nuclinfo.tors() not converting delta (Issue #1572)
  * Changed _calc_dihedral and Dihedral.value() to match IUPAC convention
    (Issue #1565)
  * Fixed _calc_dihedral returning negative angles as positive (Issue #1554)
  * correctly read little-endian TRZ files on big-endian architectures (issue
    #1424)
  * Fixed type matching and inclusion compilation warnings for the
    ENCORE analysis package (issue #1390)
  * Fix extra deprecation warnings for instant segment and residue selectors
    (Issue #1476)
  * Accessing segments from a universe with an instant selector now issues a
    deprecation warning as expected (Issue #1478)
  * Fixed Angle.angle method return NaN values when angle was very close
    to 180 degrees (Issue #1556)
  * Fixed analysis.rms.RMSD failure with select != "all" (Issue #1487)
  * Fixed analysis.rms.RMSD: group RMSD calculation does not
    superimpose groupselections anymore (issue #720)
  * XDR files now avoid offset recalculation on a rewind (PR #1667)
  * Universe creation doesn't Matryoshka NamedStream anymore (PR #1669)
  * Fixed triclinic unit cell distances for box edges (Issue #1475)
  * Fixed analysis.rms.RMSD: selections are now applied to atomgroup, not to
    atomgroup.universe
  * Default filename argument for AlignTraj works again (Issue #1713)
  * Fixed analysis.rms.RMSD failed when selection is unicode (PR #1710)
  * Fixed analysis.align.AlignTraj failed when step > 1 (Issue #1714)

Changes
  * generate pairwise distance matrix, analysis.psa.PSAnalysis.D, by default
    when analysis.psa.PSAnalysis.run_pairs_analysis is run (Issue #1507)
  * remove deprecated TimeSeriesCollection
  * remove deprecated analysis.align.rms_fit_trj
  * remove deprecated analysis.contacts.ContactAnalysis
  * remove deprecated analysis.contacts.ContactAnalysis1
  * remove deprecated analysis.hbonds.hbond_analysis 1-indexing
  * remove deprecated analysis.rms `target` keyword from functions
  * remove deprecated analysis.rms.RMSD `mass_weighted` keyword
  * remove deprecated analysis.align `mass_weighted` keyword from classes
  * remove deprecated analysis.psa `mass_weighted` keyword from classes
  * use fast scipy.io.netcdf pure python implementation for reading of Amber
    netcdf3 trajctories instead of netCDF4 but use netCDF4 for fast
    writing (if available) or fall back to netcdf (see also Issue #506)
  * libmdaxdr classes now accept more argument types for a write (PR #1442)
  * libmdaxdr classes now raise EOFError when accessing another frame after
    the end of the file. Used to raise IOError.
  * Universe.load_new() now returns the universe itself instead of
    tuple (filename_or_array, trajectory_type) (Issue #1613)
  * docs: URLs to (www|docs).mdanalysis.org now link to SSL-encrypted site
    (see issue MDAnalysis/MDAnalysis.github.io#61)
  * attributes can not be assigned to AtomGroups (and similar objects) unless
    they are part of the Universe topology (Issue #1092 PR #1186)


06/29/17 richardjgowers, rathann, jbarnoud, orbeckst, utkbansal

  * 0.16.2

Deprecations
  * deprecated core.Timeseries module for 0.17.0 (Issue #1383)
  * deprecated instant selectors for 1.0 (Issue #1377)
  * deprecated the core.flag registry for 1.0 (Issue #782)

Fixes
  * fixed GROWriter truncating long resids from the wrong end (Issue #1395)
  * Fixed dtype of numpy arrays to accomodate 32 bit architectures (Issue #1362)
  * Groups are hashable on python 3 (Issue #1397)

Changes
  * scipy and matplotlib are now required dependencies (Issue #1159)


Changes
  * scipy and matplotlib are now required dependencies (Issue #1159)

Testsuite
  * Port to pytest - removed nose as a dependency (Issue #884)


06/03/17 utkbansal, kain88-de, xiki-tempula, kaplajon, wouterboomsma,
         richardjgowers, Shtkddud123, QuantumEntangledAndy, orbeckst,
         kaceyreidy

  * 0.16.1

Enhancements
  * Universe now works with StringIO objects for topologies and trajectories.
  * Residues with the same residue ids are not merged by default now
    (apply to PDB, GRO) (Issue #1306)
  * Improved print to screen format in waterdynamics module (using
    ProgressMeter).
  * PQRParser now treats insertion codes properly (Issue #1317)
  * made online docs responsive with the Alabaster Sphinx theme (#378)

Fixes
  * In Universe.transfer_to_memory(): dt is now adjusted with step (Issue #1310)
  * Various documentation sphinx errors (PR #1312)
  * Bugfix in confdistmatrix.get_distance_matrix; now works on all trajectory types.
    (issue #1324)
  * Fixed bug "no molecules in water selection" in waterdynamics analysis
    module.
  * Fix hbond_analysis cannot deal with Universe where no two atoms are with 3A.
    (PR #1325)
  * Fix PDBParser docs for conect (issue #1246)
  * Fixed bug where amber topology files would fail to load if number of atoms was
    exactly divisible by number of atoms per line (issue #1331)
  * Fixed incorrect handling of residue names with trailing numbers in
    HydrogenBondAnalysis (issue #801)
  * Fixed AnalysisBase class provides numerical start,stop,step values (PR #1340)
  * Fixed PSFParser not creating multiple residues for identical resids in
    different segments. (Issue #1347, PR #1348)
  * Add the OC1 and OC2 from amber99sb-ildn to hydrogen bond acceptors (issue #1342)
  * Fix RMSF run return value (PR #1354)
  * Fixed documentation in pca (Issue #1378 PR #1379)

Changes
  * Enable various pylint warnings to increase python 3 compatibility
  * Change Mathjax cdn (Issue #1313)
  * Change mass_weight to weights for PSA analysis
  * Move mass_weights deprecation to version 0.18
  * Docs moved to http://docs.mdanalysis.org (Issue #1315)
    and made responsive (Alabaster theme with readable-sphinx CSS)
    (Issue #378)
  * speed improvements parsing PDB / PDBQT / PQR / XYZ coordinate reader (Issue #1308)


04/10/17 kain88-de, fiona-naughton, richardjgowers, tyler.je.reddy, jdetle
         euhruska, orbeckst, rbrtdlg, jbarnoud, wouterboomsma, shanmbic,
         dotsdl, manuel.nuno.melo, utkbansal, vedantrathore, shobhitagarwal1612,
         xiki-tempula, kash1102, vedantrathore

  * 0.16.0

Enhancements
  * Added 'filename' attribute to 'MemoryReader'
  * GRO reader conforms to the reader API standard(#1196)
  * Improved __str__ and __repr__ of 'GroupBase' class in
    MDAnalysis.core.groups (addresses Issue #1223)
  * Added dynamic selections (addresses Issues #175 and #1074).
  * Added 'MemoryReader' class to allow manipulation of trajectory data
    in-memory, which can provide substantial speed-ups to certain
    calculations.
  * Universe creation now takes an 'in_memory' option, which will
    transfer the corresponding trajectory to memory. Likewise a new
    'Universe.transfer_to_memory()' method makes it possible to make
    this transfer after construction of the universe
  * Added 'in_memory' option to 'rms_fit_trj', which makes it possible
    to do in-place (in-memory) alignment of trajectories.
  * All classes derived from 'AnalysisBase' now display a ProgressMeter
    with 'quiet=False'
  * The 'run' method from all 'AnalysisBase' derived classes return the
    class itself.
  * Added boolean flag at lib.distances.USED_OPENMP to reveal if
    OpenMP was used in compilation (Issue #883)
  * Added Principal Component Analysis module for linear dimensionality
    reduction.
  * Added Auxiliary module for reading additional timeseries data alongside
    trajectories (Issue #785)
  * Added AnalysisFromFunction & analysis_class, see (Issue #946 and PR #950)
  * Established the MDAnalysis.analysis.legacy module for unmaintained
    analysis code (Issue #743)
  * Added ProgressMeter to 'transfer_to_memory' function, to show progress
    of loading trajectory to memory (Issue #1028 and PR #1055).
  * Selecting atoms by resid now respects icodes if they were present. Ie
    select_atoms('resid 163A') works! (Issue #839 PR #1066)
  * Added ability to read MMTF format files (#907 PR #1069)
  * Added MDAnalysis.fetch_mmtf function to download from PDB and create
    Universe (#810 PR #1082)
  * Added coordinates.null.NullWriter, which behaves like a Writer but
    ignores all input; useful for suppressing output.
  * Added random access support to GMSReader and TRJReader (#1081)
  * Added atomgroup.center(weights, pbc) method to calculate the center
    of a group given weights
  * Universe anchors (for unpickling) now use a uuid (rather than filename)
    to distinguish themselves by default. Can still use anchor_name kwarg to
    control the anchor name manually. (PR #1125)
  * Added groupby method to Group objects. (PR #1112)
  * Added `singleframe` attribute to Writer API to exclude from known Writers
    for a single frame (Issue #1199 PR #1201)
  * Correct the display error of HydrogenBondAnalysis when start is not 0 or
    step is not one.
  * Groups (atomgroup, residuegroup, and segmentgroup) have more operators,
    included set operators (Issue #726)
  * Universes built with Merge now use the MemoryReader (Issue #1251)
  * speed improvement for analysis.gnm.closeContactGNMAnalysis(...,
    weights="size") by about 5x (partially Issue #1191)

Fixes
  * Trajectory slicing made completely Pythonic (Issue #918 PR #1195)
  * Argument validation of dist_mat_to_vec is fixed (#597 PR #1183)
  * Give correct error when the topology file format is not recognized (Issue #982)
  * Give correct error when file doesn't exist/ has bad permissions (Issue #981)
  * Improvement of analysis/waterdynamics module (Issue #935)
  * Removed MDAnalysis.analysis.PDBToBinaryTraj (Issue #1035)
  * MDAnalysis.analysis.distances.between() is no longer broken
  * GROWriter resids now truncated properly (Issue #886)
  * reading/writing lambda value in trr files (Issue #859)
  * fix __iter__/next redundancy (Issue #869)
  * SingleFrameReader now raises StopIteration instead of IOError on calling
    next (Issue #869)
  * Display of Deprecation warnings doesn't affect other modules anymore (Issue #754)
  * Changed nframes to n_frames in analysis modules for consistency (Issue #890)
  * fixed incompatibility with newer matplotlib in analysis.hole
  * Fixed modules that improperly documented and/or used frame slicing
    defaults (#914)
  * Fixed same interRDF can be run twice (Issue #924)
  * Support for TPR files produced by Gromacs-2016 (Issue #932)
  * Fixed parsing PDB files with CONECT records to TER entries (Issue #936)
  * Fixed parsing PDB files with single entry in CONECT record (Issue #937)
  * Progress meters are now displayed as expected on jupyter notebooks
    (Issue #927)
  * Reset trajectory to 0 after sliced iteration (Issue #1031)
  * Fixed rotaxis returning NaN if a=b (Issue #1045)
  * Fixed align_principal_axis onto a principal axes (Issue #1045)
  * Fixed NCDFWriter wrote velocities instead of forces if
    convert_units=False was set: now correctly writes forces (PR #1113)
  * Fixed warn about missing cython package in dev builds
  * Fix align.rotation_matrix checks array shape equality (Issue #1152)
  * Fixed strange error when writing a PDB with 0 atoms (Issue #1083 PR #1103)
  * Fixed selections using operators backwards ('prop 10 > mass') and sensitivity
    about whitespace around these (PR #1156 Issue #1011 #1009)
  * Fixed PSA analysis is now using AlignTraj
  * Fixed Principal Axes to order from highest to lowest eigenval (Issue #1162)
  * Fixed analysis.density with soluteselection and notwithin_coordinates_factory
    when using KDTree (Issue #1211)
  * GRO files with greater than 99,999 residues now read correctly (Issue #728)

Changes
  * Started unifying the API of analysis classes (named internally
    "Bauhaus" style; see Issue #719)
  * Added protected variable _frame_index to to keep track of frame iteration
    number in AnalysisBase
  * Added new AlignTraj class for alignment. (Issue #845)
  * Added new diffusionmap module for dimension reduction (Issue #857)
  * Added new PCA module for dimension reduction (PR #896)
  * Qcprot now takes N x 3 arrays instead of 3 x N arrays. This gives about a
    40% speed up. (PR #930)
  * The ProgressMeter class now has a `dynamic` keyword argument. It is now
    recommended to provide format strings using the new python format syntax,
    the old %-based syntax is still available but will be deprecated.
    (PR #944)
  * Analysis.rms.RMSD now confirms to standard analysis API (Issue #893)
  * Fragments in Universe.fragment are now sorted by the index of their first
    atom. (Issue 1007)
  * atoms.tranform/translate/rotate/rotateby return original atomgroup
    (Issue #1010)
  * atoms.translate/rotateby don't accept AtomGroup tuples as
    parameters anymore (Issue #1025)
  * atoms.rotate can be given center of rotation (Issue #1022)
  * XTCFile and TRRFile only raise IOError now on error.
  * Deprecate usage of MDAnalysis.core.AtomGroup
  * get_writer_for() returns NullWriter when filename=None instead of
    raising TypeError and filename is now a required arg instead of kwarg
  * moved coordinates.base.ChainReader to coordinates.chain.ChainReader
  * renamed private method ChainReader.get_flname() to ChainReader._get_filename()
  * totaltime now considers the first frame to be at time 0 (Issue #1137)
  * analysis.rms.RMSF now conforms to standard analysis API (PR #1136)
  * analysis.rms/align function keyword `mass_weighted` is replaced
    by generic `weights='mass'`. This new keyword allows to pass it an
    arbitrary weights array as well. (PR #1136)
  * Renamed various base classes for clarity.  Iobase -> IOBase,
    Reader -> ReaderBase, SingleFrameReader -> SingleFrameReaderBase,
    Writer -> WriterBase, TopologyReader -> TopologyReaderBase,
    SelectionWriter -> SelectionWriterBase (Issue #921)
  * Selection writers do not have a 'wa' mode anymore, but they have a 'close'
    method (Issue #1244)
  * Remove deprecated PrimitivePDB* classes
  * Remove deprecated `delta` keyword for ChainReader
  * Remove deprecated permissive_pdb_reader flag
  * Removed superfluous and confusing keywords `start` and `end` for resid
    selection in analysis.helanal.helanal_main() and
    analysis.helanal.helanal_trajectory()
  * weights="size" parameter in analysis.gnm.closeContactGNMAnalysis to
    replace MassWeight=True
  * bump minimum numpy version to 1.10.4

Deprecations (Issue #599)
  * Use of rms_fit_trj deprecated in favor of AlignTraj class (Issue #845)
  * Moved analysis.x3dna to the analysis.legacy module (Issue #906)
  * The keyword argument *quiet* is deprecated in favor of *verbose*
    throughout the library (Issue #903)
  * MassWeight=True parameter in analysis.gnm.closeContactGNMAnalysis
    deprecated in favor of weights="size".

Testsuite
  * Make knownfailure work even without parentheses.
  * Added a plugin to list the non-closed file handle (Issue #853, PR #874).
    The plugin can be disabled with --no-open-files.
  * The test_failure test can be made fail by setting the MDA_FAILURE_TEST
    environment variable (PR #874)
  * replaced XTC_HOLE test trajectory with more meaningful one MULTIPDB_HOLE
  * install external packages on Travis (SETUP == full: HOLE, clustalw)
    to test additional analysis code (Issue #898)
  * removed usage of random numbers from tests (Issue #958)
  * test_imports now always uses the correct source directory (Issue #939).


05/15/16 jandom, abhinavgupta94, orbeckst, kain88-de, hainm, jbarnoud,
         dotsdl, richardjgowers, BartBruininks, jdetle, pedrishi,
         fiona-naughton, jdetle

  * 0.15.0

Metadata

  * link download_url to GitHub releases so that Depsy recognizes
    contributors (issue #749)
  * a __version__ variable is now exposed; it is built by setup.py from the
    AUTHORS file (Issue #784)

API Changes

  * rmsd doesn't superimpose by default anymore. The superposition
    is controlled by the 'superposition' keyword now. (see issue #562, #822)

Enhancements

  * Add conda build scripts (Issue #608)
  * Added read-only property giving Universe init kwargs (Issue #292)
  * Added 'crdbox' as AMBER Trj format extension (Issue #846)
  * Iteration and seeking in PDB files made faster (Issue #848)

Fixes
  * Fixed TypeError in PSAnalysis heatmap-dendrogram plotting (Issue #1018)
  * ENT file format added to PDB Readers/Writers/Parsers (Issue #834)
  * rmsd now returns proper value when given array of weights (Issue #814)
  * change_release now finds number and dev (Issue #776)
  * units.py now correctly prints errors for unknown units.
  * test_shear_from_matrix doesn't fail for MKL builds anymore (Issue #757)
  * HEADER and TITLE now appear just once in the PDB. (Issue #741) (PR #761)
  * MOL2 files without substructure section can now be read (Issue #816)
  * MOL2 files can be written without substructure section (Issue #816)
  * GRO files with an incomplete set of velocities can now be read (Issue #820)
  * Fixed Atom.position/velocity/force returning a view onto Timestep array
    (Issue #755)
  * PDB files can now read a CRYST entry if it happens before model headers
    (Issue #849)
  * Fixed HistoryReader returning 1 based frame indices (Issue #851)

Changes
  * Added zero_based indices for HBondsAnalysis. (Issue #807)
  * Generalized contact analysis class `Contacts` added. (Issue #702)
  * Removed Bio.PDBParser and sloppy structure builder and all of
    MDAnalysis.coordinates.pdb (Issue #777)
  * PDB parsers/readers/writers replaced by "permissive"/"primitive"
    counterparts (formerly known as PrimitivePDBReader); the
    'permissive' keyword for Universe is now ignored and only the
    native MDAnalysis PDBReader is being used (Issue #777)
  * PDBReader only opens a single file handle in its lifetime,
    previously opened & closed handle each frame (Issue #850)

Deprecations (Issue #599)
  * Use of PrimitivePDBReader/Writer/Parser deprecated in favor of PDBReader/
    Writer/Parser (Issue #777)
  * Deprecated all `get_*` and `set_*` methods of Groups.
  * Deprecation warnings for accessing atom attributes from Residue,
    ResidueGroup, Segment, SegmentGroup. Will not be present or will
    give per-level results.
  * Deprecation warnings for accessing plural residue attributes from
    Residue or Segment (will disappear), or from SegmentGroup (will give
    per-Segment results).
  * Deprecation warnings for accessing plural segment attributes from Segment
    (will disappear).
  * Deprecated Atom number, pos, centroid, universe setter
  * Deprecated AtomGroup serials, write_selection
  * Deprecated Residue name, id
  * Deprecated Segment id, name
  * Deprecated as_Universe function; not needed
  * Deprecated ContactAnalysis and ContactAnalysis1 classes

Testsuite
  * metadata update: link download_url to GitHub releases so that
    Depsy recognizes contributors (issue #749) and added
    @richardjgowers as maintainer
  * a __version__ variable is now exposed; it is built by setup.py from the
    AUTHORS file (Issue #784)
  * Removed all bare assert (Issue #724)
  * added tempdir module


02/28/16 tyler.je.reddy, kain88-de, jbarnoud, richardjgowers, orbeckst
         manuel.nuno.melo, Balasubra, Saxenauts, mattihappy

  * 0.14.0

API Changes

  * Offsets files for Gromacs trajectory formats have been changed to a numpy
    style format '.npz'. Offsets files will be regenerated when you load a
    xtc/trr trajectory again. (Issue #441)
  * rotation_matrix now accepts array-likes as input

Enhancement

  * XDR file seeking errors now report system errno. (PR #678)
  * Offsets reading for xtc/trr files has been sped up. (Issue #441)
  * select_atoms now implicitly ORs multiple values after a keyword for
    many types of selections (Issue #345)
  * Performance improvements for the PDBReader of about 10%
  * LinearDensity analysis module added, which allows to compute linear mass
    and charge density profiles along the three cartesian axes of the cell.
    Works for orthorombic, fixed volume cells only. (Issue #670)
  * Trajectories can now be sliced using a boolean array (Issue #725)

Changes

  * xdrlib was rebranded libmdaxdr. (Issue #679)
  * xdrlib has been ported to cython. (Issue #441)
  * util.NamedStream no longer inherits from basestring (Issue #649)
  * Short TRZ titles are striped from trailing spaces. A friendlier error
    message is raised when the TRZ writer is asked to write a title longer
    than 80 characters. (Issue #689)
  * PDB doesn't save charge information anymore
  * coordinates.core.get_writer_for uses the user defined format if provided
    before trying to deduce the format from file extension. (Issue #712)

Fixes

  * Syntax error corrected in psa.py (Issue #738)
  * XDR file seeking and telling working again for large files (Issue #677).
  * ContactAnalysis1 run method now starts at frame index 0 by default (Issue #624)
  * Fixed PrimitivePDBWriter alignment of the atom name. (Issue #639 and #647)
  * The 'atom' selection keyword returns an empty selection rather than an
    error when no atoms are are found. (Issue #644)
  * nucleic selection will now detect nucleic residue names suffixed with 3 or 5
    (Issue #461)
  * Fixed Reader returning all frames with stop in slice was 0 (Issue #672)
  * Fixed NCDFReader not reading dt (Issue #676)
  * Fixed PDB-Topology read bonds for atom ids larger then 10000 (Issue #693)
  * Fixed Type Error in qcprot.pyx when no rotation can be fond (Issue #705)
  * Fixed cyzone selection failing in orthogonal systems (Issue #710)
  * Fixed Error in calculation of average grid density (Issue #716)
  * Fixed indexing an AtomGroup using a list of bools now working (Issue #729)

Testsuite
  * Added the cleanup plugin (--with-mda_cleanup) to delete offset files
    after tests have run (Issue 669)
  * Made memleak testing python 3 compliant (Issue 662). It may be a moot
    point since python 3.4 now cleverly deals with leaks.


01/16/16 tyler.je.reddy, kain88-de, richardjgowers, manuel.nuno.melo,
         orbeckst, Balasubra

  * 0.13.0

API Changes

  * ChainReader `delta` keyword deprecated in favor of `dt`. (Issue #522)
  * XYZWriter can now be used as a container format for different protein models
    as well as a normal trajectory. If `n_atoms` is None (default) MDAnalysis
    assumes that it is used as a container and won't give a warning if the
    number of atoms differs between frames.
  * GROWriter.fmt strings updated to use format style (Issue #494)
  * removed MDAnalysis.lib.parallel.distances; use the new backend="OpenMP"
    keyword for the functions in MDAnalysis.lib.distances (Issue #530)

Enhancement

  * ChainReader now reports times properly summed over sub-readers (Issue #522)
  * GRO file reading approximately 50% faster for large files (Issue #212)
  * GRO file writing now will write velocities where possible (Issue #494)
  * Added bonded selection (Issue #362)
  * Spherical layer and spherical zone selections now much faster (Issue #362)
  * new keyword "backend" for accelerated functions in MDAnalysis.lib.distances
    to select "serial" or "OpenMP"-enabled versions of the code; the default
    is "serial" so old code will behave as before (see Issue #530)
  * Lammps data file parsing improved greatly.  Should now support all files,
    and triclinic geometry. (Issue #139)
  * Added analysis.polymer, currently with PersistenceLength tool (Issue #460)
  * Added analysis.rdf, with InterRDF tool. (Issue #460)
  * Made Reader.check_slice_indices a public method (Issue #604)
  * analysis.helanal.helanal_main() now returns results as dict
  * Added keyword to update selection every frame in density calculation (Issue #584)
  * New keywords start, stop, step for density.density_from_Universe()
    to slice a trajectory.
  * MOL2Reader now reads molecule and substructure into ts.data
  * All subclasses of ProtoReader, Writer and TopologyReader are automatically
    added to the MDAnalysis directory of I/O (Issue #431)

Changes

  * built html doc files are no longer version controlled (Issue #491)
  * The lib._distances and lib_distances_openmp libraries now have a
    OPENMP_ENABLED boolean flag which indicates if openmp was used in
    compilation.  (Issue #530)
  * analysis.helanal.helanal_trajectory() and helanal_main() now use a
    logger at level INFO to output all their computed values instead
    of printing to stdout
  * default offset for ProgressMeter was changed from 0 to 1 (to match
    the change from 1- to 0-based ts.frame counting)
  * removed superfluous analysis.density.density_from_trajectory();
    use density_from_Universe(TOPOL, TRAJ) instead.
  * MOL2Writer.write now only writes a single frame (Issue #521)

Fixes

  * Fixed select_atoms requiring a trajectory be loaded (Issue #270)
  * AtomGroup timesteps no longer cached (Issue #606)
  * GROWriter now truncates atom numbers over 99999 (Issue #550)
  * AMBER netcdf writer now correctly uses float32 precision (Issue #518)
  * Fixed a numpy incompatibility in `analysis.leaflet.LeafletFinder`.
    (Issue #533)
  * Cleaned up `MDAnalysis.Writer` docs regarding `dt` usage. (Issue #522)
  * Fixed setup-time dependency on numpy that broke pip installs. (Issue #479)
  * Fixed unpickling errors due to lingering dead universes. (Issue #487)
  * Fixed analysis.density modules requiring the defunct `skip` attribute
    on trajectories. (Issue #489)
  * ten2eleven camelcase fixer now deals with centerOfMass (Issue #470)
  * ten2eleven will now convert numatoms to n_atoms argument
    for writer() functions (Issue #470)
  * Fixed non-compliant Amber NCDFWriter (Issue #488)
  * Fixed many Timestep methods failing when positions weren't present
    (Issue #512)
  * Fixed PointSelection using KDTree (Issue #362)
  * Fixed GROParser getting tripped up by some file (Issue #548)
  * Fixed writing dx files from analysis.density.density_from_Universe()
    (Issue #544 and #410)
  * Fixed base.Reader._check_slice_indices not liking numpy ints
    (Issue #604)
  * Fixed broken analysis.helanal.helanal_trajectory() and
    helanal_main()
  * Fixed lib.util.greedy_splitext() (now returns full path)
  * Fixed MOL2Reader not reading molecule and substructure on init
    (Issue #521)
  * Fixed MOL2Writer rereading frames when writing them (Issue #521)
  * Fixed PDBWriter not writing occupancies from atoms (Issue #620)

Testsuite
  * removed ez_setup.py


10/08/15

  * 0.12.1 kain88-de, orbeckst, richardjgowers

API Changes

Enhancements

Changes

Fixes
  * Fixed OpenMP detection on Linux/OSX #459
  * Fixed reading of LAMMPS trajectory times: default unit ought
    to be fs and not ps
  * Fixed setting of dt for DCDReader (and LAMMPS DCDReader) with
    keyword argument Universe(..., dt=<dt>)
  * Fixed a bug in topology.core.guess_atom_element where a
    single digit atom name would raise an IndexError (#476)
  * Fixed numpy -> np in LeafletFinder

10/04/15 kain88-de, richardjgowers, dotsdl, sseyler, orbeckst, jbarnoud

  * 0.12.0

API Changes

  * PrimitivePDBReader now imports occupancies into the `TimeStep` object.
    (Issue #396)
  * Atoms without a Universe now return NoDataError instead of
    AttributeError
  * AtomGroups of zero length or containing Atoms with no Universe raise
    a NoDataError when trying to access Universe
  * Atoms now keep a strong reference to Universe, meaning they
    do not become orphaned when the Universe goes out of scope (Issue #297)

Enhancements

  * `Atom` and `AtomGroup` now expose occupancy value as `occupancy` and
    `occupancies` properties (Issue #396)
  * XYZReader now supports frame indexing (Issue #428)
  * Reader objects can now be sliced using lists and arrays of indices
    (Issue #437)
  * `PSAnalysis` now includes Hausdorff pairs analysis and associated nearest
    neighbor plotting method (Issue #438)
  * New class `PSAPair` added to MDAnalysis.analysis.psa for handling
    Hausdorff pairs analysis (Issue #438)
  * `PSAnalysis` can now generate annotated heat maps (Issue #438)
  * Added three new distance functions to MDAnalysis.analysis.psa (Issue #438)
  * Additional getters added to `Path` and `PSAnalysis` (Issue #438)
  * MSD matrix function now globally available in MDAnalysis.analysis.psa
    (Issue #438)
  * Function for obtaining coordinate axes from numpy trajectories now
    globally available in MDAnalysis.analysis.psa (Issue #438)
  * TPR parser updated for Gromacs 5.0.x and 5.1 (Issue #456)
  * Setup.py now looks for some configuration values in a config file. Each
    config option can also be changed via environment variables if they are
    prefixed with 'MDA_'. Current options are 'use_cython', 'ues_openmp', 'debug_cflags'

Changes
  * An AtomGroup with 0 atoms now yields an `IndexError` on call to
    `AtomGroup.write` (Issue #434)
  * `PSA` changed to `PSAnalysis` to reduce namespace clutter (Issue #438)
  * To build with debug-symbols use 'MDA_DEBUG_CFLAGS' instead of 'MDA_DEBUG_CFLAGS'

Fixes
  * Fixed minor issue in lib.mdamath.make_whole where if all bonds
    were correctly sized, it wouldn't notice that multiple fragments
    had been given. (Issue #445)
  * Fixed issue with PDB Topology parsing where if serials went
    over 100k, they wrapped to '***', breaking the parser (Issue #446)
  * Fixed AtomGroup.sequence() (Issue #451)
  * Fixed PrimitivePDBParser not detecting when resids had looped over
    10,000. The original resid is stored as Atom.resnum (Issue #454)
  * Fixed TPR topology parser to treat all bonded interactions available in
    Gromacs 5.1 (Issue #222 and #352, pull request #463).

09/07/15  tyler.je.reddy, richardjgowers, alejob, orbeckst, dotsdl,
        manuel.nuno.melo, cyanezstange, khuston, ivirshup, kain88-de,
        gormanstock

  * 0.11.0

  This release brings large changes to many parts of the API and might
  break many existing scripts. For a full guide on the API changes,
  please see:

  https://github.com/MDAnalysis/mdanalysis/wiki/MDAnalysis-0.11-unifying-release-user-guide

  Migrating old scripts has been made easier with the introduction of
  the ten2eleven tool which is part of the package.
  Details on how to use this are available at:

  https://github.com/MDAnalysis/mdanalysis/wiki/Migrating-MDAnalysis-code-with-ten2eleven.py

  API Changes

  * Changed AtomGroup counting methods to properties with different
    names: numberOfAtoms() to n_atoms, numberOfResidues() to
    n_residues, numberOfSegments() --> n_segments (Issue #376)
  * Changed trajectory reader numframes to n_frames (Issue #376)
  * Changed Timestep.numatoms to n_atoms (Issue #376)
  * Deprecated the use of the 'fullgroup' selection keyword (Issue #268)
  * Changed atom.number attribute to atom.index (Issue #372)
  * Changed many AtomGroup methods to properties.  These are: indices,
    masses, charges, names, types, radii, resids, resnames, resnums,
    segids (Issue #372)
  * Timestep can now only init using an integer argument (which
    represents the number of atoms) (Issue #250)
  * Added from_timestep and from_coordinates construction methods
    to base.Timestep (Issue #250)
  * Removed KDTree and CoordinateNeighbor from MDAnalaysis. If you
    want to search in cartesian coordinates directly for nighboring
    points use the BioPython KDTree or scikit-learn Neighbors module.
    The AtomNeighborSearch class has been ported to use the BioPython
    KDTree and is now located in MDAnalaysis.lib.NeighborSearch.
    MDAnalaysis.KDTree still exists in this version so load the
    NeighborSearch module but is deprecated and will be removed in
    1.0. (Issue #383)
  * Moved MDAnalysis.core.transformations to
    MDAnalysis.lib.transformations (Issue #287)
  * Moved MDAnalysis.core.util to MDAnalysis.lib.util (Issue #287)
  * Moved MDAnalysis.core.log to MDAnalysis.lib.log (Issue #287)
  * Moved MDAnalysis.core.units to MDAnalysis.units (Issue #287)
  * Moved MDAnalysis.core.distances to MDAnalysis.lib.distances
    (Issue #287)
  * Moved MDAnalysis.core.parallel to MDAnalysis.lib.parallel
    (Issue #287)
  * Moved norm, normal, angle, stp and dihedral from lib.util to
    lib.mdamath (Issue #287)
  * AtomGroup.bond .angle .dihedral and .improper now return the
    corresponding TopologyObject rather than performing the calculation
    (Issue #373)
  * All TopologyObjects now have a "value" method to evaluate them
    (Issue #373)
  * TopologyGroup now has a "values" methods to evaluate all contained
    bonds (Issue #373)
  * MDAnalysis.lib.distances.calc_torsions renamed to calc_dihedrals
    (Issue #373)
  * TopologyGroup.selectBonds renamed to select_bonds (Issue #389)
  * deprecated camelCase AtomGroup methods in favour of underscore_style
    (Issue #389)
  * deprecate lib.distances.applyPBC in favour of apply_PBC (Issue #389)
  * AtomGroup.res[names,ids,nums] and AtomGroup.segids now give arrays
    of equal size to AtomGroup (Issue #385)
  * ResidueGroup.segids now gives arrays of equal size to ResidueGroup
    (Issue #385)
  * AtomGroup setters `set_<property>` now plural for consistency with
    property names (Issue #385)
  * DCDReader no longer supports the "skip" keyword.  Use slicing
    on reader iteration to achieve same affect. (Issue #350)
  * All Readers have a default "dt" of 1.0 ps.  This applies also to
    single frame readers, these would previously raise an error on
    accessing dt. (Issue #350)
  * NCDF Reader no longer has a default skip_timestep of 1 (Issue #350)

  Enhancements

  * Added the 'global' selection keyword (Issue #268)
  * Added Jmol selection writer (Issue #356)
  * Added reading of Hoomd XML files (Issue #333)
    These can only act as topology information for now
  * Tests can now detect memleaks on a per-test basis (Issue #323)
  * AtomGroups can now be pickled/unpickled (Issue #293)
  * Universes can have a __del__ method (not actually added) without
    leaking (Issue #297)
  * Added reading of DL_Poly format CONFIG and HISTORY files, these can
    both act as both Topology and Coordinate information (Issue #298)
  * Timestep objects now have __eq__ method (Issue #294)
  * coordinates.base.Timestep now can handle velocities and forces
    (Issue #294)
  * Waterdynamics analysis module added, including five analysis
    classes: Hydrogen Bond Lifetimes, Water Orientational Relaxation,
    Angular Distribution, Mean Square Displacement and Survival
    Probability. Documentation and test are included. (Issue #300)
  * RMSF class added to rms analysis module
  * ProgressMeter now outputs every *interval* number of ``update``
    calls (Issue #313)
  * Created lib.mdamath for common mathematical functions. (Issue #287)
  * All Timesteps have the has_positions has_velocities and has_forces
    boolean flags (Issue #213)
  * Timesteps can now allocate velocities and forces if they weren't
    originally created with these through the use of the has_ flags.
    (Issue #213)
  * Timesteps now store 'dt' and 'time_offset' if passed to them by
    Reader to calculate time attribute (Issues #306 and #307)
  * MDAnalysis.selection: can also be written to a NamedStream
  * Added function lib.mdamath.make_whole to "unbreak" molecules
    over periodic boundaries. (Issue #355)
  * Added triclinic_dimensions to Timestep, returns representation of
    unit cell as triclinic vectors (Issue #276)
  * Added setter to bfactors property (Issue #372)
  * Added AtomGroup altLocs and serials properties with setters.
    (Issue #372)
  * MDAnalysis.core.AtomGroup.Merge now copies across bonding
    information (Issue #249)

  Changes

  * numpy >= 1.5 required
  * A ProtoReader class intermediate between IObase and Reader was added
    so specific Readers can be subclassed without __del__ (the
    ChainReader and SingleFrameReader), thus preventing memleaks
    (Issue #312).
  * Atoms (and all container classes thereof) are now bound to Universes
    only via weakrefs. If Universes are not explicitly kept in scope
    Atoms will become orphaned. (Issue #297)
  * Removed FormatError, now replaced by ValueError (Issue #294)
  * base.Reader now defines __iter__ and __iter__ removed from many
    Readers (now use base.Reader implementation) (Issue #350)
  * Timestep._x _y and _z are now read only (Issue #213)
  * moved MDAnalysis.selections.base.get_writer() to
    MDAnalysis.selections.get_writer() to break a circular import. This
    should not affect any code because
    MDAnalysis.selections.get_writer() already existed.
  * distances.contact_matrix now treats the particle distance with
    itself as a contact for sparse matrices and numpy arrays. The
    progress reporting for sparse calculations has been removed.
    (Issue #375)
  * TopologyObjects and TopologyGroup moved to core.topologyobjects
    module (Issue #373)
  * Consolidated coordinates.guess_format and topology.guess_format to
    lib.util.guess_format  (Issue #336)

  Fixes

  * All Writers now refer to time between written Timesteps as "dt",
    was previously "delta" in some Writers. (Issue #206)
  * Topology files can now be compressed (Issue #336)
  * Fixed PDB Parser and Reader requiring occupancy field (Issue #396)
  * Amber TRJ and NCDF Reader & Writers now use 'dt' instead of 'delta'
    to refer to time elapsed between timesteps. (Issue #350 and #206)
  * Fixed TPRParser considering LJ 1..4 exclusions as bonds (Issue #351)
  * ChainReaders no longer cause memory leak (Issue #312)
  * analysis.hbonds.HydrogenBondAnalysis performs a sanity check for
    static selections (Issue #296)
  * Fixed TRZWriter failing when passed a non TRZTimestep (Issue #302)
  * relative imports are now banned in unit testing modules
    (Issue #189)
  * Fixed bug and added DivisionByZero exception in
    analysis/waterdynamics.py in SurvivalProbability. (Issue #327)
  * Fixed parsing of PDB header data for PrimitivePDBReader (Issue #332)
  * Fixed contact_matrix handles periodic boundary conditions correctly
    for sparse matrices. (Issue #375)
  * Fixed analysis.hole not using CPOINT (Issue #384)
  * Fixed XTC/TRR .dt rewinding the trajectory (Issue #407)
  * Fixed TopologyGroup.from_indices not guessing topology object class
    (Issue #409)
  * Fixed TopologyGroup.__contains__ failing if different instance of
    same bond was queried. (Issue #409)

Testsuite
  * Overhaul of the test subsystem.
  * Tests now implement nose plugins, as a submodule. (Issue 331)
    Available plugins are: memleak testing, stderr capturing (for quieter
    test runs), and proper knownfailure implementation (Issue 338).


06/01/15  richardjgowers, caio s. souza, manuel.nuno.melo, orbeckst,
          sseyler
  * 0.10.0

  Enhancements

  * Improved performance of PDB Reading.  Up to 3x faster. (Issue #212)
  * Added the 'same ... as' selection keyword (Issue #217)
  * Added guess_bonds keyword argument to Universe creation.  This will attempt to
    guess all topology information on Universe creation. (Issue #245)
  * Added guess_bonds method to AtomGroup. (Issue #245)
  * All TopologyObjects (Bond, Angle etc) now have is_guessed attribute
  * TopologyGroup now has alternate constructor method, .from_indices()
  * Added TopologyObject.indices property
  * Amber netCDF4 Reader will now read Forces (Issue #257)
  * Amber netCDF4 Writer will now write Velocities and Forces
  * Added Amber coordinate/restart file reader (Issue #262)
  * Structural superpositions (MDAnalysis.analysis.align) can work
    with partial matches of atoms.
  * new path similarity analysis module MDAnalysis.analysis.psa
  * AtomGroup and TopologyGroup can now be indexed by numpy boolean arrays
    works identically to numpy masks. (Issue #282)

  Changes

  * TopologyGroup can now have zero length, and will evaluate to False
    when empty.
  * Renamed TopologyGroup.dump_contents to "to_indices"
  * Deprecated 'bonds' keyword from Universe and replaced with 'guess_bonds'
  * PrimitivePDBReader now requires the numatoms keyword
  * Structural superpositions (MDAnalysis.analysis.align) use partial
    matches of atoms by default (use strict=True for old behavior)
  * Function rmsd() was removed from MDAnalysis.analysis.align name
    space and should be accessed as MDAnalysis.analysis.rms.rmsd()

  Fixes

  * bynum selections now work from AtomGroup instances (Issue #275)
  * Cylinder selections now work from AtomGroup instances and honor
    PBC (Issue #274)
  * NetCDFWriter previously always wrote velocities/forces if found
    in timestep, rather than following how the Writer was created.


04/20/15  tyler.je.reddy, richardjgowers, orbeckst
  * 0.9.2

  Enhancements

  * Can now set velocity from Atom object. (Issue 221)
  * Atom object now has force attribute for getting/setting forces (requires a
    trajectory with forces) (Issue 221)
  * Added wrap method. Wrap allows the centers of groups of atoms to be
    moved within the primary unit cell without breaking up the group. (Issue 190)

  Changes

  * The MDAnalysis project moved from Google Code to GitHub: the new
    website is http://www.mdanalysis.org and the new source code
    repository is at https://github.com/MDAnalysis/mdanalysis
  * "applications" were removed from the mdanalysis source code
    repository and now exist as independent repositories under
    https://github.com/MDAnalysis/
  * Using a non-existent atom name as an instant selector now raises
    AttributeError instead of SelectionError (Issue 220)

  Fixes

  * trajectory objects are now properly closed in unit tests (Issue 256)


03/27/15  manuel.nuno.melo, richardjgowers, comconadin
  * 0.9.1

  Enhancements

  * XYZ file format can be used without an associated topology file.
  * GAMESS output files can be read as trajectories for calculations of
    type ``SURFACE'' and ``OPTIMIZE'' (work wit both GAMESS-US and Firefly)

  Changes

  * removed undocumented MDAnalysis.builder module

  Fixes

  * TRR coordinate access via _y and _z now works properly (Issue 224)

03/15/15  richardjgowers, tyler.je.reddy, orbeckst, e.jjordan12, zhuyi.xue,
          bala.biophysics, dotsdl, sebastien.buchoux
  * 0.9.0

  Enhancements

  * offsets for XTC and TRR trajectories now stored and retrieved
    automatically; improves init times for large trajectories (Issue 208)
  * docs now use secure mathjax CDN (Issue 182)
  * minor improvements to helanal docstring
  * Support for reading altloc records in PDB files
  * Cap proteins with ACE and NMA terminal caps
  * MOL2 read and write support
  * 2D streamplot code no longer uses deprecated matplotlib.nxutils module
  * core.distances.calc_angles and calc_torsions now accept an optional box
    argument to consider periodic boundary conditions in their calculation
    (Issue 172)
  * TopologyGroup angles and torsions methods both have a pbc flag, (default
    False) to toggle consideration of periodic boundaries
  * XYZWriter (write simple XYZ trajectories)
  * TRZReader upgrades, seeking and numframes faster
  * PQRWriter (write PQR files)
  * HydrogenBond analysis: new keyword distance_type to alternatively
    look at the distance between heavy atoms (Issue 185)
  * TopologyGroup/TopologyDict system overhauled. (Issue 194)
  * TopologyObject class created, Bonds/Angles/etc nicer to work with.
  * Topology information is now loaded lazily into Universe, can be forced to
    load all with u.load_topology(). All topology information is now stored in
    .bonds .angles .torsions and .impropers attributes.
  * Added support for improper torsions.
  * AtomGroup now has .bonds .angles .torsions and .impropers attributes which
    retrieve relevant TopologyGroups
  * Increased performance of topology.core.guess_bonds greatly
  * Added topology.core.guess_angles guess_torsions and guess_improper_torsions
    which given accurate bond information can calculate the rest of the
    topology info.
  * Universe topology information is now settable after initialisation using lists of indices
    such as those provided by the guess_* functions.
  * Added LAMMPS data parser for topology files with the .data suffix. Can also
    read single frame coordinate & velocity information from these files.
    (Issue 139)
  * Added Fragments.  Fragments are continuously bonded groups of atoms.
    These are lazily built, and accessible via the Atom.fragment and AtomGroup.fragments
    attributes.
    (Issue 190)
  * Added ability to remove items from Universe cache with _clear_caches.
  * Added ability to define dimensions from AtomGroup, Universe and Timestep for most
    formats.
    (Issue 203)
  * streamIO: many readers can directly use gzip- or bzip2 compressed
    files or a stream (such as cStringIO.StringIO) wrapped in
    util.NamedStream; currently supported: PDB, PSF, CRD, PQR, PDBQT,
    GRO, MOL2, XYZ
  * Added hydrogen bonding time autocorrelation analysis module
    (analysis.hbonds.HydrogenBondAutoCorrel)
  * Added energy units to core.units (Issue 214)
  * New AtomGroup.split() method to produce a list of AtomGroups for each atom,
    residue, or segment
  * New AtomGroup.sequence() method to extract a protein sequence.
  * Can pass subclasses of Reader and Topology reader to Universe init to allow
    custom readers to be defined. (Issue 198)
  * Added Atom.bonded_atoms property.  This returns an AtomGroup of the Atoms
    that are bonded to a given Atom. (Issue 219)
  * Added atom selections to ContactAnalysis (Issue 169)


  Changes

  * DCD unitcell format changed: MDAnalysis will now read it as [A,
    gamma, B, beta, alpha, C] instead of [A, alpha, B, beta, gamma,
    C]. The new CHARMM box vector unitcell format is heuristically guessed.
    (see Issue 187 for a full discussion and implications).
  * __getstate__() and __setstate__() raise an NotImplementedError for
    Universe and AtomGroup; before they were silently accepted on
    pickling and a cryptic "TypeError: AtomGroup is not callable" was
    raised (see also Issue 173 for detailed explanation)
  * XTC/TRR reader raise IOError with errorcode EIO (instead of
    ENODATA) when the last frame is reached and EBADF (instead of
    EFAULT) for any other issues (partially addresses Issue 150,
    Windows compatibility)
  * Universe.bonds now returns a TopologyGroup not a list.  TopologyGroup can be
    iterated over; list(universe.bonds) should provide a fix to legacy code.
  * PQR reader will now set segid to a chainID if found in the PQR
    file (previously, the segid would always be set to 'SYSTEM').
  * util.anyopen() only returns the stream and not the tuple (stream,
    filename) anymore; it tries to set stream.name instead
  * topology reading now done via classes (similar to trajectory reading)
    rather than functions.
    (Issue 210)


  Fixes

  * fixed DCD triclinic unit cell reading and writing (although the new CHARMM
    format with the box matrix is not supported for writing) (Issue 187)
    ATTENTION: Support for triclinic boxes from DCDs was BROKEN prior to this fix!
  * fixed creation of residues and segments in Merge()
  * resolves Issue 188 regarding Helanal Finish Argument
  * fixed Issue 184 (TPR files with double precision)
  * fixed Issue 199 (FutureWarning in pyqcprot)


04/01/14  orbeckst, jandom, zhuyi.xue, xdeupi, tyler.je.reddy,
          manuel.nuno.melo, danny.parton, sebastien.buchoux, denniej0,
          rmcgibbo, richardjgowers, lennardvanderfeltz, bernardin.alejandro
          matthieu.chavent

  * 0.8.1

  (Note: 0.8.0 contains a subset of these changes; 0.8.0 is deprecated)

  Enhancements

  * Named selections can now be passed to selectAtoms (Issue 174)
  * (experimental) MDAnalysis.visualization namespace added along with
    2D/3D streamplot modules & documentation for them
  * TRR file handling is now fully aware of missing coordinate/velocity/force
    information when reading and writing frames.
  * MDAnalysis.analysis.contacts.ContactAnalysis1 run() method
    now allows trajectory slicing (Issue 161)
  * Merge AtomGroups into a new Universe (Issue 157)
  * TPR parser (currently limited to versions 58, 73 and 83 of the
    Gromacs TPR format (Gromacs 4.0 to 4.6.1), see Issue 2)
  * fast XTC seeking (Issue 127)
  * changing resid (set_resid()) or segid (set_segid()) changes the
    topology and lists of resids/segids can be assigned to
    groups of objects (AtomGroup, ResidueGroup)
  * helanal: additional output of local bend and unit twist angles
    (Issue 133)
  * added support for reading DMS files (DESRES molecular structure)
  * bond connectivity information can be guessed from a PDB file if
    the bond=True keyword is set in Universe (Issue 23)
  * MDAnalysis.analysis.rms.RMSD: calculation of additional RMSDs
  * Plugin to generate nucleic acid helicoidal parameters using X3DNA;
    (must install working version 2.1 of X3DNA independently)
  * can use advanced slicing (with arbitrary lists or arrays) at all
    levels of the hierarchy (Issue 148)
  * coordinate readers and writers can be used as context managers
    with the 'with' statement
  * Can load multiple trajectories as Universe(topology, traj2, traj2,
    ...) in addition to providing all trajectories as a list,
    i.e. Universe(topology, [traj1, traj2, ...])
  * added support for YASP and IBIsCO formats (.trz) (Issue 152)
  * new methods for AtomGroup: packIntoBox([inplace=True])
  * added non-standard "extended" PDB format (XPDB) that reads
    five-digit residue numbers
  * util.convert_aa_code() recognizes non-standard residue names such
    as HSE, GLUH, GLH, ...
  * added new geometrics selections: sphlayer, sphzone, cylayer, cyzone
  * added TopologyDict and TopologyGroup classes for bond analysis
  * added calc_bonds, calc_angles and calc_torsions cython functions to
    core.distances for quickly calculating bond information
  * added applyPBC(coords, box) function to core.distances to move
    coordinates to within the primary unit cell
  * many AtomGroup methods now support 'pbc' flag to move atoms to within
    primary unitcell before calculation.  This behaviour can also be
    toggled using the core.flags['use_pbc'] flag (Issue 156)
  * MDAnalysis.analysis.rms.rmsd(): new center keyword so that one can
    immediately calculate the minimum rmsd of two rigid-body superimposed
    structures

  Changes

  * libxdrfile2 is now used instead of libxdrfile. libxdrfile2 is distributed
    under GPLv2
  * dropped support for Python 2.5; minimum requirement is Python 2.6
    (Issue 130)
  * almost all methods of AtomGroup return NumPy arrays
  * slicing and indexing of AtomGroup, Residue, ResidueGroup, Segment,
    SegmentGroup will now always return an appropriate object and
    never a simple list
  * removed Timeseries.principleAxis (probably was never working)
  * dependent on Biopython >= 1.59 (Issue 147)
  * Hydrogen bond analysis defaults to updating selection 1 and 2 for
    every timestep in order to avoid unexpected behavior (Issue 138)
  * AtomGroup.velocities is now a (managed) attribute and not a method
    anymore: replace 'ag.velocities()' with 'ag.velocities'
  * changed the name of the flag 'convert_gromacs_lengths' to 'convert_lengths'

  Fixes

  * asUniverse now also accepts any instance that inherits from
    MDAnalysis.Universe (Issue 176)
  * fixed XDR writer incorrect use of delta parameter (Issue 154)
  * fixed incorrect computation of distances in serial and parallel
    distance_array() with PBC (Issue 151)
  * fixed Issue 129 (hole.py module pipe/file closure)
  * fixed array comparison bug in MDAnalysis.analysis.helanal
    and various enhancements to the helanal module
  * fixed MDAnalysis.analysis.rms.RMSD.run(): gave incorrect results
    if ref_frame != 0
  * alignto() now checks that the two selections describe the same
    atoms (fixes Issue 143)
  * slicing of ResidueGroup will now produce a ResidueGroup, and
    slicing of a SegmentGroup will produce a SegmentGroup, not a list
    as before (fixes Issue 135)
  * detect OpenMP-capable compiler during setup (Issue 145), which should allow
    users of Mac OS X 10.7 and 10.8 to build MDAnalysis using Apple's
    C-compiler (clang) (Issue 142) although they will not get a parallel
    version of distance_array.
  * PDB with blank lines gave IndexError (Issue 158)
  * fixed AtomGroup.ts Timestep instance not containing all available
    information (Issue 163)
  * fixed Timestep copy method returning a base Timestep rather than
    appropriate format (Issue 164)

12/24/12 danny.parton, jandom, orbeckst, jjlights03, jphillips, naveen.michaudagrawal, andy.somogyi, sebastien.buchoux

  * 0.7.7

  Enhancements

  * multithreaded distance_array() (Issue 80, experimental); see the
    new core.parallel.distance module
  * MDAnalysis.analysis.rms for simple RMSD analysis
  * format of input coordinates can be set as (filename, format)
    tuples (Issue 76)
  * new AtomGroup.asphericity() and AtomGroup.shapeParameter()
    methods to compute shape descriptors.
  * access to forces (AtomGroup.forces with get_forces() and set_forces();
    the default unit for force is kJ/(mol*A) and it is automatically
    converted from/to native). Currently, only the TRR Reader/Writer
    support forces.
  * all element masses
  * logger reports current version when starting

  Fixes

  * fixed Issue 115 (GROReader now uses fixed-column width format to read GRO files)
  * fixed Issue 116 (Failed to write AMBER netcdf trajectory from AtomGroup)
  * fixed Issue 117 (could not write Gromacs XTC/TRR from AMBER netcdf)
  * fixed Issue 120 (DCDWriter: wrote wrong unitcell information)
  * fixed Issue 121 (PSFParser would fail with IndexError for files without SEGID)
  * Issue 122 (made installation of netCDF4 library optional, which
    means that users of the AMBER netcdf Reader/Writer will have to
    manually install the library and its dependencies netcdf and HDF5,
    see https://code.google.com/p/mdanalysis/wiki/netcdf)

06/30/12 orbeckst, joshua.adelman, andy.somogyi, tyler.je.reddy, lukas.grossar, denniej0, danny.parton

  * 0.7.6

  Enhancements

  * GRO file velocities may be accessed as AtomGroup.velocities()
    or Atom.velocity (Issue 102)
  * PrimitivePDBReader can be sliced
  * AMBER NetCDF (binary trajectory) reader and writer, supporting
    coordinates and velocities; requires netcdf4-python (Issue 109)
  * additional attributes and methods for AtomGroup to consolidate
    the interface to the Timestep: attribute 'positions' and
    'get_positions()' can be used instead of the 'coordinates()'
    method. get/set methods for both positions and velocities.
  * almost all Readers now support some form of slicing; unsupported
    slicing operations will raise a TypeError
  * additional analysis for Nucleic Acid order parameters
    (MDAnalysis.analysis.nuclinfo)
  * AMBER TOPParser now able to do both amber10 and amber12 formats
    (Issue 100)

  Changes

  * selectAtoms: updated *nucleic* and *nucleicxstal* selection definition
    *nucleic* includes the two-letter NA code that follows gromacs topolgy
    format and *nucleicxstal* allows for the one-letter NA code that follows
    the PDB Database code.
  * HydrogenBondAnalysis: multiple enhancements and changes (Issue 103)
    - many new analysis functions (see docs)
    - run() does not return the results anymore; results are simply
      stored as attribute timeseries (similar to other analysis tools)
    - only write per-frame debugging messages to the logfile when the
      new verbose keyword is set to True
    - more reliable detection of hydrogens bonded to heavy atoms
    - remove duplicate hydrogen bonds from the output
  * removed CHO and EAM (formyl and ethanol termini of gA in CHARMM)
    from the set of residues recognized as protein (collision with
    commonly used CHO for cholesterol)
  * PrimitivePDBWriter: special segid SYSTEM is translated to empty
    chainID
  * In order to write multi frame PDB files, the multiframe=True
    keyword must be supplied or use the MultiPDBWriter
  * empty AtomGroup can be constructed or can result from a selection
    without matches; it does *not* raise NoDataError anymore (Issue 12)
  * all single frame readers denote the first (and only) frame as
    frame number 1 (i.e. ts.frame == 1); it used to be 0 but 1 is
    consistent with the way this is is handled with real trajectories
  * requires Biopython >= 1.51 (fixes for Issue 112 and Issue 113)
  * Atom.type is always stored as a string.

  Fixes

  * HydrogenBondAnalysis: NH1 and NH2 were not recognized
  * GROWriter: enforce maximum resname and atomname length of 5 chars
  * Universe.load_new() raised a NameError (thanks to JiyongPark.77)
  * fixed Issue 105 (trajectory snapshots could not be written to PDB)
  * fixed Issue 107 (NAMD/VMD space delimited PSF files can be
    autodetected and read); important when using CGENFF atom types
    (thanks to JiyongPark.77 for initial patch)
  * fixed Issue 101 (could not write single frame to trr file)
  * fixed: permissive=True flag was ignored in Universe and hence the
    PrimitivePDBReader was always selected even if the Biopython one
    was desired
  * fixed Issue 112 (used removed Biopython constructs in
    MDAnalysis.analysis.align.fasta2select; thanks to francesco.oteri
    for a test case and fix)
  * fixed failing 'type' selection for topology formats that read an
    atom type as an integer (such as the AMBER parser)
  * fixed Issue 111 (NAN in pycpqrot and RMSD calculation)
  * fixed Issue 113 (replaced outdated Biopython to call ClustalW)


02/16/12 sebastien.buchoux, orbeckst

  * 0.7.5.1

Fixes
  * added: missing files (Issue 95)
  * removed: unused delaunay-related files

Testsuite
  * test package is now called 'MDAnalysisTests'
  * tests AND data are now bundled together in MDAnalysisTests
  * MDAnalysis and MDAnalysisTests packages MUST have the same
    release number (they need to stay in sync); MDAnalysisTests
    will NOT run if a release mismatch is detected
  * see Issue #87 and
    https://github.com/MDAnalysis/mdanalysis/wiki/UnitTests


02/11/12 orbeckst, sebastien.buchoux, jandom, hallben, lukasgrossar

  * 0.7.5

  MDAnalysis can now be found on PyPI, allowing simple installation
  from the internet. Metadata was added to setup to facilitate PyPI
  upload and pages on the wiki describe how to do this.
  In addition, Debian/Ubuntu packages are also available.

  Note that in order to run UnitTests one needs the separate package
  MDAnalysisTests (also release 0.7.5).

  Enhancements

  * new method OtherWriter() for trajectory readers to generate a
    writer for any format that has been initialised for the common
    basic values
  * new simple Residue.chi1_selection() selection
  * new distances.between() function (EXPERIMENTAL)
  * support LAMMPS non-standard DCD files (Issue 84; EXPERIMENTAL)
  * read and write multi-frame PDB files (Issue 77; EXPERIMENTAL)
  * extend the PDB parsing, support CONECT and REMARK entries
  * new GNM-based trajectory analysis module (Issue 90)
  * Read/Write velocities with TRR, new attribute Atom.velocity
    and AtomGroup.velocities() (Issue 91)
  * hydrogen bond analysis detects a range of GLYCAM atom types
    and utils.convert_aa_code will also accept GLYCAM-style residue
    names (Issue 92)
  * XYZ reader: can set timestep (Issue 92)

  Changes

  * The UnitTests are now integrated with the separate test data in a
    separate Python package named MDAnalysisTests; to run the tests
    for 0.7.5 one will need MDAnalysisTests-0.7.5 (Issue 87).
  * install a range of analysis dependencies right away: networkx,
    biopython, GridDataFormats (usually all painless); leave scipy and
    matplotlib to the user and the local package manager
  * When writing a trajectory and converting units, effectively a copy
    of the timestep is made and the in-memory timestep is not
    altered. In this way, analysis after writing a frame will still
    see the coordinates in MDAnalysis units and not converted units.

  Fixes

  * analysis.align.rms_fit_traj(): can output fitted trajectory to any
    supported format not just the input format
  * fixed ProgressMeter: default format string was broken
  * fixed: ResidueGroup and SegmentGroup indexing (did not work with
    numpy.int64 etc) and now raise TypeError if it does not fit
  * fixed HydrogenBondingAnalysis backbone donor list: had C but
    should have been O (this was supposed to be fixed with r849 in
    0.7.4 but a typo crept in). NOTE: analysis might have produced
    partially wrong results.
  * fixed: dihedral() and other methods using core.util.angle() sometimes
    returned nan instead of +pi or -pi
  * fixed: writing a trajectory from chained CRD files gave garbage
    coordinates (Issue 81)
  * fixed: support files for docs are now in included in the source
    distribution (thanks to Sebastien Buchoux; Issue 82)
  * fixed: core.util.iterable() would wrongly detect unicode strings
    as "iterable"; this lead the Reader autodections and then the
    ChainReader fail with "Runtime Error: Maximum recursion depth
    exceeded" for single filenames provided as a unicode string.
  * fixed: HBond analysis pickling of tables (Issue 92)


07/09/11 orbeckst, dcaplan, jandom

  * 0.7.4

  Enhancements

  * Universe() got new keywords topology_format and format to allow
    the user to specify the file formats instead of deriving it from the
    extensions (does not work with "chained" files at the moment); thanks to
    Michael Lerner for the suggestion
  * Chain trajectory reader allows frame indexing.
  * Issue 75: additional donors and acceptors keywords for H-bond analysis
  * structural alignment functions alignto() and rms_fit_traj() can also take a
    list of selection strings in order to define atom groups with fixed atom
    order and alignto() preserves the order of supplied AtomGroups for the
    special select values "all" and None.
  * new set_* methods for AtomGroup allows changing of Atom attributes
    for all members of the group (such as the segid) (EXPERIMENTAL)
  * new Atom and Residue attribute resnum that can be used to store
    the canonical PDB residue number (EXPERIMENTAL)

  Fixes

  * fixed Issue 74 (bug in AMBER topology parser which would show up for
    certain numbers of input lines; thanks to htaoyu1)
  * fix for Issue 48 (sparse contact_matrix in distances.py was slow when
    written in pure python; optimized in c code using scipy.weave)
  * HydrogenBondingAnalysis: donor atom name CO --> O (proper backbone
    oxygen); without the fix one misses most of the backbone H-bonds
  * alignto() and rms_fit_trj(): order of mobile and reference
    selection was reversed when supplied as a tuple (sel1, sel2)

  Changes

  * replaced analysis.util.progress_meter() with class core.log.ProgressMeter

  * Issue 28: split off test data trajectories and structures from
    MDAnalaysis/tests/data into separate package MDAnalysisTestData, which is
    required to run the UnitTests from release 0.7.4 onwards. Numbering matches
    the earliest MDAnalysis release for which the data is needed. Any later
    releases of MDAnalysis will also use these test data unless a
    MDAnalysisTestData package with a higher release number is available.

  Testsuite

   * Split off test data trajectories and structures from
     MDAnalaysis/tests/data into separate package. (Issue 28)
   * Numbering matches the earliest MDAnalysis release for which the data is
     needed. Any later releases of MDAnalysis will also use these test data
     unless a MDAnalysisTestData package with a higher release number is
     available.


05/22/11 orbeckst, jandom, Benjamin Hall, Paul Rigor, dcaplan,
         Christian Beckstein (logo), denniej0

  * 0.7.3

  Removals

  * completely removed the old core.rms_fitting module (and thus we also do not
    depend on the LAPACK library anymore, which should simplify installation);
    use the functions accessible through MDAnalysis.analysis.align (which are
    faster and use QCPROT)

  Enhancements

  * PDBQT (autodock) format added (reading and writing of single frames)
  * new attributes universe.trajectory.frame and universe.trajectory.frame:
    report the current frame number and time (e.g. in ps) of the current frame
    of the trajectory
  * new attribute Timestep.volume (unit cell volume)
  * new special methods of AtomGroup: bond(), angle(), improper() in
    addition to the calculation of dihedral()
  * HELANAL helix analysis in MDAnalysis.analysis.helanal; Python
    implementation of helanal.f from
    http://www.ccrnp.ncifcrf.gov/users/kumarsan/HELANAL/helanal.html (Benjamin
    Hall, used under GPL v2+)
  * hydrogen bonds analysis in MDAnalysis.analysis.hbonds
  * MDAnalysis.analysis.distances.dist() for calculating distances between
    matching atoms in two groups
  * MDAnalysis logo by Christian Beckstein (and a reformatting of the
    online docs to match the logo theme)

  Change of behaviour

  * alignto() and rms_fit_trj(): changed keyword 'select' default from
    'backbone' to 'all'

  Fixes

  * fixed alignto() (raised KeyError)
  * fixed Issue 57 (check for illegal coordinates when writing PDB and GRO)
  * use spaces everywhere and no TABs and tell emacs and vim to keep it that
    way (Issue 69)
  * fixed Issue 70 (problems with instant atom selections)


03/31/11 orbeckst, dcaplan, naveen.michaudagrawal
  * 0.7.2
  * NOTE: minimum Python version required is 2.5 (since 0.6.3)

  Enhancements

  * loading from a PDB sets segid to the chain id if it exists
  * PrimitivePDBWriter uses first letter of segid as PDB chain id
  * aliased segment.name to segment.id
  * new method AtomGroup.bbox() that returns the orthorhombic bounding box
  * enhancements of the analysis.density module (build density
    from B-factors)
  * PQR radius is now an attribute of Atom; AtomGroup.radii() returns the
    radii as a NumPy array; internally B-factor has also become an
    attribute of each Atom.
  * recognise many more OPLS/AA and Amber residue names as "protein"
  * recognise more atom masses (taken from CHARMM27 and Gromacs) and
    atom types (from CHARMM, Amber, OPLS, GROMOS) and moved
    masses and types into new module topology.tables; the type recognition
    is still incomplete but can be easily enhanced in tables
  * analysis.align: convenience functions rotation_matrix() and alignto()
  * TrajectoryReader gained Writer() method which returns an appropriate
    TrajectoryWriter instance that can be used for processing this
    trajectory (enhancement of the Trajectory API); if no Writer is known
    then a NotImplementedError is raised
  * doc improvements

  Fixes

  * installation: removed dependency on Cython; developer should
    use setup_developer.py instead of setup.py (Issue 66)
  * Fixed a problem with the strict PDBReader: raised exception when the
    pdb did not contain a segid
  * Support for PDBs with 4 character resnames and segID output when
    writing (Issue 63) --- makes the (default) PrimitivePDBReader/Writer
    more suitable for NAMD/CHARMM but breaks strict PDB standard. If
    you need full PDB reading capabilities, use the strict PDB reader
    [i.e. use Universe(..., permissive=False)]
  * fixed bug in (experimental) phi and psi selections
  * fixed bugs in reading of unit cells (Issue 60, Issue 61, Issue 34)
  * universe.trajectory.delta returns the full precision dt value
    instead of a value rounded to 4 decimals (Issue 64)
  * fixed bug in DCDWriter (XTC->DCD was broken, Issue 59)

02/08/11 orbeckst, denniej0, jandom, tyler.je.reddy, Joshua Adelman
  * 0.7.1 release
  * online documentation
  * AMBER topology and trj capabilities (netcdf not yet available)
  * PQR file reading support
  * new analysis.contacts.ContactAnalysis1 class that supports a
    native contact analysis between arbitrary groups
  * new examples (e.g. peptide helix clustering in a membrane)
  * fixed Issue 58 (align.rms_fit_trj; fix reported by Joshua Adelman)
  * new analysis module 'density': creation and analysis of volume data
  * fast RMSD aligner based on Douglas Theobald's QCP method for
    calculating the minimum RMSD between two structures and
    determining the optimal least-squares rotation matrix;
    replaces the slower previous code (implemented by Joshua Adelman from
    his pyqcprot package https://github.com/synapticarbors/pyqcprot);
    deprecated core.rms_fitting.rms_rotation_matrix() and scheduled for
    removal in 0.8
  * uses cython instead of pyrex

11/05/10 orbeckst, denniej0, tyler.je.reddy, danny.parton, joseph.goose
  * major release 0.7.0
    (includes changes that can BREAK BACKWARDS COMPATIBILITY)
  * Removed ALL DEPRECATED code:
    - AtomGroup.principleAxes (Issue 33)
    - DCD.DCDReader.dcd_header() and DCD.DCDWriter.dcd_header()
      (use _dcd_header())
    - Universe.dcd (and Universe.xtc, Universe.trr...) --- from
      now on only Universe.trajectory is supported.
      WILL BREAK LEGACY CODE!
    - removed the following packages from top-level MDAnalysis
      name space:
          - AtomGroup, Selection: import them from MDAnalysis.core if
            really needed (e.g. 'import MDAnalysis.core.AtomGroup')
          - distances, rms_fitting: 'import MDAnalysis.analysis.distances'
            or 'import MDAnalysis.analysis.align.rms_fitting' (the
            actual modules still live in MDAnalysis.core but they
            might get moved in the future and bundled with
            transformations)
          - 'from MDAnalysis import *' will only get ['Timeseries',
            'Universe', 'asUniverse', 'Writer', 'collection']
          - removed copy flag from distance_array and self_distance_array:
            setting it to False would always give wrong results so there was
            no good reason keeping it around
  * whitespace is no longer required around parentheses for
    selectAtoms strings but the old syntax with white space
    still works (Issue 43)
  * improved trajectory writing
    - MDAnalysis.Writer() factory function that provides an
      appropriate writer for the desired file format
    - Writer.write() accepts a Timestep, a Universe, or a
      arbitrary AtomGroup (e.g. from a selection); this is much
      more flexible than Writer.write_next_timestep()
  * New attributes for trajectory readers: dt (time between
    frames) and totaltime (length of the trajectory)
  * Changes to AtomGroup
    - Indexing is made consistent with the way lists behave:
       1. indexing with integers returns a single Atom
       2. slicing always returns a new AtomGroup
       3. advanced slicing with a list or array returns a new
          AtomGroup (NEW, fixes Issue 36)
    - AtomGroup coordinates can be manipulated (translate(),
      rotate() and rotateby() methods; when appropriate, these methods
      can take AtomGroups or arrays to determine coordinates)
    - new attributes 'residues' and 'segments' for AtomGroup to give
      access to the list of residue/segment objects of the group
    - new exception 'NoDataError'; raised when creation of an empty
      AtomGroup is attempted (see also Issue 12)
    - consistent representation of the Segment > Residue > Atom
      hierarchy: all classes related to AtomGroup have the
      attributes 'atoms', 'residues', 'segments' which provide
      access to groups of the corresponding objects
  * improvements to Residue, ResidueGroup and Segment classes
    - documented accessing residues from Segment as
      Segment.r<resid>; resid is 1-based -- BREAKS OLD CODE
      that relied on this being 0-based
    - added SegmentGroup class
          - can write from Residue, ResidueGroup and Segment (Issue 46)
          - residue name attribute of a Segment now consistently
            returns a ResidueGroup (Issue 47) -- MIGHT BREAK OLD CODE
          - added documentation and examples in the doc strings
          - new special dihedral angle selections defined for Residue
            class to simplify analysis of backbone torsions (experimental)
  * new contact_matrix method for calculating contacts
    (Issue 30); for large (N > ~10000) coordinate arrays
    automatically switches to a method using a sparse matrix (slower)
  * more example scripts (e.g. for membrane analysis, trajectory writing,
    coordinate transformations)
  * CRDReader added (fixes  Issue 40 ) ... it will work for both
    standard and extended formats: NO special flags needed.
  * CRDWriter will now write extended crd files: NO special flags needed.
  * By default, PDB files are read with the PrimitivePDBReader and not
    the Bio.PDB reader anymore because the latter can drop atoms when
    they have the same name in a residue (which happens for systems
    generated from MD simulations) The PrimitivePDBReader copes just fine
    with those cases (but does not handle esoteric PDB features such as
    alternative atoms and insertion codes that are not needed for
    handling MD simulation data).
      - The default behaviour of MDAnalysis  can be set through the flag
        MDAnalysis.core.flag['permissive_pdb_reader']. The default is True.
      - One can always manually select the PDB reader by providing the
        permissive keyword to Universe; e.g. Universe(...,permissive=False)
        will read the input file with the Bio.PDB reader. This might be
        useful when processing true Protein Databank PDB files.
  * fixed Issue 51 (distance_array() did not properly check its
    input and wrong results could be returned if the input was a
    float64 and a float32 array)

09/19/10 orbeckst
  * quick-fix release 0.6.4.1
  * fixed import issue with python 2.5 (Issue 41)

09/16/10 orbeckst, danny.parton
  * release 0.6.4
  * GRO writer added
  * fixed XTC writer (Issue 38)
  * convert box representations (Issue 37)
  * primitive PDB parser added (slightly faster and ignores
    correctness of resids, atomnames etc but reads CRYST1 into unitcell)
  * Universe gained the 'permissive' flag to switch on the
    primitive PDB parser/reader
  * Simple 'chained reader' which enables a Universe to
    transparently read a list of trajectory files (Issue 39).
  * Additional methods for AtomGroup: numberOfResidues(), resids(), resnames()
  * new bilayer analysis script for membrane composition on a
    per-leaflet basis (examples/membrane-composition.py); also
    renamed examples/leaflet.py to membrane-leaflets.py

07/08/10 orbeckst, denniej0, danny.parton, philipwfowler
  * 0.6.3 release
  * minimum requirement is python 2.4 (using with_statement in the
    analysis module and we have not tested on 2.3 in a while)
  * analysis modules (MDAnalysis.analysis):
     - lipid bilayer leaflet detection
     - native contact analysis ("q1-q2")
     - rms-fitting based on sequence alignment
  * write selections for other codes from AtomGroups (VMD, pymol, CHARMM,
    Gromacs ndx)
  * gro reader (Issue 31)
  * better API for loading a topology and a coordinate file in Universe()
  * trajectory reader: DCDReader can reverse trajectory with negative
    step increment; XTC/TRRReader can do simple (forward) slices by doing
    (slow!) sequential iteration
  * deprecated principleAxes() and introduced principalAxes() with less
    confusing return values (Issue 33).
  * fixed wrong unitcell dimensions for XTC/TRR (Issue 34)
  * added basic XYZ reader with compression support (Issue 35)
  * PDB reader guesses masses (unknown elements are set to 0)
  * installation requires Biopython (www.biopython.org)

05/28/10 orbeckst, denniej0
  * 0.6.2 release
  * removed a number of imports from the top level (such as rms_fitting);
    this might break some scripts that still rely on the layout that was
    used for 0.5.x (which is now officially declared deprecated)
  * defined trajectory API
  * deprecated DCD.dcd_header --> DCD._dcd_header
  * XTC and TRR compute numframes by iterating through trajectory (slow!)
  * introduced units: base units are ps (time) and Angstrom (length); see core.flags
  * XTC and TRR automatically convert between native Gromacs units (ps, nm) and
    base units (uses core.flags['convert_gromacs_lengths'] = True)
  * more test cases
  * *really* FIXED Issue 16 (can easy_install from tar file)
  * FIXED a bug in AtomGroup.principalAxes()
  * added dependency information to setup.py (numpy and
    biopython by default; nose for tests)

04/30/10 orbeckst

  * 0.6.1 release
  * can build a simple Universe from a PDB file (FIXES Issue 11)
  * can read Gromacs XTC and TRR files (FIXES Issue 1) but no
    Timeseries or Collections yet for those formats
  * removed Universe.load_new_dcd() and Universe.load_new_pdb()
    --- use the generic Universe.load_new() (MIGHT BREAK OLD CODE)
  * removed deprecated Universe._dcd attribute (MIGHT BREAK OLD CODE)
  * FIXED bug in PDB.PDBWriter and CRD.CRDWriter
  * use SloppyPDB in order to cope with large PDB files
  * core.distances.self_distance_array() is now behaving the
    same way as distance_array()
  * defined Trajectory API (see MDAnalysis/coordinates/__init__.py)
  * renamed _dcdtest to dcdtimeseries (will not affect old code)
  * unit tests added (still need more test cases)

03/31/10 orbeckst, denniej0
  * 0.6.0 release
  * added KDTree and Neighbour searching code from Biopython for
    faster distance selections: used for AROUND selections;
    POINT is using distance matrix by default as this is
    faster. This can be configured with core.flags
  * core.flags infrastructure to tweak behaviour at run time
  * updated LICENSE file with Biopython License
  * some selections for nucleic acids
  * completely reorganized directory structure to make
    enhancements easier to incorporate
  * FIXED (partial): Issue 18 (Timeseries from a universe.segID
    selection, reported by lordnapi)
  * FIXED: Issue 19 (Timeseries collections were broken,
    reported by Jiyong)
  * can write single frames as pdb or crd (AtomGroup gained the
    write() method)
  * some selections for nucleic acids
  * completely reorganized directory structure to make
    enhancements easier to incorporate
  * FIXED: Issue 19 (Timeseries collections were broken)
  * improved installation
     - EasyInstall (setuptools) support (FIXED Issue 16)
     - better instructions in INSTALL
     - slightly better handling of the configuration of the fast
       linear algebra libs via the setup.cfg file

08/23/08 naveen, orbeckst
  * 0.5.1 release
  * primitive PDB writer (only works if coordinates were read from a pdb)
  * B-factor property (detailed implementation subject to change)
  * periodic flag for PointSelection
  * new correl series: orientation vector for 3-site molecules
    (to calculate the water dipole moment of SPC or TIP3P)
  * distance.distance_array() bug fixed (see doc string)
  * updated LICENSE file UIUC Open Source License

01/29/08 orbeckst
  * prepared 0.5.0 release. Includes previously disabled
    distance code, PDB reader, incomplete XTC reader (code by
    Benjamin Hall), and marginally updated documentation &
    licenses

11/12/07 naveen
  * prepared for release outside lab