療效預測中的影像組學特徵提取

介紹

最近一直在做關於腫瘤的放療療效預測相關的工作,遇到了一些問題主要是關於影像組學特徵提取相關的問題,在這裏做一個總結,主要是關於基於python提取影像組學特徵:

需要的module:

主要需要的是SimpleITK,NRRD和pyradiomics這幾個包,安裝的話直接pip就可以

pip install pyradiomics
pip install SimpleITK
pip install pynrrd

 具體流程:

因爲我們收到的數據都是圖像是dicom格式的,標註爲nii格式的,但是pyradiomics這個包,他說明只支持nrrd格式的輸入,所以前期我們踩了大量的坑,思路都停留在將dicom和nii格式的數據轉換爲nrrd格式的數據,但是一直都是會缺少部分信息,最近纔有部分進展,現在的流程如下:

  1. 使用ITK-SNAP這個軟件將nii格式的標註轉換爲nrrd格式的數據,過程很簡單只需要將nii文件打開,選擇file-save image-main image即可,然後再彈出框中選擇nrrd格式,即可在對應文件目錄下生成一個對應格式的標註文件

  2. 數據的處理過程,還有一個問題就是,我們收到的標註中既包含腫瘤區也包含了淋巴區,但是我們需要將這兩部分數據分開處理,所以需要形成不同的標註文件,兩部分的標註的區別是腫瘤區標註爲1,淋巴區標註爲5。這裏的思路是我們先使用nrrd包將生成的nrrd中的數據讀出來,進行修改,在反寫回去即可。
    
    import numpy as np
    import nrrd
    
    
    data, header = nrrd.read(nrrdpath)
    
    # 提取淋巴結的標註
    data = np.where(data[:, :, :] == 1, 0, data[:, :, :])
    lymph_data = np.where(data[:, :, :] == 5, 1, data[:, :, :])
    
    nrrd.write(lymphpath, lymph_data, header)
    

     

  3.  數據的讀入過程:主要包含兩部分,圖像的讀入和標註的讀入;在這裏之前陷入一個誤區,以爲只能輸入nrrd格式,但是後來發現只要是simpleitk讀入的數據,pyradiomics都能處理,於是在這裏同時使用simpleitk進行數據的讀取,最後抽取數據即可

    # get image
    series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(image_path)
    nb_series = len(series_IDs)
    print(nb_series)
    series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(image_path,series_IDs[0])
    series_reader = sitk.ImageSeriesReader()
    series_reader.SetFileNames(series_file_names)
    image3D = series_reader.Execute()
    
    # get mask
    mask = sitk.ReadImage(nrrdpath)
    extractor = featureextractor.RadiomicsFeatureExtractor(geometryTolerance=0.001)
    
    print('Extraction parameters:\n\t', extractor.settings)
    print('Enabled filters:\n\t', extractor.enabledImagetypes)
    print('Enabled features:\n\t', extractor.enabledFeatures)
    
    features = extractor.execute(image3D, mask)

    最終得到的features是一個元組,大約包含100多個數據,每個數據都是浮點數,衡量了腫瘤的統計學,形狀,紋理等特徵,基於這些特徵,經過特徵篩選,使用機器學習方法進行建模,是當前比較流行的腫瘤療效預測,預後預測的研究思路

  4.   影像組學的包的地址:影像組學特徵介紹,此外還會使用不同的濾波器對圖像進行處理提取更多的特徵,但思路是一樣的:filter介紹

     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章