pykinbiont#
Python interface for KinBiont.jl
pykinbiont lets you run the full KinBiont microbial kinetics analysis pipeline from Python — loading plate-reader data, fitting growth models, clustering curves, and exporting results — while keeping all numerical computation inside Julia via juliacall.
Julia required
pykinbiont calls Julia under the hood. You need Julia ≥ 1.10 installed separately. On first run Julia downloads and installs KinBiont and its dependencies automatically (~5 min).
Highlights#
One-call fitting — pass a
GrowthData, aModelSpec, andFitOptions; get back aGrowthFitResultswith the best model per curve selected by AICc.All KinBiont models — log-linear, logistic, Gompertz, Richards, ODEs, and more, accessible via
MODEL_REGISTRY.Custom models in Python — wrap any
f(p, t)function as anNLModelor write an in-place ODE as anODEModel; the Julia bridge handles the callback.Pure-Python preprocessing — smoothing, blank subtraction, negative-value correction, stationary-phase trimming, and k-means clustering via
preprocess().Tidy output —
to_dataframe()andsave_results()give you pandas/CSV-ready results.
Quick example#
import pykinbiont
from pykinbiont import GrowthData, FitOptions, ModelSpec, MODEL_REGISTRY, fit, save_results
# Point at a local KinBiont.jl clone (run once; persists to disk)
pykinbiont.configure("/path/to/KinBiont.jl") # omit to use registry version
# Load a plate-reader CSV
data = GrowthData.from_csv("experiment.csv") # time column first, then wells
# Choose a model from the registry
logistic = MODEL_REGISTRY["NL_logistic"]
spec = ModelSpec(
models=[logistic],
params=[[1.2, 0.01, 0.5]], # [N_max, N0, mu]
lower=[[0.3, 1e-3, 0.05]],
upper=[[3.0, 0.05, 3.0]],
)
# Fit with smoothing
opts = FitOptions(smooth=True, smooth_method="rolling_avg", multistart=True, n_restart=20)
results = fit(data, spec, opts)
# Inspect
print(results.to_dataframe()[["label", "best_model", "aic"]])
# Save to CSV files
save_results(results, "output/", prefix="my_experiment")
Getting started
User guide
Examples
API reference