CellProfiler-nightly 5.0.0.dev243__tar.gz → 5.0.0.dev259__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
  2. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/PKG-INFO +1 -1
  3. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/_version.py +2 -2
  4. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/identifytertiaryobjects.py +14 -0
  5. cellprofiler_nightly-5.0.0.dev259/cellprofiler/modules/measureobjectsizeshape.py +425 -0
  6. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measuretexture.py +5 -8
  7. cellprofiler_nightly-5.0.0.dev243/cellprofiler/modules/measureobjectsizeshape.py +0 -920
  8. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
  9. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
  10. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
  11. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/CellProfiler_nightly.egg-info/requires.txt +0 -0
  12. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
  13. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/LICENSE +0 -0
  14. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/README.md +0 -0
  15. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/__init__.py +0 -0
  16. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/__main__.py +0 -0
  17. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
  18. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
  19. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
  20. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
  21. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
  22. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
  23. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
  24. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
  25. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
  26. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
  27. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/display_image_tools.rst +0 -0
  28. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
  29. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/display_menu_bar.rst +0 -0
  30. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
  31. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
  32. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
  33. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
  34. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
  35. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_3d_identify.rst +0 -0
  36. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_batch.rst +0 -0
  37. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_logging.rst +0 -0
  38. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_omero.rst +0 -0
  39. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_plugins.rst +0 -0
  40. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_shell.rst +0 -0
  41. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
  42. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
  43. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/output_measurements.rst +0 -0
  44. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/output_plateviewer.rst +0 -0
  45. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
  46. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/pipelines_building.rst +0 -0
  47. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/pipelines_running.rst +0 -0
  48. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/projects_configure_images.rst +0 -0
  49. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
  50. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
  51. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/projects_introduction.rst +0 -0
  52. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
  53. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
  54. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
  55. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
  56. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
  57. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
  58. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
  59. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
  60. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
  61. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
  62. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
  63. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
  64. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
  65. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler.ai +0 -0
  66. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler.icns +0 -0
  67. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler.ico +0 -0
  68. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler.png +0 -0
  69. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/icons/CellProfiler.svg +0 -0
  70. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Align.png +0 -0
  71. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/ApplyThreshold.png +0 -0
  72. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/CollapseTree.png +0 -0
  73. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/ColorToGray.png +0 -0
  74. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
  75. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
  76. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Crop.png +0 -0
  77. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
  78. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/ExpandTree.png +0 -0
  79. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/GrayToColor.png +0 -0
  80. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
  81. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
  82. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
  83. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
  84. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
  85. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
  86. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_ERROR.png +0 -0
  87. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_EYE.png +0 -0
  88. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_GO.png +0 -0
  89. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
  90. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
  91. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
  92. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_OK.png +0 -0
  93. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
  94. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_RUN.png +0 -0
  95. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
  96. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
  97. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_STOP.png +0 -0
  98. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_TEST.png +0 -0
  99. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
  100. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
  101. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
  102. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
  103. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
  104. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IMG_WARN.png +0 -0
  105. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
  106. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
  107. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
  108. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
  109. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
  110. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
  111. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
  112. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Images_UsingRules.png +0 -0
  113. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
  114. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
  115. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
  116. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
  117. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
  118. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/MeasureTexture.png +0 -0
  119. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
  120. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
  121. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
  122. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
  123. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
  124. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
  125. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/Tile.png +0 -0
  126. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/UnmixColors.png +0 -0
  127. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/check.png +0 -0
  128. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/color.png +0 -0
  129. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
  130. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/dapi.png +0 -0
  131. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/delete.png +0 -0
  132. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/downarrow.png +0 -0
  133. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/eye-close.png +0 -0
  134. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/eye-open.png +0 -0
  135. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/ffwd.png +0 -0
  136. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/ffwddisabled.png +0 -0
  137. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/filter.png +0 -0
  138. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/folder_browse.png +0 -0
  139. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/folder_create.png +0 -0
  140. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/gear.png +0 -0
  141. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/gfp.png +0 -0
  142. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/icon_copyrights.txt +0 -0
  143. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/illumination_function.png +0 -0
  144. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
  145. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
  146. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/mask.png +0 -0
  147. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/microscope-color_16.png +0 -0
  148. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/microscope-icon_16.png +0 -0
  149. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/microscope-icon_32.png +0 -0
  150. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/microscopes_16.png +0 -0
  151. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/module_add.png +0 -0
  152. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/module_help.png +0 -0
  153. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/module_movedown.png +0 -0
  154. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/module_moveup.png +0 -0
  155. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/module_remove.png +0 -0
  156. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/monochrome.png +0 -0
  157. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/movie_16.png +0 -0
  158. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/next.png +0 -0
  159. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/objects.png +0 -0
  160. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/pause.png +0 -0
  161. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/pausedisabled.png +0 -0
  162. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/play.png +0 -0
  163. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/playdisabled.png +0 -0
  164. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/previous.png +0 -0
  165. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/remove-sign.png +0 -0
  166. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/rewind.png +0 -0
  167. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/rewinddisabled.png +0 -0
  168. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
  169. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
  170. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/splash.png +0 -0
  171. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/status_pause.png +0 -0
  172. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/status_save.png +0 -0
  173. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/status_stop.png +0 -0
  174. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/stop.png +0 -0
  175. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/stopdisabled.png +0 -0
  176. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/structuringelement.png +0 -0
  177. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/thumb-down.png +0 -0
  178. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/thumb-up.png +0 -0
  179. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/unchecked.png +0 -0
  180. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/wantpony.wav +0 -0
  181. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_examples.png +0 -0
  182. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_forum.png +0 -0
  183. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_help.png +0 -0
  184. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_manual.png +0 -0
  185. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_new.png +0 -0
  186. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_pipeline.png +0 -0
  187. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_screen_help.png +0 -0
  188. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_start.png +0 -0
  189. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcome_tutorial.png +0 -0
  190. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
  191. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
  192. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
  193. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/window_back.png +0 -0
  194. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/window_filesave.png +0 -0
  195. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/window_forward.png +0 -0
  196. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/window_home.png +0 -0
  197. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/window_pan.png +0 -0
  198. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
  199. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/__init__.py +0 -0
  200. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
  201. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/_welcome_frame.py +0 -0
  202. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/_workspace_model.py +0 -0
  203. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/addmoduleframe.py +0 -0
  204. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/app.py +0 -0
  205. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/artist.py +0 -0
  206. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/checkupdate.py +0 -0
  207. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/constants/__init__.py +0 -0
  208. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/constants/figure.py +0 -0
  209. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/constants/module_view.py +0 -0
  210. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
  211. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/constants/preferences_view.py +0 -0
  212. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/constants/workspace_view.py +0 -0
  213. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/cpframe.py +0 -0
  214. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/dialog.py +0 -0
  215. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/editobjectsdlg.py +0 -0
  216. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/errordialog.py +0 -0
  217. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/figure/__init__.py +0 -0
  218. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/figure/_figure.py +0 -0
  219. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
  220. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/figure/_outline_artist.py +0 -0
  221. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/gridrenderers.py +0 -0
  222. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/help/__init__.py +0 -0
  223. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/help/content.py +0 -0
  224. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/help/menu.py +0 -0
  225. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/help/search.py +0 -0
  226. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/__init__.py +0 -0
  227. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/configure_images_help.html +0 -0
  228. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/exporting_results_help.html +0 -0
  229. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/getting_started.html +0 -0
  230. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/htmlwindow.py +0 -0
  231. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/identify_features_help.html +0 -0
  232. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/in_app_help.html +0 -0
  233. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/making_measurements_help.html +0 -0
  234. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
  235. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/selecting_images_help.html +0 -0
  236. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/test_mode_help.html +0 -0
  237. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/utils.py +0 -0
  238. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/html/welcome.html +0 -0
  239. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/htmldialog.py +0 -0
  240. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/imagesetctrl.py +0 -0
  241. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/menu.py +0 -0
  242. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/metadatactrl.py +0 -0
  243. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/__init__.py +0 -0
  244. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
  245. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
  246. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
  247. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
  248. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
  249. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
  250. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_module_view.py +0 -0
  251. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
  252. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_table_controller.py +0 -0
  253. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
  254. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/moduleview.py +0 -0
  255. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/namesubscriber.py +0 -0
  256. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/omerologin.py +0 -0
  257. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/parametersampleframe.py +0 -0
  258. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/pathlist.py +0 -0
  259. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/pipeline.py +0 -0
  260. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/pipelinecontroller.py +0 -0
  261. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/pipelinelistview.py +0 -0
  262. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/plateviewer.py +0 -0
  263. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/plugins_menu.py +0 -0
  264. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
  265. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
  266. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
  267. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/preferences_view/__init__.py +0 -0
  268. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
  269. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
  270. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
  271. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
  272. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/regexp_editor.py +0 -0
  273. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/tools.py +0 -0
  274. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/utilities/__init__.py +0 -0
  275. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/utilities/figure.py +0 -0
  276. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/utilities/icon.py +0 -0
  277. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/utilities/module_view.py +0 -0
  278. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
  279. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/utilities/preferences_view.py +0 -0
  280. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/utilities/workspace_view.py +0 -0
  281. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/__init__.py +0 -0
  282. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
  283. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
  284. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
  285. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
  286. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
  287. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
  288. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
  289. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/icons/__init__.py +0 -0
  290. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/knime_bridge.py +0 -0
  291. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/misc.py +0 -0
  292. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/UntangleWorms.xsd +0 -0
  293. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/__init__.py +0 -0
  294. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/_help.py +0 -0
  295. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/calculatemath.py +0 -0
  296. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/calculatestatistics.py +0 -0
  297. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/classifyobjects.py +0 -0
  298. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/closing.py +0 -0
  299. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/colortogray.py +0 -0
  300. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/combineobjects.py +0 -0
  301. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/convertimagetoobjects.py +0 -0
  302. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/convertobjectstoimage.py +0 -0
  303. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/correctilluminationapply.py +0 -0
  304. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
  305. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/createbatchfiles.py +0 -0
  306. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/crop.py +0 -0
  307. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/definegrid.py +0 -0
  308. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/dilateimage.py +0 -0
  309. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/dilateobjects.py +0 -0
  310. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/displaydataonimage.py +0 -0
  311. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/displaydensityplot.py +0 -0
  312. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/displayhistogram.py +0 -0
  313. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/displayplatemap.py +0 -0
  314. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/displayscatterplot.py +0 -0
  315. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/editobjectsmanually.py +0 -0
  316. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/enhanceedges.py +0 -0
  317. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
  318. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/erodeimage.py +0 -0
  319. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/erodeobjects.py +0 -0
  320. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
  321. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/exporttodatabase.py +0 -0
  322. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/exporttospreadsheet.py +0 -0
  323. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/fillobjects.py +0 -0
  324. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/filterobjects.py +0 -0
  325. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/findmaxima.py +0 -0
  326. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/flagimage.py +0 -0
  327. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/flipandrotate.py +0 -0
  328. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/gaussianfilter.py +0 -0
  329. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/graytocolor.py +0 -0
  330. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/identifydeadworms.py +0 -0
  331. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
  332. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
  333. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
  334. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
  335. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/imagemath.py +0 -0
  336. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/invertforprinting.py +0 -0
  337. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/labelimages.py +0 -0
  338. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/makeprojection.py +0 -0
  339. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/maskimage.py +0 -0
  340. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/maskobjects.py +0 -0
  341. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/matchtemplate.py +0 -0
  342. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measurecolocalization.py +0 -0
  343. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measuregranularity.py +0 -0
  344. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
  345. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureimageintensity.py +0 -0
  346. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureimageoverlap.py +0 -0
  347. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureimagequality.py +0 -0
  348. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureimageskeleton.py +0 -0
  349. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureobjectintensity.py +0 -0
  350. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
  351. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureobjectneighbors.py +0 -0
  352. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureobjectoverlap.py +0 -0
  353. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/measureobjectskeleton.py +0 -0
  354. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/medialaxis.py +0 -0
  355. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/medianfilter.py +0 -0
  356. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/morph.py +0 -0
  357. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/morphologicalskeleton.py +0 -0
  358. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/opening.py +0 -0
  359. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/overlayobjects.py +0 -0
  360. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/overlayoutlines.py +0 -0
  361. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/plugins/__init__.py +0 -0
  362. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
  363. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
  364. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
  365. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/reducenoise.py +0 -0
  366. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/relateobjects.py +0 -0
  367. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/removeholes.py +0 -0
  368. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/rescaleintensity.py +0 -0
  369. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/resize.py +0 -0
  370. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/resizeobjects.py +0 -0
  371. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/runimagejmacro.py +0 -0
  372. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/savecroppedobjects.py +0 -0
  373. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/saveimages.py +0 -0
  374. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
  375. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/smooth.py +0 -0
  376. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/splitormergeobjects.py +0 -0
  377. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/straightenworms.py +0 -0
  378. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/threshold.py +0 -0
  379. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/tile.py +0 -0
  380. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/trackobjects.py +0 -0
  381. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/unmixcolors.py +0 -0
  382. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/untangleworms.py +0 -0
  383. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/modules/watershed.py +0 -0
  384. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/utilities/__init__.py +0 -0
  385. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/utilities/morphology.py +0 -0
  386. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/cellprofiler/utilities/rules.py +0 -0
  387. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/environment.yml +0 -0
  388. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/pyproject.toml +0 -0
  389. {cellprofiler_nightly-5.0.0.dev243 → cellprofiler_nightly-5.0.0.dev259}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev243
3
+ Version: 5.0.0.dev259
4
4
  Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
5
5
  Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
6
6
  Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev243
3
+ Version: 5.0.0.dev259
4
4
  Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
5
5
  Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
6
6
  Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '5.0.0.dev243'
21
- __version_tuple__ = version_tuple = (5, 0, 0, 'dev243')
20
+ __version__ = version = '5.0.0.dev259'
21
+ __version_tuple__ = version_tuple = (5, 0, 0, 'dev259')
@@ -289,6 +289,19 @@ but the results will be zero or not-a-number (NaN).
289
289
  primary_mask = primary_labels == 0
290
290
  tertiary_labels[primary_mask == False] = 0
291
291
  #
292
+ # Check if a label was deleted as a result of the subtraction
293
+ #
294
+ secondary_unique_labels, secondary_unique_indices = numpy.unique(secondary_labels, return_index=True)
295
+ tertiary_unique_labels = numpy.unique(tertiary_labels)
296
+ missing_labels = numpy.setdiff1d(secondary_unique_labels, tertiary_unique_labels)
297
+ for missing_label in missing_labels:
298
+ # If a label was deleted, manually add a pixel to the tertiary_labels.
299
+ # This workaround ensures that ghost objects do not get created by identifytertiaryobjects.
300
+
301
+ # first non-zero (top-left) coodrinate of the secondary object is used to add a pixel to the tertiary_labels
302
+ first_row, first_col = numpy.unravel_index(secondary_unique_indices[missing_label], secondary_labels.shape)
303
+ tertiary_labels[first_row, first_col] = missing_label
304
+ #
292
305
  # Get the outlines of the tertiary image
293
306
  #
294
307
  tertiary_outlines = outline(tertiary_labels) != 0
@@ -304,6 +317,7 @@ but the results will be zero or not-a-number (NaN).
304
317
  child_count_of_secondary, secondary_parents = secondary_objects.relate_children(
305
318
  tertiary_objects
306
319
  )
320
+
307
321
  if self.shrink_primary:
308
322
  child_count_of_primary, primary_parents = primary_objects.relate_children(
309
323
  tertiary_objects
@@ -0,0 +1,425 @@
1
+ import centrosome.cpmorphology
2
+ import centrosome.zernike
3
+ import numpy
4
+ import scipy.ndimage
5
+ import skimage.measure
6
+ from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
7
+ from cellprofiler_core.module import Module
8
+ from cellprofiler_core.object import Objects
9
+ from cellprofiler_core.setting import Divider, Binary, ValidationError
10
+ from cellprofiler_core.setting.subscriber import LabelListSubscriber
11
+
12
+ import cellprofiler.gui.help.content
13
+ import cellprofiler.icons
14
+
15
+ from cellprofiler_library.modules import measureobjectsizeshape
16
+ from cellprofiler_library.opts.objectsizeshapefeatures import ObjectSizeShapeFeatures
17
+
18
+ __doc__ = """\
19
+ MeasureObjectSizeShape
20
+ ======================
21
+
22
+ **MeasureObjectSizeShape** measures several area and shape features
23
+ of identified objects.
24
+
25
+ Given an image with identified objects (e.g., nuclei or cells), this
26
+ module extracts area and shape features of each one. Note that these
27
+ features are only reliable for objects that are completely inside the
28
+ image borders, so you may wish to exclude objects touching the edge of
29
+ the image using **Identify** settings for 2D objects, or by applying
30
+ **FilterObjects** downstream.
31
+
32
+ The display window for this module shows per-image
33
+ aggregates for the per-object measurements. If you want to view the
34
+ per-object measurements themselves, you will need to use an
35
+ **Export** module to export them, or use **DisplayDataOnImage** to
36
+ display the object measurements of choice overlaid on an image of
37
+ choice.
38
+
39
+ |
40
+
41
+ ============ ============ ===============
42
+ Supports 2D? Supports 3D? Respects masks?
43
+ ============ ============ ===============
44
+ YES YES NO
45
+ ============ ============ ===============
46
+
47
+ See also
48
+ ^^^^^^^^
49
+
50
+ See also **MeasureImageAreaOccupied**.
51
+
52
+ Measurements made by this module
53
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54
+ Some measurements are available for 3D and 2D objects, while some are 2D
55
+ only.
56
+
57
+ See the *Technical Notes* below for an explanation of a key step
58
+ underlying many of the following metrics: creating an
59
+ ellipse with the same second-moments as each object.
60
+
61
+ - *Area:* *(2D only)* The number of pixels in the region.
62
+ - *Volume:* *(3D only)* The number of voxels in the region.
63
+ - *Perimeter:* *(2D only)* The total number of pixels around the boundary of each
64
+ region in the image.
65
+ - *SurfaceArea:* *(3D only)* The total number of voxels around the boundary of
66
+ each region in the image.
67
+ - *FormFactor:* *(2D only)* Calculated as 4\*π\*Area/Perimeter\ :sup:`2`. Equals 1
68
+ for a perfectly circular object.
69
+ - *Convex Area:* The area of a convex polygon containing the whole object.
70
+ Best imagined as a rubber band stretched around the object.
71
+ - *Solidity:* The proportion of the pixels in the convex hull that are
72
+ also in the object, i.e., *ObjectArea/ConvexHullArea*.
73
+ - *Extent:* The proportion of the pixels (2D) or voxels (3D) in the bounding box
74
+ that are also in the region. Computed as the area/volume of the object divided
75
+ by the area/volume of the bounding box.
76
+ - *EulerNumber:* The number of objects in the region minus the number
77
+ of holes in those objects, assuming 8-connectivity.
78
+ - *Center\_X, Center\_Y, Center\_Z:* The *x*-, *y*-, and (for 3D objects) *z-*
79
+ coordinates of the point farthest away from any object edge (the *centroid*).
80
+ Note that this is not the same as the *Location-X* and *-Y* measurements
81
+ produced by the **Identify** or **Watershed**
82
+ modules or the *Location-Z* measurement produced by the **Watershed** module.
83
+ - *BoundingBoxMinimum/Maximum\_X/Y/Z:* The minimum/maximum *x*-, *y*-, and (for 3D objects)
84
+ *z-* coordinates of the object.
85
+ - *BoundingBoxArea:* *(2D only)* The area of a box containing the object.
86
+ - *BoundingBoxVolume:* *(3D only)* The volume of a box containing the object.
87
+ - *Eccentricity:* *(2D only)* The eccentricity of the ellipse that has the same
88
+ second-moments as the region. The eccentricity is the ratio of the
89
+ distance between the foci of the ellipse and its major axis length.
90
+ The value is between 0 and 1. (0 and 1 are degenerate cases; an
91
+ ellipse whose eccentricity is 0 is actually a circle, while an
92
+ ellipse whose eccentricity is 1 is a line segment.)
93
+
94
+ |MOSS_image0|
95
+
96
+
97
+ - *MajorAxisLength:* The length (in pixels) of the major axis of the
98
+ ellipse that has the same normalized second central moments as the
99
+ region.
100
+ - *MinorAxisLength:* The length (in pixels) of the minor axis of the
101
+ ellipse that has the same normalized second central moments as the
102
+ region.
103
+ - *EquivalentDiameter:* The diameter of a circle or sphere with the same area
104
+ as the object.
105
+ - *Orientation:* *(2D only)* The angle (in degrees ranging from -90 to 90 degrees)
106
+ between the x-axis and the major axis of the ellipse that has the
107
+ same second-moments as the region.
108
+ - *Compactness:* *(2D only)* Calculated as Perimeter\ :sup:`2`/4\*π\*Area, related to
109
+ Form Factor. A filled circle will have a compactness of 1, with irregular objects or
110
+ objects with holes having a value greater than 1.
111
+ - *MaximumRadius:* *(2D only)* The maximum distance of any pixel in the object to
112
+ the closest pixel outside of the object. For skinny objects, this is
113
+ 1/2 of the maximum width of the object.
114
+ - *MedianRadius:* *(2D only)* The median distance of any pixel in the object to the
115
+ closest pixel outside of the object.
116
+ - *MeanRadius:* *(2D only)* The mean distance of any pixel in the object to the
117
+ closest pixel outside of the object.
118
+ - *MinFeretDiameter, MaxFeretDiameter:* *(2D only)* The Feret diameter is the
119
+ distance between two parallel lines tangent on either side of the
120
+ object (imagine taking a caliper and measuring the object at various
121
+ angles). The minimum and maximum Feret diameters are the smallest and
122
+ largest possible diameters, rotating the calipers along all possible
123
+ angles.
124
+ - *Zernike shape features:* *(2D only)* These metrics of shape describe a binary object
125
+ (or more precisely, a patch with background and an object in the
126
+ center) in a basis of Zernike polynomials, using the coefficients as
127
+ features (*Boland et al., 1998*). Currently, Zernike polynomials from
128
+ order 0 to order 9 are calculated, giving in total 30 measurements.
129
+ While there is no limit to the order which can be calculated (and
130
+ indeed you could add more by adjusting the code), the higher order
131
+ polynomials carry less information.
132
+ - *Spatial Moment features:* *(2D only)* A series of weighted averages
133
+ representing the shape, size, rotation and location of the object.
134
+ - *Central Moment features:* *(2D only)* Similar to spatial moments, but
135
+ normalized to the object's centroid. These are therefore not influenced
136
+ by an object's location within an image.
137
+ - *Normalized Moment features:* *(2D only)* Similar to central moments,
138
+ but further normalized to be scale invariant. These moments are therefore
139
+ not impacted by an object's size (or location).
140
+ - *Hu Moment features:* *(2D only)* Hu's set of image moment features. These
141
+ are not altered by the object's location, size or rotation. This means that
142
+ they primarily describe the shape of the object.
143
+ - *Inertia Tensor features:* *(2D only)* A representation of rotational
144
+ inertia of the object relative to it's center.
145
+ - *Inertia Tensor Eigenvalues features:* *(2D only)* Values describing
146
+ the movement of the Inertia Tensor array.
147
+
148
+
149
+
150
+ Technical notes
151
+ ^^^^^^^^^^^^^^^
152
+
153
+ A number of the object measurements are generated by creating an ellipse
154
+ with the same second-moments as the original object region. This is
155
+ essentially the best-fitting ellipse for a given object with the same
156
+ statistical properties. Furthermore, they are not affected by the
157
+ translation or uniform scaling of a region.
158
+
159
+ Following computer vision conventions, the origin of the X and Y axes is at the top
160
+ left of the image rather than the bottom left; the orientation of objects whose topmost point
161
+ is on their right (or are rotated counter-clockwise from the horizontal) will therefore
162
+ have a negative orientation, while objects whose topmost point is on their left
163
+ (or are rotated clockwise from the horizontal) will have a positive orientation.
164
+
165
+ The Zernike features are computed within the minimum enclosing circle of
166
+ the object, i.e., the circle of the smallest diameter that contains all
167
+ of the object’s pixels.
168
+
169
+ References
170
+ ^^^^^^^^^^
171
+
172
+ - Rocha L, Velho L, Carvalho PCP, “Image moments-based structuring and
173
+ tracking of objects”, Proceedings from XV Brazilian Symposium on
174
+ Computer Graphics and Image Processing, 2002. `(pdf)`_
175
+ - Principles of Digital Image Processing: Core Algorithms
176
+ (Undergraduate Topics in Computer Science): `Section 2.4.3 -
177
+ Statistical shape properties`_
178
+ - Chrystal P (1885), “On the problem to construct the minimum circle
179
+ enclosing n given points in a plane”, *Proceedings of the Edinburgh
180
+ Mathematical Society*, vol 3, p. 30
181
+ - Hu MK (1962), “Visual pattern recognition by moment invariants”, *IRE
182
+ transactions on information theory*, 8(2), pp.179-187 `(link)`_
183
+
184
+ .. _(pdf): http://sibgrapi.sid.inpe.br/col/sid.inpe.br/banon/2002/10.23.11.34/doc/35.pdf
185
+ .. _Section 2.4.3 - Statistical shape properties: http://www.scribd.com/doc/58004056/Principles-of-Digital-Image-Processing#page=49
186
+ .. _(link): https://ieeexplore.ieee.org/abstract/document/1057692
187
+ .. |MOSS_image0| image:: {ECCENTRICITY_ICON}
188
+ """.format(
189
+ **{
190
+ "ECCENTRICITY_ICON": cellprofiler.gui.help.content.image_resource(
191
+ "MeasureObjectSizeShape_Eccentricity.png"
192
+ )
193
+ }
194
+ )
195
+
196
+
197
+ class MeasureObjectSizeShape(Module):
198
+ module_name = "MeasureObjectSizeShape"
199
+ variable_revision_number = 3
200
+ category = "Measurement"
201
+
202
+ def create_settings(self):
203
+ """Create the settings for the module at startup and set the module name
204
+
205
+ The module allows for an unlimited number of measured objects, each
206
+ of which has an entry in self.object_groups.
207
+ """
208
+ self.objects_list = LabelListSubscriber(
209
+ "Select object sets to measure",
210
+ [],
211
+ doc="""Select the object sets whose size and shape you want to measure.""",
212
+ )
213
+ self.spacer = Divider(line=True)
214
+
215
+ self.calculate_advanced = Binary(
216
+ text="Calculate the advanced features?",
217
+ value=False,
218
+ doc="""\
219
+ Select *{YES}* to calculate additional statistics for object moments
220
+ and intertia tensors in **2D mode**. These features should not require much additional time
221
+ to calculate, but do add many additional columns to the resulting output
222
+ files.
223
+
224
+ In **3D mode** this setting enables the Solidity measurement, which can be time-consuming
225
+ to calculate.""".format(
226
+ **{"YES": "Yes"}
227
+ ),
228
+ )
229
+
230
+ self.calculate_zernikes = Binary(
231
+ text="Calculate the Zernike features?",
232
+ value=True,
233
+ doc="""\
234
+ Select *{YES}* to calculate the Zernike shape features. Because the
235
+ first 10 Zernike polynomials (from order 0 to order 9) are calculated,
236
+ this operation can be time consuming if the image contains a lot of
237
+ objects. Select *{NO}* if you are measuring 3D objects with this
238
+ module.""".format(
239
+ **{"YES": "Yes", "NO": "No"}
240
+ ),
241
+ )
242
+
243
+ def settings(self):
244
+ """The settings as they appear in the save file"""
245
+ result = [self.objects_list, self.calculate_zernikes, self.calculate_advanced]
246
+ return result
247
+
248
+ def visible_settings(self):
249
+ """The settings as they appear in the module viewer"""
250
+ result = [
251
+ self.objects_list,
252
+ self.spacer,
253
+ self.calculate_zernikes,
254
+ self.calculate_advanced,
255
+ ]
256
+ return result
257
+
258
+ def validate_module(self, pipeline):
259
+ """Make sure chosen objects are selected only once"""
260
+ objects = set()
261
+ if len(self.objects_list.value) == 0:
262
+ raise ValidationError("No object sets selected", self.objects_list)
263
+
264
+ for object_name in self.objects_list.value:
265
+ if object_name in objects:
266
+ raise ValidationError(
267
+ "%s has already been selected" % object_name, object_name
268
+ )
269
+ objects.add(object_name)
270
+
271
+ def get_categories(self, pipeline, object_name):
272
+ """Get the categories of measurements supplied for the given object name
273
+
274
+ pipeline - pipeline being run
275
+ object_name - name of labels in question (or 'Images')
276
+ returns a list of category names
277
+ """
278
+ for object_set in self.objects_list.value:
279
+ if object_set == object_name:
280
+ return [ObjectSizeShapeFeatures.AREA_SHAPE.value]
281
+ else:
282
+ return []
283
+
284
+ def get_zernike_numbers(self):
285
+ """The Zernike numbers measured by this module"""
286
+ if self.calculate_zernikes.value:
287
+ return centrosome.zernike.get_zernike_indexes(
288
+ ObjectSizeShapeFeatures.ZERNIKE_N.value + 1
289
+ )
290
+ else:
291
+ return []
292
+
293
+ def get_zernike_name(self, zernike_index):
294
+ """Return the name of a Zernike feature, given a (N,M) 2-tuple
295
+
296
+ zernike_index - a 2 element sequence organized as N,M
297
+ """
298
+ return "Zernike_%d_%d" % (zernike_index[0], zernike_index[1])
299
+
300
+ def get_feature_names(self, pipeline):
301
+ """Return the names of the features measured"""
302
+ feature_names = list(ObjectSizeShapeFeatures.F_STANDARD.value)
303
+
304
+ if pipeline.volumetric():
305
+ feature_names += list(ObjectSizeShapeFeatures.F_STD_3D.value)
306
+ if self.calculate_advanced.value:
307
+ feature_names += list(ObjectSizeShapeFeatures.F_ADV_3D.value)
308
+ else:
309
+ feature_names += list(ObjectSizeShapeFeatures.F_STD_2D.value)
310
+ if self.calculate_zernikes.value:
311
+ feature_names += [
312
+ self.get_zernike_name(index) for index in self.get_zernike_numbers()
313
+ ]
314
+ if self.calculate_advanced.value:
315
+ feature_names += list(get_feature_names.F_ADV_2D.values)
316
+
317
+ return feature_names
318
+
319
+ def get_measurements(self, pipeline, object_name, category):
320
+ """Return the measurements that this module produces
321
+
322
+ object_name - return measurements made on this object
323
+ (or 'Image' for image measurements)
324
+ category - return measurements made in this category
325
+ """
326
+ if (
327
+ category == ObjectSizeShapeFeatures.AREA_SHAPE.value
328
+ and self.get_categories(pipeline, object_name)
329
+ ):
330
+ return self.get_feature_names(pipeline)
331
+ return []
332
+
333
+ def run(self, workspace):
334
+ """Run, computing the area measurements for the objects"""
335
+
336
+ if self.show_window:
337
+ workspace.display_data.col_labels = (
338
+ "Object",
339
+ "Feature",
340
+ "Mean",
341
+ "Median",
342
+ "STD",
343
+ )
344
+
345
+ workspace.display_data.statistics = []
346
+ for object_name in self.objects_list.value:
347
+
348
+ objects = workspace.get_objects(object_name)
349
+
350
+ features_to_record = measureobjectsizeshape(
351
+ objects=objects.dense,
352
+ calculate_advanced=self.calculate_advanced.value,
353
+ calculate_zernikes=self.calculate_zernikes.value,
354
+ volumetric=workspace.pipeline.volumetric(),
355
+ spacing=objects.parent_image.spacing
356
+ if objects.has_parent_image
357
+ else (1.0,) * objects.dimensions, # TODO: Check this change is OK
358
+ )
359
+
360
+ for f, m in features_to_record.items():
361
+ self.record_measurement(workspace, object_name, f, m)
362
+
363
+ def display(self, workspace, figure):
364
+ figure.set_subplots((1, 1))
365
+ figure.subplot_table(
366
+ 0,
367
+ 0,
368
+ workspace.display_data.statistics,
369
+ col_labels=workspace.display_data.col_labels,
370
+ title="default",
371
+ )
372
+
373
+ def record_measurement(self, workspace, object_name, feature_name, result):
374
+ """Record the result of a measurement in the workspace's measurements"""
375
+ data = centrosome.cpmorphology.fixup_scipy_ndimage_result(result)
376
+ workspace.add_measurement(
377
+ object_name,
378
+ "%s_%s" % (ObjectSizeShapeFeatures.AREA_SHAPE.value, feature_name),
379
+ data,
380
+ )
381
+ if self.show_window and numpy.any(numpy.isfinite(data)) > 0:
382
+ data = data[numpy.isfinite(data)]
383
+ workspace.display_data.statistics.append(
384
+ (
385
+ object_name,
386
+ feature_name,
387
+ "%.2f" % numpy.mean(data),
388
+ "%.2f" % numpy.median(data),
389
+ "%.2f" % numpy.std(data),
390
+ )
391
+ )
392
+
393
+ def get_measurement_columns(self, pipeline):
394
+ """Return measurement column definitions.
395
+ All cols returned as float even though "Area" will only ever be int"""
396
+ measurement_names = self.get_feature_names(pipeline)
397
+ cols = []
398
+ for oname in self.objects_list.value:
399
+ for mname in measurement_names:
400
+ cols += [
401
+ (
402
+ oname,
403
+ ObjectSizeShapeFeatures.AREA_SHAPE.value + "_" + mname,
404
+ COLTYPE_FLOAT,
405
+ )
406
+ ]
407
+ return cols
408
+
409
+ def upgrade_settings(self, setting_values, variable_revision_number, module_name):
410
+ """Adjust the setting_values for older save file versions"""
411
+ if variable_revision_number == 1:
412
+ objects_list = setting_values[:-1]
413
+ setting_values = [", ".join(map(str, objects_list)), setting_values[-1]]
414
+ variable_revision_number = 2
415
+ if variable_revision_number == 2:
416
+ # Add advanced features toggle
417
+ setting_values.append("No")
418
+ variable_revision_number = 3
419
+ return setting_values, variable_revision_number
420
+
421
+ def volumetric(self):
422
+ return True
423
+
424
+
425
+ MeasureObjectAreaShape = MeasureObjectSizeShape
@@ -547,9 +547,7 @@ measured and will result in a undefined value in the output file.
547
547
 
548
548
  gray_levels = int(self.gray_levels.value)
549
549
 
550
- unique_labels = numpy.unique(labels)
551
- if unique_labels[0] == 0:
552
- unique_labels = unique_labels[1:]
550
+ unique_labels = objects.indices
553
551
 
554
552
  n_directions = 13 if objects.volumetric else 4
555
553
 
@@ -594,17 +592,16 @@ measured and will result in a undefined value in the output file.
594
592
  pixel_data, in_range=(0, 255), out_range=(0, gray_levels - 1)
595
593
  ).astype(numpy.uint8)
596
594
  props = skimage.measure.regionprops(labels, pixel_data)
595
+ features = numpy.empty((n_directions, 13, max(unique_labels)))
597
596
 
598
- features = numpy.empty((n_directions, 13, len(unique_labels)))
599
-
600
- for index, prop in enumerate(props):
597
+ for prop in props:
601
598
  label_data = prop["intensity_image"]
602
599
  try:
603
- features[:, :, index] = mahotas.features.haralick(
600
+ features[:, :, prop.label-1] = mahotas.features.haralick(
604
601
  label_data, distance=scale, ignore_zeros=True
605
602
  )
606
603
  except ValueError:
607
- features[:, :, index] = numpy.nan
604
+ features[:, :, prop.label-1] = numpy.nan
608
605
 
609
606
  for direction, direction_features in enumerate(features):
610
607
  for feature_name, feature in zip(F_HARALICK, direction_features):