Skip to main content

pypermm

Project description

PyPermm

permeability modeling made easy

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

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.

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.1.tar.gz (23.7 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.1-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pypermm-0.0.1.tar.gz
  • Upload date:
  • Size: 23.7 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.1.tar.gz
Algorithm Hash digest
SHA256 27b2b20fa6561906d6c6dd22e0fd22e756b3d43024cad07014f7cdc2797f943c
MD5 90d983b81b1b4ebf82157a6f06c22335
BLAKE2b-256 85f46cf1befe8ba5325da70c5a3080a2b8524487aacbb5104753b1de999734b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypermm-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 25.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 adb665cbe00a4c9ce7a700fedacdadca452449f08d39820a35dc4392f4544d95
MD5 a856baf3d5ad6c73ab7a87b583a164b7
BLAKE2b-256 5c7ca173c4a3e725f734c2a3800d5ff45399f3ff6fa60b52bf1220ad1f500eae

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