细胞膜荧光强度半自动统计

现需要分析大量不同条件和时间点的成像数据,其中一个数据基本如下图所示。需要分析每张图中细胞膜上平均信号强度。

Pasted-image-20240820160001.png-8d07e37c46.png

由于同一个条件下同一时间点有大量数据,因此不需要做到单细胞,数据量也足够,所以不需要细胞分割,信号强度的单位是 per image。

根据中心极限定理,很容易预估这个信号平均值服从正态分布。每组数据都是独立样本,后续估计要做 t 检验两两组别间的平均数差异,因此每组13~30张图像(为达到80%以上统计功效,单尾t检验要求最少每组13个样本,双尾t检验最少每组17个样本)比较合适。如果单组图像数量不够,则可以使用 per cell 作为单位,那么有20个左右细胞就差不多了。

关于t检验单双尾,要求数据服从正态分布,单尾检验用于比大小,双尾检验用于判断是否相等

Pasted-image-20240820155626.png-c23a70cf24.png

点击 Plugins>Bio-Formats>Bio-Formats Plugins Configuration 设置以 windowless 方式打开 zeiss 的 czi 文件,避免批处理的时候总是弹窗让你确认打开时的 hyperstack 选项。

Pasted-image-20240820164146.png-27802d09e1.png

图像形状简单,图像除了膜上一圈有信号,其它背景很低。auto threshold 效果良好,可以先简单快速地尝试利用 auto threshold 进行批量分析。然后再尝试使用固定 threshold (细胞膜更完整) 进行分析,可以对两种方式的结果进行比较。

然后使用以下 ImageJ Macro 脚本进行统计分析,运行后选择其中一个目录,输出结果到同目录下的 results.csv 文件。

wks = getDirectory("Choose Directory");
filelist = getFileList(wks);
print("method,area,mean,min,max,std,lower_threshold,upper_threshold,img_filepath");
for (i = 0; i < lengthOf(filelist); i++) {
if (endsWith(filelist[i], ".czi")) {
open(wks + File.separator + filelist[i]);
img = getTitle();
processImg(img);
}
}
function processImg(img){
run("Duplicate...", "title=cy3 channels=1");
autoT();
fixT(3000, 65535);
selectWindow(img);
close();
selectWindow("cy3");
close();
}
function autoT(){
setAutoThreshold();
getThreshold(lower, upper);
run("Create Selection");
getStatistics(area, mean, min, max, std, histogram);
print("autoT,"+area+","+mean+","+min+","+max+","+std+","+lower+","+upper+","+img);
}
function fixT(lower, upper){
setThreshold(lower, upper);
run("Create Selection");
getStatistics(area, mean, min, max, std, histogram);
print("fixT,"+area+","+mean+","+min+","+max+","+std+","+lower+","+upper+","+img);
}
selectWindow("Log");
filepath = wks+File.separator+"results.csv";
saveAs("text", filepath);
run("Close");

[!tip] 代码要点

  1. 打开目录
  1. 遍历目录下czi文件
  1. 批量分析图像
  1. 打印结果到 Log窗口,符合 csv 逗号分隔符格式
  1. 将 Log窗口中的内容保存为 csv 文件,但是 format 只能写 text,而不是 results

Macro的使用方法详见:

AI辅助ImageJ编程实践

本文以制作colorbar为例展示AI辅助的ImageJ编程实践 当我们使用一些除了红绿蓝黄之外不太常见的伪彩来展示图片时,通常需要附加一个 colorbar。这个 colorbar 也叫做颜色查找表 look up table, LUT ,在 ImageJ 可以很方便地点击 Image Color...

打开结果表格,可以看到需要统计的信息都已保存,可以按照 method 列进行分组:

Pasted-image-20240820163550.png-96caf38349.png

基于所有 folder下生成的表格文件,后续可以使用 python 或者其它工具,批量整理汇总并进行统计检验。