Skip to main content

Generate Dose-Response Curves

Project description

py50_full.png

py50: Generate Dose-Response Curves

Python Versions py50 Streamlit DOI Documentation Status

Summary

The aim of py50 is to make the generation of dose-response curves and annotated plots with statistics. The project was created primarily for my personal use and for my coworkers/classmates. I found many of my classmates/coworkers were using a program that I find to be unfriendly in generating dose-response curves or with calculating statistics and plots. During my search, I found other helpful repositories that can generate dose-response curves, calculate statistics, or make annotated plots. However, I found that these packages did not meet my requirements:

  1. Use Pandas for the Data so that it can be easily plugged into a Jupyter Notebook or Python scripts
  2. Adaptable to user needs
  3. Easy to use (hopefully!)

The dose-response curves in py50 are built using the four parameter logistic regression model:

$Y = \text{Min} + \frac{\text{Max} - \text{Min}}{1 + \left(\frac{X}{\text{IC50}}\right)^{\text{Hill coefficient}}}$

where min is the minimum response value, max is the maximum response value, Y is the response values of the curves, and X is the concentration.

The statistics and annotated plots are wrapped from Pingouin and Statannotations. This may have been done inelegantly and will be updated based on my use or recommendations by others. As things stand, this project meets my needs and the needs of my classmates/coworkers. Hopefully it can meet the needs of others.

Installation

pip install py50

pacakge can be upgraded specifically using pip with the following:

pip install py50 -U

Tutorial

Documentation can be found here.

A Jupyter Notebook demoing the code can be found here.

A blog post demoing the code can be found at Practice in Code

Web Application Streamlit App

For those who are not versed in python coding, py50 has been converted into a web application using Streamlit!

The web application can be found here: py50-app

The repository for the Streamlit app version can be found here: py50-streamlit

NOTE: Updates to the web application take more time. Updates will be made when possible or upon request.

Future Work

With the release of py50 v1.0.0, I have finished a project that has been on my mind for the past six months. My aim now will be to reformat the code for maintainability and to fix any bugs that I find or others report. I plan on maintaining py50 for the foreseeable future. As such, my current "To-Do" list (in no particular order) are as follows:

  • Complete To-Do notes in Python script
  • Update Tutorials for clarity
  • Update py50 Streamlit to version 1.0.0
  • Refactor code for maintainability
  • Add error messages!
  • (Bonus Points) Provide KNIME workflow?

Citation

If you are interested in citing the repository, the BibTeX reference is as follows:

@software{lin_2024_14523624,
  author       = {Lin, Tony Eight},
  title        = {py50: Generate Dose-Response Curves},
  month        = dec,
  year         = 2024,
  publisher    = {Zenodo},
  version      = {v1.0.10},
  doi          = {10.5281/zenodo.14523624},
  url          = {https://doi.org/10.5281/zenodo.14523624},
}

All versions can be linked to the Zenodo repository here: DOI

Thanks for your interest!

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

py50-1.0.14.tar.gz (42.0 kB view details)

Uploaded Source

Built Distribution

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

py50-1.0.14-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file py50-1.0.14.tar.gz.

File metadata

  • Download URL: py50-1.0.14.tar.gz
  • Upload date:
  • Size: 42.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.0 CPython/3.9.20 Darwin/25.4.0

File hashes

Hashes for py50-1.0.14.tar.gz
Algorithm Hash digest
SHA256 d2a6425d45a2ac19f865bff0b2610bd056e4e92d61ebfe1c2758b9950b99e1b5
MD5 d26629cd60f2c19e2326dab138e1bd05
BLAKE2b-256 5547565fe887ab5a477f4efc9cc23af0a0fe4e525543e63ec5c257034ea6a96d

See more details on using hashes here.

File details

Details for the file py50-1.0.14-py3-none-any.whl.

File metadata

  • Download URL: py50-1.0.14-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.0 CPython/3.9.20 Darwin/25.4.0

File hashes

Hashes for py50-1.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 a695644d1535dfe9dbcef92da15efc95f8b3254fd26ac59e50b66d8ba3e2e1c1
MD5 f2636edd329a3f690daca0286d9baf2c
BLAKE2b-256 e45e9e512d6decc4ae312057a3a5ac8ed825bd427fffc37ce61bcbfc777038bd

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