Blog

MDAKits

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

MDAnalysis Junior Developer

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).

MDAnalysis + Machine Learning Workshops

In collaboration with CCPBioSim, 3 MDAnalysis core devs (@ialibay, @micaela-matta, @richardjgowers) together with @ppxasjsm (University of Edinburgh) and @degiacom (University of Durham) organised and ran a 2-day hybrid (in person/online) workshop titled “MDAnalysis and Machine Learning for Molecular Simulations” on June 9-10 2022, immediately following the 8th Annual CCPBioSim Conference. The workshop received generous funding from the MGMS Early Career Workshop Initiative.

The topics covered included:

  • The fundamentals and basics of MDAnalysis
  • How to get started with machine learning and tools such as scikit-learn
  • How to use MDAnalysis in conjunction with machine learning
  • Applying these tools to your own research projects

The workshop was hosted at the University of Edinburgh and consisted of 4 half days in a hybrid format, with over 40 in person attendees and over 30 attendees online at any point in time. A special thank you to Jasmin Güven (PhD student in the group of Antonia Mey) who moderated questions from online participants!

The teaching materials can be run on Google Colab and are found on GitHub.

The workshop style was massively adapted from Software carpentries, using a mixture of life coding, walking through Jupyter notebooks and problem sections. We used the post-it system for instant feedback from participants, and also ran a post-workshop survey, collecting overwhelmingly good feedback.

Thanks to this success, @micaela-matta, @degiacom and @ppxasjsm will be running the workshop again at the CCP5 Summer School on July 26-27 2022, in Durham!

We are glad to see such a high demand for training resources and events from the molecular simulation community. We look forward to continuing to deliver these workshops in the future.

workshop instructors introducing MDAnalysis

— the MDAnalysis team