第2章 细胞结构与特征归纳总结——给数据一个生物学的“锚点”

做细胞分类,最怕什么?

怕你手里的数字特征根本没有生物学含义。我以前接手过一个项目,大家对着几千个高维特征跑PCA,结果发现第一个主成分竟然跟细胞的拍摄亮度高度相关——根本和生物学无关。说白了,不了解细胞长什么样、每个结构能提取什么特征,你训练出来的模型就是个黑箱,换个染色方式立马崩。

所以这一章,我带你从分类工程师的视角,重新梳理细胞结构。不是为了让你背生物课本,而是为了让你知道:哪些特征可量化、哪些结构容易引入噪声、哪些是分类的稳定线索。

2.1 细胞的基本结构——从分类视角看

一个典型的真核细胞,你可以把它想象成一个工厂:

  • 细胞膜:工厂围墙。负责物质交换,也决定了细胞的外形。分类时我们关注它的周长、凹凸度、是否规则。
  • 细胞质:工厂车间。里面有各种细胞器(线粒体、内质网、高尔基体等)。这些细胞器的数量、分布密度、荧光强度就是很好的特征。
  • 细胞核:工厂中控室。里面是遗传物质。核的大小、形状、核质比(核面积/细胞面积)在癌症分类中极其关键。

你在显微镜图像里看到的每一个像素,其实都是这些结构叠加后的投影。我个人的习惯是:先做核分割,再做细胞分割,最后用掩膜把细胞器和核的特征分别提取出来。千万不要一上来就整张图丢进CNN,那样你根本不知道模型到底学到了什么。

2.2 核心细胞器及其特征

下表是我自己整理的一个速查表。每次开始新项目,我都会对着表检查一下:哪些特征可以复用之前的代码?哪些需要针对新染料重新调参数?

细胞器主要功能可量化特征分类场景举例
细胞膜物质交换、信号识别周长、面积、圆形度、凹陷度区分上皮与间充质细胞
细胞核遗传物质存储与转录面积、直径、核质比、染色质纹理癌细胞识别(核异形性)
线粒体能量生产数量、面积占比、荧光强度、分布模式代谢活跃度分类
内质网蛋白质合成与转运区域面积、管状/片状结构比例分泌细胞 vs 非分泌细胞
高尔基体蛋白质修饰与分选紧凑度、与核的距离极化细胞极性判断

请注意,上面表格里的“可量化特征”大部分是手工特征。我建议你在特征工程阶段,先跑一遍常规的形态学和强度统计特征,再扔给模型。这样万一深度学习结果不理想,你还有可解释的中间产出去排查问题。

2.3 常见的可量化特征维度

实际操作中,我们把特征归为三大类。记得用短代码片段快速验证一下,别等整个pipline跑完才发现指标不对。

# 形态特征 —— 基于二值掩膜
import skimage.measure as measure

props = measure.regionprops(label_mask, intensity_image=original)
for p in props:
    area = p.area                    # 面积(像素)
    perimeter = p.perimeter          # 周长(像素)
    eccentricity = p.eccentricity    # 离心率(越接近1越细长)
    solidity = p.solidity            # 凸度(越接近1越规则)

# 强度特征 —— 基于原始灰度/荧光
    mean_int = p.mean_intensity
    std_int = p.std_intensity

# 纹理特征 —— 基于灰度共生矩阵
from skimage.feature import graycomatrix, graycoprops
glcm = graycomatrix(p.intensity_image, distances=[5], angles=[0], symmetric=True)
contrast = graycoprops(glcm, 'contrast')
homogeneity = graycoprops(glcm, 'homogeneity')
个人小技巧: 我不建议一次性把所有特征都算出来。先抓3-5个最直观的(面积、核质比、荧光均值),跑一个baseline,看看分类结果是否和已知生物学标签一致。有一次我发现荧光强度均值分类效果奇好,后来一问生物学家才知道那个荧光标记恰好是某个表面标志物——这就是生物学给你“锚点”。

2.4 特征提取中的避坑点

说说我踩过的坑,希望你能避开。

我曾经有一个项目,训练集和测试集来自不同的荧光显微镜。 训练时模型完美收敛,测试时准确率直接腰斩。后来发现是因为不同显微镜的增益和曝光时间不同,导致强度特征分布偏移。从那以后,我强制团队在每一批数据中混入相同的参考微球来校准强度值。千万别以为归一化就能解决——荧光强度受光漂白、染料浓度、拍摄时间影响很大,归一化只能消除线性差异,但非线性的镜头畸变和荧光串色不行。

另一个常见问题:细胞分割的质量直接影响特征可靠性。我建议你至少准备两种分割算法(比如watershed和U-Net),并在验证集上对比特征的一致性。如果某个特征在两个分割版本下波动超过20%,就放弃它,或者改为使用鲁棒性更强的分位数特征。

核心思维: 细胞特征本质上是一种“形态-功能映射”。同一个细胞在不同生理状态下,其核质比、线粒体分布、膜褶皱程度都会变化。机器学习模型要学习的不是某个绝对数值,而是这些数值之间的关联模式。所以特征工程时,多构造比值特征(比如核面积与细胞面积之比、线粒体强度与细胞质强度之比),它们对拍摄条件变化更不敏感。

最后,用一个知识体系图帮你把本章内容串起来。记住这个图的结构,就是你设计特征提取pipeline的顺序。

细胞特征知识体系图 细胞特征知识体系 形态特征 强度特征 纹理特征 面积 / 周长 离心率 / 凸度 均值 / 方差 分位数 / 积分 对比度 / 相关性 能量 / 同质性 特征与细胞结构的关系 形态特征 ➔ 细胞膜 + 细胞核整体形状 强度特征 ➔ 细胞质内荧光标记物的富集程度(线粒体/高尔基体) 纹理特征 ➔ 细胞核内染色质聚集模式、细胞质颗粒分布