Code Monkey home page Code Monkey logo

memcurv's Introduction

MemCurv

Authors: Ramachandra M. Bhaskara
Year:2019
Licence:GPLv3
Copyright: 2019 Ramachandra M. Bhaskara, Gerhard Hummer
References:[Bhaskara et al, 2019] Bhaskara RM, Grumati P, Garcia-Padro J, Kalayil S, Covarrubais-Pinto A, Chen W, Kudryashev M, Dikic I, Hummer G. Curvature induction and membrane remodeling by FAM134B reticulon homology domain assist selective-ER phagy.

Description

The MemCurv software package contains three python programs used to describe membrane shapes and quantify their curvature properties from MD simulations using the coarse-grained MARTINI model. The individual python programs

  1. Compute Mean (Constant) curvature of the discontinuous membrane system by fitting membrane shape to spherical surfaces.
    1. Fit shape profiles of curved or buckled membranes under periodic boundary conditions to obtain optimized Fourier representation of the curved surface.
    2. Compute local curvature properties of protein inclusions in curved or buckled membranes from optimized height profiles.

For a detailed description of the procedures and the algorithm, we refer to [Bhaskara et al, 2019].

Overview of the software

This software contains two Python packages:

  • "Fit_bicelle_sph_cap.py" provides algorithm for description of shape changes of a discontinuous membrane patch. For.e.g. bicelle-to-vesicle conversion by patch-closure. The program uses least square fits for curved membrane-patches to spherical cup/cap shaped surfaces, to compute the constant mean curvature.

fam_bicelle.png

  • "Get_mem_profile_hcf_abcd.py" and "Cal_local_curv_props_abcd.py" are part of a combined package which provide algorithms for description of curved membrane surfaces under periodic boundary conditions. They can be used independently with a trajectory of curved membrane to quantify the membrane shapes and to compute local curvature properties of protein inclusion.

fam_buckle.png


Please, if you have an issue with the software, open an issue here on the git-hub repository https://github.com/bio-phys/MemCurv/issues .

Dependencies and Software Requirements

  • Python 2.7
  • Python packages: numpy, scipy, MDAnalysis, pandas

Installation

No installation required. Directly run the Python programs if the dependencies are installed before.

Usage

  1. Example input files from MD simulations of a discontinuous membrane system using MARTINI force-field, for e.g. bicelle/bilayer patches (GROMACS formatted .gro and .xtc).
  • fam_bicelle.gro, a configuration file containing FAM134B embedded in bicelle (DMPC+DHPC)
  • fam_bicelle.xtc, a processed GROMACS trajectory of the bicelle.
python Fit_bicelle_sph_cap.py

The output file contains

  1. Example input files from MD simulations of a curved membrane under periodic boundary conditions using MARTINI force-field (GROMACS formatted .gro and .xtc).
  • fam_buckle.gro, a configuration file of the curved bilayer with protein (FAM134B) inclusion.
  • fam_buckle_100ns.xtc, a processed GROMACS trajectory of the curved membrane simulation.
python Get_mem_profile_hcf_abcd.py
python Cal_local_curv_props_abcd.py

Other options and settings

Depending on membrane composition, the selection of atom type constituting the mid-plane of the bilayer needs to be selected.

In curvature computations, If protein coordinates is provided, the local curvature is computed at the centre of mass of the protein atoms.

Default settings

Output

Three output files are generated with default names.

Spherical surfaces of discontinuous membrane systems.

"Fit_bicelle_sph_cap.py" generates an output file "bicelle_curv_ts.dat" which contains the following tab delimited data.

Column Description
1 Trajectory frame / Time [ns]
2 Radius of curvature, R_c [Å]
3 Mean curvature, H [1/Å]
4-6 Sphere center coordinates [x_c, y_c, z_c]
7 Residual (least square fit)
8 Iteration

Shape profile of curved bilayer under PBC.

"Get_mem_profile_hcf_abcd.py" generates an output file "popf_1ns_k3_abcd_fam_buckled.dat" which contains optimized height coefficients describing the membrane shape profile.

Column Description
1 Trajectory frame / Time [ns]
2-last Height coefficients. They can be written as four real valued (k x k) matrices.

Local curvarure of protein inclusion in curved bilayer under PBC.

"Cal_local_curv_props_abcd.py" generates an output file "fam_1ns_abcd_k3_curv_props.dat" which contains the local curvature properties of the sampled protein curvatures (tab delimited file).

Column Description
1 Trajectory frame / Time [ns]
2-7 Local curvature properties at protein center-of-mass position (COM)
2 Local Gaussian curvature, K_G(x,y)[1/Å^2]
3 Local Mean curvature, H(x,y) [1/Å]
4 Local Principal directional curvature, k_1(x,y) [1/Å]
5 Local Principal directional curvature, k_2(x,y) [1/Å]
6 Angle (deg) between local k_1(x,y) and e_x
7 Angle (deg) between local k_2(x,y) and e_x
8-13 Local curvature properties at amphipathic helix-1 COM (AH_1)
14-19 Local curvature properties at amphipathic helix 2 COM (AH_2)
20 Angle (deg) between AH_1 and e_x
21 Angle (deg) between AH_2 and e_x
22 Angle (deg) between AH_1 and AH_2
23 Angle (deg) between AH_1 and k_1(x,y)
24 Angle (deg) between AH_2 and k_1(x,y)
25-26 Protein COM position along the membrane [Px, Py]

FAQs

Q: How is the sign of the bicelle curvature decided?

A: Lipid flip-flop at the open edge merges the two leaflets. Therefore, we use the identity as defined in the start frame (by lipid assignment). If more than 50 % of upper leaflet lipids remain above the fitted spherical surface of the membrane-patch, then the curvature is positive, else it is negative.

Q: My curvature values are negative instead of positive. What is going on?

A: In the Monge representation, using a height function, such that z=h(x,y) and positive, to represent the membrane shape, the default curvature values represent the curvature along the lower leaflet and its inverse represent curvature along the upper leaflet. To compute curvatures along upper leaflet, as in the manuscript (Bhaskara et al, 2019), we multiply the Shape operator with -1 (S = -1*S).

memcurv's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

neetusinghyadav

memcurv's Issues

Is there an updated version of MemCurv (compatible with python3)

Hi,
I have downloaded MemCurv for analysis of my simulations. It says the dependencies it requires are based on Python2.7. But the required python packages are difficult to install since python-pip has been removed. Is there an updated version of the script based on Python3?

Thanks,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.