This lesson is still being designed and assembled (Pre-Alpha version)

Biomolecular Simulation: OpenMM and MDAnalysis: Glossary

Key Points

Python Basics
  • Python can be run interactively, through a script, or in a notebook form.

  • Use import to load in Python packages.

  • Comments are evoked through #, and docstrings are evoked through """ """.

  • Python starts indexing at 0 (zero).

  • Indentation levels are very important for Python, and 4 spaces should be used for indents. Indent levels are critical for if statements and for loops.

  • if statements and for loops should each end the opening line with a : (colon).

  • It is a common convention to use non-plural/plural pairs for for loops.

  • Updating a variable with addition can be achieved through +=.

  • The \ is a line continuation mark, as well as the escape character.

  • The phrase keyword arguments (for functions) is sometimes shorted to **kwargs.

  • Exit command-line Python with quit() or exit(), including the parentheses.

Structure Preparation
  • PROPKA is one way to calculate protonation states.

  • MolProbity can be used to check a structure for clashes, and make relevant ring flips.

  • Non-standard residues must have relevant hydrogens before parametrization.

  • For the final structure, LEAP will add hydrogens (and other missing sidechain atoms) based on residue definitions.

OpenMM
  • OpenMM in Python can make use of GPUs to perform molecular dynamics simulations.

  • If you continue a simulation from a checkpoint file, it is highly advised that you use a different filename for future checkpoint files.

MDAnalysis
  • MDA uses universes to store topology and coordinate information.

  • The XYZ extension is used for XYZs, TXYZ is used for TINKER XYZs.

  • Periodic boundary conditions are turned on by default.

  • Root mean square deviation (RMSD) must be calculated against a reference structure.

  • Root mean square fluctuation (RMSF) is calculated by-atom originally, and the residue weights must be applied to get the mass-weighted RMSF.

  • CHARMM27 and GLYCAM06 are the pre-defined force fields for hydrogen bond analysis. New force fields can be added by defining them through the HydrogenBondAnalysis class.

Glossary

Bugs
Features of code that don’t work as you hoped, or as intended. You want to squash bugs.
Compiler
Translates the lines of code to a functional (or buggy) program.
Counter
Breaks a looped section of code into something that can be tracked numerically. Counters are useful for tracking cases, such as when every time a condition is met, the counter updates. At the end, the counter would list the total number of uses.
Directory
A folder. You probably have a Documents folder on the computer you use most often.
Distro
Short for distribution, means a packaged format of a code or program.
Docstring
Short for documentation string, it provides a long form for commenting and otherwise describing code.
Keyword Argument (**kwarg)
An argument that is signaled with a keyword for Python functions. An example is passing the number of atoms to a system (system(elements, natom=123)).
String
Text-based things like filenames or text. x = "Thing"
Source Code
Code in its pure form, before it is interpreted by a compiler.