SOFTWARE: Amino-Acid Type and Secondary-Structure Assignment by PLUQ

PLUQ GitHub (includes PLUQ python code & documentation)

This script/code queries a database to help predict possible amino acid residue types and secondary structure assignments from 13C and/or 15N chemical shifts. Please cite the following paper when using PLUQ:

Fritzsching, K. J.; Yang, Y.; Schmidt-Rohr, K.; Hong, M. J. Biomol. NMR. 56, 155-167 (2013).

The PACSY database scheme is described by Lee et al 1. All chemical shifts are from the BioMagResBank (BMRB) 2.

If you find bugs or have any questions please contact: Keith Fritzsching (


You must have Python 2.7 on your computer or Python 2.x and the necessary packages (argparse, sqlite3…). If you have troubles install the latest version of Python. We recommend using the free Enthough Python distribution, which has a one click installer for common operating systems and includes many useful Python packages with a scientific focus.

This code does not need to be installed, simply navigate to the directory.

Standalone Python Codes for Outputting 2D 13C-13C Chemical Shift Correlation Maps

13C-13C correlation maps (~80 MB)

Plots 13C–13C chemical shift regions where one residue type assignment is >10 times more likely than all other type assignments combined. Plots all correlations within 2 bounds. Corrects for protein sequence.
The plots are made from probability density functions estimated using the pluqin python package and saved in the HDF5 format. The raw data is from the PASCY/BMRB database.
The spacing in the grid is 0.1 ppm.
The plots are saved in the SVG format. The files can be viewed in any modern web browser, or edited in Adobe Illustrator.

Fritzsching, K. J.; Hong, M.; Schmidt-Rohr, K. J. Biomol. NMR. 64 (2), 115-130 (2016).


Make sure to have “numpy”, “matplotlib” and “h5py” python libraries installed.

To install these libraries with a single command, use the following command line text:

On Linux or OS X:
pip install numpy matplotlib h5py

On Windows:
python -m pip install numpy matplotlib h5py

(a) a hypothetical protein with the typical amino-acid fractions and for
(b) the VDAC-1 (PDB ID = 2K4T) protein. These maps can be used to type assign a 2D chemical shift peak that falls into one of the colored regions with >90 % confidence.

SOFTWARE: Automated Sequential Resonance Assignment by NSGA-II

Test_data: this folder includes the input files of 6 test proteins

“control_nsga.txt” is the control file used for NSGA2_assign (modified NSGA-II program).
“control_gamc.txt” is the control file used for nsga2mc_assign (Combo NSGA-II/MC program).

Fortran_programs: NSGA-II and NSGA2:MC

MATLAB_program: This code allows you to analyze and display the assignment output of the Fortran programs

The NSGA-II and combination NSGA-II/MC programs are designed to predict the assignment of protein solid-state NMR (SSNMR) spectra with partial resonance overlap and missing peaks due to broad linewidths, molecular motion, and low sensitivity. Please cite the following paper when using these programs:

Yang, Y.; Fritzsching, K. J.; Hong, M. J. Biomol. NMR. 57, 281-296 (2013).

A pure Monte-Carlo algorithm was previously published by Tycko and coworkers 3, 4.
If you find bugs or have any questions please contact: Yu Yang (


1. The executable files: nsga2_assign and nsga2mc_assign can be run directly in a Unix system.
2. Or you can download the Fortran source codes: main_program.f95 (main program), sub_source.f95 (contains all the subroutines of the NSGA-II algorithm) and qsort.f95 (this quicksort code is downloaded from the internet). All three files should be added to a Fortran project and compiled to make an executable file. A Fortran compiler is needed to do this.
3. You must have MATLAB installed on your computer to use the Matlab code postproc_assign.m. This code does not need to be installed, simply navigate to the directory.


1. Lee, W.; Yu, W.; Kim, S.; Chang, I.; Lee, W.; Markley, J. L. J. Biomol. NMR. 54, 169-179 (2012).
2. Ulrich, E. L.; Akutsu, H.; Doreleijers, J. F.; Harano, Y.; Ioannidis, Y. E.; Lin, J.; Livny, M.; Mading,   S.; Maziuk, D.; Miller, Z.; Nakatani, E.; Schulte, C. F.; Tolmie, D. E.; Kent Wenger, R.; Yao, H.; Markley, J. L. Nucleic Acids Res.36, D402-8 (2008).
3. Tycko, R. and Hu, K. N.  J. Magn. Reson. 205, 304-314 (2010).
4. Hu, K. N.; Qiang, W.; Tycko, R. J. Biomol. NMR. 50, 267-276 (2011).

SOFTWARE: Fitting Programs for Dipolar-Chemical Shift Correlation (DIPSHIFT) Experiment

Python Script

This Python script calculates dipolar dephasing curves for the DIPSHIFT experiment. Input parameters that the user can vary are found at the top of the script.

Jupyter Python Script

This script accomplishes the same things as the Python script above but is written to be used in the Jupyter Notebook web application.

Fortran Program

Fortran Input File

This file allows you to input the dipolar coupling value and experimental conditions such as the spinning speed for the Fortran program


1. Hong, M. J. Magn. Reson. 139, 389-401 (1999).
2. Hong, M.; Gross, J.D.; Rienstra, C.M.; Griffin, R.G.; Kumashiro, K.K.; Schmidt-Rohr, K. J. Magn. Reson. 129, 85-92 (1997).