方法文章

利用机器学习预测影像引导治疗的疗效反应:以肝细胞癌经动脉治疗为例

DOI:

10.3791/58382

2018年10月10日

本文内容

摘要

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

对于无法接受手术切除的肝细胞癌患者,经动脉治疗是标准护理方案。本文提出了一种预测此类治疗反应的方法。该技术利用治疗前的临床、人口统计学和影像学信息,训练机器学习模型,以在治疗前预测治疗反应。

摘要

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

对于无法接受手术切除的肝细胞癌患者,动脉内治疗是标准护理方案。本研究的目的是在干预前建立一种预测动脉内治疗反应的方法。

该方法为动脉内治疗前的疗效预测提供了一个通用框架。该框架包括汇总一组患者的临床、人口统计学和影像学数据,并利用这些数据训练机器学习模型。训练好的模型可用于新患者,以预测其对动脉内治疗产生应答的可能性。

该方法包括从临床、人口统计学和影像学数据中进行采集与解析 N 已接受经动脉治疗的患者。这些数据被解析为离散特征(年龄、性别、肝硬化、肿瘤强化程度, 等等。)并二值化为真/假值(例如, 年龄超过60岁、男性、肿瘤强化程度超过设定阈值 等等。)。去除方差较低的特征以及与结局单变量关联性较弱的特征。根据每位接受治疗的患者是否对治疗产生应答,对其进行标注。因此,每位训练集患者均以一组二元特征及一个结局标签表示。采用以下方式训练机器学习模型: N - 1 名患者,对剩余的那名患者进行测试。此过程对每位患者均重复一次。 N 患者。 N 将模型进行平均以得到最终模型。

该技术具有可扩展性,能够在未来纳入更多特征。它也是一种可推广的流程,可应用于介入放射学以外的临床研究问题。主要局限在于需要手动从每位患者中提取特征。一种流行的现代机器学习方法——深度学习——不受此限制,但需要更大的数据集。

引言

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

对于不适合手术的肝细胞癌患者,可采用经动脉治疗1,2,3。目前尚无单一指标可在治疗实施前确定患者是否会对经动脉治疗产生应答。本研究的目的是展示一种通过机器学习方法预测治疗应答的模型。此类模型可为临床医生和患者在决定是否进行治疗时提供指导。

该方案包含一个可重复的流程,用于从患者原始数据(临床记录、人口统计学信息、实验室数据和影像数据)出发,训练并更新模型。首先对数据进行解析以提取特定特征,每位患者由一组二元特征和一个二元结果目标标签表示。结果标签根据既定的基于影像的肝细胞癌治疗反应标准确定4,5,6,7。这些特征与目标标签被输入机器学习软件,在特定学习模型(逻辑回归或随机森林)下学习特征与结果之间的映射关系8,9,10。类似的技术已应用于放射学及癌症研究的其他领域,用于诊断和治疗效果预测11,12,13

该方法将计算机科学的技术应用于介入放射学领域。传统的介入放射学以及医学领域的显著性研究通常依赖于单变量或少变量特征分析。例如,终末期肝病模型(Model for End-Stage Liver Disease)结合了五项临床指标来评估肝病的严重程度。本方法的优势在于可灵活地增加特征数量;在示例分析中考虑了25项特征,且可根据需要进一步添加更多特征。

该技术可应用于其他放射学干预措施,前提是干预前后的影像数据均可获得。例如,可采用类似方法预测经皮治疗后的疗效。本研究的主要局限性在于需要手动筛选纳入模型的特征。数据整理和特征提取过程耗时较长,可能阻碍此类机器学习模型在临床中的推广应用。

访问受限。请登录或开始试用以查看此内容。

方案

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

1 . 机器学习工作站设置

  1. 使用满足以下条件的系统:
    2.0 GHz 或更高主频的 Intel Core 2 Duo 及以上 CPU
    4 GB 或更大的系统内存
    符合 POSIX 标准的操作系统(Linux 或 Mac OS)或 Microsoft Windows 7
    具备运行程序和保存文件的用户权限
  2. 安装以下工具:
    Anaconda Python3:https://www.anaconda.com/download
    DICOM 转 NIfTI 转换器(dcm2niix) - https://github.com/rordenlab/dcm2niix
    Sublime Text 编辑器:https://www.sublimetext.com/
    itk-SNAP(可选):http://www.itksnap.org
    1. 安装 Anaconda Python3、dcm2nii 和 Sublime Text,请访问其各自官网以获取针对特定操作系统的安装步骤。
    2. 创建并激活 Anaconda 环境。
      conda create --name mlenv
      conda activate mlenv
    3. 安装用于机器学习的 Anaconda 软件包。
      conda install numpy scipy scikit-learn nltk nibabel
      注意:nltk 软件包可用于解析纯文本形式的临床记录,而 nibabel 软件包提供了用于医学图像处理的有用函数。itk-SNAP 可用于从医学图像中分割器官和肿瘤,有助于将特征限制在特定区域内。

2 . 从纯文本临床记录和结构化临床数据中提取特征

  1. 为项目创建一个主目录,并在主目录下为每位患者创建一个独立文件夹。目录结构应如下所示:
    项目/
    项目/患者_1/
    项目/患者_2/
    项目/患者_3/
    ...
  2. 从电子病历系统(EMR)中获取纯文本格式的临床记录。可通过电子病历系统手动提取,或通过医院信息技术(IT)部门以数据导出方式获取。将每位患者的记录分别存储在其对应的文件夹中。
    项目/患者_1/病史与体格检查.txt
    ​项目/患者_1/操作记录.txt
    1. 确定模型中需包含的临床特征。对纯文本临床记录进行特征提取。Python 自然语言工具包(nltk)库提供了将文档拆分为句子的有用命令。可逐句搜索如“黄疸”等目标术语。将每位患者的特征存储在一个文件中,每行记录一个特征。
      项目/患者_1/特征.txt:
      年龄 67
      性别 男
      白蛋白 3.1
      肝硬化 否
      丙型肝炎 否
      ...
    2. 对于非二分类特征,计算该特征在所有患者中的中位数值。根据中位数将每个特征二值化为真(1)或假(0)。
      项目/患者_1/二值化特征.txt:
      年龄大于60 0
      男性性别 1
      白蛋白低于3.5 1
      存在肝硬化 0
      丙型肝炎 0
      ...

3 . 从医学图像中提取特征

注意:代码示例请参见第3步的补充材料。

  1. 从医院PACS系统下载治疗前和治疗后的磁共振DICOM图像。将图像存储在相应的患者文件夹中。
    项目/
    项目/患者_1/Pre_TACE_MRI_Pre-Contrast.dcm
    项目/患者_1/Pre_TACE_MRI_Arterial.dcm
    项目/患者_1/Post_TACE_MRI_Pre-Constrast.dcm
    项目/患者_1/Post_TACE_MRI_Arterial.dcm
  2. 使用dcm2niix程序将DICOM图像转换为NIfTI格式。以下命令将指定文件夹中的所有.dcm图像进行转换。对所有患者重复此步骤。
    dcm2niix 项目/患者_1/
    dcm2niix 项目/患者_2/
  3. 将每个NIfTI文件加载到Python中。
    import nibabel
    ​image = nibabel.load('项目/患者_1/Pre_TACE_MRI_Pre-Contrast.dcm')
    1. 对每幅图像进行方向标准化。这可确保x、y和z轴方向一致,不受图像采集设备的影响。
      cImage = nibabel.as_closest_canonical(image)
  4. 使用itk-SNAP(或等效软件)对每幅图像进行肝脏和肿瘤的二值分割,生成掩膜文件。
    项目/患者_1/Pre_TACE_MRI_Pre-Contrast_Liver_Mask.bin
    项目/患者_1/Pre_TACE_MRI_Pre-Contrast_Tumor_Mask.bin
  5. 将肝脏和肿瘤掩膜读入Python。以下代码演示了如何校正掩膜的方向,使其与MR图像的方向一致。
    import numpy as np
    with open(liver_mask_file, 'rb') as f:
    liver_mask = f.read()
    liver_mask = np.fromstring(liver_mask, dtype='uint8')
    liver_mask = np.reshape(liver_mask, diff.shape, order='F')
    liver_mask = liver_mask[:,::-1,:]
    ​liver_mask[liver_mask > 0] = 1
    1. 使用肝脏和肿瘤掩膜提取包含肝脏和肿瘤的体素。
      liver = np.copy(cImage)
      liver[liver_mask <= 0] = 0
  6. 计算肝脏平均强化特征。
    ​mean_liver_enhancement = mean(liver)
    1. 计算肝脏体积特征。
      pixdim = cImage.header['pixdim']
      units = pre.header['xyzt_units']
      dx, dy, dz = pre_pixdim[1:4]
      liver_volume = length(liver) * dx * dx * dz
    2. (可选)根据需要计算其他特征。
  7. 使用图像特征更新每位患者的特征文件。
    项目/患者_1/Features.txt:
    年龄 67
    性别 男
    白蛋白 3.1
    肝硬化 否
    丙型肝炎 否
    治疗前肝脏平均强化值 78
    ​治疗前肝脏体积 10000
    1. 计算每个影像特征的中位数值,并按照步骤2.2.2进行二值化处理。
      项目/患者_1/Binary_Features.txt:
      年龄大于60岁 0
      男性 1
      白蛋白低于3.5 1
      存在肝硬化 0
      丙型肝炎 0
      治疗前肝脏平均强化值 1
      治疗前肝脏体积 0

4. 特征聚合与降维

注意:代码示例请参见第4步的补充材料。

  1. 将每位患者的 Binary_Features.txt 文件合并成一个电子表格,其中纵轴为患者,横轴为特征。
    患者年龄 > 60男性性别白蛋白 < 3.5肝硬化存在丙型肝炎存在平均肝脏强化 > 50肝脏体积 > 20000
    10110010
    21110000
    30110100
    1. 将 qEASL 结局反应标签作为最后一列添加。
      患者年龄 > 60男性性别白蛋白 < 3.5肝硬化存在丙型肝炎存在平均肝脏强化 > 50肝脏体积 > 20000qEASL 应答者
      101100101
      211100001
      301101000
    2. 将电子表格导出为制表符分隔的文件。
      Project/ML_Matrix.tsv:
      患者年龄 > 60     男性性别     白蛋白 < 3.5     肝硬化存在     丙型肝炎 C 存在     平均肝脏强化 > 50     肝脏体积 > 20000     qEASL 应答者
      1   0   1   1   0   0   1   0   1
      2   1   1   1   0   0   0   0   1
      3   0   1   1   0   1   0   0   0
  2. 排除低方差特征。
    import numpy as np
    from sklearn.feature_selection import VarianceThreshold

    # 读取二进制矩阵。
    features = []
    labels = []
    for i, L in enumerate(sys.stdin):
    if i == 0
    continue
    n_fs_L = L.strip().split('\t')
    features.append([float(_) for _ in n_fs_L[1:-1]])
    labels.append(n_fs_L[-1])
    X = np.array(features)
    y = np.array(labels)

    # 计算在至少20%的应答者和非应答者中出现的特征。
    model = VarianceThreshold(threshold=0.8 * (1 - 0.8))
    X_new = model.fit_transform(X, y)
    男性性别、白蛋白 < 3.5、肝硬化存在以及肝脏体积 > 2000 这些特征已被移除。
    患者年龄 > 60丙型肝炎存在平均肝脏强化 > 50qEASL 应答者
    10011
    21001
    30100
  3. 移除与结局单变量关联性低的特征。仅筛选通过步骤4.2的特征。保留 ceil(log2(N)) 个特征,其中 N 为患者数量。Ceil(Log2(3)) = 2。

    import math
    from sklearn.feature_selection import SelectKBest
    from sklearn.feature_selection import chi2

    # 如步骤4.2.1中所述读取二进制矩阵
    ...

    # 通过单变量关联性计算前 ceil(log2(N)) 个特征。
    k = math.ceil(log2(length(y)))
    model = SelectKBest(chi2, k=k)
    X_new = model.fit_transform(X, y)

    男性性别 年龄 > 60 特征已从步骤4.2.1中剩余的特征中移除。
患者存在丙型肝炎平均肝脏强化 > 50qEASL 应答者
1011
2001
3100

5 . 模型训练与测试

请参见第5步的补充材料以获取代码示例

  1. 使用4.3节中的二值特征矩阵训练逻辑回归模型。
    import math
    from sklearn.linear_model import LogisticRegression

    # 如4.2和4.3节所述,读取二值矩阵。
    ...

    # 对每位患者,使用其余所有患者的数据训练模型。
    score = 0.0
    models = []
    for patient in len(X):
    # 在除一位患者外的所有患者数据上训练模型。
    train_x = np.array([_ for i, _ in enumerate(X) if i != patient])
    train_y = np.array([_ for i, _ in enumerate(y) if i != patient])
    model = LogisticRegression(C=1e15)
    model.fit(train_x, train_y)

    # 在被排除的患者数据上进行测试。
    y_prediction = model.predict(X[patient])
    if y_prediction == y[patient]:
         score += 1
         models.append(model)
  2. 使用4.2.2节中的二值特征矩阵训练随机森林模型。步骤与5.2.1节完全相同,仅需将模型实例化部分更新如下:
    from sklearn.ensemble import RandomForestClassifier
    ...
    model = RandomForestClassifier(n_estimators=100)
    ...
  3. 输出5.1和5.2节的 score / len(X)。该值分别表示所有逻辑回归模型和所有随机森林模型的平均准确率。所有 N 个模型均应应用于新患者,以平均分类结果作为最终预测输出。

访问受限。请登录或开始试用以查看此内容。

结果

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

该方法应用于36名接受过经动脉治疗的肝细胞癌患者。通过步骤1-5识别并二值化了25个特征。其中5个特征同时满足方差和单变量关联筛选条件(见步骤5.1和5.2),用于模型训练。根据qEASL疗效评价标准,每名患者被标记为治疗有反应者或无反应者。因此,特征矩阵为36×5的数组,目标标签向量为36×1。

采用逻辑回归和随机森林分类器进行模型拟合。使用留一法交叉验证评估所得到模型的性能。另外训练了两个模型,仅使用排名前两位的特征(肝硬化的存在以及经导管动脉化疗栓塞术前肿瘤信号强度大于27.0)。图1展示了随着特征增加,模型性能的变化情况。逻辑回归和随机森林模型对经导管动脉化疗栓塞治疗反应的预测总体准确率为78%(敏感性62.5%,特异性82.1%,阳性预测值50.0%,阴性预测值88.5%)。

访问受限。请登录或开始试用以查看此内容。

讨论

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

对于不适合手术切除的肝细胞癌患者,可采用经动脉治疗。目前很少有方法能够在治疗前确定患者是否会产生应答。治疗后的评估技术依赖于肿瘤大小或肿瘤对比剂摄取的变化。这些评估标准被称为应答标准,其中最准确的是定量欧洲肝脏研究学会标准(qEASL)。qEASL通过治疗后肿瘤体积和强化程度的变化来预测应答可能性。尽管qEASL具有优势,但它仍是一种治疗后的评估标准,无法用于指导治疗方案的制定。

在实施介入治疗前,有必要评估哪些患者可能对经动脉治疗产生应答。本方案中展示的方法结合了临床、实验室和影像学特征,利用计算机科学和统计学领域的技术构建预测模型。通过机器学习模型,将接受过经动脉治疗患者的这些特征与其qEASL治疗结果进行映射。随后,该模型可用于即将接受治疗的新患者,仅根据其治疗前的特征来预测其qEASL应答情况。

步骤1描述了机器学习工作站的设置。它提供了关于如何配置具备必要工具的工作站的简要说明。步骤2至4详细介绍了如何解析临床和影像数据以获取感兴趣的特征。这些步骤至关重要,因为适当特征的选择将决定模型的有效性。为便...

访问受限。请登录或开始试用以查看此内容。

披露

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

A.A. 在 Health Fidelity, Inc. 担任软件顾问,该公司在临床记录上应用类似的机器学习技术,以优化医疗报销。

J.F.G. 收到来自Guerbet Healthcare、BTG、Threshold Pharmaceuticals(美国加利福尼亚州旧金山)、Boston Scientific和Terumo(美国马里兰州埃尔克顿)的个人报酬;并担任Prescience Labs(美国康涅狄格州韦斯特波特)的有偿顾问。

其他所有作者均声明不存在利益冲突。

致谢

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

A.A. 获得了耶鲁医学院学生研究办公室的经费支持。

L.J.S. 获得美国国立卫生研究院(NIH/NCI R01CA206180)、Leopoldina 博士后奖学金以及放射科学 Rolf W. Guenther 基金会(德国亚琛)的资助。

J.C. 获得美国国立卫生研究院(NIH/NCI R01CA206180)、飞利浦医疗以及德以科学与开发基金会(耶路撒冷,以色列和诺伊赫贝格,德国)的资助;同时获得放射科学Rolf W. Guenther基金会和柏林夏里特医学院健康研究所临床科学家项目(柏林,德国)的奖学金。

J.S.D. 和 M.L. 获得美国国立卫生研究院(NIH/NCI R01CA206180)和飞利浦医疗(荷兰 Best)的资助。

J.F.G. 收到美国国立卫生研究院(NIH/NCI R01CA206180)、飞利浦医疗、BTG(英国伦敦)、波士顿科学(美国马萨诸塞州马尔伯勒)和加伯医疗(法国维勒潘特)的资助。

访问受限。请登录或开始试用以查看此内容。

材料

本文使用的材料清单
姓名公司目录编号评论
计算机工作站N/AN/AIntel Core 2 Duo 或更高 CPU,主频 2.0 GHz;4 GB 或更大系统内存;符合 POSIX 标准的操作系统(Linux 或 Mac OS)或 Microsoft Windows 7;具备运行程序和保存文件的用户权限
Anaconda Python 3Anaconda, Inc.版本 3.6面向科研人员和研究人员打包的 Python 3 系统及库
DICOM 转 NIfTINeuroImaging Tools & Resources Collaboratory版本 1.0(2018 年 4 月 4 日发布)用于将 DICOM 影像文件转换为 NIfTI 格式的独立程序
Sublime 文本编辑器Sublime HQ Pty Ltd版本 3(构建版本 3143)用于编写 Python 代码的文本编辑器
必需的 Python 库N/A版本 3.2.25(nltk)
版本 0.19.1(scikit-learn)
自然语言工具包(nltk)
Scikit-learn
ITK-SNAPN/A版本 3.6.0可选工具包,用于对医学影像中的器官系统进行分割

参考文献

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Benson, A., et al. NCCN clinical practice guidelines in oncology: hepatobiliary cancers. J National Comprehensive Cancer Network. 7 (4), 350-391 (2009).
  2. Siegel, R., Miller, K., Jemal, A. Cancer statistics, 2016. CA Cancer J Clin. 66 (1), 7-30 (2016).
  3. Bruix, J., et al. Clinical management of hepatocellular carcinoma. Conclusions of the Barcelona-2000 European Association for the Study of the Liver conference. Journal of Hepatology. 35 (3), 421-430 (2001).
  4. Eisenhauer, E., et al. New response evaluation criteria in solid tumours: revised RECIST guideline (version 1.1). European Journal of Cancer. 45 (2), 228-247 (2009).
  5. Gillmore, R., et al. EASL and mRECIST responses are independent prognostic factors for survival in hepatocellular cancer patients treated with transarterial embolization. Journal of Hepatology. 55 (6), 1309-1316 (2011).
  6. Lin, M., et al. Quantitative and volumetric European Association for the Study of the Liver and Response Evaluation Criteria in Solid Tumors measurements: feasibility of a semiautomated software method to assess tumor response after transcatheter arterial chemoembolization. Journal of Vascular and Interventional Radiology. 23 (12), 1629-1637 (2012).
  7. Tacher, V., et al. Comparison of Existing Response Criteria in Patients with Hepatocellular Carcinoma Treated with Transarterial Chemoembolization Using a 3D Quantitative Approach. Radiology. 278 (1), 275-284 (2016).
  8. Pedregosa, F., et al. Scikit-learn: Machine Learning in Python. Journal of Machine Learning Research. 12, 2825-2830 (2011).
  9. Bishop, C. Pattern recognition and machine learning. , Springer. New York. 738(2006).
  10. Alpaydin, E. Introduction to machine learning. Third edition. , The MIT Press. Cambridge, Massachusetts. 613(2014).
  11. Kim, S., Cho, K., Oh, S. Development of machine learning models for diagnosis of glaucoma. PLoS One. 12 (5), (2017).
  12. Son, Y., Kim, H., Kim, E., Choi, S., Lee, S. Application of support vector machine for prediction of medication adherence in heart failure patients. Healthcare Informatics Research. 16 (4), 253-259 (2010).
  13. Wang, S., Summers, R. Machine learning and radiology. Medical Image Analysis. 16 (5), 933-951 (2012).
  14. Abajian, A., et al. Predicting Treatment Response to Intra-arterial Therapies for Hepatocellular Carcinoma with the Use of Supervised Machine Learning-An Artificial Intelligence Concept. Journal of Vascular and Interventional Radiology. , (2018).

访问受限。请登录或开始试用以查看此内容。

重印与许可

申请许可以重复使用本 JoVE 文章的文本或图表

申请许可

标签

相关文章