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