Cli for fitting macromolecule pH titration or binding assays data e.g. fluorescence spectra.
Project description
ClopHfit
Cli for fitting macromolecule pH titration or binding assay data, e.g. fluorescence spectra.
Version: “0.3.1”
Features
Plate Reader data Parser.
Perform non-linear least square fitting.
Extract and fit pH and chloride titrations of GFP libraries.
For 2 labelblocks (e.g. 400, 485 nm) fit data separately and globally.
Estimate uncertainty using bootstrap.
Subtract buffer for each titration point.
Report controls e.g. S202N, E2 and V224Q.
Correct for dilution of titration additions.
Plot data when fitting fails and save txt file anyway.
Usage
Extract and fit titrations from a list of tecan files collected at various pH or chloride concentrations:
clop prtecan --help
For example:
clop prtecan list.pH -k ph --scheme ../scheme.txt --dil additions.pH --norm \ --out prova2 --Klim 6.8,8.4 --sel 7.6,20
To reproduce older pr.tecan add –no-weight option:
clop prtecan list.pH -k ph --scheme ../scheme.txt --no-bg --no-weight \ --out 4old --Klim 6.8,8.4 --sel 7.6,20
Predict chloride dissociation constant K_d at given pH:
clop eq1 --help
To use clophfit in a project:
from clophfit import prtecan, binding
Installation
You can get the library directly from :
pip install clophfit
Development
Prepare a virtual development environment and test first installation:
pyenv install 3.10.2 poetry env use 3.10 poetry install poetry run pytest -v
Make sure:
pre-commit install pre-commit install --hook-type commit-msg
For Jupyter:
poetry run python -m ipykernel install --user --name="cloph-310"
To generate docs:
poetry run nox -rs docs
When needed (e.g. API updates):
sphinx-apidoc -f -o docs/api/ src/clophfit/
Use commitizen and github-cli to release:
poetry run cz bump --changelog-to-stdout --files-only (--prerelease alpha) --increment MINOR gh release create (--target devel) v0.3.0a0
Development environment
Test automation requires nox and nox-poetry.
Formatting with black[jupyter] configured in pyproject.
Linters are configured in .flake8 .darglint and .isort.cfg and include:
- flake8-isort - flake8-bugbear - flake8-docstrings - darglint - flake8-eradicate - flake8-comprehensions - flake8-pytest-style - flake8-annotations (see mypy) - flake8-rst-docstrings
rst-lint
pre-commit configured in .pre-commit-config.yaml activated with:
- pre-commit install - commitizen install --hook-type commit-msg
Tests coverage (pytest-cov) configured in .coveragerc.
Type annotation configured in mypy.ini.
Commitizen also used to bump version:
cz bump --changelog-to-stdout --files-only --prerelease alpha --increment MINOR
need one-time initialization:
(cz init)
xdoctest
sphinx with pydata-sphinx-theme and sphinx-autodoc-typehints. (nbsphinx, sphinxcontrib-plantuml):
mkdir docs; cd docs sphinx-quickstart
Edit conf.py [“sphinx.ext.autodoc”] and index.rst [e.g. api/modules]:
sphinx-apidoc -f -o docs/api/ src/clophfit/
CI/CD configured in .github/workflows:
tests.yml release.yml
Remember to update tools version e.g. nox_poetry==0.9.
What is missing to modernize:
coveralls/Codecov
release drafter; maybe useful when merging pr into main.
readthedocs or ghpages? https://www.docslikecode.com/articles/github-pages-python-sphinx/
Code of Conduct
Everyone interacting in the readme_renderer project’s codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PSF Code of Conduct.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.