Grail最近在官网更新了几篇在ASCO发表的Poster,其中有一篇是关于Galleri模型的,在此研究一下。 前边曾经写过一篇Grail建模的文章,只使用甲基化特征进行建模,感兴趣的可移步甲基化泛癌早筛—Grail是如何建模的? 此次Grail新模型测试是在临床实验SYMPLIFY基础上进行的,SYMPLIFY是验证Galleri在高风险人群(携带有可能是癌症引起相关症状)中表现的临床实验。 此次模型只测试了第一步的癌症鉴别模型,组织溯源模型未有更新。 在原甲基化模型分值的基础上,测试联合病人的年龄,性别,一堆可能由癌症引起的症状及血常规检测的一些指标。 使用的模型还是逻辑回归,这模型真是无敌了。。明明是很简单最基础的机器学习模型,但是不管泛癌还是单癌都用它。 结果见下表,主要看红框内总的AUC变化: 甲基化模型单独的AUC是0.82。 首先联合最易收集的年龄和性别:加入年龄之后AUC提升到了0.87,再继续加入性别的话AUC还是0.87没再提高。 联合年龄的效果要好于联合性别,这个也说的过去,毕竟甲基化和衰老密切相关,即使训练时做了年龄平衡,也很难完全抹除年龄信号。 然后再联合一堆可能由癌症引起的症状,比如可能由肺癌引起的症状:食欲不振,咳嗽,疲劳,咳血,呼吸急促,体重减轻;上消化道症状: 腹部肿块,腹痛,贫血,食欲不振,消化不良,吞咽困难,恶心,反流,呕吐,体重减轻等。 至于如何将这些症状特征与甲基化模型分值联合,很简单:只能分类的表型标为0或1,能衡量程度的表型使用分数或数字进行表示。 这么多症状也不是全部纳入,至于具体纳入哪些症状,使用了“backward selection”的方法,即后向消元方法,从包含所有自变量的模型开始,使用逐步回归确定一个变量是否应该从模型中被删除,一次只能删除一个变量,当模型中的自变量的p值没有大于α(Grail设置为0.05)时,后向消元过程结束。 说起来费劲,其实有现成的python程序可以实现,从别处找的代码,我还没测试,仅供参考:
将上一步已联合年龄,性别的模型,再联合15个在多个癌种中都可能出现的症状特征后,可将AUC进一步提升至0.89。 最后是联合血液常规检测的相关指标:血红蛋白,MCH(红细胞平均体积),MCV(血红蛋白含量),血小板,WBC(白细胞数量),ALP(碱性磷酸酶),白蛋白,胆红素。 但是有血常规数据的参与者不多,年龄,性别和症状的信息更易收集,填个调查问卷就好了,血常规毕竟还需要单独抽血进行检测。 最后只有152个参与者有血常规检测数据,竟然其中147个都是癌症。。这个数据也太不平衡了,看来阳性患者有点慌,后续应该不少都做了血常规。。不过Grail还是继续在这个数据上做了联合建模。 最后三者联合的AUC达到了0.93,从最初的0.82达到了0.93。。算是质的飞跃么? 有血常规数据的阴性样本只有5个,我估计他的这个ROC曲线也没办法画,你看Grail也没加,,如果只算到联合症状的话AUC从0.82提高到了0.89,也还可以哈。 当然这个是在测试集上联合甲基化模型的结果,后续想用的话,肯定还需要在训练集上重新训练模型,再进行大规模前瞻性验证。。你看看改个模型好费劲。。 也说不准可以缩减一些指标,尽量找原来那些临床实验的样本都有的指标,然后回头建模测试,,不知道可行否。 等等看Grail后边怎么搞吧。。 |