JoVE Logo

登录

需要订阅 JoVE 才能查看此. 登录或开始免费试用。

本文内容

  • 摘要
  • 摘要
  • 引言
  • 研究方案
  • 结果
  • 讨论
  • 披露声明
  • 致谢
  • 材料
  • 参考文献
  • 转载和许可

摘要

动脉内治疗是不能接受手术切除的肝癌患者的护理标准。提出了一种预测这些疗法反应的方法。该技术使用预先程序的临床、人口学和影像学信息来训练能够预测治疗前反应的机器学习模型。

摘要

动脉内治疗是不能接受手术切除的肝癌患者的护理标准。本研究的目的是建立一种预测干预前动脉内治疗反应的方法。

该方法为预测动脉内治疗前的结局提供了一个总体框架。它包括将临床、人口统计学和影像学数据汇集到一群病人身上, 并利用这些数据来训练机器学习模式。训练后的模型应用于新的患者, 以预测其对动脉内治疗反应的可能性。

该方法需要对已经经历过动脉治疗的N名患者的临床、人口学和影像学数据进行采集和分析。这些数据被分析成离散的特征 (年龄, 性别, 肝硬化, 肿瘤增强程度) 和二值化成真/假价值 (例如,年龄超过 60, 男性性别, 肿瘤增强超过设定阈值)。低方差特征和特征与结果的低单变量关联被去除。每个被治疗的患者根据他们是否反应或没有对治疗的反应被标记。因此, 每个训练病人都由一组二进制特征和结果标签表示。机器学习模型是通过对左外病人的1例患者进行训练的。这一过程是重复为每一个N患者。N模型平均到达最后的模型。

该技术是可扩展的, 可以在将来包含其他功能。这也是一个推广的过程, 可用于临床研究问题以外的介入放射学。主要的限制是需要从每个病人手动提取功能。一种流行的现代形式的机器学习称为深入学习不受此限制, 但需要更大的数据集。

引言

肝细胞癌患者非手术候选者, 提供动脉内治疗1,2,3。没有单一的指标确定患者是否会在治疗前对动脉内的治疗作出反应。本研究的目的是演示一种方法, 预测治疗反应的应用方法, 从机器学习。这些模型为医生和病人选择是否进行治疗提供指导。

该协议需要一个可重复的过程, 用于培训和更新从初级患者数据 (临床笔记、人口统计学、实验室数据和成像) 开始的模型。最初为特定功能分析数据, 每个患者由一组二进制特征和二进制结果目标标签表示。结果标签是确定使用建立的基于成像的反应标准的肝细胞治疗4,5,6,7。这些功能和目标标签被传递给机器学习软件, 在特定学习模式 (逻辑回归或随机林)8910中学习特征和结果之间的映射。类似的技术已经应用于放射学和其他癌症研究领域的诊断和治疗预测11,12,13

该方法将计算机科学技术应用于介入放射学领域。传统意义上的介入放射学研究和医学一般依赖于单或寡聚特征分析。例如, 终末期肝病的模型纳入了五临床指标, 以评估肝病的程度。建议的方法的好处是能宽松地增加特征;在示例分析中考虑了二十五项功能。可以按需要添加其他功能。

该技术可应用于其他影像干预, 在这些放射治疗前和干预后的成像数据可用。例如, 经皮治疗后的结局可以用类似的方式预测。这项研究的主要局限是需要手工的副牧师特征纳入模型。数据精选和特征抽取对于从业者来说是耗时的, 可能会阻碍这种机器学习模式的临床应用。

研究方案

1。机器学习的工作站设置

  1. 使用具有以下内容的系统:
    英特尔酷睿2双核处理器或更高 CPU 2.0 GHz
    4 GB 或更多系统内存
    符合 POSIX 的操作系统 (Linux 或 Mac OS) 或微软视窗7
    执行程序和保存文件的用户权限
  2. 安装以下工具:
    蟒蛇 Python3: https://www.anaconda.com/download
    DICOM 到 NIfTI 转换器 (dcm2niix)-https://github.com/rordenlab/dcm2niix
    崇高文本编辑器: https://www.sublimetext.com/
    itk (可选): http://www.itksnap.org
    1. 安装蟒蛇 Python3, dcm2nii 和崇高的文本, 访问他们各自的网站为操作系统特定的安装步骤。
    2. 创建和激活蟒蛇环境。
      畅达创建--名称 mlenv
      畅达激活 mlenv
    3. 安装用于机器学习的蟒蛇包。
      畅达安装 numpy scipy scikit 学习 nltk nibabel
      注意: nltk 包用于分析纯文本临床笔记, 而 nibabel 包为医学图像操作提供了有用的功能。itk 可安装用于从医学图像中分割器官和肿瘤。它有助于将功能限制到特定区域。

2。纯文本临床笔记和结构化临床数据的特征提取

  1. 为项目创建一个父目录, 并为父文件夹中的每个病人创建一个文件夹。目录结构应类似于:
    项目
    Project/Patient_1/
    Project/Patient_2/
    Project/Patient_3/
    ...
  2. 从电子病历 (EMR) 获得明文临床笔记。通过电子病历或医院信息技术 (IT) 办公室通过数据转储, 手动检索笔记。将每个病人的笔记存储在各自的文件夹中。
    项目/Patient_1/History_and_Physical
    项目/Patient_1/Procedure_Note
    1. 决定在模型中包括哪些临床特征。分析这些功能的明文临床备注。Python 自然语言工具包 (nltk) 库提供了用于将文档拆分为句子的有用命令。每个句子都可以被搜索到如黄疸等适当的条件。将每个病人的功能存储在一个具有每行一个功能的文件中。
      项目/Patient_1/功能 .txt:
      67岁
      性男性
      白蛋白3。1
      肝硬化无
      hepatitis_c 没有
      ...
    2. 对于非二进制功能, 请在所有患者中取每个特征的中值。将每个特征 Binarize 为 true (1) 或 false (0) 值 (基于中间值)。
      项目/Patient_1/Binary_Features:
      age_over_60 0
      male _ 1
      albumin_less_than_3.5 1
      presence_of_cirrhosis 0
      hepatitis_c 0
      ...

3。医学图像的特征提取

注: 有关代码示例, 请参见步骤3补充材料。

  1. 从医院 PACS 下载前、后治疗磁共振 DICOM 图像。将图像存储在相应的患者文件夹中。
    项目
    项目/Patient_1/Pre_TACE_MRI_Pre-对比. dcm
    项目/Patient_1/Pre_TACE_MRI_Arterial. dcm
    项目/Patient_1/Post_TACE_MRI_Pre-对比. dcm
    项目/Patient_1/Post_TACE_MRI_Arterial. dcm
  2. 使用 dcm2niix 程序将 DICOM 图像转换为 NIfTI 格式。以下命令将在指定文件夹中转换所有. dcm 图像。对所有病人重复。
    dcm2niix Project/Patient_1/
    dcm2niix Project/Patient_2/
  3. 将每个 NIfTI 文件加载到 Python 中。
    导入 nibabel
    图像 = nibabel 负载 (' 项目/Patient_1/Pre_TACE_MRI_Pre-对比. dcm ')
    1. 规范化每个图像的方向。这可以确保 x、y 和 z 轴是相同的, 而不管用于获取图像的机器是什么。
      cImage = nibabel as_closest_canonical (图像)
  4. 使用 itk (或类似的软件包) 来分割每个图像的二进制肝脏和肿瘤面具。
    项目/Patient_1/Pre_TACE_MRI_Pre-Contrast_Liver_Mask. bin
    项目/Patient_1/Pre_TACE_MRI_Pre-Contrast_Tumor_Mask. bin
  5. 把肝脏和肿瘤面罩读入 Python。下面的代码演示如何更正方向问题, 以便将掩码沿与 MR 图像相同的标准轴进行定位。
    导入 numpy 为 np
    以开放 (liver_mask_file, ' rb ') 作为 f:
    liver_mask = f. 阅读 ()
    liver_mask = np. fromstring (liver_mask, dtype='uint8)
    liver_mask = np. 重塑 (liver_mask, 比较, 形状, 顺序 = ' F ')
    liver_mask = liver_mask [:,::-1,:]
    liver_mask [liver_mask > 0] = 1
    1. 用肝脏和肿瘤面罩隔离含有肝脏和肿瘤的素。
      肝脏 = np. 复制 (cImage)
      肝脏 [liver_mask < = 0] = 0
  6. 计算平均肝脏增强功能。
    mean_liver_enhancement = 平均值 (肝脏)
    1. 计算肝脏容积特征。
      pixdim = cImage 头 [' pixdim ']
      单位 = 前. 页眉 [' xyzt_units ']
      dx, dy, dz = pre_pixdim [1:4]
      liver_volume = 长度 (肝脏) * dx * dx * dz
    2. 选按需要计算附加功能。
  7. 使用图像功能更新特定于病人的功能文件。
    项目/Patient_1/功能 .txt:
    67岁
    性男性
    白蛋白3。1
    肝硬化无
    hepatitis_c 没有
    pre_tace_mean_liver_enhancement 78
    pre_tace_liver_volume 10000
    1. 在步骤2.2.2 中计算每个成像特征和 binarize 的中间值。
      项目/Patient_1/Binary_Features:
      age_over_60 0
      male _ 1
      albumin_less_than_3.5 1
      presence_of_cirrhosis 0
      hepatitis_c 0
      pre_tace_mean_liver_enhancement 1
      pre_tace_liver_volume 0

4. 特征集合和减少

注: 有关代码示例, 请参见步骤4补充材料。

  1. 将每个病人的 Binary_Features 文件合并到一个电子表格中, 其中有 y 轴上的患者和 x 轴上的特征。
    病人年龄 > 60男性性别白蛋白 < 3。5肝硬化的存在丙型肝炎目前平均肝脏增强 > 50肝脏容积 > 20000
    10110010
    21110000
    30110100
    1. 将 qEASL 结果响应标签添加为最后一列。
      病人年龄 > 60男性性别白蛋白 < 3。5肝硬化的存在丙型肝炎目前平均肝脏增强 > 50肝脏容积 > 20000qEASL 响应程序
      101100101
      211100001
      301101000
    2. 将电子表格导出为制表符分隔的文件。
      项目/ML_Matrix:
      PatientAge > 60 男性性白蛋白 < 3.5 肝硬化丙型肝炎目前平均肝脏增强 > 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. 从考虑中删除低方差特征。
    导入 numpy 为 np
    从 sklearn. feature_selection 进口 VarianceThreshold

    # 读取二进制矩阵。
    功能 = []
    标签 = []
    对于 i, 我在枚举 (sys):
    如果我 = = 0
    继续
    n_fs_L (). 拆分 ("\ t")
    功能. 追加 ([浮动 (_) 为 _ 在 n_fs_L [1:-1]])
    标签追加 (n_fs_L [-1])
    X = np 数组 (特征)
    y = np 数组 (标签)

    # 计算在至少20% 的响应者和非 respnders 中出现的特征。
    型号 = VarianceThreshold (阈值 = 0.8 * (1-0.8))
    X_new = 型号 fit_transform (X, y)
    男性性别, 白蛋白 < 3.5, 肝硬化的存在, 肝脏体积 > 2000 功能已被删除。
    病人年龄 > 60丙型肝炎目前平均肝脏增强 > 50qEASL 响应程序
    10011
    21001
    30100
  3. 删除与结果的低单变量关联的特征。仅筛选传递了4.2 的功能。保留天花板 (日志2(N)) 功能, 其中N是数字病人。天花板 (日志2(3)) = 2。

    导入数学
    从 sklearn. feature_selection 进口 SelectKBest
    从 sklearn. feature_selection 进口 chi2

    # 在二进制矩阵中读4.2。1
    ...

    # 通过单变量关联计算顶部天花板 (log2 (N)) 特征。
    k = 数学. 天花板 (log2 (y))
    型号 = SelectKBest (chi2, k = k)
    X_new = 型号 fit_transform (X, y)

    男性性别年龄 > 60 功能已从4.2.1 的剩余功能中删除。
病人丙型肝炎目前平均肝脏增强 > 50qEASL 响应程序
1011
2001
3100

5。模型培训和测试

请参见步骤5代码示例的辅助材料

  1. 用二进制特征矩阵从4.3 训练一个逻辑回归模型。
    导入数学
    从 sklearn. linear_model 进口 LogisticRegression

    # 在二进制矩阵中读取, 如4.2 和4.3。
    ...

    每个病人都要为其他病人训练一个模型
    分数 = 0。0
    型号 = []
    为患者在 len (X):
    除了一个病人以外, 所有的火车模型。
    train_x = np 数组 ([_ 为 i, _ 在枚举 (x) 如果我! = 患者])
    train_y = np 数组 ([_ 为 i, _ 在枚举 (y) 如果我! = 患者])
    型号 = LogisticRegression (C = 1e15)
    模型. 适合 (train_x, train_y)

    测试左外病人
    y_prediction = 模型. 预测 (X [病人])
    如果 y_prediction = y [患者]:
    分数 + = 1
    模型. 追加 (模型)
  2. 利用4.2.2 中的二进制特征矩阵对随机森林模型进行训练。步骤与5.2.1 相同, 但模型实例化应更新如下:
    从 sklearn. 合奏进口 RandomForestClassifier
    ...
    型号 = RandomForestClassifier (n_estimators = 100)
    ...
  3. 打印出分数/len (X) 5.1 和5.2。这代表了所有的逻辑回归模型和所有随机森林模型的平均精度。所有N模型应用于新患者的平均分类作为预测结果

结果

将该方法应用于36例肝癌患者的介入治疗。二十五功能被识别和二值化使用步骤1-5。五功能满足方差和单变量关联筛选器 (参见步骤5.1 和 5.2), 并用于模型培训。每个病人在 qEASL 反应标准下被标记为应答器或非应答器。因此, 特征矩阵是一个 36 x 5 数组, 而目标标签向量是 36 x 1。

采用逻辑回归和随机森林分类器进行模型拟合。一...

讨论

非手术切除的肝癌患者, 均提供动脉内治疗。很少有方法来确定病人是否会做出治疗的反应。治疗后评估技术依赖于肿瘤大小或肿瘤对比吸收的变化。这些被称为反应标准, 最准确的是定量欧洲协会为研究肝脏 (qEASL) 标准。qEASL 依赖于体积和增强变化后的治疗, 以预测的可能性反应。尽管 qEASL 的优势, 但它仍然是治疗后评价标准, 不能帮助治疗计划。

有必要评估哪些病...

披露声明

作为一个软件咨询的健康保真, 公司使用类似的机器学习技术的临床笔记, 以优化医疗报销。

J.F.G. 从支链医疗保健, BTG, 门槛药品 (旧金山, 加利福尼亚), 波士顿科学和泰尔茂 (Elkton, 马里兰州) 收取个人费用;并为先见之明实验室 (康涅狄格州西港) 提供有偿咨询。

其他的作者都没有发现利益冲突。

致谢

他获得了耶鲁医学院学生研究办公室的资助。

L.J.S. 获得来自国立卫生研究院 (NIH/R01CA206180)、Leopoldina 博士后奖学金和贡德放射科学基金会 (德国亚琛) 的赠款。

国家卫生研究院 (NIH/R01CA206180)、飞利浦医疗机构和德国-以色列科研开发基金会 (耶路撒冷、以色列和德国 Neuherberg) 获得赠款;以及来自贡德辐射科学基金会和拉维埃耶柏林健康临床科学家计划 (德国柏林) 的奖学金。

J.S.D. 和 M.L. 获得国立卫生研究院 (NIH/R01CA206180) 和飞利浦医疗 (荷兰最好) 的赠款。

J.F.G. 获得国立卫生研究院 (NIH/R01CA206180)、飞利浦医疗、BTG (伦敦、英国)、波士顿科学 (马尔伯勒、马萨诸塞州) 和支链医疗保健 (维勒班特、法国) 的赠款。

材料

NameCompanyCatalog NumberComments
Computer workstationN/AN/AIntel Core 2 Duo or higher CPU at 2.0 GHz; 4 GB or more system memory; POSIX-compliant operating system (Linux or Mac OS) or Microsoft Windows 7; User permissions for executing programs and saving files
Anaconda Python 3Anaconda, Inc.Version 3.6Python 3 system and libraries packaged for scientists and researchers
DICOM to NIfTINeuroImaging Tools & Resources CollaboratoryVersion 1.0 (4/4/2018 release)Standalone program for converting DICOM imaging files to NIfTI format
Sublime Text EditorSublime HQ Pty LtdVersion 3 (Build 3143)Text-editor for writing Python code
Required Python LibrariesN/AVersion 3.2.25 (nltk)
Version 0.19.1 (scikit-learn)
Natural Language Toolkit (nltk)
Scikit-learn
ITK-SNAPN/AVersion 3.6.0Optional toolkit for performing segmentation of organ systems in medical images.

参考文献

  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. , 738 (2006).
  10. Alpaydin, E. . Introduction to machine learning. Third edition. , 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 文章的文本或图形

请求许可

探索更多文章

140

This article has been published

Video Coming Soon

JoVE Logo

政策

使用条款

隐私

科研

教育

关于 JoVE

版权所属 © 2025 MyJoVE 公司版权所有,本公司不涉及任何医疗业务和医疗服务。