Blog

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

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.

Distributions

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.