Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Release 0.11.0 is a major update for MDAnalysis. It contains a number of backwards-incompatible API changes, i.e. existing code is likely to break. Additionally, some old functionality has been deprecated and will be removed for the 1.0.0 release.
The MDAnalysis 0.11 unifying release user guide should help you with porting your code. We have also included a tool
ten2eleven as part of the package that automates some of the API changes in your existing code, as described in Migrating MDAnalysis code with ten2eleven.
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:
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:
- Changed AtomGroup counting methods to properties with different
names (Issue #376):
- Changed trajectory reader
- Deprecated the use of the
'fullgroup'selection keyword (Issue #268)
- Changed many AtomGroup methods to properties. These are:
Timestepcan now only init using an integer argument (which represents the number of atoms) (Issue #250)
from_coordinates()construction methods to
CoordinateNeighborfrom MDAnalaysis. If you want to search in cartesian coordinates directly for neighboring points use the BioPython
AtomNeighborSearchclass has been ported to use the BioPython KDTree and is now located in
MDAnalysis.KDTreestill exists in this version to load the
NeighborSearchmodule but is deprecated and will be removed in 1.0. (Issue #383)
.impropernow return the corresponding
TopologyObjectrather than performing the calculation (Issue #373)
- All TopologyObjects now have a "
value()" method to evaluate them (Issue #373)
TopologyGroupnow has a "
values()" methods to evaluate all contained bonds (Issue #373)
- deprecated camelCase AtomGroup methods in favour of underscore_style (Issue #389)
lib.distances.applyPBCin favour of
AtomGroup.segidsnow give arrays of equal size to
ResidueGroup.segidsnow gives arrays of equal size to
set_<property>now plural for consistency with property names (Issue #385)
DCDReaderno longer supports the "
skip" keyword. Use slicing on reader iteration to achieve same effect. (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_timestepof 1 (Issue #350)
- 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
MDAnalysis.lib.log.ProgressMeternow outputs every interval number of
updatecalls (Issue #313)
lib.mdamathfor common mathematical functions. (Issue #287)
- All Timesteps have the has_positions
has_forcesboolean 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
timeattribute (Issues #306 and #307)
MDAnalysis.selection: can also be written to a
- Added function
lib.mdamath.make_wholeto "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
bfactorsproperty (Issue #372)
serialsproperties with setters. (Issue #372)
MDAnalysis.core.AtomGroup.Mergenow copies across bonding information (Issue #249)
- numpy >= 1.5 required
ProtoReaderclass intermediate between
Readerwas added so specific Readers can be subclassed without
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)
FormatError, now replaced by
__iter__removed from many Readers (now use
base.Readerimplementation) (Issue #350)
_zare now read only (Issue #213)
MDAnalysis.selections.get_writer()to break a circular import. This should not affect any code because
distances.contact_matrixnow 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
core.topologyobjectsmodule (Issue #373)
- 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)
TPRParserconsidering LJ 1..4 exclusions as bonds (Issue #351)
- ChainReaders no longer cause memory leak (Issue #312)
analysis.hbonds.HydrogenBondAnalysisperforms a sanity check for static selections (Issue #296)
TRZWriterfailing when passed a non
- relative imports are now banned in unit testing modules (Issue #189)
- Fixed bug and added
DivisionByZeroexception in analysis/waterdynamics.py in
SurvivalProbability. (Issue #327)
- Fixed parsing of PDB header data for
contact_matrixhandles periodic boundary conditions correctly for sparse matrices. (Issue #375)
analysis.holenot using CPOINT (Issue #384)
- Fixed XTC/TRR
.dtrewinding the trajectory (Issue #407)
TopologyGroup.from_indicesnot guessing topology object class (Issue #409)
TopologyGroup.__contains__failing if different instance of same bond was queried. (Issue #409)
tyler.je.reddy, richardjgowers, alejob, orbeckst, dotsdl, manuel.nuno.melo, cyanezstange, khuston, ivirshup, kain88-de, gormanstock