Ramachandran plotting tool
Project description
Ramachandran plotting tool
Draws a Ramachandran plot based on the input PDB file (e.g. 1MBN.pdb). Makes use of a Gaussian KDE (kernel density estimation) to plot the density of favoured torsion angles (φ and ψ).
Installation
RamachanDraw is hosted on PyPi.
pip install RamachanDraw
Usage
RamachanDraw includes useful functions to effortlessly draw a Ramachandran plot.
Fetch the PDB file from the online repository
To draw a Ramachandran plot, we need a PDB file. You can use a local PDB file by specifying the path. Alternatively, RamachanDraw conveniently includes a function to automatically fetch and locally store the PDB file for the given PDB id.
Arguments
fetch(pdb_file)
pdb_file (str)
: PDB id corresponding to the PDB entry to be downloaded.Returns
: path to PDB file.
Extract φ and ψ angles
RamachanDraw extracts the φ and ψ angles from the PDB file by taking advantage of the Biopython module.
Additionally, aminoacid residues that were not drawn on the plot can be extract using the return_ignored
argument.
Arguments
phi_psi(pdb_file, return_ignored)
pdb_file (str)
: PDB id corresponding to the PDB entry to be downloaded.return_ignored (bool)
:True
returns a list of tuple with the format (aminoacid, (phi, psi))
Returns
: Dictionary with keys as aminoacid residues and values as (phi, psi) angle values.
Ramachandran plot
Makes use of the matplotlib module, using the Qt5Agg backend (PyQt5) to draw a highly customizable Ramachandran plot.
Arguments
plot(pdb_file, cmap='viridis', alpha=0.75, dpi=100, save=True, show=False, out='plot.png')
pdb_file (str)
: PDB id corresponding to the PDB entry to be downloaded.cmap (str)
: colormap to be used (from matplotlib) for the density of the favoured ("allowed") regions; default is viridis.alpha (float)
: sets the opacity of the colormap (value between 0-1); default is 0.75.dpi (int)
: resolution (dots per inch); default is 100.save (bool)
:True
: saves the plot locally; default is True.
show (bool)
:True
: shows the plot using the Qt5Agg backend; default is False.
out (str)
: filename to be used in case the plot is saved (i.e.save=True
); default is plot.png.Returns
: Ramachandran plot (can be saved locally).
Example
Herein you will find an example from the PDB id corresponding to the myoglobin entry - 1MBN - in the Protein Data Bank.
from RamachanDraw import fetch, phi_psi, plot
# PDB id to be downloaded
PDB_id = '1MBN'
# Drawing the Ramachandran plot
plot(fetch(PDB_id))
# Generating a dictionary to store the phi and psi angles
# And returning the ignored aminoacid residues
phi_psi_dict, ignored_res = phi_psi(fetch(PDB_id), return_ignored=True)
Contributing
Feedback and constructive criticism is welcome: a.dias.cirilo@umail.leidenuniv.nl.
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for RamachanDraw-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1663a665af74e8836ea95ff3d03c0b2132817d5580cd17d203d1f86be0cb312c |
|
MD5 | 2c75414dbfbe8bd4b437832e33027db6 |
|
BLAKE2b-256 | 54ca5fe6a8d2dc56ee764c93905e9a6d635b9beed987bf3dc7a6f7307013b136 |