HistoQC|病理切片的质量控制工具

小罗碎碎念

这期推文介绍的内容,我相信研究病理组学的人,一定都非常熟悉——HistoQC——病理切片的质量控制。

之前写过Hover Net系列的推文,反响还可以,但是Hover Net是用于细胞核检测和分类的,直接从这里开始还不够系统,所以我想了想,还是觉得要从头开始。

最开始要做的,就是数据收回来以后,怎么处理?为了保证模型的准确性,最开始要做的就是把质量差的数据剔除(类似于临床数据的纳入排除标准),所以这一期推文介绍的就是如何批量筛除质量差的切片

另外,这篇文章并不是教你怎么用哈,只是给你梳理一下知识背景,让你系统的了解一下这个工具而已。


这篇文章介绍了一个名为HistoQC的开源工具,它用于对数字病理切片进行质量控制。

数字病理(DP)指的是组织切片的数字化,这一技术正在改变临床诊断工作流程,并在计算病理学领域引起了积极的研究。

HistoQC工具的主要目的是自动识别和描绘数字切片中的伪影,并发现队列级别的异常情况(例如,与其他切片相比,染色过深或过浅的切片)。这个工具结合了图像度量(如颜色直方图、亮度、对比度)、特征(如边缘检测器)和监督分类器(如笔迹检测),通过交互式图形用户界面向用户展示无伪影区域和度量,使用户能够通过实时可视化和过滤来检测伪影。用户还可以明确定义他们工作流程中可接受的容差。

HistoQC在450张来自癌症基因组图谱(The Cancer Genome Atlas)的切片上进行了测试,由两位病理学家进行了评审,结果表明,超过95%的情况下,HistoQC的输出适合进行计算分析。这表明HistoQC可以为识别伪影和测量切片质量提供一个自动化、可量化的质量控制流程,从而帮助提高DP工作流程的重复性和稳健性。

文章还讨论了HistoQC的潜在改进空间,包括检测压缩效果、整合更多特征,以及扩展到其他类型的多模态显微镜图像。此外,作者希望HistoQC能够成为一个社区驱动的参考实现集合,包括复杂的检测器和度量方法。

HistoQC的源代码是公开可用的,可以自由使用、修改和贡献。


一、引言

精准的疾病诊断通常依赖于病理学家在显微镜下对组织切片的视觉检查。在此之前,必须先创建组织切片。这一过程包括大体器官解剖、选择和准备用于制作切片的组织块、显微切片(切割并将组织放置在玻片上)、染色和封片,存在许多分析前引入人为误差和批次效应的机会[1-3]。

这些人为误差可能包括:

  • 不正确的组织放置(例如,折叠、压缩、撕裂、气泡)
  • 不正确的试剂(例如,过度或不足染色、染料浓度差异、染料批次变化)
  • 较差的显微切片(例如,刀片颤动、厚度差异)

对这些切片进行日益流行的数字化处理,以便利用计算机辅助诊断方法[4-6],例如,又引入了另一种潜在的人为误差源。这一数字化过程将通常用于显微镜病理学的玻璃切片放置在相当于数码相机上,以构建切片的数字表示。扫描机制造商可能采用不同的方法进行切片数字化,包括不同的硬件(例如,照明用的灯泡、数字化用的电荷耦合器件芯片)和图像处理算法(例如,拼接、压缩)以及文件格式。因此,切片扫描仪的选择可能会影响图像外观,进而可能对任何后续的图像分析程序产生影响[7]。

这些数字病理学(DP)切片可能还会包括数字化误差,如模糊、照明和对比度问题。总的来说,存在多种不同的来源组合,可能导致组织切片的外观和质量产生重大差异。


这些同样的人为误差和差异可能会对下游的临床和研究工作流程产生负面影响[8]。

在当今使用的模拟工作流程中,连续质量控制(QC)过程是有限的,与实验室医学依赖的连续统计过程控制不同。临床上,因质量原因被拒绝的切片会拖慢临床病理工作流程,因为需要重新切割或重新扫描这些切片,从而造成额外的延误和不必要的成本。

从研究的角度来看,人为误差是噪声的来源,可能会不利地影响疾病检测、诊断和预后等任务的解析分类器的开发和验证[9,10]。这对于日益流行的深度学习和机器学习方法尤为重要[11-16],这些方法依赖于良好注释且相对无误差的图像来学习特定疾病的表示。


目前,大多数临床和研究应用的质量控制过程都是手动进行的,这使得过程具有主观性、劳动强度大且容易出错。

例如,尽管TCGA托管的30,000个数字化组织切片的图像在引入TCGA之前经过了手动质量控制,但在许多切片中仍可以看到广泛的人为误差和图像质量(图1)。

在这里插入图片描述

图中并列显示了原始的组织切片图像和HistoQC分析后的对应图像,其中品红色(fuchsia)表示可接受的组织区域。

(A) 显著的气泡伪影:HistoQC识别出一个需要从实验队列中移除的显著气泡伪影。气泡伪影可能会影响图像分析的准确性,因为它们可能与实际的组织结构相混淆。

(B) 盖玻片裂缝附近的模糊组织:HistoQC检测到盖玻片裂缝附近存在模糊的组织区域。模糊可能是由于切片过程中的技术问题或者扫描过程中的焦点问题造成的,这会影响图像的清晰度和分析质量。

© 折叠的组织:HistoQC识别出组织折叠的情况。组织在制备过程中可能会发生折叠,这会导致图像中出现不连续的区域,影响图像分析。

(D) 笔迹标记:HistoQC正确地识别出应避免的笔迹标记区域。这些标记可能是在切片的制备或标记过程中留下的,它们不是组织的一部分,可能会干扰图像分析。

这些分析结果表明HistoQC能够有效地识别出可能影响病理学图像分析的伪影和异常区域,帮助提高数字病理图像的质量控制。通过这些可视化的结果,用户可以快速识别出问题区域,并决定是否需要对切片进行重新制备或扫描。


这篇文献介绍了一个开源质量控制应用程序HistoQC,用于自动评估切片质量,以及一个包含人为误差的切片公共存储库。

HistoQC结合了图像度量(例如,颜色直方图、亮度、对比度)、特征(例如,边缘和平滑度检测器)和监督分类器(例如,笔检测),以帮助用户识别具有明显技术误差的切片、可能不适合计算分析的受误差影响的区域(数据补充提供了当前的分类器和度量列表)以及可能受批次效应影响的样本。

此外,HistoQC的模块化特性允许轻松嵌入额外的度量和误差检测算法


二、方法

2-1:HistoQC的工作原理

用户提供一个配置文件,定义QC流程的参数,例如执行哪些模块以及顺序。

当基于Python的流程在切片上执行时,将创建相关的输出图像(例如,缩略图显示潜在的模糊区域),并将元数据(例如,扫描仪类型、放大倍数、每像素微米数)和度量保存在一个制表符分隔的值文件中。按照设计,可以在整个切片上(即包括背景)或仅限于包含检测到组织的区域计算图像度量。

虽然任何常用的数据分析工具都可以用来审查制表符分隔的值输出(例如,Matlab [MathWorks, Natick, MA], Excel [Microsoft, Redmond, WA], R [R Foundation, Vienna, Austria]),但作者开发了一个基于HTML5的用户界面(图2),可以无缝地实现数据的实时可视化和过滤。


2-2:HistoQC用户界面的几个关键功能和组件

FIG 2展示了HistoQC用户界面的几个关键功能和组件,这些功能使得用户能够高效地进行质量控制和图像分析:

(A) 用户界面展示:

image-20240625194924908

  • 表格:HistoQC生成的度量指标以表格形式展示,具有可排序的列(绿色箭头指示)。这允许用户根据不同的度量标准对切片进行排序和筛选。
  • 平行坐标图(红色框内):这是一种可视化工具,用于展示切片的多个度量指标,帮助用户识别批次效应和异常值。具体的度量指标和它们的视觉表示将在图3中给出更多细节。
  • 缩略图:显示了整个队列的缩略图,以及HistoQC叠加输出,指示无伪影区域(蓝色箭头指示)。这为用户提供了一个快速概览,以识别可能需要进一步审查的切片。

(B) 选择单个图像:

在这里插入图片描述

  • 当用户在界面上选择单个图像时,平行坐标图中相应的线条会被突出显示。这有助于用户在平行坐标图中追踪和识别所选图像的度量指标。
  • 同时,界面会展示该图像由HistoQC流水线模块生成的一系列输出结果。这允许用户对选定的切片进行更详细的审查和分析。

© 双击图像:

image-20240625195053126

  • 用户可以通过双击任何图像来打开一个更高分辨率的版本,该版本具有动态缩放功能。这使得用户能够对潜在的伪影进行精细调整的检查。
  • 动态缩放功能对于识别和分析图像中的微小细节非常有用,尤其是在评估图像质量或伪影对分析可能产生的影响时。

在用户使用注释字段注释行或从表中删除行之后,可以保存结果表,并将其用作适合下游实验的样本列表。在安装后,不需要互联网连接,使得这个模型特别适用于非匿名临床数据。


三、结果

为了验证HistoQC生成的结果,邀请了两位具有DP经验的病理学家对HistoQC生成的每个掩模进行评估,将其分为可接受或不可接受。

可接受性定义为病理学家的视觉评估与HistoQC对无误差组织的计算评估之间至少有85%的区域重叠。每位病理学家独立审查了250个样本。

此外,两位病理学家和HistoQC共同评估了来自TCGA的50张图像,以确定对HistoQC输出的专家间一致性。总体而言,HistoQC与专家1的总体一致性为94%(250个中的235个),与专家2的一致性为97%(250个中的242个)。对于两位专家共同评估的50张切片,观察者间一致性为96%(50个中的48个),与HistoQC与个别读者的比较相当。

不一致的主要原因是染色较淡的切片导致组织检测失败,以及一些主要富含间质的区域被错误地识别为模糊(数据补充)。这些失败在HistoQC用户界面表现为异常值,主要是由于度量(例如,估计的组织面积)与所分析切片的其余部分相关的标准差数量级不同。


病理学家还提供了关于HistoQC似乎错误识别为受损或不受损的病例模式的定性反馈。这些病例通常分为三类:

  • 固定不良的组织
  • 坏死组织
  • 微妙的脂肪组织浸润伴少量组织反应

HistoQC在完全识别粘液瘤中的实质方面有时也遇到困难。作者正在努力进一步改进HistoQC,以解决这些局限性,并在下一个版本中予以解决。

【PS:文章于19年发表,我们在Github上可以看到,最新的一版更新于21年5月】

在这里插入图片描述


四、讨论

总结来说,作者提出并发布了一个名为HistoQC的开源DP切片质量控制工具。

4-1:HistoQC适用于界定切片级别的误差

将HistoQC与两位病理学家对450张图像的手动质量控制进行比较,平均一致性超过95%,与两位个别人类读者之间的同意范围相当。此外,HistoQC计算出的图像度量可以被研究人员和分析流程开发者用来精确定义他们的算法所训练和验证的输入图像特征。这些图像特征的严格规范使得算法可以选择性地仅在适当的图像上调用,这可能会提高算法的置信度。

DP工作流程正处于利用强大的计算机辅助诊断(CAD)支持算法的边缘,这可能会大大减少观察者内部和观察者之间的诊断变异性。正如最近的一些出版物所揭示的,许多CAD和人工智能(AI)算法在对其初始训练图像集之外的队列进行评估时,似乎不具有很好的泛化能力。

因此,这些AI和CAD算法必须在大量的异构输入上进行稳健的验证。像HistoQC这样的方法可以允许对测试集进行预评估,以确保CAD和AI算法在足够多样化的测试图像上进行评估。


4-2:HistoQC需要进一步改进的地方

例如,由于DP扫描仪之间通常存在的压缩水平异质性,以及压缩误差影响深度学习和AI算法性能的证据,HistoQC可以扩展到检测和测量压缩效果。

在需要整合更多特征的基础上,作者设想HistoQC将发展成为一个由社区驱动的复杂检测器和度量标准参考实现的集合。例如,Senaras等人提出了一种基于深度学习的模糊检测器,Avanaki等人提出了一种基于纹理的图像质量度量。作者希望这些类型的算法在未来能够嵌入到HistoQC中,以实现不同站点和实验室之间结果的比较。

本文所展示的工作重点是对HistoQC在苏木精和伊红明场显微镜图像背景下的评估。显然,还需要在其他类型的多元显微镜图像,如免疫组织化学染色和定量免疫荧光中应用质量控制度量。最后,作者希望汇集用户社区在使用HistoQC过程中识别的独特误差。作者已经建立了一个图像质量存储库,允许终端用户上传包含误差的切片。这个存储库将帮助提供未来CAD方法的基准测试所需的训练和验证材料。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win11:系统属性,由于启动计算机时出现了页面文件配置问题,Windows 在你的计算机上创建了一个临时页面文件。

Win11:系统属性,由于启动计算机时出现了页面文件配置问题,Windows 在你的计算机上创建了一个临时页面文件。所有磁盘驱动器的总页面文件大小可能稍大于你所指定的大小。确定。 解决方法:

Vue - HTML基础学习

一、元素及属性 1.元素 <p>我是一级标题</p>2.嵌套元素 把元素放到其他元素之中——这被称作嵌套。 <p>我是<strong>一级</strong>标题</p>3.块级元素 块级元素在页面中以块的形式展现&#xff0c;会换行&#xff0c;可嵌套内联元素。 …

「漏洞复现」申瓯通信 在线录音管理系统 download 任意文件读取漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

Echarts 图表添加点击事件跳转页面,但只有图表部分点击才会跳转页面,坐标轴,区域缩放等点击不跳转。

默认的点击事件是这样的&#xff1a; myChart.on(click, function (param) {console.log(param) }) 这个事件需要点击具体图形才会触发&#xff0c;例如我上面的图&#xff0c;想选择a柱子&#xff0c;就需要明确点击到柱体才行&#xff0c;明显不符合正常的预期&#xff0c;正…

浮点数原理与`BigDecimal`实践应用

浮点数原理与BigDecimal实践应用 问题引入&#xff1a; 浮点数 浮点数如何表示数字&#xff1f; 浮点数采用科学计数法表示一个数字&#xff0c;具体格式为&#xff1a; V ( − 1 ) S ∗ M ∗ R E V (-1)^S * M * R^E V(−1)S∗M∗RE S&#xff1a;符号位&#xff0c;取…

vue3+crypto-js插件实现对密码加密后传给后端

最近在做项目的过程中又遇到了一个新的问题&#xff0c;在实现后端管理系统的个人信息页面中&#xff0c;涉及到修改密码的功能&#xff0c;刚开始我直接通过传参的方式将修改的密码传入给后端&#xff0c;可是后端说需要将原密码、新密码以及确认密码都进行加密处理&#xff0…

大模型技术的应用场景

大模型技术&#xff08;Large Language Model&#xff0c;LLM&#xff09;是指具有大量参数和训练数据的神经网络模型&#xff0c;它能够学习语言的统计规律&#xff0c;并生成与人类书写的文本相似的文本。大模型技术在近年来取得了重大进展&#xff0c;并开始在各种领域得到应…

OpenAI 推迟了 ChatGPT 的新语音模式

今年 5 月&#xff0c;OpenAI 首次为其人工智能聊天机器人平台ChatGPT演示了一种非常逼真、近乎实时的"高级语音模式"。几个月后&#xff0c;OpenAI 表示需要更多时间。 OpenAI 在其官方 Discord 服务器上发布了一篇文章&#xff0c;称其原计划于 6 月底开始向一小部…

04 Shell编程之正则表达式与文本处理器

1、正则表达式 1.1 正则表达式的定义 正则表达式又称为正规表达式、常规表达式。 正则表达式是使用单个字符来描述、匹配一系列符合某个句法规则的字符串&#xff0c; 简单来说&#xff0c;正则表达式就是一种匹配字符串的方法&#xff08;通过一些特殊符号&#xff0c;实现…

搜狗微信文章数据爬取可视化

搜狗微信文章数据爬取可视化 一、爬取流程1.1 寻找数据接口1.2 发送请求获取数据1.3 xpath表达式解析数据1.4 保存数据二、数据可视化三、完整代码一、爬取流程 搜狗微信的主页:https://weixin.sogou.com/,主页截图如下,在搜索框中输入要查询的内容,以“百合花”为例: 观…

学习记录698@基带传输和频带传输基础

还是在学习计算机网络物理层时遇到这些知识点&#xff0c;这里简单的记录一下&#xff0c;主要都是通信专业的知识 基带传输 信源发出的原始信号叫做基带信号&#xff0c;基带信号分为模拟基带信号与数字基带信号。基带信号一般是低频成分&#xff0c;适合在具有低通特性的有…

203.回溯算法:N皇后(力扣)

class Solution { public:vector<vector<string>> result; // 用于存储所有合法的 N 皇后放置方案// 判断当前位置 (row, col) 是否可以放置皇后bool isValid(int row, int col, vector<string>& chess, int n) {// 检查当前列是否有皇后for (int i 0;…

学好 prompt 让大模型变身撩富婆专家,带你走上人生巅峰

前文 使用大模型的最重要的一步就是编写好的提示词 prompt &#xff0c;但是 prompt 既容易被低估也容易被高估。被低估是因为设计良好的提示词可以显著提升效果。被高估是因为即使是基于提示的应用也需要大量的工程工作才能使其发挥作用。下面我会介绍在编写 prompt 的时候&a…

【面试干货】Java中new与clone操作对象的比较

【面试干货】Java中new与clone操作对象的比较 1、new操作符创建对象的过程2、clone方法创建对象的过程3、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、new操作符创建对象的过程 new操作符在Java中用于创建对象&#xff0c;并执行…

一年Java|16K|同程艺龙面经

面经哥只做互联网社招面试经历分享&#xff0c;关注我&#xff0c;每日推送精选面经&#xff0c;面试前&#xff0c;先找面经哥 背景 公司&#xff1a;同程艺龙成都BU,现场部门老大面 之前的同程艺龙电话一面过了&#xff0c;然后通知到同程艺龙成都办公地点现场进行部门老大…

C语言实战 | “贪吃蛇”游戏重构

程序设计的过程中,面对复杂项目,利用模块化思维分解任务,是关键的一步。读者一定要掌握模块化思维设计思维,为将来团队合作、协同完成大型应用软件做好准备。 01、“贪吃蛇”游戏 有了游戏框架之后,按照游戏框架完成“贪吃蛇”游戏。 “贪吃蛇”游戏角色有两个:“贪吃蛇…

设计总监独家揭秘:后台管理系统设计全攻略!

后台管理是反映用户行为、提高产品保留率的有力依据。设计师将后台管理的各种数据创建成清晰、合乎逻辑、可操作的后台管理仪表板。当您设计一个美观实用的UI后台管理时&#xff0c;它会给用户带来更直观的信息内容&#xff0c;从而提高用户体验。因此&#xff0c;后台管理设计…

git 查看本地和远程分支

要查看 Git 仓库中的所有分支&#xff0c;可以使用以下命令&#xff1a; git branch执行该命令后&#xff0c;Git 会列出当前仓库中的所有分支&#xff0c;并在当前所在的分支前加上一个 * 标记。 如果你想查看远程仓库的分支&#xff0c;可以添加 -r 或 --remotes 选项&…

详解LLM大模型是如何理解并使用 tools ?

前文 大家肯定对使用大模型的函数回调或者说 Tools 已经耳熟能详了&#xff0c;那么他们具体内部是如何运作的呢&#xff0c;本文就此事会详细给大家介绍具体的细节。 tools 首先是大家最熟悉的环节&#xff0c;定义两个 tool 的具体实现&#xff0c;其实就是两个函数&#…

C语言:sprintf与snprintf

C语言提供了强大的格式化输出的接口&#xff0c;可以输出到不同的文件或者字符串等&#xff0c;以sprintf和snprintf为例介绍一下 sprintf 格式化输出到字符串 函数签名 int sprintf(char *str, const char *format, ...);与printf相比就是多了前面的char*参数&#xff0c;…