Analysis: 20250611

!pip install nucleus-cdk==0.5.0rc2 | tail -n2
Requirement already satisfied: asttokens in /opt/homebrew/anaconda3/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets==8.*->jupyter-bokeh<5.0.0,>=4.0.5->nucleus-cdk==0.5.0rc2) (2.0.5)
Requirement already satisfied: pure-eval in /opt/homebrew/anaconda3/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets==8.*->jupyter-bokeh<5.0.0,>=4.0.5->nucleus-cdk==0.5.0rc2) (0.2.2)
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/20250611-cytation3-pure-timecourse-gfp-ppk-mg-sweep-biotek-cdk.txt", "20250611-Mg-sweep-platemap.csv")

Basic Plots

Kinetics

Kinetic time traces of every well on the plate

pr.plot_plate(data)
<seaborn.axisgrid.FacetGrid at 0x112586270>
<Figure size 2137.2x4000 with 32 Axes>
pr.plot_curves(data[data["Read"]=="GFP-F-G35"], units="Well", estimator=None, height=12)
<seaborn.axisgrid.FacetGrid at 0x1122b7ed0>
<Figure size 1298x1200 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.

ss = pr.find_steady_state(data[data["Read"]=="GFP-F-G35"], group_by=["Well", "Read"]).reset_index()
ss.columns = [c[0] if c[1] == "" else "_".join(c).strip() for c in ss.columns]
steadystate = data.merge(ss[["Well", "Data_steadystate"]], 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>
s= pr.plot_steadystate(data[data["Read"]=="GFP-F-G35"])
plt.xlabel("[Mg++]")
s.savefig("plot3")
<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"])
PROVIDING AVERAGED KINETICS
(<seaborn.axisgrid.FacetGrid at 0x315df0f50>, Velocity \ Time Data Max Name Read 10 mM GFP-F-G35 0 days 01:05:49.421554667 38646.02 63189.62 11 mM GFP-F-G35 0 days 01:06:14.707816838 36099.77 58966.93 12 mM GFP-F-G35 0 days 01:06:46.304851814 33191.64 54896.20 6 mM GFP-F-G35 0 days 01:41:38.593562542 35161.24 28962.93 7 mM GFP-F-G35 0 days 01:03:17.921594644 41326.12 63567.49 8 mM GFP-F-G35 0 days 01:02:09.307229164 42589.11 71072.49 9 mM GFP-F-G35 0 days 01:02:48.602873044 40804.03 68778.14 PC GFP-F-G35 0 days 01:05:50.688008639 39780.81 74711.19 Lag Steady State \ Time Data Time Name Read 10 mM GFP-F-G35 0 days 00:29:07.152552473 5429.37 0 days 01:59:51.644900016 11 mM GFP-F-G35 0 days 00:29:30.733274171 4874.65 0 days 02:00:19.442092844 12 mM GFP-F-G35 0 days 00:30:26.837253837 4593.49 0 days 02:00:14.959525763 6 mM GFP-F-G35 0 days 00:24:07.884832563 3511.37 0 days 03:35:45.457594884 7 mM GFP-F-G35 0 days 00:24:16.884452093 6127.55 0 days 02:00:44.442100797 8 mM GFP-F-G35 0 days 00:26:11.351871173 6314.36 0 days 01:55:06.291163623 9 mM GFP-F-G35 0 days 00:27:11.614129113 5998.19 0 days 01:55:14.719350323 PC GFP-F-G35 0 days 00:32:56.217346031 6008.16 0 days 01:54:17.542198799 Fit \ Data params Name Read 10 mM GFP-F-G35 73427.44 [77292.03955701127, 3.2700588161641035, 1.0970... 11 mM GFP-F-G35 68589.56 [72199.53211807457, 3.2668712620712554, 1.1040... 12 mM GFP-F-G35 63064.11 [66383.27117893193, 3.304421384057171, 1.11286... 6 mM GFP-F-G35 66806.36 [70322.48222538742, 1.6054210339620536, 1.6940... 7 mM GFP-F-G35 78519.63 [82652.24337305485, 3.0758145009556475, 1.0549... 8 mM GFP-F-G35 80919.31 [85178.21906952396, 3.337014428858403, 1.03591... 9 mM GFP-F-G35 77527.65 [81608.05291532083, 3.3699286421380026, 1.0468... PC GFP-F-G35 75583.55 [79561.62758127532, 3.696648510386711, 1.09741... R^2 drift Name Read 10 mM GFP-F-G35 1.00 792.27 11 mM GFP-F-G35 1.00 743.26 12 mM GFP-F-G35 1.00 688.95 6 mM GFP-F-G35 1.00 1026.37 7 mM GFP-F-G35 1.00 814.21 8 mM GFP-F-G35 1.00 822.82 9 mM GFP-F-G35 1.00 780.72 PC GFP-F-G35 1.00 726.84 )
<Figure size 1800x1200 with 8 Axes>

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

pr.kinetic_analysis(data)
Loading...