Edit this page

NA-MIC Project Weeks

Back to Projects List

Validation of Radiomics.jl library by using ovarian cancer images and possible integration in Slicer

Key Investigators

Project Description

Radiomics.jl is a pure Julia library for radiomics feature extraction. Being a pretty new library, we want to test and validate it by using CT of ovarian cancer patients.

We would also like to investigate the possibility of calling it from the embedded Python in Slicer.

Of course any suggestion is more than welcome.

Objective

  1. Test Radiomics.jl on ovarian cancer CT
  2. Investigate the possibility of calling Radiomics.jl main function in Python

Approach and Plan

  1. Compare Radiomics.jl features with those computed by PyRadiomics (considered as the gold standard)
  2. Create a shared library and call it from Python
  3. Collect comments/suggestions

Progress and Next Steps

  1. Tested the library on ovarian cancer CT (a few features must be fixed)
  2. Tested juliacall to use Radiomics.jl from Python (you don’t need to install Julia)
    pip install juliacall
    
from juliacall import Main as jl
jl.seval('import Pkg; Pkg.add("Radiomics")')
import SimpleITK as sitk
import numpy as np

from juliacall import Main as jl
jl.seval("using Radiomics")

ct_sitk = sitk.ReadImage('DATA_PATH/ct.nii.gz')
mask_sitk = sitk.ReadImage('DATA_PATH/mask.nii.gz')

ct = sitk.GetArrayFromImage(ct_sitk)
mask = sitk.GetArrayFromImage(mask_sitk)

spacing = list(ct_sitk.GetSpacing())

radiomic_features = dict(jl.Radiomics.extract_radiomic_features(ct, mask, spacing))
  1. Created a shared library and used it both in Python and C++
using PackageCompiler

create_library(".", "radiomicsjl_build";
               lib_name="libradiomicsjl",
               force=true,
               incremental=true,
               filter_stdlibs=true)
  1. Collected very useful comments, suggestions, and potential use-cases (thanks Andrey Fedorov!)

Illustrations

Radiomics.jl

Background and References