ROI膨胀与环状细胞膜信号测量

本文介绍如何将ROI线条膨胀为环状以满足细胞膜信号测量的需求。

在测量细胞膜信号的时候,我们可以手绘一个细胞轮廓,尽可能经过每个信号点。细胞膜的信号是有一定宽度的,如果能够根据这个闭合轮廓线条进行扩张,以完整包含细胞膜信号,则至少可以节省一半的工作量。

Pasted-image-20240918125435.png-a1d7cea6ee.png

如上图所示,先使用 freehand 工具大致选中细胞膜这一圈信号,然后运行下方的代码,就能得到膨胀后的ROI。

roi_index = 0; // 指定ROI索引
dilate_n = 5; // 膨胀次数
width = getWidth();
height = getHeight();
newImage("Untitled", "8-bit black", width, height, 1);
roiManager("select", roi_index);
setBackgroundColor(0, 0, 0);
setForegroundColor(255, 255, 255);
run("Draw", "slice");
run("Convert to Mask");
for (i = 0; i < dilate_n; i++) {
run("Dilate");
}
lower = 100;
upper = 255;
setThreshold(lower, upper);
run("Create Selection");
roiManager("Add");
close();

在这段代码中,首先要指定需要进行膨胀操作的ROI的索引(从0开始),然后指定需要进行膨胀的次数。运行代码在ROI管理器中新增一个ROI,点击查看可以看到膨胀后的ROI已经比较好地把信号囊括进去了。

Pasted-image-20240918150150.png-b9c9ded1dd.png

接下来按 Ctrl+M 即可统计这个新ROI范围内的信号情况。

Pasted-image-20240918150736.png-137505555d.png

可以看到,膨胀前ROI测量的结果一点都不准确,因为它计算了整个ROI内部大量空白区域的像素值。而膨胀后的ROI其面积为 87.527,其实就是这个环形区域(近似细胞膜区域)。但这个区域的信号可以看到其实也是不连续的,还可以进一步 Threshold,只统计有信号的部分的平均值。

此时,我们可以选中膨胀后ROI,Ctrl+Shift+D 复制出来选区,并且 Clear Outside 来清除ROI选区外的信号,得到这样一张子图:

Pasted-image-20240918151409.png-e932aa3b7c.png

然后 Ctrl+Shift+T 进行阈值设置:

Pasted-image-20240918151621.png-0f98252bf3.png

需格外注意,我这里为了方便展示,使用了自动设置阈值的方式。但实际上应当提前自行确认背景的 threshold。然后所有的数据都统一使用这样的 threshold 来区分信号和背景。如何获得区分信号和背景的像素阈值,可参考下文:

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

现需要分析大量不同条件和时间点的成像数据,其中一个数据基本如下图所示。需要分析每张图中细胞膜上平均信号强度。 由于同一个条件下同一时间点有大量数据,因此不需要做到单细胞,数据量也足够,所以不需要细胞分割,信号强度的单位是 per image。 根据中心极限定理,很容易预估这个信号平均值服从正态分布。...

然后 Edit > Selection > Create Selection基于 threhold 得到的mask创建 selection,并添加到 ROI 管理器,再进行 Measure。

Pasted-image-20240918152011.png-990a3d4339.png

可以看到,按照阈值划分,有效信号实际所占面积为 11.064,其平均信号强度为 164.932。