Attempt to add NMR spectroscopy abilities to the wonderful molecular viewer Pymol.
NMR spectroscopy can provide useful information to create molecular models, such as distance between atoms (usually protons / hydrogen atoms in biomolecular biology). This plugin allows to display distance information (so-called "distance contraints" or NOEs) directly onto the molecular skeleton of proteins. It can do so in two different ways :
- As sticks between atoms / group of atoms with color code to indicate if the structure is in agreement with NMR data
- As a density with color map on the molecular skeleton
I believe this could help a lot in the tedious process of determining whether the constraints extracted from the nmr spectrum make sens or not.
- Import popular data formats CNS / X-PLOR or CYANA / XEASY
- Command line and graphical user interfaces available
- Download NMR restraints file from the PDB directly from this plugin
- Choose method of distance calculation between atoms (in case of ambiguous restraints)
- Choice for colors and size of NOE representations
- Selection of constraint by clicking and visualization on the 3D structure
For installation of the open-source version Pymol on macOS, I recommend using macports, as of today, it is the only package manager that does a proper installation of pymol 2.2
- Download "PyNMR.py" (Version of 27/12/17)
- Copy all files into a single directory anywhere on your disk
For both versions, use the Pymol standard plugin install in the main menu
Start PyNMR from the plugin menu. (For development version, start pymol from the directory where you copy the files)
The GUI is quite straightforward for NMR people I think. For CLI, read pymolNMR.py.
The main Interface
The Preference window
The NOE selection window
- Display of angular, dihedral and h-bonds constraints
- Text list of constraints with real-time edit
- Import other formats (CCPNMR, ...)
Any help would be welcome to develop those features. I am definitly not a professional developper, this is done on my spare time and those would require a lot of time and probably competencies I do not have.
- They are often discrepancies between pdb structure file nomenclature and pdb constraints file. Especially, with amide (H/HN) and pro-chiral protons (HB1/HB2), please check those otherwise you'll get error-messages and not all constraints will displayed. I might provide an automatic conversion tool in the future if I can find the time.
- When displaying a large number (> 1000's) of constraints as sticks, Pymol performances decrease rapidly (Depends strongly on the performance of your computer):
- Avoid to draw all constraints if not necessary
- Remove them before any other action if you can
- Since this is a continuous work in progress, there might be some bugs I am not aware of. I am learning Python while coding this piece of sofware. Please report them in the issue section of github.