BranniganLab / nougat

Analysis of membrane height, thickness, and curvature
2 stars 0 forks source link

nougat: A Toolkit For Analysis of Membrane Disruption by Proteins and Other Inclusions

Proteins and other inclusions are known to interact with membrane lipids in numerous ways, including through the differential recruitment of particular lipid species, local realignment of lipid tails, and even inducing comparatively long-range deformations of the membrane surface. Coarse Grain Molecular Dynamics (CG-MD) simulations offer an attractive ‘computational microscope’ through which to observe these phenomena. We introduce nougat, a toolkit for quantitative analysis of several measures of interest local to a membrane protein.

Terminology note:

Prerequisites:

Software Dependencies:

VMD
Python3

Python Dependencies:

numpy
matplotlib
warnings
argparse
pathlib

Optional Dependencies:

This script can utilize Dr Jerome Henin's vecexpr package to improve the efficiency of binning. It can also make use of his qwrap protocol to speed up initial setup. Please visit the repos below and follow the installation instructions if you wish to enable these features.

github.com/jhenin/qwrap
github.com/jhenin/vecexpr

What will it do?

nougat.tcl will analyze your trajectory in VMD and output .dat files that contain the average height per bin per frame. nougat.py will read in those .dat files to extract:

nougat.py will then generate averages across the trajectory, and output its findings in .dat, .npy, and .pdf files. A pdb file will also be created, allowing the user to explore the average membrane surfaces in 3D in VMD.

How To Use Nougat:

Make Edits and Check Your Work

Run nougat.tcl

start_nougat [system name] [path to nougat_config.txt] [dr|Nbins] [Ntheta] [start] [end] [step] [polar]

An explanation of the options is as follows:

- system name       the name you want your files/directories to be saved with
- dr | Nbins        if using cartesian coords, the number of bins in the x/y directions | if polar coords, the radial bin width in Angstroms
- Ntheta            will be ignored if cartesian; the number of bins in the theta direction 
- start             the frame from which you would like to start analysis
- end               the frame where you would like to stop analysis; -1 will run for the whole simulation
- step              allows you to skip frames; otherwise use 1
- polar             0 for cartesian system, 1 for polar system

Run nougat.py

Navigate to the directory created when you ran nougat.tcl.

python3 [path-to]/nougat/plotting/nougat.py [-p for polar]

Explore your results!

All results are available as heatmaps saved as pdf files.

You can also load the [system name].avgheight.pdb file into VMD to explore the average surfaces in 3d.