AIM-Harvard / pyradiomics

Open-source python package for the extraction of Radiomics features from 2D and 3D images and binary masks. Support: https://discourse.slicer.org/c/community/radiomics
http://pyradiomics.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.18k stars 497 forks source link

[FEAT EXTRACTION] #574

Closed abhinandanbatra closed 4 years ago

abhinandanbatra commented 4 years ago

Describe the bug Hey I am trying to compare features between two different models of skeletal muscle MRI. I was wondering if there is a difference in feature extraction values if mask is created through whole stack of slices or on selected three consecutive slices? Does pyradiomics average the features across different slices?

JoostJM commented 4 years ago

Depends on the feature. For firstorder, yes. For local texture features (GLCM, NGTDM, GLDM) to some extent. For others (GLRLM, GLSZM and shape) one cannot really say it's just averaging across slices, it really takes the whole volume into account. (e.g. think about the simple feature "Volume" or "Surface Area")

abhinandanbatra commented 4 years ago

So the results can vary for first order if we compare volume vs three slices at mid belly of muscles. But they should not change much for other parameters. Actually we are getting results where shape features are significantly different, so we are not sure whether it is because of volume on one group and three slices on other.

Abhi

On Tue, Apr 28, 2020 at 1:03 PM Joost van Griethuysen < notifications@github.com> wrote:

Depends on the feature. For firstorder, yes. For local texture features (GLCM, NGTDM, GLDM) to some extent. For others (GLRLM, GLSZM and shape) one cannot really say it's just averaging across slices, it really takes the whole volume into account. (e.g. think about the simple feature "Volume" or "Surface Area")

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Radiomics/pyradiomics/issues/574#issuecomment-620765904, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALCN6VHO5RESJKGMWHFP33LRO4K53ANCNFSM4MS6C7ZQ .

JoostJM commented 4 years ago

Exactly the other way around. The answer was whether PyRadiomics averages the results. For firstorder this is true (so it's possible that the differences are small). Shape is for sure different, and some texture features too.

abhinandanbatra commented 4 years ago

Thank you for the response. So if I am understanding you correctly, basically it combines all the slices together and treat them as one shape for all the features except first order (where it averages across slices) ?

The reason I am asking this is that we see heterogeneity and changes going from proximal to distal and I was not sure if these changes are getting washed out as features are getting averaged across slices.

I really appreciate all your time and help.

Abhi

On Thu, Apr 30, 2020 at 11:50 PM Joost van Griethuysen < notifications@github.com> wrote:

Exactly the other way around. The answer was whether PyRadiomics averages the results. For firstorder this is true (so it's possible that the differences are small). Shape is for sure different, and some texture features too.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Radiomics/pyradiomics/issues/574#issuecomment-622247026, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALCN6VEFJG3RF5GEK4LHIELRPJIJ3ANCNFSM4MS6C7ZQ .

JoostJM commented 4 years ago

For all features, the entire mask is used, nothing is calculated for 1 slice only (otherwise, slices with only few voxels segmented would have as much influence on the final value as slices with many voxels). What I mean with my answers is that some features depend more on just local relationships (with the most extreme being firstorder: only considers the voxel itself, not it's neigbors), whereas others depend more on global relationships (like GLRLM/GLSZM).

Even when force2D is enabled, still all slices are taken into account. The only difference is that there are no angles are used that define offsets that move between slices. (e.g. there will still be 1 GLCM per direction, containing information from all slices, but instead of 13, there will only be 4).

JoostJM commented 4 years ago

If you have significant different textures, you could also try voxel-based radiomics, so you can see at least the differences between those 'local' textures.