Skip to main content

Protein ligand binding simulation in Python

Project description


Shave, Steven, et al. "PyBindingCurve, simulation, and curve fitting to complex binding systems at equilibrium." Journal of Chemical Information and Modeling (2021).

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 (KD) 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!

PyBindingCurve simulation


PyBindingCurve may be installed from source present in the GitHub repository via git pull, or from the Python Package Index ( using the command :

pip install pybindingcurve


PyBindingCurve requires Python 3.7 or later due to custom binding systems making use of ordered dictionary keys. The following packages are also required

  • Matplotlib (2.x)
  • Numpy (1.22.x)
  • lm_fit (1.0.0)
  • mpmath (1.1.0)


MIT License


A tutorial and API documentation can be found here

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}

Tests written using the pytest framework may be run with 'pytest' (ensure pytest is installed in your python environment, or pip install it)


PyBindingCurve was written by Steven Shave email

Please get in contact for custom solutions, integration to existing workflows and training.

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

pybindingcurve-1.1.3.tar.gz (32.7 kB view hashes)

Uploaded Source

Built Distribution

pybindingcurve-1.1.3-py3-none-any.whl (35.9 kB view hashes)

Uploaded Python 3

Supported by

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