Blog

Google Summer of Code Student 2019

We are happy to anounce that MDAnalysis is hosting one GSoC students for NumFOCUS this year, Ninad Bhat (@NinadBhat) on GitHub).

Ninad Bhat: Better Periodic Boundary Handling

Ninad Bhat

Molecular simulations are predominantly ran under periodic boundary conditions, i.e., upon leaving one face of the simulation volume, you re-enter in the opposite face. This can lead to molecules being split over the periodic boundary, which requires rectification before performing calculations. In this project, Ninad will implement wrapping and unwrapping functionality in the various AtomGroup methods that use the position of particles, e.g., the calculation of the center of mass. In order to improve performance, the wrapping and unwrapping methods will be implemented in Cython.

Ninad is a senior undergraduate at IIT Bombay. He is working with Phase Field Modelling for his master thesis and has also used molecular dynamics for some of his projects. He has been contributing to different open source projects since 2016 and credits most of his programming knowledge to it. During GSoC, he aims to improve his software development skills while also getting a deeper understanding of molecular dynamics.

Ninad will describe his progress on his blog.

@jbarnoud @richardjgowers @micaela-matta @orbeckst (mentors)

Google Season of Docs 2019 with MDAnalysis

Google Season of Docs 2019

MDAnalysis was accepted for Google Season of Docs 2019. We are proud to be one of 50 participating open source organizations, which span all reaches of open source and includes the Wikimedia Foundation, NumPy and SciPy, the CERN High Energy Software Foundation, Drupal, Arduino, LLVM Compiler Infrastructure, and many more outstanding projects that really have been moving the open source community forward.

We would love to have a technical writer work with us to improve our documentation. If you want to work with scientists that write code to do science at the molecular scale then please contact us on the developer list.

More about Projects and MDAnalysis

Our recent post on our GSoD application explains more of the background and summarizes our project ideas.

You can find detailed project ideas on our wiki.

We also have a Frequently Asked Questions for GSoD with MDAnalysis, which is being continuously updated.

Written by scientists for scientists

MDAnalysis is a project written by scientists for scientists and is currently used for cutting edge research around the world. A writer with MDAnalysis will learn about the technical aspects of creating docs for open source code (such as documentation generation with Sphinx, continuous integration-based workflows and distributed development with git via our GitHub source code repository) and also about the science that MDAnalysis enables. Our developers have published many scientific publications that used our library or described innovative new methods that were implemented in MDAnalysis. A writer will interact with these accomplished scientists and learn about the science: How molecules are simulated (e.g., biomolecules such as proteins and DNA or novel materials) and how scientists analyze such simulations in order to better understand the world at the microscopic scale.

The video shows the result of a molecular dynamics simulation in which a sodium ion (magenta sphere) together with water molecules (red/white “L” shapes) bind to a protein (shown in cartoon representation as blue and green ribbons), a process that is important in maintaining the health of cells in the body. The MDAnalysis package enables us to write code which can perform calculations on these results, here allowing us to quantify the interaction between the ion and the protein and generate fundamental understanding of important processes in living beings.

Contact

If you have any questions or if you want to work with us please write to us on the developer list.

@orbeckst, @richardjgowers

Google Season of Docs 2019 Application

Google Season of Docs 2019

MDAnalysis is applying for Google Season of Docs 2019. We would love to have a technical writer work with us to improve our documentation.

In this program, Google is sponsoring a professional technical writer to work with an open source project. The open source project gets to work with a professional in the area of documentation — something that almost all projects struggle with and want to improve — and the writer gets experience working with an open source project, e.g., being embedded in the developer community and using tools such as automatic doc generation and continuous integration services.

Because MDAnalysis is a project written by scientists for scientists, a writer with MDAnalysis would not only learn about the technical aspects of creating docs for open source code (such as documentation generation with Sphinx, continuous integration-based workflows and distributed development with git via our GitHub source code repository) but also about the science that MDAnalysis enables. Our developers have published many scientific publications that used our library or described innovative new methods that were implemented in MDAnalysis. A writer would interact with these accomplished scientists and learn about the science: How molecules (especially biomolecules such as proteins and DNA) are simulated and how scientists analyze such simulations in order to better understand the world at the microscopic scale.

What is MDAnalysis?

MDAnalysis is a Python library for the analysis of computer simulations of many-body systems at the molecular scale.

MDAnalysis is also a community of hundreds of users and developers. As a community, we adhere to our Code of Conduct.

The goal of MDAnalysis is to make it easy for users to analyze data that are produced by simulations (primarily molecular dynamics simulations) that run on some of the largest super-computers in the world. We accomplish this goal by providing a toolkit of programming building blocks that provide an abstract interface to the simulation data that lends itself to interactive data exploration and rapid prototyping but is also a robust foundational library that can form the basis for new computational tools.

Scientists in our field use statistical mechanics to analyze the simulation data and make predictions that connect theory and experiments. For example, the image shows simulated data (points with error bars) compared to a theoretical model (solid line). The background shows the protein that was simulated. MDAnalysis was used for the analysis.

Project Ideas

Our goal for GSoD is to make it easy for new users to analyze their data. We want to accomplish this goal by

  1. providing a quick introduction to the essentials of using MDAnalysis through (1) overview documentation and (2) tutorials that address common areas of interest of users;
  2. connecting the introductory docs to the API docs so that users can easily learn and explore by themselves.

We have listed several possible projects to work on on our wiki. A summary table is shown below:

project name effort description
1 User story based documentation 75% Create documentation (starting from existing MDAnalysis docs) addressing common well-known use cases of the library. The structure should be at a higher level than the existing module-level default documentation and similar to the structure used for libraries such as scikit-learn and pytorch.
2 Introduction to analyzing Molecular Dynamics trajectories with MDAnalysis 25% Create documentation centered around the 2016 SciPy talk by Beckstein (video, slides) with notebooks illustrating the fundamentals of molecular dynamics and how MDAnalysis facilitates analyzing such simulations.
3 Quick Start Guide 25% Create a guide for getting started with MDAnalysis within a Jupyter notebook in less than 10 minutes. Includes installation, data loading, and sample real-world use case. Base on MDAnalysis Docs: Overview and MDAnalysis Tutorial.
4 Beginner, Intermediate, and Advanced Tutorials 50%–100% Reorganize the existing documentation into Beginner, Intermediate, and Advanced material that build upon each other. The tutorials should progress from (beginner) basic trajectory analysis to (intermediate) working with topology information to (advanced) System building (see the selection of topics). The material should include code references in GitHub, static or live Jupyter notebooks, and illustrations to facilitate learning and understanding.

The column effort is a rough estimate of what percentage of one GSoD could be spent on this project. Technical writers can combine a lower effort project (as an introductory project) with one of the high-effort projects. Projects with effort ranges are modular in that we can work on different independent sub-components and thus tailor the effort.

If you want to learn more, have a look at our projects page, which contains more details, or contact us and ask us.

Contact

If you have any questions or if you want to work with us please write to us on the developer list.

@orbeckst, @richardjgowers