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.14k stars 493 forks source link

suggestions about pyradiomics documentation #406

Closed GJiananChen closed 6 years ago

GJiananChen commented 6 years ago

Hi! Thank you for your great work.

I'm writing for a trivial suggestion about documentation. There is a place in the documentation that seems to be a little confusing, specifically it's in Main Page\Radiomics Features\Gray Level Dependence Matrix (GLDM) Features. This feature happens to be the best feature in our experiment so we noticed this.

In the introduction of GLDM feature, it writes "In a gray level dependence matrix P(i,j) the (i,j)th element describes the number of times a voxel with gray level i with j dependent voxels in its neighbourhood appears in image." Here i,j not only denote index of elements but also denote gray level and the number of dependent voxels. Would it be helpful to change "P(i,j) the (i,j)th element" to "P(x,y) the (x,y)th element"?

Besides, I was wondering if pyradiomics supports comparison of features between ROI and the area surrounding the ROI?

Thank you very much for your time.

GJiananChen commented 6 years ago

Sorry, disregard. Mistook GLDM with Neighboring Gray Level Dependence Matrix (NGLDM).

JoostJM commented 6 years ago

In essence, I believe those names mean the same. However, I do not understand your question. i and j denote the index in the GLDM matrix, with correlates to the gray level i having j dependent voxels in it's neighbourhood. The value of that element indicates how many such voxels occur in the given ROI.

As to comparison between ROI and surrounding area: Not directly, but if you set the area surrounding the ROI to some value other than 0 (this denotes background and is rejected by pyradiomics), you can extract features from that region and compare it to the output of the ROI features. This can be done using the same ROI-file, but using 2 different labels (the value of which can be specified during extraction).

JoostJM commented 6 years ago

See also this article: Sun C, Wee WG. Neighboring Gray Level Dependence Matrix for Texture Classification. Comput Vision, Graph Image Process. 1983;23:341–352..

The GLDM matrix in this article is denoted as Q (and not to be confused with P)

GJiananChen commented 6 years ago

Hi JoostJM, thank you very much for your answer. That helps me a lot.

I was wondering what do you think of the noise (white noise etc.) in medical images? Will noise affect the result of feature extraction (especially for low-quality MRI scans)? Are there any functions in Pyradiomics that are capable of evaluating the severity of noise or removing noise?

Sorry if the question is too random.

JoostJM commented 6 years ago

@chenjn2010, It is certainly a good question, however I do not have a good answer.

Noise will always be present in images, and it is the trick of developing a model that is able to capture the signal regardless of the noise. Will it affect the result of the feature extraction? Most likely, yes, although some features will be more susceptible than others. Furthermore, how you configure the extraction (e.g. binwidth, resampling, normalization) will also change the influence of noise on the feature values, but I cannot tell you how exactly to do this.

Are there functions for evaluating the level of noise? No, there are not, as it the level of noise that is acceptable depends on how strong your signal is. Besides, what do you define as "noise" and how would you evaluate/correct for it?

GJiananChen commented 6 years ago

I am trying to extract the 'TTE' feature in this article automatically. https://link.springer.com/article/10.1007%2Fs00330-018-5331-4 We believe the feature is reliable because we think the comparison between liver and lesions makes sense for a more robust description of intensity. It is mentioned in this paper that "The standard deviation (SD) of the background noise was calculated from taking the mean SD of eight 1-2-cm ROIs drawn in the background in the four quadrants, taking care to exclude banding surrounding the patient due to motion artifact." Intuitively, there should at least exists Gaussian noise in all of the MRI scans. However, I tried to reproduce what the readers did but it seems that most of the background pixels have the intensity of 0 so that the standard deviation of noise is also 0. It seems that the noise is too weak to be detected, which is frustrating. Thank you very much @JoostJM!