CellProfiler-nightly 5.0.0.dev538__tar.gz → 5.0.0.dev548__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 (390) hide show
  1. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
  2. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/PKG-INFO +1 -1
  3. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/_version.py +3 -3
  4. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureimageskeleton.py +15 -107
  5. cellprofiler_nightly-5.0.0.dev548/cellprofiler/modules/measureobjectoverlap.py +344 -0
  6. cellprofiler_nightly-5.0.0.dev538/cellprofiler/modules/measureobjectoverlap.py +0 -984
  7. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
  8. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
  9. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
  10. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/CellProfiler_nightly.egg-info/requires.txt +0 -0
  11. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
  12. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/LICENSE +0 -0
  13. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/README.md +0 -0
  14. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/__init__.py +0 -0
  15. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/__main__.py +0 -0
  16. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
  17. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
  18. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
  19. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
  20. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
  21. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
  22. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
  23. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
  24. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
  25. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
  26. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/display_image_tools.rst +0 -0
  27. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
  28. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/display_menu_bar.rst +0 -0
  29. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
  30. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
  31. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
  32. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
  33. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
  34. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_3d_identify.rst +0 -0
  35. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_batch.rst +0 -0
  36. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_logging.rst +0 -0
  37. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_omero.rst +0 -0
  38. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_plugins.rst +0 -0
  39. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_shell.rst +0 -0
  40. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
  41. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
  42. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/output_measurements.rst +0 -0
  43. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/output_plateviewer.rst +0 -0
  44. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
  45. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/pipelines_building.rst +0 -0
  46. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/pipelines_running.rst +0 -0
  47. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/projects_configure_images.rst +0 -0
  48. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
  49. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
  50. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/projects_introduction.rst +0 -0
  51. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
  52. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
  53. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
  54. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
  55. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
  56. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
  57. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
  58. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
  59. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
  60. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
  61. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
  62. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
  63. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
  64. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler.ai +0 -0
  65. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler.icns +0 -0
  66. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler.ico +0 -0
  67. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler.png +0 -0
  68. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler.svg +0 -0
  69. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
  70. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Align.png +0 -0
  71. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/ApplyThreshold.png +0 -0
  72. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/CollapseTree.png +0 -0
  73. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/ColorToGray.png +0 -0
  74. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
  75. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
  76. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Crop.png +0 -0
  77. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
  78. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/ExpandTree.png +0 -0
  79. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/GrayToColor.png +0 -0
  80. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
  81. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
  82. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
  83. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
  84. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
  85. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
  86. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_ERROR.png +0 -0
  87. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_EYE.png +0 -0
  88. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_GO.png +0 -0
  89. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
  90. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
  91. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
  92. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_OK.png +0 -0
  93. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
  94. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_RUN.png +0 -0
  95. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
  96. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
  97. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_STOP.png +0 -0
  98. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_TEST.png +0 -0
  99. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
  100. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
  101. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
  102. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
  103. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
  104. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IMG_WARN.png +0 -0
  105. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
  106. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
  107. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
  108. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
  109. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
  110. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
  111. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
  112. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Images_UsingRules.png +0 -0
  113. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
  114. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
  115. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
  116. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
  117. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
  118. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/MeasureTexture.png +0 -0
  119. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
  120. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
  121. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
  122. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
  123. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
  124. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
  125. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/Tile.png +0 -0
  126. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/UnmixColors.png +0 -0
  127. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/check.png +0 -0
  128. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/color.png +0 -0
  129. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
  130. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/dapi.png +0 -0
  131. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/delete.png +0 -0
  132. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/downarrow.png +0 -0
  133. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/eye-close.png +0 -0
  134. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/eye-open.png +0 -0
  135. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/ffwd.png +0 -0
  136. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/ffwddisabled.png +0 -0
  137. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/filter.png +0 -0
  138. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/folder_browse.png +0 -0
  139. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/folder_create.png +0 -0
  140. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/gear.png +0 -0
  141. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/gfp.png +0 -0
  142. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/icon_copyrights.txt +0 -0
  143. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/illumination_function.png +0 -0
  144. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
  145. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
  146. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/mask.png +0 -0
  147. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/microscope-color_16.png +0 -0
  148. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/microscope-icon_16.png +0 -0
  149. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/microscope-icon_32.png +0 -0
  150. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/microscopes_16.png +0 -0
  151. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/module_add.png +0 -0
  152. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/module_help.png +0 -0
  153. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/module_movedown.png +0 -0
  154. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/module_moveup.png +0 -0
  155. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/module_remove.png +0 -0
  156. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/monochrome.png +0 -0
  157. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/movie_16.png +0 -0
  158. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/next.png +0 -0
  159. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/objects.png +0 -0
  160. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/pause.png +0 -0
  161. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/pausedisabled.png +0 -0
  162. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/play.png +0 -0
  163. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/playdisabled.png +0 -0
  164. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/previous.png +0 -0
  165. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/remove-sign.png +0 -0
  166. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/rewind.png +0 -0
  167. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/rewinddisabled.png +0 -0
  168. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
  169. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
  170. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/splash.png +0 -0
  171. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/status_pause.png +0 -0
  172. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/status_save.png +0 -0
  173. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/status_stop.png +0 -0
  174. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/stop.png +0 -0
  175. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/stopdisabled.png +0 -0
  176. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/structuringelement.png +0 -0
  177. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/thumb-down.png +0 -0
  178. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/thumb-up.png +0 -0
  179. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/unchecked.png +0 -0
  180. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/wantpony.wav +0 -0
  181. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_examples.png +0 -0
  182. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_forum.png +0 -0
  183. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_help.png +0 -0
  184. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_manual.png +0 -0
  185. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_new.png +0 -0
  186. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_pipeline.png +0 -0
  187. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_screen_help.png +0 -0
  188. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_start.png +0 -0
  189. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcome_tutorial.png +0 -0
  190. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
  191. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
  192. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
  193. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/window_back.png +0 -0
  194. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/window_filesave.png +0 -0
  195. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/window_forward.png +0 -0
  196. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/window_home.png +0 -0
  197. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/window_pan.png +0 -0
  198. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
  199. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/__init__.py +0 -0
  200. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
  201. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/_welcome_frame.py +0 -0
  202. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/_workspace_model.py +0 -0
  203. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/addmoduleframe.py +0 -0
  204. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/app.py +0 -0
  205. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/artist.py +0 -0
  206. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/checkupdate.py +0 -0
  207. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/constants/__init__.py +0 -0
  208. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/constants/figure.py +0 -0
  209. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/constants/module_view.py +0 -0
  210. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
  211. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/constants/preferences_view.py +0 -0
  212. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/constants/workspace_view.py +0 -0
  213. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/cpframe.py +0 -0
  214. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/dialog.py +0 -0
  215. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/editobjectsdlg.py +0 -0
  216. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/errordialog.py +0 -0
  217. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/figure/__init__.py +0 -0
  218. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/figure/_figure.py +0 -0
  219. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
  220. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/figure/_outline_artist.py +0 -0
  221. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/gridrenderers.py +0 -0
  222. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/help/__init__.py +0 -0
  223. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/help/content.py +0 -0
  224. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/help/menu.py +0 -0
  225. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/help/search.py +0 -0
  226. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/__init__.py +0 -0
  227. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/configure_images_help.html +0 -0
  228. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/exporting_results_help.html +0 -0
  229. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/getting_started.html +0 -0
  230. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/htmlwindow.py +0 -0
  231. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/identify_features_help.html +0 -0
  232. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/in_app_help.html +0 -0
  233. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/making_measurements_help.html +0 -0
  234. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
  235. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/selecting_images_help.html +0 -0
  236. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/test_mode_help.html +0 -0
  237. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/utils.py +0 -0
  238. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/html/welcome.html +0 -0
  239. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/htmldialog.py +0 -0
  240. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/imagesetctrl.py +0 -0
  241. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/menu.py +0 -0
  242. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/metadatactrl.py +0 -0
  243. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/__init__.py +0 -0
  244. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
  245. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
  246. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
  247. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
  248. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
  249. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
  250. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_module_view.py +0 -0
  251. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
  252. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_table_controller.py +0 -0
  253. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
  254. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/moduleview.py +0 -0
  255. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/namesubscriber.py +0 -0
  256. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/omerologin.py +0 -0
  257. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/parametersampleframe.py +0 -0
  258. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/pathlist.py +0 -0
  259. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/pipeline.py +0 -0
  260. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/pipelinecontroller.py +0 -0
  261. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/pipelinelistview.py +0 -0
  262. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/plateviewer.py +0 -0
  263. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/plugins_menu.py +0 -0
  264. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
  265. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
  266. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
  267. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/preferences_view/__init__.py +0 -0
  268. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
  269. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
  270. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
  271. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
  272. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/regexp_editor.py +0 -0
  273. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/tools.py +0 -0
  274. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/utilities/__init__.py +0 -0
  275. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/utilities/figure.py +0 -0
  276. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/utilities/icon.py +0 -0
  277. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/utilities/module_view.py +0 -0
  278. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
  279. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/utilities/preferences_view.py +0 -0
  280. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/utilities/workspace_view.py +0 -0
  281. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/__init__.py +0 -0
  282. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
  283. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
  284. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
  285. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
  286. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
  287. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
  288. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
  289. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/icons/__init__.py +0 -0
  290. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/knime_bridge.py +0 -0
  291. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/misc.py +0 -0
  292. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/UntangleWorms.xsd +0 -0
  293. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/__init__.py +0 -0
  294. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/_help.py +0 -0
  295. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/calculatemath.py +0 -0
  296. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/calculatestatistics.py +0 -0
  297. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/classifyobjects.py +0 -0
  298. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/closing.py +0 -0
  299. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/colortogray.py +0 -0
  300. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/combineobjects.py +0 -0
  301. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/convertimagetoobjects.py +0 -0
  302. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/convertobjectstoimage.py +0 -0
  303. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/correctilluminationapply.py +0 -0
  304. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
  305. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/createbatchfiles.py +0 -0
  306. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/crop.py +0 -0
  307. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/definegrid.py +0 -0
  308. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/dilateimage.py +0 -0
  309. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/dilateobjects.py +0 -0
  310. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/displaydataonimage.py +0 -0
  311. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/displaydensityplot.py +0 -0
  312. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/displayhistogram.py +0 -0
  313. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/displayplatemap.py +0 -0
  314. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/displayscatterplot.py +0 -0
  315. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/editobjectsmanually.py +0 -0
  316. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/enhanceedges.py +0 -0
  317. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
  318. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/erodeimage.py +0 -0
  319. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/erodeobjects.py +0 -0
  320. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
  321. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/exporttodatabase.py +0 -0
  322. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/exporttospreadsheet.py +0 -0
  323. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/fillobjects.py +0 -0
  324. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/filterobjects.py +0 -0
  325. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/findmaxima.py +0 -0
  326. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/flagimage.py +0 -0
  327. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/flipandrotate.py +0 -0
  328. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/gaussianfilter.py +0 -0
  329. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/graytocolor.py +0 -0
  330. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/identifydeadworms.py +0 -0
  331. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
  332. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
  333. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
  334. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
  335. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
  336. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/imagemath.py +0 -0
  337. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/invertforprinting.py +0 -0
  338. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/labelimages.py +0 -0
  339. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/makeprojection.py +0 -0
  340. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/maskimage.py +0 -0
  341. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/maskobjects.py +0 -0
  342. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/matchtemplate.py +0 -0
  343. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measurecolocalization.py +0 -0
  344. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measuregranularity.py +0 -0
  345. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
  346. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureimageintensity.py +0 -0
  347. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureimageoverlap.py +0 -0
  348. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureimagequality.py +0 -0
  349. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureobjectintensity.py +0 -0
  350. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
  351. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureobjectneighbors.py +0 -0
  352. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureobjectsizeshape.py +0 -0
  353. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measureobjectskeleton.py +0 -0
  354. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/measuretexture.py +0 -0
  355. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/medialaxis.py +0 -0
  356. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/medianfilter.py +0 -0
  357. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/morph.py +0 -0
  358. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/morphologicalskeleton.py +0 -0
  359. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/opening.py +0 -0
  360. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/overlayobjects.py +0 -0
  361. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/overlayoutlines.py +0 -0
  362. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/plugins/__init__.py +0 -0
  363. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
  364. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
  365. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
  366. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/reducenoise.py +0 -0
  367. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/relateobjects.py +0 -0
  368. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/removeholes.py +0 -0
  369. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/rescaleintensity.py +0 -0
  370. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/resize.py +0 -0
  371. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/resizeobjects.py +0 -0
  372. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/runimagejmacro.py +0 -0
  373. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/savecroppedobjects.py +0 -0
  374. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/saveimages.py +0 -0
  375. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
  376. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/smooth.py +0 -0
  377. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/splitormergeobjects.py +0 -0
  378. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/straightenworms.py +0 -0
  379. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/threshold.py +0 -0
  380. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/tile.py +0 -0
  381. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/trackobjects.py +0 -0
  382. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/unmixcolors.py +0 -0
  383. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/untangleworms.py +0 -0
  384. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/modules/watershed.py +0 -0
  385. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/utilities/__init__.py +0 -0
  386. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/utilities/morphology.py +0 -0
  387. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/cellprofiler/utilities/rules.py +0 -0
  388. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/environment.yml +0 -0
  389. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/pyproject.toml +0 -0
  390. {cellprofiler_nightly-5.0.0.dev538 → cellprofiler_nightly-5.0.0.dev548}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev538
3
+ Version: 5.0.0.dev548
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.dev538
3
+ Version: 5.0.0.dev548
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>
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '5.0.0.dev538'
32
- __version_tuple__ = version_tuple = (5, 0, 0, 'dev538')
31
+ __version__ = version = '5.0.0.dev548'
32
+ __version_tuple__ = version_tuple = (5, 0, 0, 'dev548')
33
33
 
34
- __commit_id__ = commit_id = 'g3e32fa061'
34
+ __commit_id__ = commit_id = 'g206f9390a'
@@ -30,66 +30,9 @@ Measurements made by this module
30
30
  - *Endpoints*: Total number of pixels with only one neighbor.
31
31
  """
32
32
 
33
- import numpy
34
- import scipy.ndimage
35
- import skimage.segmentation
36
- import skimage.util
37
33
  from cellprofiler_core.module import Module
38
34
  from cellprofiler_core.setting.subscriber import ImageSubscriber
39
-
40
-
41
- def _neighbors(image):
42
- """
43
-
44
- Counts the neighbor pixels for each pixel of an image:
45
-
46
- x = [
47
- [0, 1, 0],
48
- [1, 1, 1],
49
- [0, 1, 0]
50
- ]
51
-
52
- _neighbors(x)
53
-
54
- [
55
- [0, 3, 0],
56
- [3, 4, 3],
57
- [0, 3, 0]
58
- ]
59
-
60
- :type image: numpy.ndarray
61
-
62
- :param image: A two-or-three dimensional image
63
-
64
- :return: neighbor pixels for each pixel of an image
65
-
66
- """
67
- padding = numpy.pad(image, 1, "constant")
68
-
69
- mask = padding > 0
70
-
71
- padding = padding.astype(float)
72
-
73
- if image.ndim == 2:
74
- response = 3 ** 2 * scipy.ndimage.uniform_filter(padding) - 1
75
-
76
- labels = (response * mask)[1:-1, 1:-1]
77
-
78
- return labels.astype(numpy.uint16)
79
- elif image.ndim == 3:
80
- response = 3 ** 3 * scipy.ndimage.uniform_filter(padding) - 1
81
-
82
- labels = (response * mask)[1:-1, 1:-1, 1:-1]
83
-
84
- return labels.astype(numpy.uint16)
85
-
86
-
87
- def branches(image):
88
- return _neighbors(image) > 2
89
-
90
-
91
- def endpoints(image):
92
- return _neighbors(image) == 1
35
+ from cellprofiler_library.modules._measureimageskeleton import measure_image_skeleton
93
36
 
94
37
 
95
38
  class MeasureImageSkeleton(Module):
@@ -113,8 +56,6 @@ You can create a morphological skeleton with the
113
56
  return [self.skeleton_name]
114
57
 
115
58
  def run(self, workspace):
116
- names = ["Branches", "Endpoints"]
117
-
118
59
  input_image_name = self.skeleton_name.value
119
60
 
120
61
  image_set = workspace.image_set
@@ -125,32 +66,30 @@ You can create a morphological skeleton with the
125
66
 
126
67
  pixels = input_image.pixel_data
127
68
 
128
- pixels = pixels > 0
129
-
130
- branch_nodes = branches(pixels)
69
+ result = measure_image_skeleton(
70
+ pixels,
71
+ im_name=self.skeleton_name.value,
72
+ return_visualization_data=self.show_window
73
+ )
131
74
 
132
- endpoint_nodes = endpoints(pixels)
75
+ if self.show_window:
76
+ lib_measurements, lib_display = result
77
+ else:
78
+ lib_measurements = result
133
79
 
134
- statistics = self.measure(input_image, workspace)
80
+ for feature_name, value in lib_measurements.image.items():
81
+ workspace.measurements.add_image_measurement(feature_name, value)
135
82
 
136
83
  if self.show_window:
137
84
  workspace.display_data.skeleton = pixels
138
85
 
139
- a = numpy.copy(branch_nodes).astype(numpy.uint16)
140
- b = numpy.copy(endpoint_nodes).astype(numpy.uint16)
141
-
142
- a[a == 1] = 1
143
- b[b == 1] = 2
144
-
145
- nodes = skimage.segmentation.join_segmentations(a, b)
146
-
147
- workspace.display_data.nodes = nodes
86
+ workspace.display_data.nodes = lib_display.nodes
148
87
 
149
88
  workspace.display_data.dimensions = dimensions
150
89
 
151
- workspace.display_data.names = names
90
+ workspace.display_data.names = ["Branches", "Endpoints"]
152
91
 
153
- workspace.display_data.statistics = statistics
92
+ workspace.display_data.statistics = lib_display.statistics
154
93
 
155
94
  def display(self, workspace, figure=None):
156
95
  layout = (2, 2)
@@ -195,8 +134,6 @@ You can create a morphological skeleton with the
195
134
  return "Skeleton_{}_{}".format(name, image)
196
135
 
197
136
  def get_measurements(self, pipeline, object_name, category):
198
- name = self.skeleton_name.value
199
-
200
137
  if object_name == "Image" and category == "Skeleton":
201
138
  return [
202
139
  "Branches",
@@ -228,34 +165,5 @@ You can create a morphological skeleton with the
228
165
 
229
166
  return feature
230
167
 
231
- def measure(self, image, workspace):
232
- data = image.pixel_data
233
-
234
- data = data.astype(bool)
235
-
236
- measurements = workspace.measurements
237
-
238
- measurement_name = self.skeleton_name.value
239
-
240
- statistics = []
241
-
242
- name = "Skeleton_Branches_{}".format(measurement_name)
243
-
244
- value = numpy.count_nonzero(branches(data))
245
-
246
- statistics.append(value)
247
-
248
- measurements.add_image_measurement(name, value)
249
-
250
- name = "Skeleton_Endpoints_{}".format(measurement_name)
251
-
252
- value = numpy.count_nonzero(endpoints(data))
253
-
254
- statistics.append(value)
255
-
256
- measurements.add_image_measurement(name, value)
257
-
258
- return [statistics]
259
-
260
168
  def volumetric(self):
261
169
  return True
@@ -0,0 +1,344 @@
1
+ """
2
+ MeasureObjectOverlap
3
+ ====================
4
+
5
+ **MeasureObjectOverlap** calculates how much overlap occurs between
6
+ objects.
7
+
8
+ This module calculates object overlap by determining a set of statistics
9
+ that measure the closeness of an object to its true value. One
10
+ object is considered the “ground truth” (possibly the result of
11
+ hand-segmentation) and the other is the “test” object; the objects
12
+ are determined to overlap most completely when the test object matches
13
+ the ground truth perfectly. The module requires input to be objects obtained
14
+ after "IdentifyPrimaryObjects", "IdentifySecondaryObjects" or "IdentifyTertiaryObjects".
15
+ If your images have been segmented using other image processing software,
16
+ or you have hand-segmented them in software such as Photoshop, you will
17
+ need to use "Object Processing" modules such as "IdentifyPrimaryObjects" to identify
18
+ "ground truth" objects.
19
+
20
+ Measurements made by this module
21
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22
+
23
+ - *True positive rate:* Total number of true positive pixels / total number of actual positive pixels.
24
+
25
+ - *False positive rate:* Total number of false positive pixels / total number of actual negative pixels
26
+
27
+ - *True negative rate:* Total number of true negative pixels / total number of actual negative pixels.
28
+
29
+ - *False negative rate:* Total number of false negative pixels / total number of actual positive pixels
30
+
31
+ - *Precision:* Number of true positive pixels / (number of true positive pixels + number of false positive pixels)
32
+
33
+ - *Recall:* Number of true positive pixels/ (number of true positive pixels + number of false negative pixels)
34
+
35
+ - *F-factor:* 2 × (precision × recall)/(precision + recall). Also known as F\ :sub:`1` score, F-score or F-measure.
36
+
37
+ - *Earth mover’s distance:* The minimum distance required to move each foreground
38
+ pixel in the test object to some corresponding foreground pixel in the reference object.
39
+
40
+ - *Rand index:* A measure of the similarity between two data clusterings. Perfectly random clustering
41
+ returns the minimum score of 0, perfect clustering returns the maximum score of 1.
42
+
43
+ - *Adjusted Rand index:* A variation of the Rand index which considers a correction for chance.
44
+
45
+ References
46
+ ^^^^^^^^^^
47
+
48
+ - Collins LM, Dent CW (1988) “Omega: A general formulation of the Rand
49
+ Index of cluster recovery suitable for non-disjoint solutions”,
50
+ *Multivariate Behavioral Research*, 23, 231-242 `(link)`_
51
+
52
+ - Pele O, Werman M (2009) “Fast and Robust Earth Mover’s Distances”,
53
+ *2009 IEEE 12th International Conference on Computer Vision*
54
+
55
+ .. _(link): https://doi.org/10.1207/s15327906mbr2302_6
56
+ """
57
+
58
+ import numpy
59
+ from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
60
+ from cellprofiler_core.module import Module
61
+ from cellprofiler_core.setting import Binary
62
+ from cellprofiler_core.setting.choice import Choice
63
+ from cellprofiler_core.setting.subscriber import LabelSubscriber
64
+ from cellprofiler_core.setting.text import Integer
65
+
66
+ from cellprofiler_library.modules._measureobjectoverlap import measure_object_overlap
67
+ from cellprofiler_library.opts.measureobjectoverlap import Feature, ALL_FEATURES, C_IMAGE_OVERLAP, DecimationMethod
68
+ from cellprofiler.modules import _help
69
+
70
+ O_OBJ = "Segmented objects"
71
+
72
+ L_LOAD = "Loaded from a previous run"
73
+ L_CP = "From this CP pipeline"
74
+
75
+ class MeasureObjectOverlap(Module):
76
+ category = "Measurement"
77
+ variable_revision_number = 2
78
+ module_name = "MeasureObjectOverlap"
79
+
80
+ def create_settings(self):
81
+ self.object_name_GT = LabelSubscriber(
82
+ "Select the objects to be used as the ground truth basis for calculating the amount of overlap",
83
+ "None",
84
+ doc="""\
85
+ Choose which set of objects will used as the “ground truth” objects. It
86
+ can be the product of segmentation performed by hand, or the result of
87
+ another segmentation algorithm whose results you would like to compare.
88
+ See the **Load** modules for more details on loading objects.""",
89
+ )
90
+
91
+ self.object_name_ID = LabelSubscriber(
92
+ "Select the objects to be tested for overlap against the ground truth",
93
+ "None",
94
+ doc="""\
95
+ This set of objects is what you will compare with the ground truth
96
+ objects. It is known as the “test object.”""",
97
+ )
98
+
99
+ self.wants_emd = Binary(
100
+ "Calculate earth mover's distance?",
101
+ False,
102
+ doc="""\
103
+ The earth mover’s distance computes the shortest distance that would
104
+ have to be travelled to move each foreground pixel in the test object to
105
+ some foreground pixel in the reference object. “Earth mover’s” refers to
106
+ an analogy: the pixels are “earth” that has to be moved by some machine
107
+ at the smallest possible cost.
108
+ It would take too much memory and processing time to compute the exact
109
+ earth mover’s distance, so **MeasureObjectOverlap** chooses
110
+ representative foreground pixels in each object and assigns each
111
+ foreground pixel to its closest representative. The earth mover’s
112
+ distance is then computed for moving the foreground pixels associated
113
+ with each representative in the test object to those in the reference
114
+ object.""",
115
+ )
116
+
117
+ self.max_points = Integer(
118
+ "Maximum # of points",
119
+ value=250,
120
+ minval=100,
121
+ doc="""\
122
+ *(Used only when computing the earth mover’s distance)*
123
+
124
+ This is the number of representative points that will be taken from the
125
+ foreground of the test objects and from the foreground of the reference
126
+ objects using the point selection method (see below).""",
127
+ )
128
+
129
+ self.decimation_method = Choice(
130
+ "Point selection method",
131
+ choices=[DecimationMethod.KMEANS, DecimationMethod.SKELETON],
132
+ doc="""\
133
+ *(Used only when computing the earth mover’s distance)*
134
+
135
+ The point selection setting determines how the representative points
136
+ are chosen.
137
+
138
+ - *{DM_KMEANS}:* Select to pick representative points using a K-Means
139
+ clustering technique. The foregrounds of both objects are combined and
140
+ representatives are picked that minimize the distance to the nearest
141
+ representative. The same representatives are then used for the test
142
+ and reference objects.
143
+ - *{DM_SKEL}:* Select to skeletonize the object and pick points
144
+ equidistant along the skeleton.
145
+
146
+ |image0| *{DM_KMEANS}* is a choice that’s generally applicable to all
147
+ images. *{DM_SKEL}* is best suited to long, skinny objects such as
148
+ worms or neurites.
149
+
150
+ .. |image0| image:: {PROTIP_RECOMMEND_ICON}
151
+ """.format(
152
+ **{
153
+ "DM_KMEANS": DecimationMethod.KMEANS.value,
154
+ "DM_SKEL": DecimationMethod.SKELETON.value,
155
+ "PROTIP_RECOMMEND_ICON": _help.PROTIP_RECOMMEND_ICON,
156
+ }
157
+ ),
158
+ )
159
+
160
+ self.max_distance = Integer(
161
+ "Maximum distance",
162
+ value=250,
163
+ minval=1,
164
+ doc="""\
165
+ *(Used only when computing the earth mover’s distance)*
166
+
167
+ This setting sets an upper bound to the distance penalty assessed during
168
+ the movement calculation. As an example, the score for moving 10 pixels
169
+ from one location to a location that is 100 pixels away is 10\*100, but
170
+ if the maximum distance were set to 50, the score would be 10\*50
171
+ instead.
172
+
173
+ The maximum distance should be set to the largest reasonable distance
174
+ that pixels could be expected to move from one object to the next.""",
175
+ )
176
+
177
+ self.penalize_missing = Binary(
178
+ "Penalize missing pixels",
179
+ value=False,
180
+ doc="""\
181
+ *(Used only when computing the earth mover’s distance)*
182
+
183
+ If one object has more foreground pixels than the other, the earth
184
+ mover’s distance is not well-defined because there is no destination for
185
+ the extra source pixels or vice-versa. It’s reasonable to assess a
186
+ penalty for the discrepancy when comparing the accuracy of a
187
+ segmentation because the discrepancy represents an error. It’s also
188
+ reasonable to assess no penalty if the goal is to compute the cost of
189
+ movement, for example between two frames in a time-lapse movie, because
190
+ the discrepancy is likely caused by noise or artifacts in segmentation.
191
+ Set this setting to “Yes” to assess a penalty equal to the maximum
192
+ distance times the absolute difference in number of foreground pixels in
193
+ the two objects. Set this setting to “No” to assess no penalty.""",
194
+ )
195
+
196
+ def settings(self):
197
+ return [
198
+ self.object_name_GT,
199
+ self.object_name_ID,
200
+ self.wants_emd,
201
+ self.max_points,
202
+ self.decimation_method,
203
+ self.max_distance,
204
+ self.penalize_missing,
205
+ ]
206
+
207
+ def visible_settings(self):
208
+ visible_settings = [self.object_name_GT, self.object_name_ID, self.wants_emd]
209
+
210
+ if self.wants_emd:
211
+ visible_settings += [
212
+ self.max_points,
213
+ self.decimation_method,
214
+ self.max_distance,
215
+ self.penalize_missing,
216
+ ]
217
+
218
+ return visible_settings
219
+
220
+
221
+
222
+ def run(self, workspace):
223
+ object_name_GT = self.object_name_GT.value
224
+ object_name_ID = self.object_name_ID.value
225
+
226
+ objects_GT = workspace.get_objects(object_name_GT)
227
+ objects_ID = workspace.get_objects(object_name_ID)
228
+
229
+ objects_GT_labelset = objects_GT.get_labels()
230
+ objects_ID_labelset = objects_ID.get_labels()
231
+
232
+ result = measure_object_overlap(
233
+ objects_GT_labelset,
234
+ objects_ID_labelset,
235
+ objects_GT.shape,
236
+ objects_ID.shape,
237
+ object_name_GT=object_name_GT,
238
+ object_name_ID=object_name_ID,
239
+ calcualte_emd=self.wants_emd.value,
240
+ decimation_method=self.decimation_method.value,
241
+ max_distance=self.max_distance.value,
242
+ max_points=self.max_points.value,
243
+ penalize_missing=self.penalize_missing.value,
244
+ return_visualization_data=self.show_window
245
+ )
246
+
247
+ # Unpack result based on whether visualization data was requested
248
+ if self.show_window:
249
+ lib_measurements, lib_display = result
250
+ else:
251
+ lib_measurements = result
252
+
253
+ m = workspace.measurements
254
+ for feature_name, value in lib_measurements.image.items():
255
+ m.add_image_measurement(feature_name, value)
256
+
257
+ if self.show_window:
258
+ workspace.display_data.true_positives = lib_display.true_positives
259
+ workspace.display_data.true_negatives = lib_display.true_negatives
260
+ workspace.display_data.false_positives = lib_display.false_positives
261
+ workspace.display_data.false_negatives = lib_display.false_negatives
262
+ workspace.display_data.statistics = lib_display.statistics
263
+
264
+ def get_labels_mask(self, obj_labels, obj_shape):
265
+ labels_mask = numpy.zeros(obj_shape, bool)
266
+ for labels, indexes in obj_labels:
267
+ labels_mask = labels_mask | labels > 0
268
+ return labels_mask
269
+
270
+ def display(self, workspace, figure):
271
+ """Display the image confusion matrix & statistics"""
272
+ figure.set_subplots((3, 2))
273
+
274
+ for x, y, image, label in (
275
+ (0, 0, workspace.display_data.true_positives, "True positives"),
276
+ (0, 1, workspace.display_data.false_positives, "False positives"),
277
+ (1, 0, workspace.display_data.false_negatives, "False negatives"),
278
+ (1, 1, workspace.display_data.true_negatives, "True negatives"),
279
+ ):
280
+ figure.subplot_imshow_bw(
281
+ x, y, image, title=label, sharexy=figure.subplot(0, 0)
282
+ )
283
+
284
+ figure.subplot_table(
285
+ 2,
286
+ 0,
287
+ workspace.display_data.statistics,
288
+ col_labels=("Measurement", "Value"),
289
+ n_rows=2,
290
+ )
291
+
292
+ def measurement_name(self, feature):
293
+ return "_".join(
294
+ (
295
+ C_IMAGE_OVERLAP,
296
+ feature,
297
+ self.object_name_GT.value,
298
+ self.object_name_ID.value,
299
+ )
300
+ )
301
+
302
+ def get_categories(self, pipeline, object_name):
303
+ if object_name == "Image":
304
+ return [C_IMAGE_OVERLAP]
305
+
306
+ return []
307
+
308
+ def get_measurements(self, pipeline, object_name, category):
309
+ if object_name == "Image" and category == C_IMAGE_OVERLAP:
310
+ return self.all_features()
311
+
312
+ return []
313
+
314
+ def get_measurement_images(self, pipeline, object_name, category, measurement):
315
+ if measurement in self.get_measurements(pipeline, object_name, category):
316
+ return [self.test_img.value]
317
+
318
+ return []
319
+
320
+ def get_measurement_scales(
321
+ self, pipeline, object_name, category, measurement, image_name
322
+ ):
323
+ if (
324
+ object_name == "Image"
325
+ and category == C_IMAGE_OVERLAP
326
+ and measurement in ALL_FEATURES
327
+ ):
328
+ return ["_".join((self.object_name_GT.value, self.object_name_ID.value))]
329
+
330
+ return []
331
+
332
+ def all_features(self):
333
+ all_features = list(ALL_FEATURES)
334
+
335
+ if self.wants_emd:
336
+ all_features.append(Feature.EARTH_MOVERS_DISTANCE)
337
+
338
+ return all_features
339
+
340
+ def get_measurement_columns(self, pipeline):
341
+ return [
342
+ ("Image", self.measurement_name(feature), COLTYPE_FLOAT,)
343
+ for feature in self.all_features()
344
+ ]