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
|