04 Sep 2022
We are happy to release the version 2.3.0 of MDAnalysis!
This relatively small update to MDAnalysis reflects our commitment
to doing more frequent (trimonthly) releases of the library.
In line with NEP 29, the minimum required NumPy version has been
raised to 1.20.0 (1.21.0 for macosx-arm64).
Supported Python versions: 3.8, 3.9, 3.10
Supported Operating Systems:
Upgrading to MDAnalysis version 2.3.0
To update with conda
from the conda-forge channel run
conda update -c conda-forge mdanalysis
To update from PyPi with pip
run
pip install --upgrade MDAnalysis
For more help with installation see the installation instructions in the User Guide.
Notable changes
For a full list of changes, bugfixes and deprecations see the CHANGELOG.
Fixes:
- Fixed reading error when dealing with corrupt PDB CONECT records, and an issue where MDAnalysis would write out unusable CONECT records with index>100000 (Issue #988).
Enhancements:
- Formal charges are now read from PDB files and stored in a
formalcharge
attribute (PR #3755).
- A new normalizing
norm
parameter for the InterRDF
and InterRDF_s
analysis methods (Issue #3687).
- Improved Universe serialization performance (Issue #3721, PR #3710).
Changes:
- To install optional packages for different file formats supported by MDAnalysis, use
pip install ./package[extra_formats]
(Issue #3701, PR #3711).
Deprecations:
- The
extra_requires
target AMBER
for pip install ./package[AMBER]
will be removed in 2.4.0. Use extra_formats
(Issue #3701, PR #3711).
A series of performance improvements to the MDAnalysis library’s backend have been made as per planned work under MDAnalysis’ Chan Zuckerberg Initiative EOSS4 grant. Further details about these will be provided in a future blog post.
-
MDAnalysis.lib.distances
now accepts AtomGroups
as well as NumPy arrays (PR #3730).
- Timestep has been converted to a Cython Extension type (PR #3683).
Author statistics
This release was the work of 10 contributors, 3 of which are new contributors.
Our new contributors are:
@miss77jun
@rzhao271
@hsadia538
Acknowledgements
MDAnalysis thanks NumFOCUS for its continued support as our fiscal sponsor and the Chan Zuckerberg Initiative for supporting MDAnalysis under an EOSS4 award.
— The MDAnalysis Team
24 Aug 2022
As part of our CZI EOSS 4 grant
we announced our plans to create an MDAKit ecosystem. With this post we aim to make
our plans more concrete and solicit feedback from the community.
Beyond the outline provided here, the complete details of our plans can be found in our white paper named MDAKits: Supporting and promoting
the development of community packages leveraging the MDAnalysis
library [v0.1.0], available as a PDF at DOI
10.6084/m9.figshare.20520726.v1.
What is an MDAKit?
MDAKits are standalone packages containing code using MDAnalysis components that solves a specific
scientific problems or in some form enhances the functionality of MDAnalysis core
library. An MDAKit can be written by anyone and hosted
anywhere.
A MDAKit can be registered in the MDAKits registry. In this case,
it has to fulfill a number of additional requirements such as
open-source licensed, hosted in a version control system, clear
designation of authors/maintainers, documentation, and tests and
continuous integration. Registered MDAKits will be listed publicly
and thus be advertised to the whole MDAnalysis community. They will
also be continuously tested against the latest released version and
the current development version of the core MDAnalysis library so that
users and developers have an up-to-date view of the code health of an
MDAKit.
Why?
The open sharing of code that abides by the basic principles of
FAIR (findability, accessibility,
interoperability, and reusability) is essential to robust,
reproducible, and transparent science. However, scientists typically
are not supported in making the substantial effort required to make
software FAIR-compliant, or incentivized with academic recognition or
reward.
Our goal with MDAKits is to lower the barrier for researchers to
produce FAIR software.
We support developers in creating new packages, guiding them through
the process of achieving best practices and FAIR compliance. At the
same time, we hope to make MDAnalysis useful to a broader community.
How to develop an MDAKit?
We are producing tools for creating MDAKits to help
developers and we are working on infrastructure to publicize
MDAKits. Our work on MDAKits is an ongoing process but you can now get
started creating your own MDAKit:
MDAKit project template
Our first tool is the
cookiecutter-mdakit,
a cookiecutter template
that generates a skeleton project that implements our recommended
best practices. With cookiecutter
installed,
execute the following command inside the folder you want to create the
skeletal repository
cookiecutter gh:MDAnalysis/cookiecutter-mdakit
Follow the prompts or hit enter for the default options.
Then add your own code to the project. Add tests — you can extend
the example tests in the template that show how to test
MDAnalysis-based code. Commit and push your changes.
(The MDAKit cookiecutter is based off the Cookiecutter for
Computational Molecular Sciences (CMS) Python
Packages by Levi N. Naden
and Jessica A. Nash from the Molecular Sciences Software Institute
(MolSSI) and Daniel G. A. Smith of
ENTOS. Thank you!)
Registering an MDAKit
If you want to register your MDAKit then create a pull request to
add a meta data entry metadata.yaml
to MDAnalysis:
MDAKits/mdakits/{YOUR_MDAKIT_NAME}
(where you will also find a template to get you started). Your PR will
be reviewed for compliance with the requirements (for right now, see the white
paper for specifics). Once
registered, your MDAKit will be continuously tested.
Towards publication
The best practices that we encourage MDAKits to fulfill essentially
amount to the majority of the contribution criteria for submissions to
software-focused journals such as the Journal Open Source
Software (JOSS). We encourage MDAKits to
consider submission to such a journal once they meet the
required levels of best practices. We are working towards streamlining
the submission process for JOSS.
Give us feedback!
We are looking for feedback from the community: please let us know
via our malinglist or discord
or via the MDAKits issue
tracker what your
thoughts are:
- As a user: What do you like or dislike about the MDAKits
approach? Would you want to use an MDAKit?
- As a developer: Would you be interested in creating an MDAKit?
What should we do to make it easy for you?
Get in touch! MDAKits are new and we look forward to adapting the
initial (v0.1.0!) approach based on what we hear from the community.
— @IAlibay @jbarnoud @orbeckst @richardjgowers @fiona-naughton @lilyminium
29 Jul 2022
Thanks to the support of a NumFOCUS Small Developer Grant, MDAnalysis is looking to hire a junior developer for 150h (1 month FTE) at 24 USD/hour (3600 USD) to improve the content and organisation of our teaching materials.
MDAnalysis regularly holds workshops to teach researchers how to use our package for their work. We are looking for a junior developer to help us tidy and repackage our teaching materials to provide a cleaner, easier to navigate resource for both users and future workshop creators.
Past workshop materials can be found in the following repos:
Example tasks will include:
- Identifying any outdated material and standardizing contents
- Implementing continuous integration solutions (e.g. nbval) to automatically check and notify if notebook code breaks in the future
- Investigating and implementing new modern notebook extensions to improve the teaching/learning experience
- Identifying any areas where teaching materials are lacking, propose and implement corresponding changes
- Migrating presentation slides to a common, interactive format (e.g., RISE)
- Compiling frequently asked questions in the mailing list in the FAQ page
- Replacing the current outdated MDAnalysis Tutorials page with an overview of all available tutorials, documented and organized by topic/experience level
- Advertising the improvements to the documentation to the MDAcommunity with blog entries and social media posts
You will have the flexibility to decide how to allocate the contract hours, either part-time or full-time, with the commitment to conclude the project by June 2023.
Application requirements
Required criteria
- You have a degree in Chemistry, Chemical Engineering, Physics or a related discipline
- You use molecular dynamics simulations or related techniques in your work
- You use Python, GitHub and Jupyter notebook environments in your work
Desired criteria
- You are familiar with MDAnalysis. Ideally, you already use it or in your research workflows, or have recently attended one of our workshops and now you’re a convert!
- You have contributed code and/or documentation in the computational chemistry/biophysics space. PRs to MDAnalysis repos will be considered a bonus.
Apply by September 1st by filling out this form. Shortlisted candidates will be invited to a zoom interview.
If you have any questions or would like to know more about this opportunity, reach out to Dr Micaela Matta via email using the subject “MDAnalysis junior developer”, or via the MDAnalysis Discord - post in the #jobs channel or DM Micaela(she/her).