# PyBindingCurve
*Shave, Steven, et al. "PyBindingCurve, simulation, and curve fitting to complex binding systems at equilibrium." Journal of Chemical Information and Modeling (2021).* https://doi.org/10.1021/acs.jcim.1c00216
PyBindingCurve is a Python package for simulation, plotting and fitting of experimental parameters to protein-ligand binding systems at equilibrium. In simple terms, the most basic functionality allows simulation of a two species binding to each other as a function of their concentrations and the dissociation constant (K<sub>D</sub>) between the two species. A number of systems are built in and can be solved using direct analytical, kinetic, or Langrange multiplier based techniques. User-defined custom systems can also be specified using a simple syntax.
Try without installing on Google colab! https://colab.research.google.com/drive/1upxm56mGYWo8jvTTJjZLOEq6DT0lRy8d
![PyBindingCurve simulation](https://raw.githubusercontent.com/stevenshave/pybindingcurve/master/pybindingcurve_logo.png "Breaking a dimer")
# Installation
PyBindingCurve may be installed from source present in the GitHub repository https://github.com/stevenshave/pybindingcurve via git pull, or from the Python Package Index (https://pypi.org/project/pybindingcurve/) using the command :
> pip install pybindingcurve
# Requirements
PyBindingCurve requires Python 3.9 or later. The following packages are also required
- numpy>=1.26
- matplotlib>=3.8
- lmfit>=1.2.2
- mpmath>=1.3.0
- autograd>=1.6.2
# License
[MIT License](https://github.com/stevenshave/pybindingcurve/blob/master/LICENSE)
# Usage
A tutorial and API documentation can be found [here](https://stevenshave.github.io/pybindingcurve/)
A quickstart example for simulation of protein-ligand binding is as follows:
```
import numpy as np
import pybindingcurve as pbc
my_system = pbc.BindingCurve("1:1")
system_parameters = {"p": np.linspace(0, 20), "l": 10, "kdpl": 1}
my_system.add_curve(system_parameters)
my_system.show_plot()
```
Tests written using the pytest framework may be run with 'pytest' (ensure pytest is installed in your python environment, or pip install it)
# Authors
PyBindingCurve was written by Steven Shave
![email](https://raw.githubusercontent.com/stevenshave/pybindingcurve/master/email-address-image.gif)
Please get in contact for custom solutions, integration to existing workflows and training.
Raw data
{
"_id": null,
"home_page": null,
"name": "pybindingcurve",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "molecular similarity, ligand based virtual screening",
"author": "Steven Shave",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/9a/e2/d14385223948350d68066da6d62931debbd64e0693859f4637c958045a91/pybindingcurve-1.2.3.tar.gz",
"platform": null,
"description": "# PyBindingCurve\r\n\r\n*Shave, Steven, et al. \"PyBindingCurve, simulation, and curve fitting to complex binding systems at equilibrium.\" Journal of Chemical Information and Modeling (2021).* https://doi.org/10.1021/acs.jcim.1c00216\r\n\r\nPyBindingCurve is a Python package for simulation, plotting and fitting of experimental parameters to protein-ligand binding systems at equilibrium. In simple terms, the most basic functionality allows simulation of a two species binding to each other as a function of their concentrations and the dissociation constant (K<sub>D</sub>) between the two species. A number of systems are built in and can be solved using direct analytical, kinetic, or Langrange multiplier based techniques. User-defined custom systems can also be specified using a simple syntax.\r\n\r\nTry without installing on Google colab! https://colab.research.google.com/drive/1upxm56mGYWo8jvTTJjZLOEq6DT0lRy8d\r\n\r\n\r\n![PyBindingCurve simulation](https://raw.githubusercontent.com/stevenshave/pybindingcurve/master/pybindingcurve_logo.png \"Breaking a dimer\")\r\n\r\n# Installation\r\nPyBindingCurve may be installed from source present in the GitHub repository https://github.com/stevenshave/pybindingcurve via git pull, or from the Python Package Index (https://pypi.org/project/pybindingcurve/) using the command :\r\n> pip install pybindingcurve\r\n\r\n# Requirements\r\nPyBindingCurve requires Python 3.9 or later. The following packages are also required\r\n- numpy>=1.26\r\n- matplotlib>=3.8\r\n- lmfit>=1.2.2\r\n- mpmath>=1.3.0\r\n- autograd>=1.6.2\r\n\r\n# License\r\n[MIT License](https://github.com/stevenshave/pybindingcurve/blob/master/LICENSE)\r\n\r\n\r\n\r\n# Usage\r\nA tutorial and API documentation can be found [here](https://stevenshave.github.io/pybindingcurve/)\r\n\r\nA quickstart example for simulation of protein-ligand binding is as follows:\r\n\r\n```\r\nimport numpy as np\r\nimport pybindingcurve as pbc\r\nmy_system = pbc.BindingCurve(\"1:1\")\r\nsystem_parameters = {\"p\": np.linspace(0, 20), \"l\": 10, \"kdpl\": 1}\r\nmy_system.add_curve(system_parameters)\r\nmy_system.show_plot()\r\n```\r\nTests written using the pytest framework may be run with 'pytest' (ensure pytest is installed in your python environment, or pip install it)\r\n\r\n# Authors\r\nPyBindingCurve was written by Steven Shave \r\n![email](https://raw.githubusercontent.com/stevenshave/pybindingcurve/master/email-address-image.gif)\r\n\r\n\r\nPlease get in contact for custom solutions, integration to existing workflows and training.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Protein ligand binding simulation in Python",
"version": "1.2.3",
"project_urls": {
"Homepage": "https://github.com/stevenshave/pybindingcurve"
},
"split_keywords": [
"molecular similarity",
" ligand based virtual screening"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1deec42f4f69d3740f4e0835e73a90bd4c504a011e72ea8761dc5f1dece3c193",
"md5": "31f571c95ed8790dae1ca36355578d4c",
"sha256": "b355daaaa3ad0b8fd467b68eb03b081f034d8ca58dfa3c07106e36a396f7c573"
},
"downloads": -1,
"filename": "pybindingcurve-1.2.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "31f571c95ed8790dae1ca36355578d4c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 35357,
"upload_time": "2024-06-19T11:57:26",
"upload_time_iso_8601": "2024-06-19T11:57:26.402147Z",
"url": "https://files.pythonhosted.org/packages/1d/ee/c42f4f69d3740f4e0835e73a90bd4c504a011e72ea8761dc5f1dece3c193/pybindingcurve-1.2.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9ae2d14385223948350d68066da6d62931debbd64e0693859f4637c958045a91",
"md5": "4029b41907d0805d8fe51f44412dc178",
"sha256": "21d929cd72f403300ff4bb8da00694c2d59c2401b3f74178c0137a01f6ac0e31"
},
"downloads": -1,
"filename": "pybindingcurve-1.2.3.tar.gz",
"has_sig": false,
"md5_digest": "4029b41907d0805d8fe51f44412dc178",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 33705,
"upload_time": "2024-06-19T11:57:39",
"upload_time_iso_8601": "2024-06-19T11:57:39.521109Z",
"url": "https://files.pythonhosted.org/packages/9a/e2/d14385223948350d68066da6d62931debbd64e0693859f4637c958045a91/pybindingcurve-1.2.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-19 11:57:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "stevenshave",
"github_project": "pybindingcurve",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pybindingcurve"
}