Analysis: 20260612

!pip install nucleus-cdk | tail -n2
from cdk.analysis.cytosol import platereader as pr
import matplotlib.pyplot as plt
import seaborn as sns
import warnings

# Filter warnings
warnings.filterwarnings('ignore')

# Initialize plotting
pr.plot_setup()

Load the data

Provide a CSV file containing the data, and a platemap. This function returns both the data with the plate map mapped to it, and the platemap by itself, which is useful for certain tasks.

data, platemap = pr.load_platereader_data("./data/20250612-cytation3-pure-timecourse-gfp-ppk-biotek-cdk.txt", "20250612-PPK.csv")

Basic Plots

Kinetics

Kinetic time traces of every well on the plate

pr.plot_plate(data);
<Figure size 1636.25x2500 with 15 Axes>
g = pr.plot_curves(data[data["Read"]=="GFP-F-G35"], units="Well", estimator=None, height=12)
g.savefig("plot4")
<Figure size 1426.12x1200 with 1 Axes>

Steady state

Bar graph of steady-state endpoint of each sample. Steady state is calculated as the maximum fluorescence value over a 3-sample rolling average on the data.

steadystate = data.merge(pr.find_steady_state(data[data["Read"]=="GFP-F-G35"]).reset_index(), on="Well", how="left")
steadystate.loc[steadystate["Column"]==13, "Column"] = 14
sns.barplot(data=steadystate, x="Name", y="Data_steadystate", hue="Column")
<Axes: xlabel='Name', ylabel='Data_steadystate'>
<Figure size 640x480 with 1 Axes>
ss= pr.plot_steadystate(data[data["Read"]=="GFP-F-G35"])
plt.xlabel('Condition')
ss.savefig("plot5")
<Figure size 611.111x400 with 1 Axes>

Kinetics Analysis

These functions calculate key kinetic parameters of the time series.

pr.plot_kinetics(data[data["Read"] == "GFP-F-G35"])
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
Failed to solve: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
<Figure size 1800x800 with 5 Axes>

We can also calculate the kinetics and display the parameters as a table.

pr.kinetic_analysis(data)