Skip to main content

A Python package for fitting and plotting of binding curves.

Project description

Welcome to BindCurve

License: MIT Pylint

This repository contains bindcurve - a lightweight Python package for fitting and plotting of binding curves (dose-response curves). It contains the logistic model for fitting $\text{IC}_{50}$ or $\text{logIC}_{50}$ and also exact polynomial models for fitting $K_d$ from both direct and competitive binding experiments. Fixing lower and upper asymptotes of the models during fitting is supported, as well as fixing the slope in the logistic model. Additionally, $\text{IC}_{50}$ values can be converted to $K_d$ using conversion models.

bindcurve is intended as a simple tool for Python-based workflows in Jupyter notebooks or similar tools. Even if you have never used Python before, you can fit your binding curve in less than 5 lines of code. The results can be conveniently plotted with another few lines of code or simply reported in formatted output.

Documentation

The bindcurve documentation can be found at https://choutkaj.github.io/bindcurve/.

Installation

bindcurve is installed from pip using

pip install bindcurve

If you want to upgrade to the latest version, use

pip install --upgrade bindcurve

Basic usage

bindcurve contains functions that are executed directly on Pandas DataFrames, which are used to store the data. The following example demonstrates the most basic usage. See the tutorials for more instructions and examples.

Fitting

# Import bindcurve
import bindcurve as bc

# Load data from csv file
input_data = bc.load_csv("path/to/your/file.csv")

# This DataFrame will now contain preprocessed input data
print(input_data)

# Fit IC50 from your data
IC50_results = bc.fit_50(input_data, model="IC50")
print(IC50_results)

# Fit Kd from your data
Kd_results = bc.fit_Kd_competition(input_data, model="comp_3st_specific", RT=0.05, LsT=0.005, Kds=0.0245)
print(Kd_results)

Plotting

# Import matplotlib
import matplotlib.pyplot as plt

# Initiate the plot
plt.figure(figsize=(6, 5))

# Plot your curves from the IC50_results dataframe
bc.plot(input_data, IC50_results)

# Just use matplotlib to set up and show the plot 
plt.xlabel("your x label")
plt.ylabel("your y label")
plt.xscale("log")
plt.legend()
plt.show()

How to cite

No dedicated DOI is available yet. Please cite this repository.

License

bindcurve is published under the MIT license.

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

bindcurve-0.1.2.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

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

bindcurve-0.1.2-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file bindcurve-0.1.2.tar.gz.

File metadata

  • Download URL: bindcurve-0.1.2.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bindcurve-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3340d2f239ff49571a7f683809450505ad422b17254f375855ff685580f001f6
MD5 191a1986d0c4855d582b73dce294faac
BLAKE2b-256 9d738979ad6eb325bb642d2712ec25b1224ebfc62f6439406780d0d6db77d91b

See more details on using hashes here.

Provenance

The following attestation bundles were made for bindcurve-0.1.2.tar.gz:

Publisher: python-publish.yml on choutkaj/bindcurve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bindcurve-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: bindcurve-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bindcurve-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 03fa638bea865ae1f1eb73d21ae2ac95bd182982b76d4c43f03dd2459c15bce0
MD5 9037a20f5d1a1db147ce1f7504514c7a
BLAKE2b-256 ed655725efe5087675860ac75fc704b025ca4f47c9bd416dba84c231f461fa7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for bindcurve-0.1.2-py3-none-any.whl:

Publisher: python-publish.yml on choutkaj/bindcurve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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