CellProfiler / CellProfiler

An open-source application for biological image analysis
http://cellprofiler.org
Other
924 stars 378 forks source link

deprecate Zernike features from MeasureObjectIntensityDistribution and MeasureObjectSizeShape #2220

Closed 0x00b1 closed 7 years ago

0x00b1 commented 8 years ago

Zernike features are extremely expensive to compute and provide arguable value for their cost.

Is there an alternative with a more equitable utility-for-time cost?

Do people truly love Zernike features?

shntnu commented 8 years ago

Shape zernikes (in MeasureObjectSizeShape ) are very useful for profiling – they often show up as being among the top features for distinguishing between treatments.

There is no texture alternative for that because it is a shape feature.

I truly ❤️ shape Zernikes. I haven't used intensity Zernikes so I can't comment on that.

0x00b1 commented 8 years ago

@shntnu Are they worth the cost? Is there a preferable feature?

bethac07 commented 8 years ago

Add me to the list of people who <3 Zernikes .

braymp commented 8 years ago

Some initial thoughts:

0x00b1 commented 8 years ago

Add me to the list of people who <3 @shntnu @bethac07 and @braymp

0x00b1 commented 8 years ago

@braymp I'm writing issues for other expensive features. Do you have any thoughts on other modules and features with unbalanced cost and usefulness?

bethac07 commented 8 years ago

Awww, always nice to end the week with a love fest. FWIW I don't know of any instance where intensity distribution zernike's have been used to good effect, but I assume there are some or it wouldn't have gotten written in. They do make me sad in #2193 .

0x00b1 commented 8 years ago

@bethac07 I probably should have fixed #2193 before asking. 😎

braymp commented 8 years ago

@0x00B1: I would say by far, the Haralick features are the most expensive; I believe Lee's optimized it quite a bit. The addition of #1229 was a game changer, in that if you select objects only, it cuts comp time in half.

0x00b1 commented 8 years ago

@braymp I should’ve added that it’d be unwise to remove any feature unless it’s truly useless. I’m discussing “practical defaults.”

braymp commented 8 years ago

More re: textures - The Haralick paper reports that texture measurements can be dependent on image rotation. I have a strong suspicion that the texture as calculated (for multiple angles) is not as useful as calculating the avg magnitude of each texture feature across the angles; I think I've seen a few more recent papers do this. @shntnu probably recalls my working in this area.

0x00b1 commented 8 years ago

@braymp I’m writing a Haralick issue too. I think there’s a lot we can do.

shntnu commented 8 years ago

An example of run times from a Cell Painting pipeline

Times reported are CPU times for each module, not wall-clock time
Fri Jul 15 22:33:18 2016: Image # 1, module LoadData # 1: 6.88 sec
Fri Jul 15 22:33:34 2016: Image # 1, module CorrectIlluminationApply # 2: 0.38 sec
Fri Jul 15 22:33:35 2016: Image # 1, module IdentifyPrimaryObjects # 6: 8.91 sec
Fri Jul 15 22:33:44 2016: Image # 1, module IdentifySecondaryObjects # 7: 5.36 sec
Fri Jul 15 22:33:49 2016: Image # 1, module IdentifyTertiaryObjects # 8: 1.02 sec
Fri Jul 15 22:33:50 2016: Image # 1, module MeasureCorrelation # 9: 566.84 sec
Fri Jul 15 22:43:17 2016: Image # 1, module MeasureGranularity # 10: 78.09 sec
Fri Jul 15 22:44:35 2016: Image # 1, module MeasureObjectIntensity # 11: 20.38 sec
Fri Jul 15 22:44:55 2016: Image # 1, module MeasureObjectNeighbors # 12: 4.23 sec
Fri Jul 15 22:45:00 2016: Image # 1, module MeasureObjectNeighbors # 13: 2.34 sec
Fri Jul 15 22:45:02 2016: Image # 1, module MeasureObjectNeighbors # 14: 2.38 sec
Fri Jul 15 22:45:04 2016: Image # 1, module MeasureObjectIntensityDistribution # 15: 87.98 sec
Fri Jul 15 22:46:32 2016: Image # 1, module MeasureObjectSizeShape # 16: 78.53 sec
Fri Jul 15 22:47:51 2016: Image # 1, module MeasureTexture # 17: 444.24 sec
Fri Jul 15 22:55:15 2016: Image # 1, module OverlayOutlines # 18: 0.09 sec
Fri Jul 15 22:55:15 2016: Image # 1, module OverlayOutlines # 19: 0.10 sec
Fri Jul 15 22:55:15 2016: Image # 1, module SaveImages # 20: 2.65 sec
Fri Jul 15 22:55:16 2016: Image # 1, module SaveImages # 21: 0.26 sec
Fri Jul 15 22:55:17 2016: Image # 1, module ExportToSpreadsheet # 23: 0.01 sec
AnneCarpenter commented 8 years ago

@0x00b1 , have you gotten what you need out if this discussion and thus okay to close? Sounds to me like the decision is not to deprecate.