!pip install nucleus-cdk==0.5.0rc2 | tail -n2
# Surface a failed install here, rather than as a confusing ModuleNotFoundError
# in the import cell below.
import importlib.metadata as md
assert md.version("nucleus-cdk") == "0.5.0rc2", f"got {md.version('nucleus-cdk')}"
print("nucleus-cdk", md.version("nucleus-cdk"))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)
nucleus-cdk 0.5.0rc2
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from cdk.analysis.cytosol import platereader as prdata, platemap = pr.load_platereader_data(
data_file='data/20260330-123133-cytation5-pure-timecourse-gfp-MFG-196,MFG-194,MFG-193-QC-biotek-cdk.txt',
platemap_file='data/platemap.tsv',
platereader="biotek-cdk"
)data['Time_h'] = data['Time'].dt.total_seconds()/3600platemap[platemap.Type == 'Standard'].Name.value_counts(dropna=False)Name
1 uM Fluorescein 3
Name: count, dtype: int64data = pr.normalize_data_to_controls(data, '1 uM Fluorescein')Data Normalized to 1 uM Fluorescein in col data_normalized. The active column for subsequent operations is: data_normalized
sns.relplot(data, x='Time_h', y='data_normalized', hue="tRNA ID")
ax = plt.gca()
ax.set_xlabel('Time (h)')
ax.set_ylabel('Normalized fluorescence')


