py50

Generate Dose-Response Curves in Python

https://github.com/tlint101/py50

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary

Keywords

bioinformatics cheminformatics data-visualization dose-response python
Last synced: 6 months ago · JSON representation ·

Repository

Generate Dose-Response Curves in Python

Basic Info
Statistics
  • Stars: 9
  • Watchers: 3
  • Forks: 4
  • Open Issues: 0
  • Releases: 18
Topics
bioinformatics cheminformatics data-visualization dose-response python
Created over 2 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

py50_full.png

py50: Generate Dose-Response Curves

py50 Streamlit PyPI - Python Version Documentation Status Code style: black DOI

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
  • [X] Update Tutorials for clarity
  • [X] Update py50 Streamlit to version 1.0.0
  • [ ] Refactor code for maintainability
  • [ ] Add error messages!
  • Provide KNIME workflow?

Citation

If you are interested in citing the repository, the BibTeX reference is as follows: aiignore @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!

Owner

  • Name: T Lint
  • Login: tlint101
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: 'py50: Generate Dose-Response Curves'
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Tony Eight
    family-names: Lin
    email: tonyelin@tmu.edu.tw
repository-code: 'https://github.com/tlint101/py50.git'
url: 'https://py50.readthedocs.io/en/latest/'
license: GPL-3.0
version: 1.0.10
date-released: '2024-12-19'

GitHub Events

Total
  • Release event: 3
  • Watch event: 2
  • Push event: 11
  • Create event: 2
Last Year
  • Release event: 3
  • Watch event: 2
  • Push event: 11
  • Create event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 179
  • Total Committers: 1
  • Avg Commits per committer: 179.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 179
  • Committers: 1
  • Avg Commits per committer: 179.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
tlint t****n@g****m 179

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: about 2 hours
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 3.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: about 2 hours
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 3.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • nabilr (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 112 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 39
  • Total maintainers: 1
pypi.org: py50

Generate Dose-Response Curves

  • Versions: 39
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 112 Last month
Rankings
Dependent packages count: 10.0%
Average: 38.8%
Dependent repos count: 67.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

poetry.lock pypi
  • numpy 1.26.2
  • pandas 2.1.3
  • python-dateutil 2.8.2
  • pytz 2023.3.post1
  • scipy 1.11.3
  • six 1.16.0
  • tzdata 2023.3
pyproject.toml pypi
  • matplotlib >=3.8.1
  • numpy >=1.26.2
  • pandas >=2.1.3
  • python ^3.9,<3.13
  • scipy >=1.11.3