Releases: MDAnalysis/mdanalysis
MDAnalysis 2.2.0
Release 2.2.0 of MDAnalysis
In line with NEP29, this version of MDAnalysis drops support for Python 3.7 and raises the minimum NumPy version to 1.19.0. Minimum version support has also been changed for the following packages; networkx>=2.0
, scipy>=1.5.0
, gsd>=1.9.3
. Further details on MDAnalysis future support strategy and NEP29 will be released shortly.
Supported python versions:
- 3.8, 3.9, 3.10
Major changes:
See the CHANGELOG and our release blog post for more changes and details.
Enhancements:
- The
frames
argument was added to AnalysisBase-derived classes (i.e. modern analysis classes) allowing for specific frames to be defined when running an analysis. (PR #3415) - DL_POLY classic HISTORY files are now supported (Issue #3678)
- Python wheels are now made available through PyPI for x86_64 architectures (Issue #1300, PR #3680)
- Added a
center_of_charge
attribute for AtomGroups (PR #3671) - LinearDensity now work with UpdatingAtomGroups (Issue #2508, PR #3617)
- Addition of a PCA transformation and an associated inverse-PCA transformation was added to the PCA analysis class (PR #3596, Issue #2703)
- Major improvements to the RDKitConverter's accuracy (PR #3044)
- Accuracy of 99.14% when benchmarked against ChEMBL30
- AtomGroups containing monatomic ion charges and edge cases with nitrogen, sulfur, phosphorus and conjugated systems should now have correctly assigned bond orders and charges.
- Addition of a new AnalysisBase derived Watson-Crick distance analysis class (PR #3611)
Fixes:
- Fixed issues where calling the
copy
method of Readers did not preserve optional arguments (Issue #3664, PR #3685) - Fixed several issues where iterating trajectories had undefined behaviour
- Fixed issues with competing processes writing to an XTC offset file leading to offset corruption (Issue #1988, PR #3375)
- Fixed issue preventing OpenMMTopologyParsers from parsing systems with missing elements (Issue #3317, PR #3511)
- Fixed issue with encore.covariance.covariance_matrix not working when providing an external reference (Issue #3539, PR #3621)
- Fixed issue with broken code paths for "residues" and "segment" groupings for LinearDensity (Issue #3571, PR #3572)
- Improved the flexibility of MOL2 reading, allowing for optional columns (
subst_id
,subst_name
andcharge
) not to be provided (Issue #3385, PR #3598) - Fixed several issues related to converting AtomGroups to RDKit molecules (PR #3044):
- Atoms are now in the same order
atom.GetMonomerInfor().GetName()
now follows the guidelines for PDB files- Using
NoImplicit=False
no longer throws aSanitizationError
- Fixed issues with incorrect reading of triclinic boxes from DUMP files (Issue #3386, PR #3403)
- Fixed issue with the BAT method modifying input coordinate data (Issue #3501)
Changes:
- The number of matches allowed when doing a smarts selection has been increased from the default
1000 to max(1000, n_atoms * 10), an additional set ofsmarts_kwargs
can now also be passed
to override this behaviour (Issue #3469, PR #3470) - The
fasteners
package is now a core dependency (PR #3375) - LinearDensity now saves the histogram bin edges for easier plotting as `hist_bin_edges for
each dimension in the results dictionary (Issue #2508, PR #3617) - ContactAnalysis now accepts AtomGroups (Issue #2666, PR #3565)
Deprecations:
- The following results attribute for LinearDensity are now deprecated: (Issue #2508, PR #3617)
pos
is nowmass_density
char
is nowcharge_density
std
entries are nowstddev
Known test failures:
- Windows builds
- In some cases users may get permission errors with tests involving symlinks. This should not impact the behaviour of MDAnalysis but may impact the creation of temporary files when using HOLE2 (see: https://github.com/MDAnalysis/mdanalysis/issues/3556).
MDAnalysis 2.1.0
Release 2.1.0 of MDAnalysis
In line with ongoing attempts to align with NEP29, this version of MDAnalysis drops support for Python 3.6 and raises the minimum NumPy version to 1.18.0.
Please note that at time of release whilst all the MDAnalysis core functionality supports Python 3.10, some optional modules do not due to a lack of support by dependencies which they require. We hope that this support will gradually be added as more of these dependencies release new versions compatible with Python 3.10.
Supported python versions:
- 3.7, 3.8, 3.9, 3.10
Major changes:
See the CHANGELOG and our release blog post for more changes and details.
Enhancements:
- Addition of a new dielectric analysis module (PR #2118)
- The TPR parser now supports reading files from GROMACS 2022 (PR #3514)
- The H5MDReader can now load trajectories without a topology (PR #3466)
- Custom compiler flags can be used when building MDAnalysis from source (PR #3429)
- The RDKit reader now supports parsing R/S chirality (PR #3445)
- A new method to apply the minimum image convention to a collection of vectors,
minimize_vectors
, has been introduced (PR #3472)
Fixes:
- Fixed various integer overflow issues in the distance calculation backend of MDAnalysis which would prevent calculations on large systems (Issues #3183, #3512).
- Fixed issues with the creation of VMD surfaces in HOLE2 when using a non-contiguous start/stop/step.
- Fixes reading of charges with the ITPParser (Issue #3419).
- Fixed issue with the creation of a Universe from a custom object which only provides a topology (Issue #3443).
- Fixed issue with accessing newly created values added via
add_Segment
oradd_Residue
(Issue #3437).
Changes:
packaging
is now a core dependency of MDAnalysis.- Indexing a Group (AtomGroup, ResidueGroup, SegmentGroup) with
None
now raises aTypeError
. Prior to this indexing byNone
would incorrectly return the whole Group but claim to have a length of 1 atom (Issue #3092). - The TRZReader now defaults to a
dt
value of 1.0 ps instead of the previous 0.0 ps (Issue #3257).
Deprecations:
- The
pbc
keyword argument for various Group methods has been deprecated in favor ofwrap
. The deprecated keyword will be removed in version 3.0.0 (Issue #1760).
Known test failures:
pytest-xdist
and more than 4 workers- Under these conditions a test related to logging for HydrogenBondAnalysis can fail. This is not thought to impact the validity of MDAnalysis. See here for more details: #3543
- Windows builds
- In some cases users may get permission errors with tests involving symlinks. This should not impact the behaviour of MDAnalysis but may impact the creation of temporary files when using HOLE2 (see: https://github.com/MDAnalysis/mdanalysis/issues/3556).
MDAnalysis 2.0.0
Release 2.0.0 of MDAnalysis
This is the first version of MDAnalysis to solely support python 3.6+
Supported python versions:
- 3.6, 3.7, 3.8, 3.9
Please note that starting with the next minor version, MDAnalysis will be following NEP29.
Notes:
- This is a major release and introduces major advertised API breaks. Caution is advised when upgrading to 2.0.0.
Major changes:
Enhancements:
- LAMMPSDumpReader can now read coordinates in all different LAMMPS coordinate conventions (Issue #3358)
- New
Results
class for storing analysis results (Issue #3115) - New OpenMM coordinate and topology converters (Issue #2863, PR #2917)
- New
intra_bonds
,intra_angles
,intra_dihedrals
, etc... methods to return connections involve atoms within AtomGroups instead of including atoms outside of it (Issue #1264, #2821, PR #3200) - Support for Groamcs 2021 TPR files (Issue #3180)
- Adds preliminary support for ppc64le and aarch64 [ARM] (Issue #3127, PR #2956 #3149)
- New selection operators (Issue #3054, PR #2927)
- New refactor of helix analysis class as
analysis.helix_analysis
(Issue #2452) - New converter between RDKit molecules and MDAnalysis AtomGroup objects (Issue #2468). Also includes
from_smiles
Universe generator method, and the aromatic and smarts selection. - New analysis method for calculating Mean Squared Dsiplacements (Issue #2438)
- New converter between Cartesian and Bond-Angle-Torsion coordinates (PR #2668)
- Universes and readers can now be
pickled
paving the way to easier parallel analyses (Issue #2723) - New H5MDReader and H5MDWriter (Issue #762, #2866)
Fixes:
- Fixes an issue where
select_atom
, AtomGroup.unique, ResidueGroup.unique, and SegmentGroup.unique did not sort the output atoms (Issues #3364 #2977) - GRO files now only support unit cells defined with 3 or 9 entries (Issue #3305)
- Fixes the sometimes wrong sorting of atoms into fragments when unwrapping (Issue #3352)
- Fixes issue when atttempting to use/pass mean positions to PCA analysis (Issue #2728)
- Fixes support for DL_POLY HISTORY files that contain cell information even if there are no periodic boundary conditions (Issue #3314)
- Fixes issue with WaterBridgeAnalysis double counting waters (Issue #3119)
- PDBWriter will use chainID instead of segID (Issue #3144)
- PDBParser and PDBWriter now assign and use the element attribute (Issues #3030 #2422)
- AtomGroup.center now works correctly for compounds + unwrapping (Issue #2984)
- Documents and fixes the
density
keyword forrdf.InterRDF_s
(Isuse #2811) - Fixed Janin analysis residue filtering, including CYSH (Issue #2898)
Changes:
- New converter API for all MDAnalysis converters under MDAnalysis.converters
- Timestep now stores information in 'C' memory layout instead of the previous 'F' default (PR #1738)
hbonds.hbond_analysis
has been remove din favour ofhydrogenbonds.hbond_analysis
(Issues #2739, #2746)- TPRParser now loads TPR files with
tpr_resid_from_one=True
by deafult, which starts TPR resid indexing from 1 (instead of 0 as in previous MDAnalysis versions) (Issue #2364, PR #3152) analysis.hole
has now been removed in favour ofanalysis.hole2.hole
(Issue #2739)Writer.write(Timestep)
andWriter.write_next_timestep
have been removed. Please usewrite()
instead (Issue #2739)- Removes deprecated density_from_Universe, density_from_PDB, Bfactor2RMSF, and notwithin_coordinates_factory from MDAnalysis.analysis.density (Issue #2739)
- Changes the minimum numpy supported version to 1.16.0 (Issue #2827)
- Removes deprecated
waterdynamics.HydrogenBondLifetimes
(PR #2842) hbonds.WaterBridgeAnalysis
has been moved tohydrogenbonds.WaterBridgeAnalysis
(Issue #2739 PR #2913)
Deprecations:
- The
bfactors
attribute is now aliased totempfactors
and will be removed in 3.0.0 (Issue #1901) WaterBridgeAnalysis.generate_table()
now returns table information, with thetable
attribute being deprecated- Various analysis result attributes which are now stored in
Results
will be deprecated in 3.0.0 (Issue #3261) - In 3.0.0 the ParmEd classes will only be accessible from the
MDAnalysis.converters
module - 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
See the CHANGELOG for more changes and details.
Known issues:
- Windows builds
- For some compilers (seen on MVC v.19xx), differences in floating point precision leads to PBC wrapping differing from expected outcomes. This leads to failures in the
MDAnalysisTests.lib.test_augment
tests. To our knowledge this does not significantly affect results (as all other tests pass). We will aim to fix this in version 2.1.0.
- For some compilers (seen on MVC v.19xx), differences in floating point precision leads to PBC wrapping differing from expected outcomes. This leads to failures in the
MDAnalysis 1.1.1
Final bugfix release for 1.0.x
Python support is kept the same as 1.0.0, with python 3.9 not supported.
Supported python versions:
- 2.7, 3.5, 3.6, 3.7, 3.8
Please note that python 2.7 and 3.5 support will be dropped in the upcoming 2.0.0 release.
Major changes:
Bug fixes
- Re-enables support for Windows (Issue #3129)
- NSGrid distance search backend is re-enabled, with a brand new code fixing previously seen issues (Issues #2670 #2229 #2345 #2919)
- Adds support for numpy 1.20 for compatible python versions
- Fixes bug where the exclusion matrix of hbond_autocorrel was not applied correctly (Issue #2987 PR #3242)
Deprecations:
- NCDFWriter
scale_factor
writing behaviour will change in 2.x (Issue #2327) - PDBWriter will no longer use the last letter of SegID for the chainID in 2.x (Issue #3144)
- In 2.x, the universe attributes
tempfactors
andbfactors
will stop being separate (Issue #1901) MDAnalysis.analysis.hbonds.WaterBridgeAnalysis
will be moved toMDAnalysis.analysis.hydrogenbonds.WaterBridgeAnalysis
in 2.x (PR #3111)- In 2.x the TPRParser will index residues from 1 instead of 0. The
tpr_resid_from_one
keyword has been added to modify this behaviour (Issue #2364)
Enhancements:
- The
get_connections
method has been added to more easily get bonds, angles, dihedrals, etc.. for a group (Issues #1264 #2821)
See the CHANGELOG for more changes and details.
Known issues:
- Windows builds
- For some compilers (seen on MVC v.19xx), differences in floating point precision leads to PBC wrapping differing from expected outcomes. This leads to failures in the
MDAnalysisTests.lib.test_augment
tests. To our knowledge this does not significantly affect results (as all other tests pass). We will aim to fix this in version 2.0. - For python 3.5 only, extra tests failures are seen. These mostly relate to deprecations and warnings being raised upstream (primarily by
os.path
). As far as we know they do not affect the validity of the code. The following tests are affected:MDAnalysisTests.analysis.test_base::test_analysis_class_decorator
MDAnalysisTests.analysis.test_dihedrals::TestRamachandran::test_protein_ends
MDAnalysisTests.analysis.test_helanal::test_warnings
MDAnalysisTests.coordinates.test_chainreader::TestChainReaderContinuous::test_easy_trigger_warning
MDAnalysisTests.utils.test_streamio::TestNamedStream_filename_behaviour::test_func[abspath]
- For some compilers (seen on MVC v.19xx), differences in floating point precision leads to PBC wrapping differing from expected outcomes. This leads to failures in the
Notes:
- Release 1.1.1 fixes an installation issue with 1.1.0. There is no published release for version 1.1.0.
- As detailed in the 1.0.0 release, the 1.x releases only include bug fix changes. New features are being developed for MDAnalysis 2.x.
MDAnalysis 1.0.1
First bugfix release for 1.0.x
Python support is kept the same as 1.0.0, with python 3.9 not supported.
Supported python versions:
- 2.7, 3.5, 3.6, 3.7, 3.8
Major changes:
Bug fixes
- Temporary disabling of the default nsgrid backend (in favour of PDKTree) to the
capped_distance
code due to a bug affecting accuracy (#2930) - Fixes issues with importing matplotlib versions > 3.3 (#2938)
- TRZ reader and writer now checks and writes
n_atoms
(#2817) - The density keyword for
rdf.InterRDF_s
is now documented and has been fixed to give correct results (#2811) - Fixed reading of masses and charges from hoomdxml files (#2888)
- The DMSParser now handles the creation of multiple segids sharing residues with identical resids (#1387)
Deprecations:
waterdynamics.HydrogenBondLifetimes
will be replaced withhydrogenbonds.HydrogenBondAnalysis.lifetime
in 2.0.0 (#2547)analysis.helanal
will be removed in 2.0.0 and will be replaced withanalysis.helix_analysis
(#2622)lib.util.echo
andcore.universe.as_Universe
will be removed in 2.0.0.analysis.leaflets.LeafletFinder
will no longer accept non-Universe inputs as of version 2.0.0.
Performance improvements:
- Fixes a performance regression seen in 1.0.0 when doing string selections with
select_atoms
(#2751) - Performance improvements to the TPR parser and ParmEd converter (#2804 and #3028)
See the CHANGELOG for more changes and details.
Known issues:
- PyPI and conda-forge releases of 1.0.1 are not compatible with Windows OS due to issues with our
setup.py
. We aim to fix this for the upcoming 1.0.2 release (#3129)
As detailed in the 1.0.0 release, the 1.x releases only include bug fix changes. New features are being developed for MDAnalysis 2.x.
MDAnalysis 1.0.0
First major stable release of MDAnalysis. The API will be stable for all 1.x releases.
- supports
- Python ≥3.5
- Python 2.7 (last major release to do so, see the Roadmap)
- new User Guide documentation
- many new features
- new hydrogen bonding and HOLE analysis modules, improved density analysis
- new file formats (Chemfiles reader, NAMD binary coordinates, FHI-AIMS, Gromacs ITP, Gromacs 2020 TPR), improved PDB parsing
- package interoperablity layer ("converters"): interface to ParmEd
- bug fixes
- better support for Windows 32 bit
- removed features and constructs that were previously deprecated
See the CHANGELOG for details.
Note that 1.x will not be further developped, with only occasional bug fixes being backported as described in the Roadmap.
The main development is geared towards MDAnalysis 2.x, which will only support Python 3.x and remove any code that was deprecated in 1.0.
MDAnalysis 0.20.1
Major enhancements and fixes.
See CHANGELOG for details.
(Note: 0.20.1 fixed an installation issue with 0.20.0 so there's no published 0.20.0 release.)
MDAnalysis 0.19.2
Added full support for Windows platform.
See CHANGELOG for details.
Release 0.19.1
release-0.19.1 updated c sources for 0.19.1
MDAnalysis version 0.19.0
Merge pull request #2095 from MDAnalysis/release-0.19.0 Release 0.19.0