Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is "3D feature(by-slice)" the average of 2d-slice features derived from the whole 3d ROI? #413

Closed
foxet opened this issue Aug 24, 2018 · 5 comments
Labels

Comments

@foxet
Copy link

foxet commented Aug 24, 2018

Is "3D feature(by-slice)" the average of 2d-slice features derived from the whole 3d ROI?

thx

@JoostJM
Copy link
Collaborator

JoostJM commented Aug 24, 2018

What do you mean by 3D feature(by-slice)? Where does it mention this?

PyRadiomics has both 3D and 2D extraction, with the difference being that for 2D, no offsets that moves between slices are used. Therefore, there is no difference in firstorder or shape features and for texture features, all slices are combined, e.g. GLSZM only defines 2D zones, GLRLM just the in-plane runs and GLCM/NGTDM/GLDM only consider in-plane adjacent voxels to be neighbors.

@foxet
Copy link
Author

foxet commented Aug 24, 2018

"force2D [False]: Boolean, set to true to force a by slice texture calculation. Dimension that identifies the ‘slice’ can be defined in force2Ddimension"

Given 3D ROI and setting "force2d=True ", how will the feature values combined? every slices have their onw texture feature value, e.g. if A ROI has 32 slices and force2D is True, there will be 32 GLSZM values , right? ,how will these values combined? average ?

@JoostJM
Copy link
Collaborator

JoostJM commented Aug 27, 2018

No, slices are combined. E.g. in case of GLSZM, 1 matrix will be built using voxels from all slices. The difference is that in 3D, adjacent voxels on other slices are considered neighbors, in force 2D only adjacent voxels on the same slice are neighbors. This causes the zones to be 3D and 2D, respectively.

In case of GLCM, GLRLM, there is one matrix created for each angle (offsets indicating where the neigbor is). Features are then calculated for each matrix and an average is returned. In case of 3D extraction, those angles describe offsets that move in-plane, out-of-plane or both. In case of 2D, only the in-plane angles are retained. I.e. less matrices are calculated, but those that are, are identical to those calculated in 3D

@fedorov
Copy link
Collaborator

fedorov commented Aug 27, 2018

@JoostJM I think it would be good to add this explanation to the documentation, if it's not already there! I think this question came up before.

@foxet
Copy link
Author

foxet commented Aug 29, 2018

Understand know, thank u

@foxet foxet closed this as completed Aug 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants