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.


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

@orbeckst, @richardjgowers

MDAnalysis as a building block

While our documentation is mostly focused on using MDAnalysis for exploratory analysis it is equally well suited to build your own analysis library on top of it. Below is a list of all projects we know about that use MDAnalysis.

Visualization tools

  1. nglview: nglview is a tool to visualize trajectories in jupyter notebooks.
  2. mda-pymol: MDAnalysis has been embedded into PyMOL to read many different MD formats directly

Analysis tools

  1. pydiffusion: Analyze the rotational diffusion of your molecules.
  2. pytim: Pytim is a package based on MDAnalysis for the identification and analysis of surface molecules in configuration files or in trajectories from molecular dynamics simulations.
  3. pycontact: Analysis of non-covalent interactions in MD trajectories.
  4. pyPcazip: A PCA-based toolkit for compression and analysis of molecular simulation data
  5. RotamerConvolveMD: Analysis of molecular dynamics trajectories or conformational ensembles in terms of spin-label distances as probed in double electron-electron resonance (DEER) experiments.
  6. PBxplore: PBxplore is a suite of tools dedicated to Protein Block (PB) analysis.
  7. cgheliparm: Scripts used to analyze dsDNA structures from Martini MD simulations.
  8. accelerated_sampling_with_autoencoder: This is the framework for running accelerated sampling with data-augmented autoencoders.


MDAnalysis is also included in NMRBox a distribution of common software to analyze NMR measurements.

If you know of other tools that are build on MDAnalysis please share them with us on Twitter.

Google Summer of Code 2019

NumFOCUS Foundation Google Summer of Code 2018

MDAnalysis has been accepted as a sub-org of the NumFOCUS foundation, for Google Summer of Code 2019. If you are interested in working with us this summer as a student read the advice and links below and write to us on the mailing list.

We are looking forward to all applications from interested students (undergraduate and postgraduate).

The application window deadline is April 9, 2019 at 18:00 (UTC). As part of the application process you must familiarize yourself with Google Summer of Code 2019.

Apply as soon as possible; the application window opens on March 25, 2019 but you should start engaging with us sooner than that: read on.

Project Ideas

We have listed several possible projects for you to work on on our wiki.

Alternatively if you have your own idea about a potential project we’d love to work with you to develop this idea; please write to us on the developer list to discuss it there.

Information for Students

You must meet our own requirements if you want to be a student with MDAnalysis this year (read all the docs behind these links!). You must also meet the eligibility criteria.

The MDAnalysis community values diversity and is committed to providing a productive, harassment-free to every member. Our Code of Conduct explains the values that we as a community uphold. Every member (and every GSoC student) agrees to follow the Code of Conduct.

As a start to get familiar with MDAnalysis and open source development you should follow these steps:

Complete the Tutorial

We have a tutorial explaining the basics of MDAnalysis. You should go through the tutorial at least once to understand how MDAnalysis is used.

Introduce yourself to us

Introduce yourself on the mailing list. Tell us what you plan to work on during the summer or what you have already done with MDAnalysis.

Close an issue of MDAnalysis

You must have at least one commit in the development branch of MDAnalysis in order to be eligible, i.e.. you must demonstrate that you have been seriously engaged with the MDAnalysis project.

We have a list of easy bugs to work on in our issue tracker on GitHub. We also appreciate if you write more tests or update/improve our documentation. To start developing for MDAnalysis have a look at our guide for developers and write us on the mailing list if you have more questions about setting up a development environment.

@richardjgowers, @jbarnoud, @micaela-matta, @orbeckst