Skip to main content

pypermm

Project description

PyPermm

permeability modeling made easy

License Powered by: uv Code style: ruff Typing: ty GitHub Workflow Status

About

PyPermm is a Python-based reimplementation of the PerMM library written by Andrei Lomize and Alexey Kovalenko. The original code can be found here. This code has been relicensed with the permission of the original authors.

If you use pypermm, please cite the original PerMM publication.

Installation

Simply run uv pip install pypermm, pixi add --pypi pypermm, or pip install pypermm.

Usage

PyPermm primarily exposes a single function, run_permm, which takes a list of atomic symbols and a list of atomic coordinates (in Å).

run_permm returns a dictionary with a lot of useful computed properties, including:

  • asatot, the total accessible surface area of the heavy atoms (in Å**2).
  • E_bind, the minimum insertion energy (in kcal/mol), representing optimal binding to the membrane interface.
  • logP_BLM, the predicted intrinsic permeability for black lipid membrances
  • logP_plasma, the predicted intrinsic permeability for plasma membranes
  • logP_BBB, the predicted intrinsic permeability for the blood–brain barrier
  • logP_Caco2, the predicted intrinsic permeability for Caco-2 membranes
  • logP_PAMPA, the predicted intrinsic permeability for PAMPA membranes
  • z, an array of z-positions (in Å) through the membrane where energies were calculated
  • energies, the insertion energy (in kcal/mol) at each z-position after optimizing orientation

Here's what running PyPermm looks like:

from pytest import approx
from pypermm.pypermm import run_permm

symbols = ["N", "C", "C", "C", ...]

xyz = [
    [5.04, 1.944, -8.324],
    [6.469, 2.092, -7.915],
    [7.431, 0.865, -8.072],
    [6.916, -0.391, -8.544],
    ...
]
       
result = run_permm(symbols, xyz)

assert result["asatot"] == approx(366.19, abs=0.01)
assert result["logP_BLM"] == approx(-6.85, abs=0.01)
assert result["logP_plasma"] == approx(-7.43, abs=0.01)
assert result["logP_BBB"] == approx(-5.31, abs=0.01)
assert result["logP_Caco2"] == approx(-5.23, abs=0.01)
assert result["logP_PAMPA"] == approx(-7.55, abs=0.01)
assert result["E_bind"] == approx(-0.297, abs=0.01)

Credits

This package was created with Cookiecutter and the jevandezande/uv-cookiecutter project template.

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

pypermm-0.0.4.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypermm-0.0.4-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file pypermm-0.0.4.tar.gz.

File metadata

  • Download URL: pypermm-0.0.4.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pypermm-0.0.4.tar.gz
Algorithm Hash digest
SHA256 92b63eb660debe41fda46c0170df8886fe32da6e7d0a62c318b3fc34ade7cb43
MD5 7b5fbff173cc7b6f0eb808571dd835c0
BLAKE2b-256 b608211ffcf828050b85b39c6c6ebb38b49951e0af5ad919abbea62eaaed59e1

See more details on using hashes here.

File details

Details for the file pypermm-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: pypermm-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pypermm-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0ab724dc9e9a5fe051db973aa79e10e5209403c23b1a7c1eabdeccae6a9159c9
MD5 42513af086293a97c75371112af74a9e
BLAKE2b-256 8ee7ab0befd79cb7cb3bd4b223aa1f74a7b2d8b2ac6f01c315f1f47843dc0d97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page