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 ψ).
| Single mode | Batch mode |
|---|---|
Installation
RamachanDraw is hosted on PyPi.
pip install ramachandraw
Usage
RamachanDraw includes useful functions to effortlessly draw a Ramachandran plot.
Fetch the PDB file
To draw a Ramachandran plot, we need a PDB file. RamachanDraw conveniently includes a function to automatically fetch and locally store the PDB file for the given PDB id.
Example
from ramachandraw.utils import fetch_pdb
fetch_pdb(pdb_id, verbose)
pdb_id (str|list|tuple): PDB id(s) corresponding to the PDB file(s) to be downloadedverbose (bool)(optional): set the verbosity, defaults toFalse- Returns: path(s) to PDB file(s)
Extract φ and ψ torsion angles
RamachanDraw extracts the φ and ψ torsion 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.
Example
from ramachandraw.parser import get_phi_psi
phi_psi(pdb_filepath, prune, hide_warnings)
pdb_id (str|list|tuple): PDB filepath(s)prune (bool)(optional): prunes aminoacids with missing torsion angle(s), defaults toTruehide_warnings (bool)(optional): sets the verbosity of the PDB structure parser, defaults toTrue- Returns: Dictionary with keys as aminoacid residues and values as (φ, ψ) angles.
Ramachandran plot
Makes use of the matplotlib module to draw a highly customizable Ramachandran plot.
Example
from ramachandraw.utils import plot
plot(pdb_filepath, cmap="viridis", alpha=0.75, dpi=100, save=True, show=False, filename="plot.png", title=None)
pdb_file (str|list|tuple): PDB id(s) corresponding to the PDB entry to be downloadedcmap (str)(optional): colormap to be used (frommatplotlib) for the density of the favoured ("allowed") regions; default is viridis.alpha (float)(optional): sets the opacity of the colormap (value between 0-1); default is 0.75.dpi (int)(optional): resolution (in dots per inch); default is100.save (bool)(optional):True: saves the plot locally; default is True.
show (bool)(optional):True: shows the plot using the Qt5Agg backend; default is False.
filename (str)(optional): filename to be used in case the plot is saved (i.e.save=True); default isplot.png.title (str|None)(optional): custom title for the plot. IfNone, defaults to the PDB filepath.- Returns: Ramachandran plot (
matplotlib.axes.Axesobject) that can be further customized if needed
Example
Herein you will find an example from the PDB id corresponding to the myoglobin entry: 1MBN - in the Protein Data Bank.
Single PDB
from ramachandraw.parser import get_phi_psi
from ramachandraw.utils import fetch_pdb, plot
# PDB id
pdb_id = "1mbn"
# Draw the Ramachandran plot
plot(fetch_pdb(pdb_id))
# Generate a dictionary to store the (phi, psi) torsion angles
torsion_angles = get_phi_psi(fetch_pdb(pdb_id))
Batch of PDBs
from ramachandraw.parser import get_phi_psi
from ramachandraw.utils import fetch_pdb, plot
# PDB id
pdb_ids = ["1mbn", "4hhb"]
# Draw the Ramachandran plot
plot(fetch_pdb(pdb_ids))
# Generate a list of dictionaries to store the (phi, psi) torsion angles
torsion_angles = get_phi_psi(fetch_pdb(pdb_ids))
Contributing
Feedback and constructive criticism is welcome. If necessary, open an issue in the issues tab.
License
Metadata
Release files for ramachandraw 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ramachandraw-1.2.0.tar.gz | 84.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ramachandraw-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 168.8 kB
Release files / ramachandraw-1.2.0.tar.gz
| Download URL | ramachandraw-1.2.0.tar.gz |
|---|---|
| Size | 84.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1d04c7f3684e20a3287264605aa9b56aed070b5b4a407e51f285bd60e660c04d
|
|
BLAKE2b-256 checksum How to use checksums |
6fc70bef9f13321db96b2b697df9b2df7331b6088be2b5b85a5e666eb0428618
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / ramachandraw-1.2.0-py3-none-any.whl
| Download URL | ramachandraw-1.2.0-py3-none-any.whl |
|---|---|
| Size | 83.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
712f4cdc0fce583cf6b47a9c548d91ee14767cc4096a15451d5a7ee8e31d6684
|
|
BLAKE2b-256 checksum How to use checksums |
53799be704fa10b4071b9ebcadc6a5a98cc4ad67a8555f1d311b008ae1434316
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|