影像组学实战体系 · 第 4 卷 / 共 6 卷

从安装、配置到批处理与异常排障

本卷导读

以 PyRadiomics 为主线,讲解 IBSI 特征定义、输入数据要求、滤波器与特征类别、YAML 配置、批处理流程,以及几何不匹配、标签缺失、矩阵不可计算等常见故障。

知识结构

  1. 工具选型与运行环境
  2. IBSI 标准与特征体系
  3. 配置、批处理与体素级提取
  4. 常见异常与排障
  5. 引用、版本与可复现性

工具选型与运行环境

PyRadiomics 适合高通量、可脚本化的特征提取,3D Slicer 适合交互式核查。两者不是替代关系,而是分别承担批量计算与可视化质控。

使用python进行影像组学特征提取,请安装pyradiomics,注意拼写,注意不是radiomics。但在使用时,导入的包为 radiomics,即 import radiomics。在构建 PyRadiomics 特征提取环境时,包管理名称与 Python 模块导入名称存在命名差异:通过 pip 或 conda 安装时,标准发行包名称为pyradiomics(如 pip install pyradiomics);而在 Python 脚本中调用特征提取器时,顶层模块名称为 radiomics(如 from radiomics import featureextractor)。注意切勿误装 PyPI 上同名的无关占位包 radiomics,否则会导致无法导入 featureextractor 核心类。

可先通过pip -V,确定库安装位置。再手动进入库进行删除。

在 Python 3.8+ 环境下通过 pip 安装pyradiomics 时,若遇到 Cannot uninstall 'ruamel-yaml'(通常源于 Conda 基础环境已通过 distutils 安装了旧版 ruamel_yaml,无完整 .dist-info 元数据记录),可采用以下三种标准化工程方案解决:(1)在命令中追加 --ignore-installed ruamel.yaml 强制覆盖安装;(2)先行执行 conda install -c conda-forge ruamel.yaml 统一由 Conda 接管依赖;(3)通过 pip -V 定位 site-packages 目录,手动移除残留的 ruamel* 文件夹后再执行安装。

使用pyradiomics库进行影像组学特征提取时,提示数据类型错误。解决方法:通过代码重建类型错误的文件,一般可改为Int8类型数据。

PyRadiomics 底层基于 SimpleITK C++ 引擎计算纹理矩阵与形态学特征,对输入图像与掩膜(Mask)的像素数据类型(PixelID)有严格要求:掩膜必须为整型(如sitkUInt8、sitkInt16、sitkInt32),若掩膜在保存或预处理过程中被转换为浮点型(sitkFloat32 / sitkFloat64)或向量类型,则会触发数据类型报错。在 Python 批处理脚本中,可通过 mask = sitk.Cast(mask, sitk.sitkUInt8) 及 image = sitk.Cast(image, sitk.sitkFloat32) 显式强制转换数据类型以彻底消除该异常。

windows系统安装python库的时候报错:

“ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。” 解决方法:以管理员身份打开命令提示符。

在 Windows 操作系统下执行pip install 出现 EnvironmentError: [WinError 5] 拒绝访问(Access is denied),原因是当前终端进程缺乏对全局 Python 安装目录(如 C:\Program Files\Python...)的写入权限,或目标动态链接库(.pyd / .dll)正被后台运行中的 Jupyter/IDE 进程占用。规范解决方案包括:(1)以管理员权限启动命令提示符/PowerShell;(2)在命令末尾追加 --user 参数安装至当前用户目录;(3)推荐采用 Conda 虚拟环境(conda create -n radiomics python=3.9)隔离项目依赖,避免系统级权限冲突。

解决方法:通过代码重建影像和mask文件,统一维度。

当 PyRadiomics 抛出维度不一致(Dimension mismatch)或尺寸不匹配错误时,常见原因包括:(1)原始图像为包含时间轴或多通道的 4D 数据(如动态增强或 RGB 伪彩图),而掩膜为 3D 体数据;(2)三维体数据与单层 2D 切片混用;(3)图像与掩膜在各维度上的体素矩阵大小(Size)不一致。可通过print(image.GetDimension(), image.GetSize(), mask.GetDimension(), mask.GetSize()) 诊断,并利用 sitk.Extract 提取目标 3D 序列或调用 sitk.Resample(mask, image, sitk.Transform(), sitk.sitkNearestNeighbor, 0, sitk.sitkUInt8) 统一维度与网格。

首先需排查目标文件是否已在后台被 Microsoft Excel、WPS 等电子表格程序打开并锁定。

在 Windows 系统中,当使用pandas.read_excel() 或 to_excel() 读写表格抛出 PermissionError: [Errno 13] Permission denied 时,绝大多数情况是因为该 .xlsx / .csv 文件正被 Microsoft Excel 或 WPS 表格程序打开并施加了操作系统级独占文件锁(File Lock),或误将文件夹路径而非具体文件路径传入函数。关闭正在打开该表格的办公软件进程、检查文件路径是否正确即可立即恢复读写。

常用的影像组学分析工具和软件有很多,以下是一些比较流行的工具及其功能和特点:

  1. PyRadiomics(https://github.com/Radiomics/pyradiomics):功能:PyRadiomics 是一个基于 Python 的影像组学特征提取库,提供了许多常用的特征提取方法。特点:支持多种医学影像格式,如 DICOM、NIfTI、ITK 等;允许用户自定义参数;具有丰富的文档和示例;与其他Python库(如 SimpleITK、NumPy、Pandas 等)兼容。

  2. 3D Slicer(https://www.slicer.org):功能:3D Slicer 是一个开源的医学影像处理和可视化平台,通过 SlicerRadiomics 插件提供影像组学分析功能。特点:支持多种医学影像格式;具有强大的影像处理和分割功能;提供可视化界面;插件式架构允许用户定制功能。

  3. LIFEx(http://www.lifexsoft.org):功能:LIFEx 是一个用于放射性核素学、MRI 和 CT 图像的影像组学特征提取和数据分析的软件。特点:支持多种医学影像格式;提供可视化界面;具有一些内置的统计分析功能;支持 Windows、Mac 和 Linux 平台。

  4. IBEX(http://bitbucket.org/radiomics/ibex):功能:IBEX 是一个开源的 MATLAB 工具箱,用于从医学图像中提取影像组学特征。特点:包含丰富的特征提取方法;具有分析和可视化功能;与 MATLAB 环境兼容,方便用户进行进一步的分析和开发。

  5. CERR(https://github.com/cerr/CERR):功能:CERR(Computational Environment for Radiotherapy Research)是一个基于 MATLAB 的开源软件,主要用于放射治疗计划的导入、处理和可视化,同时支持影像组学特征提取。特点:支持多种医学影像格式;具有强大的影像处理功能;提供可视化界面;与 MATLAB 环境兼容,方便用户进行进一步的分析和开发。

以上工具和软件具有各自的特点和优势,根据实际需求和技术背景,用户可以选择合适的工具进行影像组学分析。

从存储库安装PyRadiomics时,您的Python路径变量将被更新以使Python能够找到该包。然而,这个值仅在重新启动命令行窗口时更新。如果在安装过程中运行了jupyter notebook,您首先需要重新启动它。您的计算机上可以同时安装多个版本的Python。请确保PyRadiomics安装在您在Jupyter notebook中使用的相同版本上。

PyRadiomics与Python 3兼容。在PyRadiomics 3.0版本中停止支持Python 2,但保留了兼容代码。自动化测试仅使用python 3.5、3.6和3.7(64位架构)。不支持Python < 2.6。其他Python版本可能与PyRadiomics兼容,但这不是主动测试的,因此不能保证正常工作。预构建的Wheels仅适用于经过测试的Python版本(3.5、3.6和3.7)。

每次发布新版本时,都会在发布声明中包含更新日志。在版本发布之间,更改不会被明确记录,但所有重要更改都是使用拉取请求实现的。检查合并的拉取请求以获取最新更改。

3D Slicer是一款开源的医学图像处理软件,它支持多种影像格式并提供了丰富的图像处理功能。使用3D Slicer进行影像组学特征提取有一定的优劣:

  1. 开源免费:3D Slicer是一个免费的开源软件,用户可以自由地下载和使用它。

  2. 丰富的功能:3D Slicer包含了许多内置的模块,像分割、图像配准、图像重建等,可以方便地进行多种医学图像处理任务。

  3. 可视化工具:3D Slicer提供了强大的可视化工具,用户可以直观地查看图像和分割结果。

  4. 支持多种平台:3D Slicer支持Windows、Mac和Linux操作系统。

  5. 插件支持:3D Slicer具有丰富的插件库,例如PyRadiomics插件可以直接在3D Slicer中进行影像组学特征提取。

  6. 跨学科应用:3D Slicer在放射学、神经外科、肿瘤学等领域有广泛的应用,因此可以方便地将影像组学特征应用到多个研究领域。

  7. 学习曲线:对于初学者,3D Slicer的界面和操作可能需要一段时间来熟悉。

  8. 计算资源:3D Slicer的一些功能可能需要较高的计算资源,对于低配置的计算机来说可能会导致运行速度较慢或卡顿。

  9. 功能局限性:虽然3D Slicer具有许多内置的功能,但对于一些特定的或高级的影像组学特征提取任务,它可能无法满足需求。这时用户可能需要寻找其他专门针对这些任务的软件或工具。

总的来说,3D Slicer是一个强大且灵活的医学图像处理软件,适合进行影像组学特征提取。然而,使用3D Slicer可能需要一定的学习成本,并且可能无法满足一些特定任务的需求。

IBSI 标准与特征体系

IBSI 为特征命名、数学定义与计算条件提供共同语言。只有明确离散化、重采样和掩膜处理,特征数值才具有跨软件比较的意义。

PyRadiomics开发也参与了IBSI团队的标准化工作。然而,PyRadiomics和IBSI文档中定义的特征提取之间还是存在一些差异。这些差异出现在存在几种同样有效的替代方案的地方。在其中一些情况下,PyRadiomics选择了一种替代方案,而IBSI标准推荐另一种。为了保持 PyRadiomics开发的一致性,选择不改变PyRadiomics的实现,而是记录差异。最值得注意的是灰度离散化(仅针对固定bin大小类型)和重采样的差异。这些差异不能仅通过自定义设置进行修正,而需要使用自定义函数替换:

分箱:在使用固定bin宽度进行灰度离散化时(又称IBSI:FBS,固定bin大小),如果设置了重新分割(最明显的是情况A和C),IBSI会计算从重新分割范围的最小值(如果是绝对重新分割)或最小强度(如果是σ重新分割)开始的等间距bin边缘。

在PyRadiomics中,使用固定bin宽度的灰度离散化始终使用从0开始的等间距bin边缘,确保最低灰度级被离散化到第一个bin。无论重新分割等情况如何。

网格对齐:在IBSI中,通过对齐图像的中心来对齐重采样网格,而在PyRadiomics中,对齐原点体素的角。这可能导致稍微不同的插值结果,甚至重采样图像和ROI的大小略有不同,从而导致提取的特征值之间的差异。灰度值舍入:在IBSI中,他们认为,如果原始强度值来自某些较低精度的数据类型,重采样值(通常是64位的浮点数)应该重新采样到类似的分辨率。PyRadiomics没有实现这一点,因为差异可能很小,因此增加复杂性而非增加提取值的意义。特别是考虑到在计算大多数(除一阶外)特征之前,灰度值都是离散化的。如果进行了某种归一化,则灰度值的意义也会发生变化。这里的差异是因为小的舍入差异可能导致体素被分配到不同一个bin,这可能会导致特征值结果的显著变化,特别是在较小的ROI中。

掩膜重采样:在IBSI中,还可以为掩膜重采样选择不同的插值器,并附加阈值以检索二值掩膜。这仅在掩膜限于零和非零(即1)值时有效。PyRadiomics还支持具有不同值标签的掩膜,允许通过指示不同的标签值从同一掩膜文件中提取不同的ROI。为防止任何不正确的重新分配,PyRadiomics强制掩膜重采样为最近邻。

还有一些差异可以通过自定义设置解决,本例仅适用于配置E,即同时执行绝对和σ重新分割。在PyRadiomics中,两种类型都已实现,但一次只能选择一种。为了模拟应用两种类型,我计算了重新分割后的绝对范围,并将其用作绝对重新分割范围:[-718, 400]。一阶特征:峰度的计算存在差异。IBSI计算的是超额峰度,即峰度减3。PyRadiomics计算的是峰度,比IBSI高3。这个差异的原因是高斯分布的峰度为3。所以总结起来,PyRadiomics结果和IBSI基准之间的差异原因,分别对应各种情况:

  • 配置C:由于灰度离散化和重采样的差异
  • 配置D:由于重采样的差异
  • 配置E:由于重采样和重新分割的差异

PyRadiomics并不是为某一特定模态而开发的。PyRadiomics可以处理多种模态,尽管不同模态之间的最佳设置可能有所不同。灰度图像:PyRadiomics目前不支持从彩色图像或具有复杂值的图像中提取特征。在这些情况下,每个像素/体素具有多个值,而PyRadiomics不知道您如何组合这些值。可以选择一个颜色通道并将其用作输入:

import SimpleITK as sitk。from radiomics import featureextractor。extractor = featureextractor.RadiomicsFeatureExtractor(r'path/to/params.yml')。ma_path = 'path/to/maskfile.nrrd'。label = 1 # 如果您的掩膜中的ROI由其他值标识,请更改此处。文件格式:目前,PyRadiomics要求图像和掩膜输入是一个指向包含图像/掩膜的单个文件的字符串,或者是一个SimpleITK.Image对象(仅在交互模式下可能)。当使用DICOM时,需要先将单独的文件合并成一个体积,然后提取特征,方法是将其转换为NRRD或NIFTII,或者在python脚本中读取DICOM并从该脚本调用PyRadiomics。另请参阅PyRadiomics支持哪些输入图像和掩膜的文件类型?

维度:PyRadiomics支持2D和3D输入图像,但请注意,特征类形状仅提取3D形状描述符,而shape2D仅提取2D形状描述符。如果您有一个3D体积,但是一个单切片分割,并希望结果包括2D形状描述符,请启用shape2D并设置force2D=True。这允许您从具有单切片分割的3D体积中提取2D形状特征(但在分割表示多个切片的体积分割时失败)。

PyRadiomics使用SimpleITK进行图像加载和处理。所有由SimpleITK支持的图像类型都可以作为PyRadiomics的输入。请注意,图像/掩膜只能提供一个文件位置。

如果您的输入图像是DICOM格式,事情会变得更加复杂。如果您要处理以DICOM格式存储的单个2D图像切片,可以像使用其他格式一样使用它。然而,如果您正在处理一个体积数据集,您应该首先确认您拥有的DICOM文件对应于单个图像序列。如果您不确定,可以使用dicomsort等工具对数据进行排序,以便每个序列有一个单独的目录。然后,您可以使用plastimatch convert或dcm2niix将DICOM序列转换为ITK可读的体积格式。

如果您的标签以DICOM格式定义,这可能意味着不同的事情。检查带有标签的数据集的模态。您可以通过使用dcmdump来检查,然后检查显示"Modality"的那一行。您可以在这里找到此工具的二进制包(如果您想从Atom编辑器更方便地查看DICOM文件,还可以使用dicom-dump包)。

如果模态是图像(例如,CT或MR),使用plastimatch或dcm2niix将图像转换为3D体积。如果模态是RT,请使用plastimatch将结构集的轮廓转换为3D体积。如果模态是SEG,请使用dcmqi将体素分割转换为3D体积。我们还提供了一个"实验室"(实验性)脚本pyradiomics-dcm,它可以自动执行这些转换,并将生成的特征保存为DICOM SR。

高斯-拉普拉斯滤波(LoG,基于SimpleITK功能) 小波变换(使用PyWavelets包) 平方 平方根 对数 指数 梯度 局部二值模式(2D) 局部二值模式(3D)

PyRadiomics 提供了多种滤波器来进行影像组学特征提取。以下是可以在 PyRadiomics 中使用的滤波器:

  1. 无滤波器(原始图像):可以直接从原始图像中提取特征,无需使用滤波器。

  2. 波长变换(Wavelet Transform):这是一种多尺度、多方向的变换方法,用于从不同尺度和方向的图像信息中提取特征。

  3. Laplacian of Gaussian (LoG):这是一种边缘检测滤波器,通过计算图像的拉普拉斯算子来检测边缘。它可以增强图像的边缘信息,有助于区分不同结构。

  4. 平方根(Square):将图像中的每个像素值取平方,从而增强图像的对比度。

  5. 对数(Logarithm):将图像中的每个像素值取对数,以提高图像的动态范围。

  6. 指数(Exponential):将图像中的每个像素值取指数,以增强图像的对比度。

  7. 高斯滤波器(Gaussian Filter):这是一种线性滤波器,通过与高斯核进行卷积来平滑图像,从而减少噪声。它能保留图像的主要结构,但会造成一定程度的边缘模糊。

  8. 局部二值模式(Local Binary Pattern,LBP):这是一种描述图像局部纹理特征的方法,通过比较像素邻域内的灰度值来形成二进制模式。

在使用 PyRadiomics 进行特征提取时,可以根据研究目的和图像数据集选择合适的滤波器。根据实际需求,可以尝试不同的滤波器组合以优化特征提取和分析结果。

1,第一阶统计特征(First-order statistics):这些特征反映了图像的基本属性,主要通过对感兴趣区域(ROI)内的像素强度值进行统计分析而获得。包括均值、方差、最大值、最小值、中值、偏度、峰度等。

2,形状特征(Shape-based features):这些特征描述了 ROI 的几何形状和大小属性。例如,体积、表面积、紧凑性、球形度、表面积与体积比、主轴长度等。

3,灰度共生矩阵特征(Gray Level Co-occurrence Matrix, GLCM):这些特征反映了图像中像素之间的空间关系和纹理信息。主要包括对比度、相关性、能量、同质性等。

4,灰度距离区矩阵特征(Gray Level Run Length Matrix, GLRLM):这些特征描述了图像中的纹理特性,通过分析灰度值相同且连续的像素组成的线段(run)来计算。主要包括短距离低灰度重复、长距离高灰度重复、灰度非均匀性等。

5,灰度大小区矩阵特征(Gray Level Size Zone Matrix, GLSZM):这些特征描述了图像中相同灰度值的连续区域(zone)的大小分布。主要包括小区低灰度重复、大区高灰度重复、灰度非均匀性等。

6,灰度依赖矩阵特征(Gray Level Dependence Matrix, GLDM):这些特征描述了图像中相同灰度值的依赖关系。主要包括小依赖低灰度重复、大依赖高灰度重复、灰度非均匀性等。

7,高阶特征(Higher-order features):这些特征通常基于经过某种滤波器处理的图像进行计算,例如波长变换、Laplacian of Gaussian (LoG)等。高阶特征可以捕捉图像的更复杂的纹理和局部信息。

PyRadiomics 提供了丰富的特征提取功能,可以帮助研究者根据研究目的和特定的医学影像任务选择合适的影像组学特征进行分析。

配置、批处理与体素级提取

YAML 参数文件把图像类型、特征类别、离散化与重采样固化为可追溯配置。批处理需要统一命名、校验几何并记录失败原因。

请参阅自定义提取。PyRadiomics可以通过多种方式进行自定义,但通过提供参数文件进行自定义是最简单的方法。在这个yaml结构的文本章件中,您可以定义自定义设置以及要启用的特征和输入图像类型。

是的,从2.0版本开始,已经实现了体素级计算。然而,由于这涉及到为每个体素计算特征,执行体素级提取速度会慢很多,而且由于输出包含每个特征的特征图,输出大小也会大得多。请参阅使用部分了解如何启用基于体素的提取。

目前,pyradiomics的批量输入文件是一个指定图像和掩模组合以提取特征的csv文件。它必须包含一个标题行,至少应该指定"Image"和"Mask"标题(大小写敏感)。每个后续行表示一个图像和掩模的组合。还允许使用其他列,这些列将按照输入的顺序复制到输出中,计算出的特征的附加列将附加在末尾。注意,所有的标题名称应该是唯一的,不要与pyradiomics生成的标题名称相匹配。

常见异常与排障

几何不匹配、标签缺失、参数文件无法加载与纹理矩阵不可计算,是 PyRadiomics 最常见的四类故障。排障应先核对图像与掩膜的几何,再检查标签与参数。

尝试加载自己的参数文件时,遇到了错误:"CoreError: 无法从源 yaml 文件加载任何数据。

这个错误是由 PyKwalify 在无法读取参数文件时抛出的。最常见的原因是文件使用制表符进行缩进,这会导致"无法识别的标记('t')错误"。相反,请确保所有缩进都使用2或4个空格。

子问题:若掩膜(Mask)是基于与输入图像空间参数不同的另一序列生成的,能否继续提取特征?

出于各种原因,当传递给特征类时,图像和掩膜必须具有相同的几何形状(即相同的间距、尺寸、方向和原点)。为此,PyRadiomics 在管道中包括检查以确保这是正确的。有关掩膜检查的更多信息,请参阅 checkMask。如果几何错误是由于原点、间距或方向的微小差异引起的,您可以通过设置 geometryTolerance 来增加容差。如果错误很大,或者尺寸不匹配,您还可以将掩膜重新采样到图像参考空间。bin\resampleMask.py 中提供了一个示例,通过将 correctMask 设置为 True,可以在 PyRadiomics 中启用它,只有在掩膜包含有效 ROI 的几何不匹配情况下才执行此修正(即掩膜包含不包括图像物理边界之外区域的标签值)。

此错误表示由标签值标识的 ROI 不存在。在掩膜体积中没有具有标签中指定值的体素。为了帮助您修复错误,此错误还列出了找到的可能的备选标签值。如果在此错误的末尾没有列出任何值,这意味着您的掩膜中没有分割的体素。

在原始掩膜中可能有一些体素被分割,但在重新采样过程中丢失了(当上采样时)。在这种情况下,对于所请求的 resampledPixelSpacing,ROI 太小,应该视为"没有分割"。

这个错误意味着在 C 扩展中计算矩阵时出现了问题。

"解析数组参数错误。" 当提供给函数的图像或掩膜无法解释为 numpy 数组时,会抛出此错误。

"预期图像和掩膜具有相等的维数。" 当提供的图像和掩膜没有相同的维数时抛出。支持 N 维提取,但图像和掩膜仍需要在尺寸和维数上匹配。

"图像和掩膜的尺寸不匹配。" 这意味着掩膜数组的大小与图像数组的大小不匹配。因为 numpy 数组不包含关于物理世界变换的信息,所以不同大小的输入数组无法匹配。在将它们转换为相应的 numpy 数组进行特征计算之前,可以通过将 Mask 的 SimplITK-Image 对象重新采样到 Image 的几何形状来解决此错误。另请参阅图像和掩膜之间的几何形状不匹配。

"解析距离数组错误。" 如果 C 扩展无法解释提供的距离参数,则显示此错误。在设置中,距离参数应为元组或值列表。

"期望距离数组是一维的。" 再次提供的距离出错。提供的列表应该是一维的(即没有嵌套列表)。

"计算角度错误。" 这个错误意味着根据提供的距离生成角度时出现了问题。目前,只有当提供的距离小于 1 时才会发生这种情况。

"中的元素数量将溢出索引变量!(...)" 当(展平的)输出数组的大小大于最大整数值(约 200 万)时,显示此错误。这通常是由于离散化后的 bin 数量过大,导致用于纹理计算的离散图像中灰度值范围过大。我们通常建议选择一个 bin 宽度,使离散化后的 bin 数量不超过 150-200。以 DEBUG 日志记录启用运行代码显示生成的 bin 数量,可能有助于了解矩阵有多大。

"无法初始化的输出数组。" 这意味着计算机无法为输出分配内存。这很可能是由于输出大小过大或可用内存过少。与上面类似,使用 DEBUG 日志记录运行,查看生成了多少个 bin(给出输出矩阵有多大的指示)。

" 这个错误意味着在计算矩阵本身时出现了问题。通常在尝试设置输出数组中超出范围的元素时会抛出此错误。当ROI内部的体素具有大于从Python调用C函数时提供的Ng参数的灰度值时,可能会发生这种情况。

有可能分割区域太小,无法提取有效的纹理。检查输出中附加信息部分的VoxelNum值。这是预处理后ROI中的体素数量,因此是用于特征计算的体素数量。

另一个问题可能是离散化后的灰度值过多或过少。您可以通过将ROI中的灰度值范围(一阶特征)与binWidth参数的值进行比较来检查这一点。更多的bins可以捕捉较小的灰度值差异,但过多的bins(与体素数量相比)将导致纹理矩阵中的概率较低,从而产生非信息性特征。离散化灰度值的理想数量没有确切答案,这可能因模态而异。一项研究[2]评估了PET中的bin数量,发现在16-128个bin的范围内,纹理特征并无显著差异。

如果特征计算或滤波器应用失败,会记录一条警告。如果您想了解工具箱内部发生了什么,PyRadiomics提供了丰富的调试日志。您可以启用将其打印到输出或存储在单独的日志文件中。输出受radiomics.setVerbosity控制,可以通过radiomics.logger访问PyRadiomics记录器。另请参阅此处以及存储库中包含的示例,了解如何设置日志记录。

引用、版本与可复现性

软件版本、参数文件与滤波器设置都会改变特征值。论文必须报告 PyRadiomics 版本、IBSI 符合性与完整参数。

If you publish any work which uses this package, please cite the following publication: van Griethuysen, J. J. M., Fedorov, A., Parmar, C., Hosny, A., Aucoin, N., Narayan, V., Beets-Tan, R. G. H., Fillon-Robin, J. C., Pieper, S., Aerts, H. J. W. L. (2017). Computational Radiomics System to Decode the Radiographic Phenotype. Cancer Research, 77(21), e104-e107.https://doi.org/10.1158/0008-5472.CAN-17-0339


— 感谢阅读 —

一起交流

分享你的思考,让讨论更进一步。