CellProfiler-nightly 5.0.0.dev562__tar.gz → 5.0.0.dev592__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.dev562 → cellprofiler_nightly-5.0.0.dev592}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
  2. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/PKG-INFO +1 -1
  3. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/_version.py +3 -3
  4. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureimageintensity.py +4 -4
  5. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureobjectintensity.py +7 -5
  6. cellprofiler_nightly-5.0.0.dev592/cellprofiler/modules/measureobjectneighbors.py +596 -0
  7. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureobjectsizeshape.py +32 -56
  8. cellprofiler_nightly-5.0.0.dev562/cellprofiler/modules/measureobjectneighbors.py +0 -958
  9. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
  10. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
  11. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
  12. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/CellProfiler_nightly.egg-info/requires.txt +0 -0
  13. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
  14. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/LICENSE +0 -0
  15. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/README.md +0 -0
  16. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/__init__.py +0 -0
  17. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/__main__.py +0 -0
  18. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
  19. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
  20. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
  21. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
  22. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
  23. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
  24. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
  25. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
  26. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
  27. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
  28. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/display_image_tools.rst +0 -0
  29. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
  30. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/display_menu_bar.rst +0 -0
  31. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
  32. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
  33. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
  34. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
  35. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
  36. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_3d_identify.rst +0 -0
  37. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_batch.rst +0 -0
  38. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_logging.rst +0 -0
  39. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_omero.rst +0 -0
  40. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_plugins.rst +0 -0
  41. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_shell.rst +0 -0
  42. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
  43. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
  44. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/output_measurements.rst +0 -0
  45. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/output_plateviewer.rst +0 -0
  46. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
  47. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/pipelines_building.rst +0 -0
  48. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/pipelines_running.rst +0 -0
  49. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/projects_configure_images.rst +0 -0
  50. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
  51. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
  52. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/projects_introduction.rst +0 -0
  53. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
  54. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
  55. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
  56. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
  57. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
  58. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
  59. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
  60. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
  61. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
  62. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
  63. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
  64. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
  65. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
  66. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler.ai +0 -0
  67. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler.icns +0 -0
  68. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler.ico +0 -0
  69. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler.png +0 -0
  70. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler.svg +0 -0
  71. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
  72. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Align.png +0 -0
  73. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/ApplyThreshold.png +0 -0
  74. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/CollapseTree.png +0 -0
  75. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/ColorToGray.png +0 -0
  76. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
  77. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
  78. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Crop.png +0 -0
  79. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
  80. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/ExpandTree.png +0 -0
  81. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/GrayToColor.png +0 -0
  82. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
  83. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
  84. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
  85. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
  86. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
  87. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
  88. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_ERROR.png +0 -0
  89. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_EYE.png +0 -0
  90. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_GO.png +0 -0
  91. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
  92. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
  93. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
  94. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_OK.png +0 -0
  95. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
  96. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_RUN.png +0 -0
  97. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
  98. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
  99. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_STOP.png +0 -0
  100. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_TEST.png +0 -0
  101. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
  102. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
  103. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
  104. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
  105. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
  106. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IMG_WARN.png +0 -0
  107. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
  108. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
  109. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
  110. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
  111. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
  112. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
  113. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
  114. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Images_UsingRules.png +0 -0
  115. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
  116. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
  117. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
  118. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
  119. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
  120. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/MeasureTexture.png +0 -0
  121. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
  122. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
  123. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
  124. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
  125. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
  126. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
  127. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/Tile.png +0 -0
  128. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/UnmixColors.png +0 -0
  129. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/check.png +0 -0
  130. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/color.png +0 -0
  131. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
  132. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/dapi.png +0 -0
  133. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/delete.png +0 -0
  134. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/downarrow.png +0 -0
  135. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/eye-close.png +0 -0
  136. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/eye-open.png +0 -0
  137. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/ffwd.png +0 -0
  138. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/ffwddisabled.png +0 -0
  139. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/filter.png +0 -0
  140. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/folder_browse.png +0 -0
  141. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/folder_create.png +0 -0
  142. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/gear.png +0 -0
  143. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/gfp.png +0 -0
  144. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/icon_copyrights.txt +0 -0
  145. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/illumination_function.png +0 -0
  146. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
  147. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
  148. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/mask.png +0 -0
  149. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/microscope-color_16.png +0 -0
  150. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/microscope-icon_16.png +0 -0
  151. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/microscope-icon_32.png +0 -0
  152. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/microscopes_16.png +0 -0
  153. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/module_add.png +0 -0
  154. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/module_help.png +0 -0
  155. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/module_movedown.png +0 -0
  156. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/module_moveup.png +0 -0
  157. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/module_remove.png +0 -0
  158. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/monochrome.png +0 -0
  159. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/movie_16.png +0 -0
  160. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/next.png +0 -0
  161. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/objects.png +0 -0
  162. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/pause.png +0 -0
  163. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/pausedisabled.png +0 -0
  164. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/play.png +0 -0
  165. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/playdisabled.png +0 -0
  166. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/previous.png +0 -0
  167. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/remove-sign.png +0 -0
  168. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/rewind.png +0 -0
  169. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/rewinddisabled.png +0 -0
  170. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
  171. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
  172. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/splash.png +0 -0
  173. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/status_pause.png +0 -0
  174. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/status_save.png +0 -0
  175. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/status_stop.png +0 -0
  176. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/stop.png +0 -0
  177. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/stopdisabled.png +0 -0
  178. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/structuringelement.png +0 -0
  179. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/thumb-down.png +0 -0
  180. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/thumb-up.png +0 -0
  181. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/unchecked.png +0 -0
  182. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/wantpony.wav +0 -0
  183. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_examples.png +0 -0
  184. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_forum.png +0 -0
  185. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_help.png +0 -0
  186. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_manual.png +0 -0
  187. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_new.png +0 -0
  188. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_pipeline.png +0 -0
  189. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_screen_help.png +0 -0
  190. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_start.png +0 -0
  191. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcome_tutorial.png +0 -0
  192. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
  193. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
  194. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
  195. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/window_back.png +0 -0
  196. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/window_filesave.png +0 -0
  197. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/window_forward.png +0 -0
  198. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/window_home.png +0 -0
  199. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/window_pan.png +0 -0
  200. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
  201. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/__init__.py +0 -0
  202. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
  203. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/_welcome_frame.py +0 -0
  204. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/_workspace_model.py +0 -0
  205. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/addmoduleframe.py +0 -0
  206. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/app.py +0 -0
  207. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/artist.py +0 -0
  208. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/checkupdate.py +0 -0
  209. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/constants/__init__.py +0 -0
  210. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/constants/figure.py +0 -0
  211. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/constants/module_view.py +0 -0
  212. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
  213. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/constants/preferences_view.py +0 -0
  214. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/constants/workspace_view.py +0 -0
  215. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/cpframe.py +0 -0
  216. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/dialog.py +0 -0
  217. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/editobjectsdlg.py +0 -0
  218. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/errordialog.py +0 -0
  219. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/figure/__init__.py +0 -0
  220. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/figure/_figure.py +0 -0
  221. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
  222. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/figure/_outline_artist.py +0 -0
  223. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/gridrenderers.py +0 -0
  224. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/help/__init__.py +0 -0
  225. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/help/content.py +0 -0
  226. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/help/menu.py +0 -0
  227. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/help/search.py +0 -0
  228. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/__init__.py +0 -0
  229. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/configure_images_help.html +0 -0
  230. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/exporting_results_help.html +0 -0
  231. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/getting_started.html +0 -0
  232. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/htmlwindow.py +0 -0
  233. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/identify_features_help.html +0 -0
  234. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/in_app_help.html +0 -0
  235. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/making_measurements_help.html +0 -0
  236. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
  237. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/selecting_images_help.html +0 -0
  238. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/test_mode_help.html +0 -0
  239. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/utils.py +0 -0
  240. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/html/welcome.html +0 -0
  241. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/htmldialog.py +0 -0
  242. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/imagesetctrl.py +0 -0
  243. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/menu.py +0 -0
  244. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/metadatactrl.py +0 -0
  245. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/__init__.py +0 -0
  246. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
  247. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
  248. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
  249. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
  250. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
  251. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
  252. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_module_view.py +0 -0
  253. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
  254. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_table_controller.py +0 -0
  255. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
  256. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/moduleview.py +0 -0
  257. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/namesubscriber.py +0 -0
  258. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/omerologin.py +0 -0
  259. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/parametersampleframe.py +0 -0
  260. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/pathlist.py +0 -0
  261. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/pipeline.py +0 -0
  262. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/pipelinecontroller.py +0 -0
  263. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/pipelinelistview.py +0 -0
  264. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/plateviewer.py +0 -0
  265. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/plugins_menu.py +0 -0
  266. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
  267. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
  268. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
  269. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/preferences_view/__init__.py +0 -0
  270. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
  271. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
  272. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
  273. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
  274. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/regexp_editor.py +0 -0
  275. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/tools.py +0 -0
  276. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/utilities/__init__.py +0 -0
  277. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/utilities/figure.py +0 -0
  278. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/utilities/icon.py +0 -0
  279. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/utilities/module_view.py +0 -0
  280. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
  281. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/utilities/preferences_view.py +0 -0
  282. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/utilities/workspace_view.py +0 -0
  283. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/__init__.py +0 -0
  284. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
  285. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
  286. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
  287. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
  288. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
  289. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
  290. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
  291. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/icons/__init__.py +0 -0
  292. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/knime_bridge.py +0 -0
  293. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/misc.py +0 -0
  294. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/UntangleWorms.xsd +0 -0
  295. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/__init__.py +0 -0
  296. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/_help.py +0 -0
  297. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/calculatemath.py +0 -0
  298. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/calculatestatistics.py +0 -0
  299. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/classifyobjects.py +0 -0
  300. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/closing.py +0 -0
  301. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/colortogray.py +0 -0
  302. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/combineobjects.py +0 -0
  303. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/convertimagetoobjects.py +0 -0
  304. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/convertobjectstoimage.py +0 -0
  305. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/correctilluminationapply.py +0 -0
  306. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
  307. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/createbatchfiles.py +0 -0
  308. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/crop.py +0 -0
  309. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/definegrid.py +0 -0
  310. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/dilateimage.py +0 -0
  311. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/dilateobjects.py +0 -0
  312. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/displaydataonimage.py +0 -0
  313. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/displaydensityplot.py +0 -0
  314. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/displayhistogram.py +0 -0
  315. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/displayplatemap.py +0 -0
  316. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/displayscatterplot.py +0 -0
  317. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/editobjectsmanually.py +0 -0
  318. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/enhanceedges.py +0 -0
  319. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
  320. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/erodeimage.py +0 -0
  321. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/erodeobjects.py +0 -0
  322. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
  323. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/exporttodatabase.py +0 -0
  324. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/exporttospreadsheet.py +0 -0
  325. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/fillobjects.py +0 -0
  326. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/filterobjects.py +0 -0
  327. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/findmaxima.py +0 -0
  328. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/flagimage.py +0 -0
  329. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/flipandrotate.py +0 -0
  330. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/gaussianfilter.py +0 -0
  331. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/graytocolor.py +0 -0
  332. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/identifydeadworms.py +0 -0
  333. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
  334. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
  335. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
  336. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
  337. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
  338. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/imagemath.py +0 -0
  339. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/invertforprinting.py +0 -0
  340. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/labelimages.py +0 -0
  341. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/makeprojection.py +0 -0
  342. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/maskimage.py +0 -0
  343. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/maskobjects.py +0 -0
  344. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/matchtemplate.py +0 -0
  345. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measurecolocalization.py +0 -0
  346. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measuregranularity.py +0 -0
  347. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
  348. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureimageoverlap.py +0 -0
  349. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureimagequality.py +0 -0
  350. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureimageskeleton.py +0 -0
  351. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
  352. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureobjectoverlap.py +0 -0
  353. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measureobjectskeleton.py +0 -0
  354. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/measuretexture.py +0 -0
  355. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/medialaxis.py +0 -0
  356. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/medianfilter.py +0 -0
  357. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/morph.py +0 -0
  358. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/morphologicalskeleton.py +0 -0
  359. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/opening.py +0 -0
  360. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/overlayobjects.py +0 -0
  361. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/overlayoutlines.py +0 -0
  362. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/plugins/__init__.py +0 -0
  363. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
  364. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
  365. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
  366. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/reducenoise.py +0 -0
  367. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/relateobjects.py +0 -0
  368. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/removeholes.py +0 -0
  369. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/rescaleintensity.py +0 -0
  370. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/resize.py +0 -0
  371. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/resizeobjects.py +0 -0
  372. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/runimagejmacro.py +0 -0
  373. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/savecroppedobjects.py +0 -0
  374. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/saveimages.py +0 -0
  375. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
  376. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/smooth.py +0 -0
  377. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/splitormergeobjects.py +0 -0
  378. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/straightenworms.py +0 -0
  379. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/threshold.py +0 -0
  380. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/tile.py +0 -0
  381. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/trackobjects.py +0 -0
  382. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/unmixcolors.py +0 -0
  383. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/untangleworms.py +0 -0
  384. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/modules/watershed.py +0 -0
  385. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/utilities/__init__.py +0 -0
  386. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/utilities/morphology.py +0 -0
  387. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/cellprofiler/utilities/rules.py +0 -0
  388. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/environment.yml +0 -0
  389. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/pyproject.toml +0 -0
  390. {cellprofiler_nightly-5.0.0.dev562 → cellprofiler_nightly-5.0.0.dev592}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev562
3
+ Version: 5.0.0.dev592
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.dev562
3
+ Version: 5.0.0.dev592
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.dev562'
32
- __version_tuple__ = version_tuple = (5, 0, 0, 'dev562')
31
+ __version__ = version = '5.0.0.dev592'
32
+ __version_tuple__ = version_tuple = (5, 0, 0, 'dev592')
33
33
 
34
- __commit_id__ = commit_id = 'g9d892da07'
34
+ __commit_id__ = commit_id = 'g9880bd09c'
@@ -238,10 +238,10 @@ class MeasureImageIntensity(Module):
238
238
  self._add_library_measurements_to_core(lib_measurements, workspace)
239
239
  statistics += lib_display.statistics
240
240
 
241
- # TODO: library_cleanup - wrap in self.show_window
242
- col_labels = ["Image", "Masking object", "Feature", "Value"]
243
- workspace.display_data.statistics = statistics
244
- workspace.display_data.col_labels = col_labels
241
+ if self.show_window:
242
+ col_labels = ["Image", "Masking object", "Feature", "Value"]
243
+ workspace.display_data.statistics = statistics
244
+ workspace.display_data.col_labels = col_labels
245
245
 
246
246
  def display(self, workspace, figure):
247
247
  figure.set_subplots((1, 1))
@@ -237,7 +237,7 @@ class MeasureObjectIntensity(Module):
237
237
  objects = workspace.object_set.get_objects(object_name)
238
238
  nobjects = objects.count
239
239
 
240
- lib_measurements, lib_stats = measure_object_intensity(
240
+ lib_measurements, lib_display = measure_object_intensity(
241
241
  img=img,
242
242
  image_name=image_name,
243
243
  object_name=object_name,
@@ -245,8 +245,8 @@ class MeasureObjectIntensity(Module):
245
245
  object_labels=objects.get_labels(),
246
246
  nobjects=nobjects,
247
247
  image_dimensions=image.dimensions,
248
+ return_visualization_data=True,
248
249
  )
249
-
250
250
  m = workspace.measurements
251
251
 
252
252
  # Feature Name -> Template String
@@ -255,7 +255,11 @@ class MeasureObjectIntensity(Module):
255
255
  for val in (getattr(TemplateMeasurementFormat, x.name) for x in IntensityFeature)
256
256
  }
257
257
 
258
- for stat in lib_stats:
258
+ if self.show_window:
259
+ workspace.display_data.statistics += lib_display.statistics
260
+
261
+ # TODO: library cleanup - should just iterate on measurements not stats
262
+ for stat in lib_display.statistics:
259
263
  image_name = stat[0]
260
264
  object_name = stat[1]
261
265
  feature_name = stat[2]
@@ -265,8 +269,6 @@ class MeasureObjectIntensity(Module):
265
269
  if lib_measurements.has_feature(object_name, measurement_name):
266
270
  measurement = lib_measurements.get_measurement(object_name, measurement_name)
267
271
  m.add_measurement(object_name, measurement_name, measurement)
268
- if self.show_window and len(measurement) > 0:
269
- workspace.display_data.statistics.append(stat)
270
272
 
271
273
  def display(self, workspace, figure):
272
274
  figure.set_subplots((1, 1))
@@ -0,0 +1,596 @@
1
+ """
2
+ MeasureObjectNeighbors
3
+ ======================
4
+
5
+ **MeasureObjectNeighbors** calculates how many neighbors each object
6
+ has and records various properties about the neighbors’ relationships,
7
+ including the percentage of an object’s edge pixels that touch a
8
+ neighbor. Please note that the distances reported for object
9
+ measurements are center-to-center distances, not edge-to-edge distances.
10
+
11
+ Given an image with objects identified (e.g., nuclei or cells), this
12
+ module determines how many neighbors each object has. You can specify
13
+ the distance within which objects should be considered neighbors, or
14
+ that objects are only considered neighbors if they are directly
15
+ touching.
16
+
17
+ |
18
+
19
+ ============ ============ ===============
20
+ Supports 2D? Supports 3D? Respects masks?
21
+ ============ ============ ===============
22
+ YES YES NO
23
+ ============ ============ ===============
24
+
25
+ See also
26
+ ^^^^^^^^
27
+
28
+ See also the **Identify** modules.
29
+
30
+ Measurements made by this module
31
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
32
+
33
+ **Object measurements**
34
+
35
+ - *NumberOfNeighbors:* Number of neighbor objects.
36
+ - *PercentTouching:* Percent of the object’s boundary pixels that touch
37
+ neighbors, after the objects have been expanded to the specified
38
+ distance.
39
+ - *FirstClosestObjectNumber:* The index of the closest object.
40
+ - *FirstClosestDistance:* The distance to the closest object (in units
41
+ of pixels), measured between object centers.
42
+ - *SecondClosestObjectNumber:* The index of the second closest object.
43
+ - *SecondClosestDistance:* The distance to the second closest object (in units
44
+ of pixels), measured between object centers.
45
+ - *AngleBetweenNeighbors:* The angle formed with the object center as
46
+ the vertex and the first and second closest object centers along the
47
+ vectors.
48
+
49
+ **Object relationships:** The identity of the neighboring objects, for
50
+ each object. Since per-object output is one-to-one and neighbors
51
+ relationships are often many-to-one, they may be saved as a separate
52
+ file in **ExportToSpreadsheet** by selecting *Object relationships* from
53
+ the list of objects to export.
54
+
55
+ Technical notes
56
+ ^^^^^^^^^^^^^^^
57
+
58
+ Objects discarded via modules such as **IdentifyPrimaryObjects** or
59
+ **IdentifySecondaryObjects** will still register as neighbors for the
60
+ purposes of accurate measurement. For instance, if an object touches a
61
+ single object and that object had been discarded, *NumberOfNeighbors*
62
+ will be positive, but there may not be a corresponding
63
+ *ClosestObjectNumber*. This can be disabled in module settings.
64
+
65
+ """
66
+
67
+ import matplotlib.cm
68
+ import numpy
69
+ from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
70
+ from cellprofiler_core.constants.measurement import COLTYPE_INTEGER
71
+ from cellprofiler_core.constants.measurement import MCA_AVAILABLE_EACH_CYCLE
72
+ from cellprofiler_core.constants.measurement import NEIGHBORS
73
+ from cellprofiler_core.image import Image
74
+ from cellprofiler_core.measurement import Measurements
75
+ from cellprofiler_core.module import Module
76
+ from cellprofiler_core.object import Objects
77
+ from cellprofiler_core.preferences import get_default_colormap
78
+ from cellprofiler_core.setting import Binary
79
+ from cellprofiler_core.setting.choice import Choice, Colormap
80
+ from cellprofiler_core.setting.subscriber import LabelSubscriber
81
+ from cellprofiler_core.setting.text import ImageName
82
+ from cellprofiler_core.setting.text import Integer
83
+ from cellprofiler_core.workspace import Workspace
84
+ from cellprofiler_library.opts.measureobjectneighbors import DistanceMethod, Measurement, MeasurementScale, C_NEIGHBORS, M_ALL, D_ALL
85
+ from cellprofiler_library.types import ObjectSegmentation
86
+ from cellprofiler_library.modules._measureobjectneighbors import measure_object_neighbors
87
+ from cellprofiler_library.measurement_model import (
88
+ R_FIRST_OBJECT_NUMBER,
89
+ R_SECOND_OBJECT_NUMBER,
90
+ )
91
+
92
+ class MeasureObjectNeighbors(Module):
93
+ module_name = "MeasureObjectNeighbors"
94
+ category = "Measurement"
95
+ variable_revision_number = 3
96
+
97
+ def create_settings(self):
98
+ self.object_name = LabelSubscriber(
99
+ "Select objects to measure",
100
+ "None",
101
+ doc="""\
102
+ Select the objects whose neighbors you want to measure.""",
103
+ )
104
+
105
+ self.neighbors_name = LabelSubscriber(
106
+ "Select neighboring objects to measure",
107
+ "None",
108
+ doc="""\
109
+ This is the name of the objects that are potential
110
+ neighbors of the above objects. You can find the neighbors
111
+ within the same set of objects by selecting the same objects
112
+ as above.""",
113
+ )
114
+
115
+ self.distance_method = Choice(
116
+ "Method to determine neighbors",
117
+ D_ALL,
118
+ DistanceMethod.EXPAND.value,
119
+ doc="""\
120
+ There are several methods by which to determine whether objects are
121
+ neighbors:
122
+
123
+ - *{D_ADJACENT}:* In this mode, two objects must have adjacent
124
+ boundary pixels to be neighbors.
125
+ - *{D_EXPAND}:* The objects are expanded until all pixels on the
126
+ object boundaries are touching another. Two objects are neighbors if
127
+ any of their boundary pixels are adjacent after expansion.
128
+ - *{D_WITHIN}:* Each object is expanded by the number of pixels you
129
+ specify. Two objects are neighbors if they have adjacent pixels after
130
+ expansion. Note that *all* objects are expanded by this amount (e.g.,
131
+ if this distance is set to 10, a pair of objects will count as
132
+ neighbors if their edges are 20 pixels apart or closer).
133
+
134
+ For *{D_ADJACENT}* and *{D_EXPAND}*, the
135
+ *{M_PERCENT_TOUCHING}* measurement is the percentage of pixels on
136
+ the boundary of an object that touch adjacent objects. For
137
+ *{D_WITHIN}*, two objects are touching if any of their boundary
138
+ pixels are adjacent after expansion and *{M_PERCENT_TOUCHING}*
139
+ measures the percentage of boundary pixels of an *expanded* object that
140
+ touch adjacent objects.
141
+ """.format(
142
+ **{
143
+ "D_ADJACENT": DistanceMethod.ADJACENT.value,
144
+ "D_EXPAND": DistanceMethod.EXPAND.value,
145
+ "D_WITHIN": DistanceMethod.WITHIN.value,
146
+ "M_PERCENT_TOUCHING": Measurement.PERCENT_TOUCHING.value,
147
+ }
148
+ ),
149
+ )
150
+
151
+ self.distance = Integer(
152
+ "Neighbor distance",
153
+ 5,
154
+ 1,
155
+ doc="""\
156
+ *(Used only when “%(D_WITHIN)s” is selected)*
157
+
158
+ The Neighbor distance is the number of pixels that each object is
159
+ expanded for the neighbor calculation. Expanded objects that touch are
160
+ considered neighbors.
161
+ """.format(
162
+ **{
163
+ "D_WITHIN": DistanceMethod.WITHIN.value,
164
+ }
165
+ ),
166
+ )
167
+
168
+ self.wants_count_image = Binary(
169
+ "Retain the image of objects colored by numbers of neighbors?",
170
+ False,
171
+ doc="""\
172
+ An output image showing the input objects colored by numbers of
173
+ neighbors may be retained. A colormap of your choice shows how many
174
+ neighbors each object has. The background is set to -1. Objects are
175
+ colored with an increasing color value corresponding to the number of
176
+ neighbors, such that objects with no neighbors are given a color
177
+ corresponding to 0. Use the **SaveImages** module to save this image to
178
+ a file.""",
179
+ )
180
+
181
+ self.count_image_name = ImageName(
182
+ "Name the output image",
183
+ "ObjectNeighborCount",
184
+ doc="""\
185
+ *(Used only if the image of objects colored by numbers of neighbors is
186
+ to be retained for later use in the pipeline)*
187
+
188
+ Specify a name that will allow the image of objects colored by numbers
189
+ of neighbors to be selected later in the pipeline.""",
190
+ )
191
+
192
+ self.count_colormap = Colormap(
193
+ "Select colormap",
194
+ value="Blues",
195
+ doc="""\
196
+ *(Used only if the image of objects colored by numbers of neighbors is
197
+ to be retained for later use in the pipeline)*
198
+
199
+ Select the colormap to use to color the neighbor number image. All
200
+ available colormaps can be seen `here`_.
201
+
202
+ .. _here: http://matplotlib.org/examples/color/colormaps_reference.html""",
203
+ )
204
+
205
+ self.wants_percent_touching_image = Binary(
206
+ "Retain the image of objects colored by percent of touching pixels?",
207
+ False,
208
+ doc="""\
209
+ Select *Yes* to keep an image of the input objects colored by the
210
+ percentage of the boundary touching their neighbors. A colormap of your
211
+ choice is used to show the touching percentage of each object. Use the
212
+ **SaveImages** module to save this image to a file.
213
+ """
214
+ % globals(),
215
+ )
216
+
217
+ self.touching_image_name = ImageName(
218
+ "Name the output image",
219
+ "PercentTouching",
220
+ doc="""\
221
+ *(Used only if the image of objects colored by percent touching is to be
222
+ retained for later use in the pipeline)*
223
+
224
+ Specify a name that will allow the image of objects colored by percent
225
+ of touching pixels to be selected later in the pipeline.""",
226
+ )
227
+
228
+ self.touching_colormap = Colormap(
229
+ "Select colormap",
230
+ value="Oranges",
231
+ doc="""\
232
+ *(Used only if the image of objects colored by percent touching is to be
233
+ retained for later use in the pipeline)*
234
+
235
+ Select the colormap to use to color the percent touching image. All
236
+ available colormaps can be seen `here`_.
237
+
238
+ .. _here: http://matplotlib.org/examples/color/colormaps_reference.html""",
239
+ )
240
+
241
+ self.wants_excluded_objects = Binary(
242
+ "Consider objects discarded for touching image border?",
243
+ True,
244
+ doc="""\
245
+ When set to *{YES}*, objects which were previously discarded for touching
246
+ the image borders will be considered as potential object neighbours in this
247
+ analysis. You may want to disable this if using object sets which were
248
+ further filtered, since those filters won't have been applied to the
249
+ previously discarded objects.""".format(
250
+ **{"YES": "Yes"}
251
+ ),
252
+ )
253
+
254
+ def settings(self):
255
+ return [
256
+ self.object_name,
257
+ self.neighbors_name,
258
+ self.distance_method,
259
+ self.distance,
260
+ self.wants_excluded_objects,
261
+ self.wants_count_image,
262
+ self.count_image_name,
263
+ self.count_colormap,
264
+ self.wants_percent_touching_image,
265
+ self.touching_image_name,
266
+ self.touching_colormap,
267
+ ]
268
+
269
+ def visible_settings(self):
270
+ result = [self.object_name, self.neighbors_name, self.distance_method]
271
+ if self.distance_method == DistanceMethod.WITHIN.value:
272
+ result += [self.distance]
273
+ result += [self.wants_excluded_objects, self.wants_count_image]
274
+ if self.wants_count_image.value:
275
+ result += [self.count_image_name, self.count_colormap]
276
+ result += [self.wants_percent_touching_image]
277
+ if self.wants_percent_touching_image.value:
278
+ result += [self.touching_image_name, self.touching_colormap]
279
+ return result
280
+
281
+ @property
282
+ def neighbors_are_objects(self):
283
+ """True if the neighbors are taken from the same object set as objects"""
284
+ return self.object_name.value == self.neighbors_name.value
285
+
286
+
287
+
288
+ def run(self, workspace):
289
+ objects = workspace.object_set.get_objects(self.object_name.value)
290
+ assert isinstance(objects, Objects)
291
+
292
+ objects_small_removed_segmented: ObjectSegmentation = objects.small_removed_segmented
293
+ kept_labels: ObjectSegmentation = objects.segmented
294
+ has_pixels = objects.areas > 0
295
+
296
+ neighbor_objects = workspace.object_set.get_objects(self.neighbors_name.value)
297
+ assert isinstance(neighbor_objects, Objects)
298
+
299
+ neighbor_small_removed_segmented: ObjectSegmentation = neighbor_objects.small_removed_segmented
300
+ neighbor_kept_labels: ObjectSegmentation = neighbor_objects.segmented
301
+
302
+ dimensions = len(objects.shape)
303
+
304
+ wants_lib_display = self.show_window or self.wants_count_image.value or self.wants_percent_touching_image.value
305
+ res = measure_object_neighbors(
306
+ objects_small_removed_segmented,
307
+ kept_labels,
308
+ neighbor_small_removed_segmented,
309
+ neighbor_kept_labels,
310
+ self.object_name.value,
311
+ self.neighbors_name.value,
312
+ self.neighbors_are_objects,
313
+ dimensions,
314
+ self.distance.value,
315
+ self.distance_method.value,
316
+ has_pixels,
317
+ len(objects.indices),
318
+ self.wants_excluded_objects.value,
319
+ wants_lib_display,
320
+ )
321
+ if wants_lib_display:
322
+ lib_measurements, lib_display = res
323
+ else:
324
+ lib_measurements = res
325
+
326
+ #
327
+ # Record the measurements
328
+ #
329
+ assert isinstance(workspace, Workspace)
330
+ m = workspace.measurements
331
+ assert isinstance(m, Measurements)
332
+
333
+ # TODO: 5122 - Replace the three loops below with a single call to `add_library_measurements_to_worksapce_measurements()`
334
+ # Record Image Measurements
335
+ for feature_name, value in lib_measurements.image.items():
336
+ m.add_image_measurement(feature_name, value)
337
+
338
+ # Record Object Measurements
339
+ for object_name, features in lib_measurements.objects.items():
340
+ for feature_name, data in features.items():
341
+ m.add_measurement(object_name, feature_name, data)
342
+
343
+ for relationship in lib_measurements.get_relationship_groups():
344
+ data = lib_measurements.get_relationships(
345
+ relationship.relationship,
346
+ relationship.object_name1,
347
+ relationship.object_name2
348
+ )
349
+ n_records = len(data)
350
+ img_nums = numpy.ones(n_records, int) * m.image_set_number
351
+
352
+ m.add_relate_measurement(
353
+ self.module_num,
354
+ relationship.relationship,
355
+ relationship.object_name1,
356
+ relationship.object_name2,
357
+ img_nums,
358
+ data[R_FIRST_OBJECT_NUMBER],
359
+ img_nums,
360
+ data[R_SECOND_OBJECT_NUMBER],
361
+ )
362
+
363
+ if self.wants_count_image.value:
364
+ neighbor_cm = get_colormap(self.count_colormap.value)
365
+ sm = matplotlib.cm.ScalarMappable(cmap=neighbor_cm)
366
+ img = sm.to_rgba(lib_display.neighbor_count_image)[:, :, :3]
367
+ img[:, :, 0][~lib_display.object_mask] = 0
368
+ img[:, :, 1][~lib_display.object_mask] = 0
369
+ img[:, :, 2][~lib_display.object_mask] = 0
370
+ count_image = Image(img, masking_objects=objects)
371
+ workspace.image_set.add(self.count_image_name.value, count_image)
372
+
373
+ if self.wants_percent_touching_image:
374
+ percent_touching_cm = get_colormap(self.touching_colormap.value)
375
+ sm = matplotlib.cm.ScalarMappable(cmap=percent_touching_cm)
376
+ img = sm.to_rgba(lib_display.percent_touching_image)[:, :, :3]
377
+ img[:, :, 0][~lib_display.object_mask] = 0
378
+ img[:, :, 1][~lib_display.object_mask] = 0
379
+ img[:, :, 2][~lib_display.object_mask] = 0
380
+ touching_image = Image(img, masking_objects=objects)
381
+ workspace.image_set.add(self.touching_image_name.value, touching_image)
382
+
383
+ if self.show_window:
384
+ workspace.display_data.neighbor_count_image = lib_display.neighbor_count_image
385
+ workspace.display_data.neighbor_cm_name = self.count_colormap.value
386
+ workspace.display_data.percent_touching_image = lib_display.percent_touching_image
387
+ workspace.display_data.percent_touching_cm_name = self.touching_colormap.value
388
+ workspace.display_data.orig_labels = kept_labels
389
+ workspace.display_data.neighbor_labels = neighbor_kept_labels
390
+ workspace.display_data.expanded_labels = lib_display.expanded_labels
391
+ workspace.display_data.object_mask = lib_display.object_mask
392
+ workspace.display_data.dimensions = dimensions
393
+
394
+ def display(self, workspace, figure):
395
+ dimensions = workspace.display_data.dimensions
396
+ figure.set_subplots((2, 2), dimensions=dimensions)
397
+ figure.subplot_imshow_labels(
398
+ 0,
399
+ 0,
400
+ workspace.display_data.orig_labels,
401
+ "Original: %s" % self.object_name.value,
402
+ )
403
+
404
+ object_mask = workspace.display_data.object_mask
405
+ expanded_labels = workspace.display_data.expanded_labels
406
+ neighbor_count_image = workspace.display_data.neighbor_count_image
407
+ neighbor_count_image[~object_mask] = -1
408
+ neighbor_cm = get_colormap(workspace.display_data.neighbor_cm_name)
409
+ neighbor_cm.set_under((0, 0, 0))
410
+ neighbor_cm = matplotlib.cm.ScalarMappable(cmap=neighbor_cm)
411
+ percent_touching_cm = get_colormap(
412
+ workspace.display_data.percent_touching_cm_name
413
+ )
414
+ percent_touching_cm.set_under((0, 0, 0))
415
+ percent_touching_image = workspace.display_data.percent_touching_image
416
+ percent_touching_image[~object_mask] = -1
417
+ percent_touching_cm = matplotlib.cm.ScalarMappable(cmap=percent_touching_cm)
418
+ expandplot_position = 0
419
+ if not self.neighbors_are_objects:
420
+ # Display the neighbor object set, move expanded objects plot out of the way
421
+ expandplot_position = 1
422
+ figure.subplot_imshow_labels(
423
+ 1,
424
+ 0,
425
+ workspace.display_data.neighbor_labels,
426
+ "Neighbors: %s" % self.neighbors_name.value,
427
+ sharexy=figure.subplot(0, 0),
428
+ )
429
+ if numpy.any(object_mask):
430
+ figure.subplot_imshow(
431
+ 0,
432
+ 1,
433
+ neighbor_count_image,
434
+ "%s colored by # of neighbors" % self.object_name.value,
435
+ colormap=neighbor_cm,
436
+ colorbar=True,
437
+ vmin=0,
438
+ vmax=max(neighbor_count_image.max(), 1),
439
+ normalize=False,
440
+ sharexy=figure.subplot(0, 0),
441
+ )
442
+ if self.neighbors_are_objects:
443
+ figure.subplot_imshow(
444
+ 1,
445
+ 1,
446
+ percent_touching_image,
447
+ "%s colored by pct touching" % self.object_name.value,
448
+ colormap=percent_touching_cm,
449
+ colorbar=True,
450
+ vmin=0,
451
+ vmax=max(percent_touching_image.max(), 1),
452
+ normalize=False,
453
+ sharexy=figure.subplot(0, 0),
454
+ )
455
+ else:
456
+ # No objects - colorbar blows up.
457
+ figure.subplot_imshow(
458
+ 0,
459
+ 1,
460
+ neighbor_count_image,
461
+ "%s colored by # of neighbors" % self.object_name.value,
462
+ colormap=neighbor_cm,
463
+ vmin=0,
464
+ vmax=max(neighbor_count_image.max(), 1),
465
+ sharexy=figure.subplot(0, 0),
466
+ )
467
+ if self.neighbors_are_objects:
468
+ figure.subplot_imshow(
469
+ 1,
470
+ 1,
471
+ percent_touching_image,
472
+ "%s colored by pct touching" % self.object_name.value,
473
+ colormap=percent_touching_cm,
474
+ vmin=0,
475
+ vmax=max(neighbor_count_image.max(), 1),
476
+ sharexy=figure.subplot(0, 0),
477
+ )
478
+
479
+ if self.distance_method == DistanceMethod.EXPAND.value:
480
+ figure.subplot_imshow_labels(
481
+ 1,
482
+ expandplot_position,
483
+ expanded_labels,
484
+ "Expanded %s" % self.object_name.value,
485
+ sharexy=figure.subplot(0, 0),
486
+ )
487
+
488
+ @property
489
+ def all_features(self):
490
+ return M_ALL
491
+
492
+ def get_measurement_name(self, feature):
493
+ if self.distance_method == DistanceMethod.EXPAND.value:
494
+ scale = MeasurementScale.EXPANDED
495
+ elif self.distance_method == DistanceMethod.WITHIN.value:
496
+ scale = str(self.distance.value)
497
+ elif self.distance_method == DistanceMethod.ADJACENT.value:
498
+ scale = MeasurementScale.ADJACENT
499
+ else:
500
+ raise ValueError(f"Unknown distance method: {self.distance_method}. Should be one of {D_ALL}")
501
+ if self.neighbors_are_objects:
502
+ return "_".join((C_NEIGHBORS, feature, scale))
503
+ else:
504
+ return "_".join((C_NEIGHBORS, feature, self.neighbors_name.value, scale))
505
+
506
+ def get_measurement_columns(self, pipeline):
507
+ """Return column definitions for measurements made by this module"""
508
+ coltypes = dict(
509
+ [
510
+ (
511
+ feature,
512
+ COLTYPE_INTEGER
513
+ if feature
514
+ in (
515
+ Measurement.NUMBER_OF_NEIGHBORS,
516
+ Measurement.FIRST_CLOSEST_OBJECT_NUMBER,
517
+ Measurement.SECOND_CLOSEST_OBJECT_NUMBER,
518
+ )
519
+ else COLTYPE_FLOAT,
520
+ )
521
+ for feature in self.all_features
522
+ ]
523
+ )
524
+ return [
525
+ (
526
+ self.object_name.value,
527
+ self.get_measurement_name(feature_name),
528
+ coltypes[feature_name],
529
+ )
530
+ for feature_name in self.all_features
531
+ ]
532
+
533
+ def get_object_relationships(self, pipeline):
534
+ """Return column definitions for object relationships output by module"""
535
+ objects_name = self.object_name.value
536
+ if self.neighbors_are_objects:
537
+ neighbors_name = objects_name
538
+ else:
539
+ neighbors_name = self.neighbors_name.value
540
+ return [(NEIGHBORS, objects_name, neighbors_name, MCA_AVAILABLE_EACH_CYCLE,)]
541
+
542
+ def get_categories(self, pipeline, object_name):
543
+ if object_name == self.object_name:
544
+ return [C_NEIGHBORS]
545
+ return []
546
+
547
+ def get_measurements(self, pipeline, object_name, category):
548
+ if object_name == self.object_name and category == C_NEIGHBORS:
549
+ return list(M_ALL)
550
+ return []
551
+
552
+ def get_measurement_objects(self, pipeline, object_name, category, measurement):
553
+ if self.neighbors_are_objects or measurement not in self.get_measurements(
554
+ pipeline, object_name, category
555
+ ):
556
+ return []
557
+ return [self.neighbors_name.value]
558
+
559
+ def get_measurement_scales(
560
+ self, pipeline, object_name, category, measurement, image_name
561
+ ):
562
+ if measurement in self.get_measurements(pipeline, object_name, category):
563
+ if self.distance_method == DistanceMethod.EXPAND.value:
564
+ return [MeasurementScale.EXPANDED]
565
+ elif self.distance_method == DistanceMethod.ADJACENT.value:
566
+ return [MeasurementScale.ADJACENT]
567
+ elif self.distance_method == DistanceMethod.WITHIN.value:
568
+ return [str(self.distance.value)]
569
+ else:
570
+ raise ValueError(
571
+ "Unknown distance method: %s" % self.distance_method.value
572
+ )
573
+ return []
574
+
575
+ def upgrade_settings(self, setting_values, variable_revision_number, module_name):
576
+ if variable_revision_number == 1:
577
+ # Added neighbor objects
578
+ # To upgrade, repeat object_name twice
579
+ #
580
+ setting_values = setting_values[:1] * 2 + setting_values[1:]
581
+ variable_revision_number = 2
582
+ if variable_revision_number == 2:
583
+ # Added border object exclusion
584
+ setting_values = setting_values[:4] + [True] + setting_values[4:]
585
+ variable_revision_number = 3
586
+ return setting_values, variable_revision_number
587
+
588
+ def volumetric(self):
589
+ return True
590
+
591
+
592
+ def get_colormap(name):
593
+ """Get colormap, accounting for possible request for default"""
594
+ if name == "Default":
595
+ name = get_default_colormap()
596
+ return matplotlib.cm.get_cmap(name)