专栏首页R语言交流中心R语言实现肿瘤细胞计数

R语言实现肿瘤细胞计数

今天给大家介绍一个病理图像中肿瘤细胞计数的图像处理包CRImage。此包对R语言的版本要求比较高,必须是不低于3.6版本的R语言才可以安装。安装需要的前期准备:

install.packages("e1071")
install.packages("sgeostat")
install.packages("jpeg")
install.packages("png")
install.packages("locfit")
install.packages("fftwtools")
BiocManager::install("EBImage")
BiocManager::install("CRImage")

如果不把以上的包安装完整,那么就会报下面的错误:

接下来我们看下如何使用:

首先是数据的载入,我们这里用到的图像是此包自带的图像数据,需要用到函数readImage。

此函数支持jpeg, png, 以及tiff格式的图像数据。

看下实例:

f = system.file("extdata","exImg2.jpg", package="CRImage")
img=readImage(f)

display(img)

然后图像各颜色空间(HSV,LAB)之间的转化,需要用到函数convertRGBToHSV,convertRGBToLAB,convertHSVToRGB,convertLABToRGB。通过函数名称我们可以直接看出对应的功能。那我们看下他们之间的区别:

imgHSV=convertRGBToHSV(img)
imgLAB=convertRGBToLAB(img)

接下来就是灰度图像的阈值设置,需要用到函数createBinaryImage对设置的阈值进行过滤,实例如下:

imgG=EBImage::channel(img,"gray")
whitePixelMask=img[,,1]>0.85 &img[,,2]>0.85 & img[,,3]>0.85
imgB=createBinaryImage(imgG,img,method="otsu",numWindows=4,whitePixelMask=whitePixelMask)

以上通过设置阈值会增大目标与噪音的色差。

接下来是图像的标记,需要用到函数segmentImage

segmentationValues=segmentImage(f,maxShape=800,minShape=40,failureRegion=2000,threshold="otsu",numWindows=4)
image=segmentationValues[[1]]#原始图像
segmentedImage=segmentationValues[[2]]#标记好的图像
imageFeatures=segmentationValues[[3]]#图像获取的一些特征值

当然,如果直接对病理图像中细胞进行分类,不一定靠谱,此刻此包还引进机器学习的算法,首先是创建训练集数据,我们可以先人工获取标注的数据,然后构建分类器,这里用到的算法是支持向量机:

f = system.file("extdata", "trainingData.txt",package="CRImage")
trainingData=read.table(f,header=TRUE)
classifierValues=createClassifier(trainingData)
classifier=classifierValues[[1]]

接下来我们看下我们构建的分类器的效果:

f = system.file("extdata","exImg2.jpg", package="CRImage")
classesValues=classifyCells(classifier,filename=f,KS=TRUE,maxShape=800,minShape=40,failureRegion=2000)

肿瘤细胞结构的标注:

exImg=readImage(f)
cellularity=calculateCellularity(classifier=classifier,filename=f,KS=TRUE,maxShape=800,minShape=40,failureRegion=2000,classifyStructures=FALSE,cancerIdentifier="c",numDensityWindows=2,colors=c("green","red"))

上面的热图主要是指的图中肿瘤细胞的分布,颜色越深代表肿瘤细胞的数量在这个位置越多。

本文分享自微信公众号 - R语言交流中心(R_statistics)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一文解决多个不同平台差异分析结果合并

    原因:随着技术平台的不断发展,许多已发布的实验数据集可以被不同统计方法整合,使得可以同时使用各种方法来解决同一研究问题。但是为了从所有这些选择中获得最大的收益,...

    用户1359560
  • R语言数据分析与挖掘(第一章):数据预处理(3)——数据整理

    在介绍了缺失值处理的方法之后,我们可以得到完整的数据集,但在进行数据分析之前,还需要对数据进行整理,下面我们将介绍数据整理的相关知识。

    DoubleHelix
  • 快速掌握R语言中类SQL数据库操作技巧

    在数据分析中,往往会遇到各种复杂的数据处理操作:分组、排序、过滤、转置、填充、移动、合并、分裂、去重、找重、填充等操作。这时候R语言就是一个很好的选择:R可以高...

    1480
  • R语言数据分析与挖掘(第四章):回归分析(2)——多元线性回归

    上一篇文章中介绍了一元线性回归(R语言数据分析与挖掘(第四章):回归分析(1)——一元回归分析),然而,在实际操作中,多元性回归会更多见,因为一个响应变量会对应...

    DoubleHelix
  • 主成分分析:你为什么还是单身?

    知乎ID:https://www.zhihu.com/people/herain-14

    数据森麟
  • 生信分析也能零代码发3分的SCI

    经常有小伙伴跟我抱怨,没时间没精力去学代码,太复杂了。当然也有些小伙伴确实打起精神开始学,从网上搜了一大堆R语言资料,和生物信息学资料,甚至还买了本R语言实战的...

    微点
  • 【科研猫·绘图】献礼国庆70年,R语言绘制中国地图

    建国70周年大庆即将到来,各行各业都在积极筹备迎接祖国的生日,在这个举国欢腾的时刻,我们决定以一种特殊方式来表达自己对祖国母亲的祝福:一副用R语言绘制的中国地图...

    用户6317549
  • 39个工具,120种组合深度评估 (转录组分析工具哪家强)

    RNA-seq是研究转录组应用最广泛,也最重要的技术之一。RNAseq其分析内容包括序列比对、转录本拼装、表达定量、差异分析、融合基因检测、可变剪接、RNA编辑...

    生信宝典
  • 知道肠道菌种组成之后怎么做功能注释?

    在广大粉丝的期待下,《生信宝典》联合《宏基因组》在2019年11月1-3日,北京鼓楼推出《宏基因组分析》专题培训第六期,为大家提供一条走进生信大门的捷径、为同行...

    生信宝典
  • 学徒考核-计算wes数据的全部外显子的平均测序深度

    每个坐标的测序深度取平均值即可,可以写一个简短的perl脚本,或者直接读入该文件到R语言,总之对20多万个外显子都计算一个平均测序深度即可。

    生信技能树

扫码关注云+社区

领取腾讯云代金券