当前位置: 首页 > news >正文

ImageJ灰度值量化分析 实用技巧——免疫组化分析(定量分析篇)

在临床病理诊断中, 免疫组织化学( Immunohistochemistry, IHC) 是一种很重要的技术和手段。

免疫组化标记时细胞阳性着色程度取决于抗原含量、分布密度和标记方法及其敏感性。

一般而言,抗原含量越多,分布密度越高,阳性结果显色则越强。根据阳性标记的显色程度分为:蓝色,阴性;淡黄色,弱阳性;棕黄色,中等阳性;深棕色,强阳性。

免疫组化原理图


免疫组化分析主要有两种方法,阳性着色细胞计数法和染色强度评分法。前者是在光学显微镜下,随机多个视野下计数阳性着色细胞;后者则是在下按染色强度和染色阳性范围评分,最终分数相加。

但组织样品的病理学分析仍然是耗时且主观的程序,其中人工判断染色强度来评分,直接受到视觉偏差的影响[1]。且阳性细胞计数往往不能自动化进行,导致免疫组化分析费时费力。


这篇文章会怎么利用ImageJ进行免疫组化分析,进行全面的讲解,包括两部分:

1、利用IHC Profiler插件对样本的染色情况进行自动化评分;

2、利用Trainable Weka Segmentation插件分别对阳性细胞和阴性细胞进行计数;

一、IHC Profiler-自动分析染色情况

IHC Profiler,将阳性细胞的平均灰度值(染色强度)和阳性面积百分比(染色面积)共同作为 IHC 测量指标[2],最终给出四种评分:High positive (3+), Positive (2+), Low Positive (1+) and Negative (0)。

最新更新,为解决IHC_Profiler安装失败的问题,我更改了IHC_Profiler的原代码,整个插件变成了newIHC_Profiler.ijm,可以在GitHub上下载到:

newIHC_Profiler.ijm​github.com/ethanzhao9/ImageJ-Tutorial/blob/master/newIHC_Profiler.ijm

插件使用方法:

1、通过Image -> Color -> Color Deconvolution,分离出想要测量的Channel:

2、选中想要测量的Channel,Run这个Macro,即可得到4种评分所占面积的百分比:

注意IHC_Profiler里四个评分的定义:

  • High positive (灰度值0-60)
  • Positive (灰度值61-120)
  • Low Positive (灰度值121-180)
  • Negative (灰度值181-236)


1、插件安装

注意:Fiji和IHC Profiler会出现不兼容的情况,导致结果错误,建议在ImageJ1中安装这个插件并使用。

ImageJ1的下载链接:

https://imagej.nih.gov/ij/download.html

该插件的安装包括插件和宏的安装,下载地址:

IHC Profiler​sourceforge.net/projects/ihcprofiler/

若无法打开可以在GitHub上下载到:

https://github.com/inanezhao/ImageJ-Tutorial/blob/master/IHC_Profiler.zip

压缩包里包含下面三个文件插件文件夹、宏文件以及官方安装教程:

(1)插件安装

将IHC Profiler文件夹放在Plugins中,重启ImageJ即可安装IHC Profiler插件:

(2)宏安装(对于Fiji是必需且重要的)

Fiji安装宏的步骤和网传的版本不同,因为IHC Profiler是基于ImageJ最初的版本编写的,在FIji上使用的时候会有不兼容的情况。

首先将IHC_Profiler.txt文件放到macros文件夹中。

然后点击Plugins -> Macros -> Install,选择该txt文件(如果是ImageJ1则跳过这一步)

即可在Plugins -> Macros中找到该宏:

注意!!!每次关闭ImageJ后,再次使用IHC Profiler需要重新安装该宏。否则得出的结果是错误的。

2、插件使用

该插件的基本原理为先对染色图片进行颜色去卷积,分出蓝色的阴性区域和棕色的阳性区域,然后判断染色类型是细胞质染色还是细胞核染色,再分别进行对应的操作[2]。

插件工作流程

(1)以细胞质染色为例:

打开图片和插件(Plugins -> IHC_Profiler)

打开插件后选择细胞质染色的Mode:

颜色去卷积默认H DAB染色:

然后即可分别得到阴性区域和阳性区域,直接得出结果:

(2)以细胞核染色为例:

选择细胞核染色Mode,并不会直接得出结果,需要先设定一个阈值:

然后点击上面安装的宏(Plugins -> Macros -> IHC_Profiler),即可得到结果:


二、Trainable Weka Segmentation-自动阳性细胞计数

该插件的使用请参考这篇文章:

Treasure琛:ImageJ实用技巧——基于机器学习的自动细胞分割(插件篇)220 赞同 · 91 评论文章​编辑

一般的免疫组化图片不能通过Threshold的方法进行分割,需要利用该插件,基于机器学习算法,做到阳性细胞和阴性细胞的计数。

例如统计上图中,阳性细胞和阴性细胞的数量,经过训练之后分类器可以很好的分出阳性细胞、阴性细胞以及背景(甚至可以区分出强阳性和弱阳性细胞):

点击Create result、Get Probability可以得到分割后的图像:

通过Analyze Particles可以快速得到细胞的数量,可以参考这篇文章:

Treasure琛:ImageJ实用技巧——自动细胞计数(解放双手篇)724 赞同 · 160 评论文章​编辑

三、总结

该篇文章完整讲述了怎么利用IHC Profiler进行免疫组化分析,补充了利用Trainable Weka Segmentation对阳性细胞进行自动统计。

以后对于免疫组化分析,不必再过度依赖人工,可以通过软件的自动分析得到更加直观和稳定的数据。但前提是样品的制备、染色以及拍照时要注意避免假阳性。

与此同时,在使用插件的时候要多思考,多研究,避免出现分析错误的情况。(例如,若不安装IHC Profiler的宏文件,得出的结果会完全相反)

推荐阅读介绍IHC Profiler的这篇文献[2],以更深入地了解自动免疫组化分析的原理。

四、补充

(1)插件报错问题

如果插件出现报错等不能用的情况,建议换用ImageJ1来安装这个插件,在ImageJ1中使用,而不是Fiji。

(2)共染问题

免疫组化共染不能用IHC Profiler来进行分析,这个插件现在只包含了DAB。

如果想要分析共染的荧光强度的话,比较好的方法是通过Colour Deconvolution(Image -> Color -> Colour Deconvolution)

选择H&E DAB把粉红色、棕色以及蓝色,三个通道分别分离出来(但要注意免疫组化本身并不是化学计量的)。

通道分割结果

可以参考下面这个网站:

Colour-deconvolution​blog.bham.ac.uk/intellimic/g-landini-software/colour-deconvolution/

参考文献:

[1].Jensen, Ellen C . Quantitative Analysis of Histological Staining and Fluorescence Using ImageJ[J]. The Anatomical Record, 2013, 296(3):378-381.

[2].Varghese F, Bukhari A B, Malhotra R, et al. IHC Profiler: An Open Source Plugin for the Quantitative Evaluation and Automated Scoring of Immunohistochemistry Images of Human Tissue Samples[J]. Plos One, 2014, 9(5):e96801.

相关文章:

ImageJ灰度值量化分析 实用技巧——免疫组化分析(定量分析篇)

在临床病理诊断中, 免疫组织化学( Immunohistochemistry, IHC) 是一种很重要的技术和手段。 免疫组化标记时细胞阳性着色程度取决于抗原含量、分布密度和标记方法及其敏感性。 一般而言,抗原含量越多,分布密度越高,阳性结果显色…...

了解STM32看门狗定时器的工作原理和原则

STM32 系列微控制器的看门狗定时器 (Watchdog Timer,WWDG) 是一种重要的硬件资源,用于检测系统的异常状态,并在发生异常时执行特定的操作,以确保系统能够正常运行。在本文中,我将详细介绍 STM32 看门狗定时器的工作原理…...

【2014年数据结构真题】

41. (13分)二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。 给定一棵二叉树T,采用二叉链表存储,结点结构如下: 其中叶结点的weight域保存该结点的非负权值。 设root为指向T的根结点的指针, 请设计求T 的WPL…...

PostgreSQL基本操作

目录 1.源码安装PostgreSQL 1.1.前置条件(root下操作) 1.1.1.卸载yum安装的postgresql 1.1.2.创建postgres用户 1.1.3.安装部分依赖 1.1.4.源码安装uuid 1.2.安装PostgreSQL 1.2.1.使用postgres用户管理PostgreSQL 1.2.2.下载解压postgres12源码…...

hadoop 大数据环境配置 ssh免密登录 centos配置免密登录 hadoop(四)

1. 找到.ssh文件夹 cd ~ # 在.ssh文件夹下生成 # cd .ssh 2. 生成私钥公钥命令: ssh-keygen -t rsa3. 发送到需要免密机器: # hadoop23 是我做了配置。在host配置得机器ip和名称得映射 ssh-copy-id hadoop23 4. 成功...

Django 的国际化与本地化详解

概要 随着全球化的发展,为 Web 应用提供多语言支持变得日益重要。Django 作为一个功能强大的 Web 框架,提供了一套完整的国际化(i18n)和本地化(l10n)工具,使得开发多语言应用变得简单。本文将详…...

Java19新增特性

前言 前面的文章,我们对Java9、Java10、Java11、Java12 、Java13、Java14、Java15、Java16、Java17、Java18 的特性进行了介绍,对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 Java13新增特性 Java14新增特性 Java15新增特…...

[文件读取]metinfo_6.0.0 任意文件读取漏洞复现

1.1漏洞描述 漏洞编号--漏洞类型文件读取漏洞等级⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐漏洞环境windows漏洞名称MetInfo 6.0.0 任意文件读取漏洞 MetInfo 是一套使用PHP 和MySQL 开发的内容管理系统。MetInfo 6.0.0 版本中的 /app/system/include/module/old_thumb.class.php 文件存在任意文件…...

[量化投资-学习笔记015]Python+TDengine从零开始搭建量化分析平台-量化知识点汇总

之前的章节介绍了多个技术分析指标,以下进行一个简单的总结。 看过之前章节的同学就可以不用打开了。 技术指标 MAEMAMACDCCIATRKDJ MA 最基础的技术指标,对一段周期内的收盘价进行简单平均,是一切指标的基础。 def calc_ma(period,ma):ma_…...

VSCode 好用的插件分享

文章目录 Introlistcode runner 【在文本编辑器中编辑好各类语言的源代码,然后一键运行】gitlens - 【git提交信息即时查看,类似IDEA中的 show annotation】还有更多,会日常补充。 Intro 大四毕业前,我只有一台dell latitude 455…...

C++虚基类详解

多继承(Multiple Inheritance) 是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。…...

Mac M2/M3 芯片环境配置以及常用软件安装-前端

最近换了台新 Mac,所有的配置和软件就重新安装下,顺便写个文章。 一、环境配置 1. 安装 Homebrew 安装 Homebrew【Mac 安装 Homebrew】 通过国内镜像安装会比较快 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Ho…...

Karmada更高效地实现故障转移

随着云原生技术的发展,其应用场景不断扩大。越来越多的企业开始将应用程序部署在 Kubernetes 集群中,随着 Kubernetes 集群规模的不断扩大,也带来了许多管理挑战,例如多集群间负载均衡、资源调度、故障转移等问题。为了解决这些问…...

前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(四)

你可以的&#xff0c;去飞吧&#xff01; 同步代码和异步代码 回调函数地狱和 Promise 链式调用 回调函数地狱 缔造“回调地狱”↓ 制造里层回调错误&#xff0c;却在最外层接收错误→无法捕获 axios源码抛出异常&#xff08;未捕获&#xff09; <!DOCTYPE html> <ht…...

​TechSmith Camtasia 2024破解版功能介绍及使用教程

在现在的网络互联网时代&#xff0c;越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频&#xff0c;也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音&#xff0c;做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…...

【无线网络技术】——无线传输技术基础(学习笔记)

目录 &#x1f552; 1. 无线传输媒体&#x1f558; 1.1 地面微波&#x1f558; 1.2 卫星微波&#x1f558; 1.3 广播无线电波&#x1f558; 1.4 红外线&#x1f558; 1.5 光波 &#x1f552; 2. 天线&#x1f558; 2.1 辐射模式&#x1f558; 2.2 天线类型&#x1f564; 2.2.1 …...

【Liunx】部署WEB服务:Apache

【Liunx】部署WEB服务:Apache 概述Apache1.介绍2.Apache文件路径3.Apache详解(1)安装Apache(2)启动Apache(3)配置文件a.Apache主配置文件&#xff1a;vim /etc/httpd/conf/httpd.conf信息&#xff1a;b.基于主机头的虚拟主机 (4)开始演示&#xff1a;a.新建两个网站根目录b.分别…...

数字媒体技术基础之:常见图片文件格式

在数字图像处理和图形设计领域&#xff0c;了解不同的图片文件格式及其特点是至关重要的。每种格式都有其独特的用途和优势。以下介绍一些最常见的图片文件格式。 JPEG Joint Photographic Experts Group 扩展名&#xff1a;.jpg 或 .jpeg 特点&#xff1a; 1、有损压缩&#x…...

2023-2024-2 高级语言程序设计-二维数组

7-1 矩阵运算 给定一个nn的方阵&#xff0c;本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 输入格式: 输入第一行给出正整数n&#xff08;1<n≤10&#xff09;&#xff1b;随后n行&#xff0c;每行给出…...

【uniapp】确认弹出框,选择确定和取消

代码如下&#xff1a; <view style"display: flex; justify-content: space-around;"><button class"button" click"submit">t提交</button> </view>submit(){let thatthisuni.showModal({title: 提示&#xff1a;,con…...

阿里云容器镜像服务的运维总结

一、背景 容器镜像服务&#xff0c;作为一个可选付费产品&#xff0c;主要作用是存储docker的镜像仓库&#xff0c;供k8s拉取到Pod节点里。 你可以自己搭建一个harbor镜像仓库&#xff0c;在公司的开发环境下&#xff0c;将image推送到仓库&#xff1b;然后在生产k8s从仓库拉取…...

修炼k8s+flink+hdfs+dlink(七:flinkcdc)

一 &#xff1a;flinkcdc官网链接。 https://ververica.github.io/flink-cdc-connectors/release-2.1/content/about.html 二&#xff1a;在flink中添加jar包。 在flink lib目录下增加你所需要的包。 https://kdocs.cn/join/gv467qi?f101 邀请你加入共享群「工作使用重要工具…...

排查问题流程

1、问题定义和描述&#xff1a; 确定问题的性质、表现和影响。 收集和整理相关的问题描述和报告。 2、问题复现&#xff1a; 尝试在适当的环境中重现问题。 确定问题发生的条件、步骤和触发器。 3、问题分析&#xff1a; 收集和分析相关的日志、错误消息或警报。 使用适当的工…...

【nlp】2.2 传统RNN模型

传统RNN模型 1 传统RNN模型1.1 RNN结构分析1.2 使用Pytorch构建RNN模型1.3 传统RNN优缺点1 传统RNN模型 1.1 RNN结构分析 结构解释图: 内部结构分析: 我们把目光集中在中间的方块部分, 它的输入有两部分, 分别是h(t-1)以及x(t), 代表上一时间步的隐层输出, 以及此时间步的…...

C/C++---------------LeetCode第49.字母异位词分组

字母异位词分组 题目及要求哈希算法在主函数内使用 题目及要求 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”…...

spark调优案例分享

做了一个Spark调优案例的分享 最近在整理了Spark相关的调优案例&#xff0c;并做了以下分享:spark调优案例 &#xff0c;注意是Mac Keynote...

阿里达摩院开源DAMO-YOLO

1.简介 DAMO-YOLO是一个兼顾速度与精度的目标检测框架&#xff0c;其效果超越了目前的一众YOLO系列方法&#xff0c;在实现SOTA的同时&#xff0c;保持了很高的推理速度。DAMO-YOLO是在YOLO框架基础上引入了一系列新技术&#xff0c;对整个检测框架进行了大幅的修改。具体包括…...

【异常检测小集】

目录 【2018 ICLR】DAGMM&#xff1a;Deep Autoencoding Gaussian Mixture Model for Unsupervised Anomaly Detection【2021 TNNLS】无名&#xff1a;Feature Encoding with AutoEncoders for Weakly-supervised Anomaly Detection 【2018 ICLR】DAGMM&#xff1a;Deep Autoen…...

Mybatis-Plus的IPage和Page

Mybatis-Plus 中的分页查询接口主要有两个&#xff1a;IPage 和 Page。 IPage 接口&#xff1a; IPage 是 Mybatis-Plus 中的分页结果集接口&#xff0c;它继承了 Mybatis 的 RowBounds 接口&#xff0c;提供了一系列的分页查询方法。该接口主要用于返回分页后的数据结果。 Pa…...

jupyter lab常用插件集合

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...