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.2.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.2-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pypermm-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 89a3c2dd8b1146d027533e4ced71854cf6eca51d74f209ab5b16dcf826b03e70
MD5 8c0a7928423ffbedf432a9c363eefd87
BLAKE2b-256 b4266b35f0a9a3b049afd68bd99c37f2f311037fd1cbeb25de9a60a66d8bd62d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pypermm-0.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4e318eb41f5b7f6ee3d0274c2391529e2a1a60fa2d6bb9a6f9c92b6918e1a3a7
MD5 a3c4f06ff57c6b717b7cd2948c598b35
BLAKE2b-256 07484ad9ec79fef541a9128896accdfabe3f2009c6e55f9264cb5eb1f0bde58e

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