GithubHelp home page GithubHelp logo

niranjchandrasekaran / pypath Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 0.0 78 KB

Program to calculate the most probable path between two equilibrium states of a biomolecule

Home Page: https://niranjchandrasekaran.github.io/PyPath/

Python 100.00%
biophysics protein-dynamics

pypath's Introduction

Given the PDB structures of two equilibrium states of a biomolecule, the program computes the most probable path (minimum Onsager-Machlup action path). PyPath uses a Anisotropic Network Model based energy function to describe the biomolecular systems. PyPath is extremely fast and can be used to quickly determine the dynamics of protein and DNA molecules before venturing into more detailed molecular dynamics simulation algorithms.

Resources

The theory behind PyPath is described in detail in Chandrasekaran and Carter (2017), Chandrasekaran et al. (2016) and Franklin et. al (2007)

Dependencies

PyPath is written in python and it relies on several python libraries which can be downloaded and installed using the following command

conda env create --force --file environment.yml
conda activate pypath

The above commands requires Anaconda to be installed.

Running PyPath

PyPath can be run with the -h flag to display all the required and optional parameters

pypath.py -h

which displays the following help menu

optional arguments:
  -h, --help  show this help message and exit
  -start      Initial equilibrium state [PDB file] [Required]
  -end        Final equilibrium state [PDB file] [Required]
  -nconf      The number of conformations in the trajectory [default: 3]
  -calpha     If only C-alpha atoms are to be used in the simulation 
              [default: all atom]
  -torsion    If torsion potential should be included in the all atom potential [default: all atom anm]
  -eval       print eigenvalues and eigenvectors to file

Parameters

Equilibrium states

The two end states are input to the program using the -start and -end parameters. The end states are PDB files which need to have all the fields shown in the example below

ATOM      1  N   GLY A 703      40.667  -1.776   7.887
Trajectory

The number of frames to be computed can be specified using the -nconf flag. It should be noted that the number the frames specified includes the end states.

Atoms to simulate

By default, all atoms in the system are included in the simulation. By using the -calpha flag, only the CA atoms can be simulated. This is particularly useful for large systems as results from PyPath indicate that for large systems, CA only simulation generates results comparable to all atom simulations.

Potential Energy

By default the all atom simulations use the ANM potential. When the -torsion flag is used, the torsional potential is also included in the all atom potential. Though including the torsional potential improves the accuracy of the all atom potential, for large systems, computing the torsional potential can be computationally expensive.

Eigenvalues and Eigenvectors

Eigenvalues and eigenvectors can be useful for variety of purposes like computing the coefficient of variation or calculating the motion of the molecule about particular normal modes. Using the -eval flag eigenvalues and eigenvectors can be printed.

Output

Given these input parameters, PyPath generates the four output files.

path-log: log file containing important output parameters

trans.pdb: transition state PDB file.

trajectory.pdb: trajectory PDB file with nconf number of frames

path-energy: energy of each structure along the trajectory represented as time points

missing_sidechain_atoms.txt: this file is generated if the atoms necessary to build the Hessian are missing

Things to remember

  • The number of atoms in both the end states must be equal

  • For large systems, all atom simulation is resource intensive.

  • Since PyPath works with stable equilibrium states of biomolecules, studying the dynamics of biomolecules that are unfolded may not be possible with this program

pypath's People

Contributors

niranjchandrasekaran avatar

Stargazers

 avatar

pypath's Issues

Error reading PDB files

While read PDB files, Charlie got the following error

pdb = [data[line] for line in range(len(data)) if (data[line][2].rstrip()).lstrip() == 'CA']
IndexError: list index out of range

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.