本文主要是介绍用R语言用生存资料做基于radiomic(影像组学)的生存分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近写好了一篇肿瘤二区SCI,具体就不透露了,来跟大家分享一下经验,觉得好的可以留言哈。本文内不懂得可以留言我们一起讨论,很多词在
前面的文章中已经写了。
要想做基于影像组学的生存分析,肯定是离不开和医院的合作,因为你要拿数据啊,医院出数据,你提供算法,俩人共同第一作者……下面以预测某癌症手术后的复发为目的,按处理顺序来讲一下这个大概是要怎么做。(这里生存终点是指复发,生存时间是治疗开始到复发或者删失)
- 拿数据
拿数据之前,你要和医生商量好对数据做怎么样的标定,如按照你的生存终点,对文件夹分类放置病例。另外随访信息也要处理好,主要是用那些临床因子很完整的病人。这一步没做好,后面会很头疼的。另外说一下,有文献指出,做生存分析时,发生终点事件的样本越多越好,即删失数目越少越好,最好是删失数小于30%,当然,如果你的结果够好,这都不是问题。
- 提取radiomic特征
这一步我推荐大家会python的用pyRadiomics,不会用的就用3DSlicer的同名插件。这是哈佛医学院出的用来提取组学中常用的一些特征(强度,纹理,形状,小波等),很全面,文档也很规整,只是现在只能用nrrd格式的数据,对dicom支持的不好,因为dicom需要处理复杂的文件头,当然自己写得提特征程序就更好。
- 分训练集和验证集
数据量少就别分训练验证集了,最好用交叉验证,做内部验证。数据量多(比如大于100),你可以按照2:1或者1:1的方法随机分训练验证集。
- 特征降维
提取完组学特征,你会发现一个病人就有几百个特征,而你的数据量一般都是小于特征数量的,这样你就需要对特征进行降维,选用合适的降维方法非常重要,常用的方法是基于主成分分析的方法或者Cox模型加上惩罚项。
- 建模
选用适当的用于生存分析的模型,具体你可以上WOS搜radiomic survival analysis关键字,一大堆文献,找分高的,看看人家用什么模型,站在前
人的肩膀上走得更快,这句话在哪都没错。可以用随机生存森林或者Cox风险比例回归模型,是比较常用的。随机森林推荐使用R包:randomForestSRC
将降维之后的特征,一般这就是和终点事件高度相关的特征,代入模型,得到每个病人发生终点事件的风险(或者叫做可能性,可用predict函数得到),
组学中有一个高大尚的名字,叫做“组学标签 radiomic signature”。
- 分高低风险组
在训练集上用模型拟合数据之后,对工科生来讲不难理解,就是再用模型对验证集上每个病人做一个预测,其实就是表示这些病人复发的可能性有
多大,就像Cox回归里面的PI用于对每个病人做预后打分,是类似的。之后的事情就是在验证集上分析了。因为之前我们得到了每个病人发生终点事件的
可能性(模型预测的值),根据这个值,我们取一个cutoff(大部分文献中是用的是训练集中病人预测值的中值,然后也用于验证集),分别把训练集和
验证集的病人分成两组,也就是常见的高低风险组(High/Low risk group)。
- 做K-M曲线
分别在训练集和验证集做K-M曲线,分析高低风险组病人的生存率是否有差别。这里需要使用log-rank(又叫时序检验)假设检验来判断两组生存
率是否有统计学差异。通常问题的零假设是“两组病人生存率的分布在组学标签这一特征上相同”,若log-rank得到的p值小于0.05,则说明可以通过组学
标签将病人分开,分开的高低风险组的两组病人有统计学差异,这就是我们想要的结果——组学标签可以作为一个有效的biomarker。推荐包survival
以上这些已经够随随便便发一个中文期刊了,要想进一步证明组学标签的有效性,还要进行单因素和多因素分析,并且要根据实际问题做更进一步
的分析,以及检验模型的预测能力。
最近找工作,更多的分析等有时间再写。
哦对了,R语言推荐使用Rstudio 装各种包就是一个命令的事情。更详细的参考PPT
这篇关于用R语言用生存资料做基于radiomic(影像组学)的生存分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!