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.ijmgithub.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 Profilersourceforge.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-deconvolutionblog.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)(四)
你可以的,去飞吧! 同步代码和异步代码 回调函数地狱和 Promise 链式调用 回调函数地狱 缔造“回调地狱”↓ 制造里层回调错误,却在最外层接收错误→无法捕获 axios源码抛出异常(未捕获) <!DOCTYPE html> <ht…...

TechSmith Camtasia 2024破解版功能介绍及使用教程
在现在的网络互联网时代,越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频,也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音,做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…...

【无线网络技术】——无线传输技术基础(学习笔记)
目录 🕒 1. 无线传输媒体🕘 1.1 地面微波🕘 1.2 卫星微波🕘 1.3 广播无线电波🕘 1.4 红外线🕘 1.5 光波 🕒 2. 天线🕘 2.1 辐射模式🕘 2.2 天线类型🕤 2.2.1 …...

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

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

2023-2024-2 高级语言程序设计-二维数组
7-1 矩阵运算 给定一个nn的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 输入格式: 输入第一行给出正整数n(1<n≤10);随后n行,每行给出…...

【uniapp】确认弹出框,选择确定和取消
代码如下: <view style"display: flex; justify-content: space-around;"><button class"button" click"submit">t提交</button> </view>submit(){let thatthisuni.showModal({title: 提示:,con…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...