生命科学的深度学习

显微成像中的深度学习

用深度学习检测好、坏和丑的细胞

图片来源

这是本系列的第五篇文章生命科学的深度学习.在之前的文章中,我展示了如何使用古代DNA的深度学习,单细胞生物学的深度学习,数据集成的深度学习而且用于临床诊断的深度学习.今天我们将讨论深度学习在生命科学中的一个主要应用计算机视觉用于显微图像分析。

自动化荧光microscopy是生命科学显微镜成像的一匹驮马,它产生数以百万计的细胞图像卷积神经网络(cnn)在学习成像数据的空间结构和优于传统的机器学习方法通过自动特征提取

传统与深度学习工作流来自A. Gupta等人,细胞检测95, 366-380 (2019)

虽然每张图像都有一个类别(即猫与狗)的图像分类目前是一项相当琐碎的任务,但它是一种有效的分类方法多标记分类而且对象检测是目前正在开发新一代cnn的更具挑战性的问题。

下面我将介绍如何使用Faster-RCNN而且Mask-RCNN人工神经网络检测细胞类型在荧光显微镜图像上人类蛋白质图谱(HPA)

图像与数字数据

当涉及到图像分析时,我通常会想为什么深度学习优于其他机器学习和统计分析工作与图像和不太成功的应用到数字数据?的确,与各种生物医学合作下一代测序(NGS)组学数据(基因组学,转录组学,蛋白质组学等),这些通常是数值的,我不经常看到神经网络在预测能力方面优于随机森林,因此总是建议在深入研究深度学习的非线性数学之前从简单的线性模型开始。

为什么深度学习对图像分析如此有利?

这仅仅是因为大量可用的成像数据吗Geoffrey Hinton认为或者在像素强度中有一些非线性的东西,在数值数据中不存在?仅仅是数据的空间结构吗?

你注意到的第一件事是在图像数据上运行深度学习,与在组学数值数据上进行深度学习相比,生活变得更容易。有大量的文献和大量的在线教程这对你有帮助。我是一个超级粉丝杰森Brownlee而且Adrian Rosebrock,我去他们的博客,通常会找到我所有问题的答案。相反,在组学数值数据上运行深度学习(如RNA测序)你基本上只能靠自己了。没有那么多人比你更了解什么样的网络架构、激活函数、优化器等适合你特定的组学数值数据,所以你真的需要做很多实验。

细胞显微成像

然而,进入显微成像,你会发现很多来自社区的支持。一个很好的可用资源是人类蛋白质图谱(HPA)在其他事情中,哪个提供数字图像数据显示蛋白质在单细胞中的定位

人类蛋白质图谱(HPA)是一个伟大的数字图像数据资源

方法对数据进行了注释通过在线游戏的公民科学方法并用于Kaggle竞争用于多标签图像分类。数据可以从在这里,它们包括~ 124000个训练和~ 47000个测试的512x512 PNG图像,用于28个类,即从0到27的数字编码的细胞隔间蛋白质被表达.重要的是,由于蛋白质可以同时在细胞的几个地方表达,因此同一图像上可以出现多个类别。

观察HPA类的分布,我们可以看到感兴趣的蛋白质最常表达在核浆(类0)和细胞质(类25)中。现在让我们看看HPA图像是什么样的。事实证明,显示HPA图像不是一项简单的任务,因为它们包含4个而不是标准的3个RGB通道感兴趣的蛋白质(绿色通道)加上三个细胞地标:微管(红色),细胞核(蓝色)而且内质网(黄色).在Python中合并这4个通道的一种方法是实现黄色=红色+绿色,并将黄色通道的一半添加到红色通道中,另一半添加到绿色通道中。

人类蛋白质图谱(HPA)样本图像

使用“load_image”函数,通过合并每个图像ID的4个通道,我生成了一个包含~ 31000张图像的新训练数据集。

为单元格检测构建注释

现在,在我们学习了如何显示HPA图像并合并四个通道之后,是时候使用fast - rcnn和Mask-RCNN神经网络创建用于细胞类型检测的注释了。出于演示的目的,我浏览了一些图像,并选择了包含这两种内容的图像蛋白在核仁区室中表达的细胞(核仁,核仁纤维中心,核斑点,核体)核仁区室中无蛋白表达迹象的细胞.通过这种方式,我的目标是在每个火车/测试图像上有3个类(核仁,非核仁和背景)。接下来,我花了2个小时LabelImg为45张HPA列车图像的每个单元分配边界框和类别标签,另外5张图像保留为测试数据集,用于进行预测。

手动注释单元格LabelImg

LabelImg以xml格式记录单元格注释,其典型结构如下:

在这里,您可以看到图像的宽度(512像素)、高度(512像素)和深度(3个通道),以及一个由边界框定义的坐标的对象(xmin, ymin, xmax, ymax)以及“核仁”标签。fast - rcnn需要一个特殊的逗号分隔(csv)格式的注释文件。为了准备这样一个csv文件,我们需要解析每个图像的xml注释:

解析完xml注释之后,就差不多完成了,现在一切都准备好训练Faster-RCNN模型了。

快速训练- rcnn用于细胞检测

这里我跳过解释fast - rcnn是如何工作的,有很多文学进入算法。我只提到了fast - rcnn使用的区域提议网络(RPN)的区域建议探测器网络执行实际的对象检测。因此,fast - rcnn网络的损失函数结合了来自回归(用包围框定位单元格)和分类(将类分配给每个局部单元格)任务。Faster-RCNN可以从https://github.com/kbardool/keras-frcnn.训练fast - rcnn模型很简单,只需输入:

这里的“annotation .txt”是在前一节中创建的注释文件。默认情况下,fast - rcnn使用权重的迁移学习ResNet50.训练更快- rcnn上45张图片,322个注释核仁类和306个非核仁类在我有4个CPU内核的笔记本电脑上,每个纪元大约需要6个小时,所以我只等了35个纪元。学习曲线似乎表明,分类任务已达到饱和,而回归(定位细胞)仍远未达到平台。

要使用fast - rcnn对测试集进行预测,我们只需输入:

这里的“test”是包含来自测试数据集的图像的文件夹。让我们展示一个测试图像,以检查该模型在检测含有以核仁(核仁类)表达的蛋白质的细胞和没有以核仁(非核仁类)表达的蛋白质的细胞时的成功程度:

原始图像(左)和应用fast - rcnn目标检测后的图像(右)

这里,左边是原始的测试图像。两个单元格中间明显有明亮的绿色斑点,这些是核仁它们是可见的,因为感兴趣的蛋白质在这些区域表现出强烈的表达,所以这两个细胞应该属于核仁类。其余的细胞似乎在核仁区没有表达这种蛋白,因此它们应该属于非核仁类。右边是经过训练的fast - rcnn模型放置的带有边界框和类标签的测试图像。这里我们可以看到模型正确检测到两个细胞在核仁区域有可见的绿色斑点,而第三个包围框似乎是一个假阳性预测,目前尚不清楚模型究竟检测到什么具有高置信度(91%的概率):包围框包括多个细胞,尽管模型贴上了“核仁”类标签,但我们没有在包围框内观察到可见核仁的细胞。

这幅图说明了我对使用的总体印象用于细胞检测的快速rcnn:它在细胞定位方面并不总是完美的不过,更多的训练可能会改善它。让我们看看Mask-RCNN是否能让它变得更好。

用于细胞检测的Training Mask-RCNN

Mask-RCNN(以及fast - rcnn)属于RCNN家庭与其他系列(即YOLO和SSD)相比,人工神经网络以更高的目标检测精度而闻名,我在这里不介绍它们。除了目标检测,Mask-RCNN还允许对象分割,但是我们不打算在这里使用它。Mask-RCNN可以从https://github.com/matterport/Mask_RCNN.而fast - rcnn非常容易运行(基本上只需要准备注释文件),Mask-RCNN需要更多的编码,所以请查看完整的Jupyter笔记本我的github欲知详情。在这里,我解释了基本遵循的工作流程的关键步骤这个很棒的教程.Mask-RCNN的特点是数据是由一个数据集对象,该对象将用于将其送入Mask-RCNN进行训练和测试。

在这里,我们的目标是对象检测而不是分割,因此我们将边界框视为掩码,因此" load_mask "函数将加载实际的边界框坐标。我们可以使用Mask-RCNN中方便的" display_instances "函数显示一个随机的带注释的训练图像:

为Mask-RCNN训练准备的注释图像

现在,训练Mask-RCNN模型的一切都准备就绪了。我们将使用迁移学习,并从权重从预先训练好的目标检测Mask-RCNN模型开始椰子树数据集。

培训Mask-RCNN比fast - rcnn快得多在我的4个CPU内核的笔记本电脑上,一个epoch只花了2个小时(比Faster-RCNN快3倍),并且我只在5个epoch后就停止了训练,因为测试数据集上的对象检测结果已经非常令人满意了。为了进行比较,我在这里展示了原始测试图像(左)和经过训练的Mask-RCNN模型放置的高置信度(超过70%概率)边界框和类标签的图像。

原始图像(左)和应用Mask-RCNN目标检测后的图像(右)

我们观察到细胞定位的准确性有了惊人的提高,所有的包围框似乎几乎完美地包含了细胞。一个细胞似乎有一个错误的标签“核仁”,尽管细胞核内没有观察到明显的绿色斑点。也许该模型将受益于更多的训练。总的来说,与fast - rcnn相比,Mask-RCNN在细胞检测方面有显著改善

这样训练过的Mask-RCNN模型现在可以用于高通量扫描的图像特殊的细胞形态(在这种特殊情况下,蛋白在核仁区表达)无需目测

总结

在这篇文章中,我们了解到自动显微镜生产大量的数字图像数据非常适合用深度学习进行分析。检测细胞形态这是一项具有挑战性的任务,尽管有大量的文献和模型可用。我们测试了fast - rcnn和Mask-RCNN对象检测模型,使用来自人类蛋白质图谱(HPA)的多个类的注释图像。Mask-RCNN在细胞类型检测的质量和速度上都优于fast - rcnn。

像往常一样,如果你在生命科学中有一个特别喜欢的领域,你想在深度学习框架中解决这个问题,请在评论中告诉我。在Medium上关注我Nikolay Oskolkov的,在推特@NikolayOskolkov,连接进来Linkedin,并在我的网站上查看本文的代码github.我打算写下一篇文章进化科学的深度学习,敬请期待。

瑞典科学实验室生物信息学家

Baidu
map