Skip to main content

A Python package for fitting and plotting of binding curves.

Project description

Welcome to BindCurve

License: MIT Pylint Lint with Ruff

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.

[!WARNING] bindcurve is currently in Alpha version. Changes to API might happen momentarily without notice. If you encounter bugs, please report them as Issues.

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: bindcurve-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 79ddf21f1b8fec41eea223e67f89bae848b8bff467142fb2f83f6e4eae83379c
MD5 d9398dc233a530c24949dfd6e86b1896
BLAKE2b-256 3ed4540f5ecb51f9fb4ca09452a2e25f9ead008b143657e602feb38ca7b4b06a

See more details on using hashes here.

Provenance

The following attestation bundles were made for bindcurve-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: bindcurve-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 16.1 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c301ee197131d8160317f3b034a4a33f9fa47b56690bc1103eff4e7f73c47dc5
MD5 48a5a64071deed4408dd8f676898b655
BLAKE2b-256 3754ebff1651896ea10ae2619bc4ecee045e70238a1e41265d8a46010727d9c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for bindcurve-0.1.1-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