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.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ramachandraw-1.2.1.tar.gz | 84.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ramachandraw-1.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 168.7 kB
Release files / ramachandraw-1.2.1.tar.gz
| Download URL | ramachandraw-1.2.1.tar.gz |
|---|---|
| Size | 84.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c69b3c684a2d9f0ba022a09ec4f1e19f57a8cab757387632605f945df9b0cfdc
|
|
BLAKE2b-256 checksum How to use checksums |
eeddad2c4c9c89d873bf8cc4cfa7342729a50666cbafcf89351545ae292d783a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / ramachandraw-1.2.1-py3-none-any.whl
| Download URL | ramachandraw-1.2.1-py3-none-any.whl |
|---|---|
| Size | 83.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fcca7f3789be4703fd73fa45537709d50f52d0450e4335bb7ab981e1fc37ed9d
|
|
BLAKE2b-256 checksum How to use checksums |
57b3d7c616286a2ff4956eb37ca1ea8b883f95a34a796b37e3563bdd7a8fb19a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logSecurity for ramachandraw 1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for ramachandraw-1.2.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.