CellProfiler-nightly 5.0.0.dev554__tar.gz → 5.0.0.dev562__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.
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/PKG-INFO +1 -1
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/_version.py +3 -3
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureobjectskeleton.py +47 -428
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/CellProfiler_nightly.egg-info/requires.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/LICENSE +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/README.md +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/__main__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/display_image_tools.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/display_menu_bar.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_3d_identify.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_batch.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_logging.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_omero.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_plugins.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_shell.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/output_measurements.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/output_plateviewer.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/pipelines_building.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/pipelines_running.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/projects_configure_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/projects_introduction.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler.ai +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler.icns +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler.ico +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Align.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/ApplyThreshold.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/CollapseTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/ColorToGray.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Crop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/ExpandTree.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/GrayToColor.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_ERROR.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_EYE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_GO.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_OK.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_RUN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_STOP.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_TEST.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IMG_WARN.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Images_UsingRules.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/MeasureTexture.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/Tile.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/UnmixColors.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/check.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/color.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/dapi.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/delete.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/downarrow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/eye-close.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/eye-open.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/ffwd.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/ffwddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/filter.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/folder_browse.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/folder_create.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/gear.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/gfp.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/icon_copyrights.txt +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/illumination_function.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/mask.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/microscope-color_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/microscope-icon_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/microscope-icon_32.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/microscopes_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/module_add.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/module_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/module_movedown.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/module_moveup.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/module_remove.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/monochrome.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/movie_16.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/next.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/objects.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/pausedisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/play.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/playdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/previous.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/remove-sign.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/rewind.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/rewinddisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/splash.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/status_pause.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/status_save.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/status_stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/stop.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/stopdisabled.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/structuringelement.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/thumb-down.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/thumb-up.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/unchecked.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/wantpony.wav +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_examples.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_new.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_pipeline.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_screen_help.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_start.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcome_tutorial.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/window_back.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/window_filesave.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/window_forward.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/window_home.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/window_pan.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/_welcome_frame.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/_workspace_model.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/addmoduleframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/app.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/checkupdate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/constants/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/constants/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/constants/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/constants/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/constants/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/cpframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/editobjectsdlg.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/errordialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/figure/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/figure/_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/figure/_outline_artist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/gridrenderers.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/help/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/help/content.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/help/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/help/search.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/configure_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/exporting_results_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/getting_started.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/htmlwindow.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/identify_features_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/in_app_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/making_measurements_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/selecting_images_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/test_mode_help.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/utils.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/html/welcome.html +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/htmldialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/imagesetctrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/metadatactrl.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_table_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/moduleview.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/namesubscriber.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/omerologin.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/parametersampleframe.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/pathlist.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/pipeline.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/pipelinecontroller.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/pipelinelistview.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/plateviewer.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/plugins_menu.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/preferences_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/regexp_editor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/tools.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/utilities/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/utilities/figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/utilities/icon.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/utilities/module_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/utilities/preferences_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/utilities/workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/icons/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/knime_bridge.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/misc.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/UntangleWorms.xsd +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/_help.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/calculatemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/calculatestatistics.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/classifyobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/closing.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/colortogray.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/combineobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/convertimagetoobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/convertobjectstoimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/correctilluminationapply.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/createbatchfiles.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/crop.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/definegrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/dilateimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/dilateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/displaydataonimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/displaydensityplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/displayhistogram.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/displayplatemap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/displayscatterplot.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/editobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/enhanceedges.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/erodeimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/erodeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/exporttodatabase.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/exporttospreadsheet.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/fillobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/filterobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/findmaxima.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/flagimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/flipandrotate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/gaussianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/graytocolor.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/identifydeadworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/identifytertiaryobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/imagemath.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/invertforprinting.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/labelimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/makeprojection.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/maskimage.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/maskobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/matchtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measurecolocalization.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measuregranularity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureimageintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureimageoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureimagequality.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureimageskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureobjectintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureobjectneighbors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureobjectoverlap.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measureobjectsizeshape.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/measuretexture.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/medialaxis.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/medianfilter.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/morph.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/morphologicalskeleton.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/opening.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/overlayobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/overlayoutlines.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/plugins/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/reducenoise.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/relateobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/removeholes.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/rescaleintensity.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/resize.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/resizeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/runimagejmacro.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/savecroppedobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/saveimages.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/smooth.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/splitormergeobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/straightenworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/threshold.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/tile.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/trackobjects.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/unmixcolors.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/untangleworms.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/modules/watershed.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/utilities/__init__.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/utilities/morphology.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/utilities/rules.py +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/environment.yml +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/pyproject.toml +0 -0
- {cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CellProfiler-nightly
|
|
3
|
-
Version: 5.0.0.
|
|
3
|
+
Version: 5.0.0.dev562
|
|
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.
|
|
3
|
+
Version: 5.0.0.dev562
|
|
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>
|
{cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/_version.py
RENAMED
|
@@ -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.
|
|
32
|
-
__version_tuple__ = version_tuple = (5, 0, 0, '
|
|
31
|
+
__version__ = version = '5.0.0.dev562'
|
|
32
|
+
__version_tuple__ = version_tuple = (5, 0, 0, 'dev562')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g9d892da07'
|
|
@@ -60,11 +60,7 @@ Measurements made by this module
|
|
|
60
60
|
"""
|
|
61
61
|
|
|
62
62
|
import os
|
|
63
|
-
|
|
64
|
-
import centrosome.cpmorphology
|
|
65
|
-
import centrosome.propagate as propagate
|
|
66
63
|
import numpy
|
|
67
|
-
import scipy.ndimage
|
|
68
64
|
from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
|
|
69
65
|
from cellprofiler_core.constants.measurement import COLTYPE_INTEGER
|
|
70
66
|
from cellprofiler_core.image import Image
|
|
@@ -82,31 +78,8 @@ from cellprofiler_core.setting.text import ImageName, Directory
|
|
|
82
78
|
from cellprofiler_core.setting.text import Integer
|
|
83
79
|
from cellprofiler_core.setting.text import Text
|
|
84
80
|
from cellprofiler_core.utilities.core.object import size_similarly
|
|
85
|
-
from
|
|
86
|
-
from
|
|
87
|
-
|
|
88
|
-
"""The measurement category"""
|
|
89
|
-
C_OBJSKELETON = "ObjectSkeleton"
|
|
90
|
-
|
|
91
|
-
"""The trunk count feature"""
|
|
92
|
-
F_NUMBER_TRUNKS = "NumberTrunks"
|
|
93
|
-
|
|
94
|
-
"""The branch feature"""
|
|
95
|
-
F_NUMBER_NON_TRUNK_BRANCHES = "NumberNonTrunkBranches"
|
|
96
|
-
|
|
97
|
-
"""The endpoint feature"""
|
|
98
|
-
F_NUMBER_BRANCH_ENDS = "NumberBranchEnds"
|
|
99
|
-
|
|
100
|
-
"""The neurite length feature"""
|
|
101
|
-
F_TOTAL_OBJSKELETON_LENGTH = "TotalObjectSkeletonLength"
|
|
102
|
-
|
|
103
|
-
F_ALL = [
|
|
104
|
-
F_NUMBER_TRUNKS,
|
|
105
|
-
F_NUMBER_NON_TRUNK_BRANCHES,
|
|
106
|
-
F_NUMBER_BRANCH_ENDS,
|
|
107
|
-
F_TOTAL_OBJSKELETON_LENGTH,
|
|
108
|
-
]
|
|
109
|
-
|
|
81
|
+
from cellprofiler_library.opts.measureobjectskeleton import SkeletonMeasurements, C_OBJSKELETON, F_ALL, edge_file_columns, vertex_file_columns
|
|
82
|
+
from cellprofiler_library.modules._measureobjectskeleton import measure_object_skeleton
|
|
110
83
|
|
|
111
84
|
class MeasureObjectSkeleton(Module):
|
|
112
85
|
module_name = "MeasureObjectSkeleton"
|
|
@@ -312,26 +285,6 @@ The file has the following columns:
|
|
|
312
285
|
vertex_path = os.path.abspath(os.path.join(path, vertex_file))
|
|
313
286
|
return edge_path, vertex_path
|
|
314
287
|
|
|
315
|
-
VF_IMAGE_NUMBER = "image_number"
|
|
316
|
-
VF_VERTEX_NUMBER = "vertex_number"
|
|
317
|
-
VF_I = "i"
|
|
318
|
-
VF_J = "j"
|
|
319
|
-
VF_LABELS = "labels"
|
|
320
|
-
VF_KIND = "kind"
|
|
321
|
-
vertex_file_columns = (
|
|
322
|
-
VF_IMAGE_NUMBER,
|
|
323
|
-
VF_VERTEX_NUMBER,
|
|
324
|
-
VF_I,
|
|
325
|
-
VF_J,
|
|
326
|
-
VF_LABELS,
|
|
327
|
-
VF_KIND,
|
|
328
|
-
)
|
|
329
|
-
EF_IMAGE_NUMBER = "image_number"
|
|
330
|
-
EF_V1 = "v1"
|
|
331
|
-
EF_V2 = "v2"
|
|
332
|
-
EF_LENGTH = "length"
|
|
333
|
-
EF_TOTAL_INTENSITY = "total_intensity"
|
|
334
|
-
edge_file_columns = (EF_IMAGE_NUMBER, EF_V1, EF_V2, EF_LENGTH, EF_TOTAL_INTENSITY)
|
|
335
288
|
|
|
336
289
|
def prepare_run(self, workspace):
|
|
337
290
|
"""Initialize graph files"""
|
|
@@ -347,8 +300,8 @@ The file has the following columns:
|
|
|
347
300
|
vertex_files.add(vertex_path)
|
|
348
301
|
|
|
349
302
|
for file_path, header in (
|
|
350
|
-
(edge_path,
|
|
351
|
-
(vertex_path,
|
|
303
|
+
(edge_path, edge_file_columns),
|
|
304
|
+
(vertex_path, vertex_file_columns),
|
|
352
305
|
):
|
|
353
306
|
if os.path.exists(file_path):
|
|
354
307
|
import wx
|
|
@@ -368,6 +321,8 @@ The file has the following columns:
|
|
|
368
321
|
header = ",".join(header)
|
|
369
322
|
fd.write(header + "\n")
|
|
370
323
|
return True
|
|
324
|
+
|
|
325
|
+
|
|
371
326
|
|
|
372
327
|
def run(self, workspace):
|
|
373
328
|
"""Run the module on the image set"""
|
|
@@ -376,7 +331,6 @@ The file has the following columns:
|
|
|
376
331
|
seed_objects = workspace.object_set.get_objects(seed_objects_name)
|
|
377
332
|
labels = seed_objects.segmented
|
|
378
333
|
labels_count = numpy.max(labels)
|
|
379
|
-
label_range = numpy.arange(labels_count, dtype=numpy.int32) + 1
|
|
380
334
|
|
|
381
335
|
skeleton_image = workspace.image_set.get_image(
|
|
382
336
|
skeleton_name, must_be_binary=True
|
|
@@ -389,211 +343,75 @@ The file has the following columns:
|
|
|
389
343
|
except:
|
|
390
344
|
labels, m1 = size_similarly(skeleton, labels)
|
|
391
345
|
labels[~m1] = 0
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
combined_skel = skeleton | seed_mask
|
|
410
|
-
|
|
411
|
-
closed_labels = grey_erosion(dilated_labels, footprint=my_disk)
|
|
412
|
-
seed_center = closed_labels > 0
|
|
413
|
-
combined_skel = combined_skel & (~seed_center)
|
|
414
|
-
#
|
|
415
|
-
# Fill in single holes (but not a one-pixel hole made by
|
|
416
|
-
# a one-pixel image)
|
|
417
|
-
#
|
|
418
|
-
if self.wants_to_fill_holes:
|
|
419
|
-
|
|
420
|
-
def size_fn(area, is_object):
|
|
421
|
-
return (~is_object) and (area <= self.maximum_hole_size.value)
|
|
422
|
-
|
|
423
|
-
combined_skel = centrosome.cpmorphology.fill_labeled_holes(
|
|
424
|
-
combined_skel, ~seed_center, size_fn
|
|
425
|
-
)
|
|
426
|
-
#
|
|
427
|
-
# Reskeletonize to make true branchpoints at the ring boundaries
|
|
428
|
-
#
|
|
429
|
-
combined_skel = centrosome.cpmorphology.skeletonize(combined_skel)
|
|
430
|
-
#
|
|
431
|
-
# The skeleton outside of the labels
|
|
432
|
-
#
|
|
433
|
-
outside_skel = combined_skel & (dilated_labels == 0)
|
|
434
|
-
#
|
|
435
|
-
# Associate all skeleton points with seed objects
|
|
436
|
-
#
|
|
437
|
-
dlabels, distance_map = propagate.propagate(
|
|
438
|
-
numpy.zeros(labels.shape), dilated_labels, combined_skel, 1
|
|
439
|
-
)
|
|
440
|
-
#
|
|
441
|
-
# Get rid of any branchpoints not connected to seeds
|
|
442
|
-
#
|
|
443
|
-
combined_skel[dlabels == 0] = False
|
|
444
|
-
#
|
|
445
|
-
# Find the branchpoints
|
|
446
|
-
#
|
|
447
|
-
branch_points = centrosome.cpmorphology.branchpoints(combined_skel)
|
|
448
|
-
#
|
|
449
|
-
# Odd case: when four branches meet like this, branchpoints are not
|
|
450
|
-
# assigned because they are arbitrary. So assign them.
|
|
451
|
-
#
|
|
452
|
-
# . .
|
|
453
|
-
# B.
|
|
454
|
-
# .B
|
|
455
|
-
# . .
|
|
456
|
-
#
|
|
457
|
-
odd_case = (
|
|
458
|
-
combined_skel[:-1, :-1]
|
|
459
|
-
& combined_skel[1:, :-1]
|
|
460
|
-
& combined_skel[:-1, 1:]
|
|
461
|
-
& combined_skel[1, 1]
|
|
462
|
-
)
|
|
463
|
-
branch_points[:-1, :-1][odd_case] = True
|
|
464
|
-
branch_points[1:, 1:][odd_case] = True
|
|
465
|
-
#
|
|
466
|
-
# Find the branching counts for the trunks (# of extra branches
|
|
467
|
-
# emanating from a point other than the line it might be on).
|
|
468
|
-
#
|
|
469
|
-
branching_counts = centrosome.cpmorphology.branchings(combined_skel)
|
|
470
|
-
branching_counts = numpy.array([0, 0, 0, 1, 2])[branching_counts]
|
|
471
|
-
#
|
|
472
|
-
# Only take branches within 1 of the outside skeleton
|
|
473
|
-
#
|
|
474
|
-
dilated_skel = scipy.ndimage.binary_dilation(
|
|
475
|
-
outside_skel, centrosome.cpmorphology.eight_connect
|
|
346
|
+
max_hole_size = self.maximum_hole_size.value
|
|
347
|
+
fill_small_holes = self.wants_to_fill_holes.value
|
|
348
|
+
intensity_image = None
|
|
349
|
+
if self.wants_objskeleton_graph:
|
|
350
|
+
intensity_image = workspace.image_set.get_image(self.intensity_image_name.value, must_be_grayscale=True)
|
|
351
|
+
|
|
352
|
+
lib_res = measure_object_skeleton(
|
|
353
|
+
seed_objects_name,
|
|
354
|
+
skeleton_name,
|
|
355
|
+
skeleton,
|
|
356
|
+
labels,
|
|
357
|
+
labels_count,
|
|
358
|
+
fill_small_holes,
|
|
359
|
+
max_hole_size,
|
|
360
|
+
self.wants_objskeleton_graph.value,
|
|
361
|
+
intensity_image.pixel_data if intensity_image else None,
|
|
362
|
+
self.wants_branchpoint_image.value
|
|
476
363
|
)
|
|
477
|
-
|
|
478
|
-
#
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
end_points = centrosome.cpmorphology.endpoints(combined_skel)
|
|
482
|
-
#
|
|
483
|
-
# We use two ranges for classification here:
|
|
484
|
-
# * anything within one pixel of the dilated image is a trunk
|
|
485
|
-
# * anything outside of that range is a branch
|
|
486
|
-
#
|
|
487
|
-
nearby_labels = dlabels.copy()
|
|
488
|
-
nearby_labels[distance_map > 1.5] = 0
|
|
489
|
-
|
|
490
|
-
outside_labels = dlabels.copy()
|
|
491
|
-
outside_labels[nearby_labels > 0] = 0
|
|
492
|
-
#
|
|
493
|
-
# The trunks are the branchpoints that lie within one pixel of
|
|
494
|
-
# the dilated image.
|
|
495
|
-
#
|
|
496
|
-
if labels_count > 0:
|
|
497
|
-
trunk_counts = fix(
|
|
498
|
-
scipy.ndimage.sum(branching_counts, nearby_labels, label_range)
|
|
499
|
-
).astype(int)
|
|
500
|
-
else:
|
|
501
|
-
trunk_counts = numpy.zeros((0,), int)
|
|
502
|
-
#
|
|
503
|
-
# The branches are the branchpoints that lie outside the seed objects
|
|
504
|
-
#
|
|
505
|
-
if labels_count > 0:
|
|
506
|
-
branch_counts = fix(
|
|
507
|
-
scipy.ndimage.sum(branch_points, outside_labels, label_range)
|
|
508
|
-
)
|
|
364
|
+
# rare case of not conditioning on self.show_window for display results here
|
|
365
|
+
# since we might need them even if/when show_window is False
|
|
366
|
+
if self.wants_branchpoint_image or self.wants_objskeleton_graph:
|
|
367
|
+
lib_measurements, lib_display = lib_res
|
|
509
368
|
else:
|
|
510
|
-
|
|
511
|
-
#
|
|
512
|
-
# Save the endpoints
|
|
513
|
-
#
|
|
514
|
-
if labels_count > 0:
|
|
515
|
-
end_counts = fix(scipy.ndimage.sum(end_points, outside_labels, label_range))
|
|
516
|
-
else:
|
|
517
|
-
end_counts = numpy.zeros((0,), int)
|
|
518
|
-
#
|
|
519
|
-
# Calculate the distances
|
|
520
|
-
#
|
|
521
|
-
total_distance = centrosome.cpmorphology.skeleton_length(
|
|
522
|
-
dlabels * outside_skel, label_range
|
|
523
|
-
)
|
|
369
|
+
lib_measurements = lib_res
|
|
524
370
|
#
|
|
525
371
|
# Save measurements
|
|
526
372
|
#
|
|
527
373
|
m = workspace.measurements
|
|
528
374
|
assert isinstance(m, Measurements)
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
m[seed_objects_name, feature] = total_distance
|
|
375
|
+
|
|
376
|
+
for object_name, features in lib_measurements.objects.items():
|
|
377
|
+
for feature_name, values in features.items():
|
|
378
|
+
m.add_measurement(object_name, feature_name, values)
|
|
379
|
+
|
|
380
|
+
for feature_name, value in lib_measurements.image.items():
|
|
381
|
+
m.add_image_measurement(feature_name, value)
|
|
537
382
|
#
|
|
538
383
|
# Collect the graph information
|
|
539
384
|
#
|
|
540
385
|
if self.wants_objskeleton_graph:
|
|
541
|
-
trunk_mask = (branching_counts > 0) & (nearby_labels != 0)
|
|
542
|
-
intensity_image = workspace.image_set.get_image(
|
|
543
|
-
self.intensity_image_name.value
|
|
544
|
-
)
|
|
545
|
-
edge_graph, vertex_graph = self.make_objskeleton_graph(
|
|
546
|
-
combined_skel,
|
|
547
|
-
dlabels,
|
|
548
|
-
trunk_mask,
|
|
549
|
-
branch_points & ~trunk_mask,
|
|
550
|
-
end_points,
|
|
551
|
-
intensity_image.pixel_data,
|
|
552
|
-
)
|
|
553
|
-
|
|
554
|
-
image_number = workspace.measurements.image_set_number
|
|
555
|
-
|
|
556
386
|
edge_path, vertex_path = self.get_graph_file_paths(m, m.image_number)
|
|
557
387
|
workspace.interaction_request(
|
|
558
388
|
self,
|
|
559
389
|
m.image_number,
|
|
560
390
|
edge_path,
|
|
561
|
-
edge_graph,
|
|
391
|
+
lib_display.edge_graph,
|
|
562
392
|
vertex_path,
|
|
563
|
-
vertex_graph,
|
|
393
|
+
lib_display.vertex_graph,
|
|
564
394
|
headless_ok=True,
|
|
565
395
|
)
|
|
566
396
|
|
|
567
397
|
if self.show_window:
|
|
568
|
-
workspace.display_data.edge_graph = edge_graph
|
|
569
|
-
workspace.display_data.vertex_graph = vertex_graph
|
|
398
|
+
workspace.display_data.edge_graph = lib_display.edge_graph
|
|
399
|
+
workspace.display_data.vertex_graph = lib_display.vertex_graph
|
|
570
400
|
workspace.display_data.intensity_image = intensity_image.pixel_data
|
|
571
401
|
#
|
|
572
402
|
# Make the display image
|
|
573
403
|
#
|
|
574
|
-
if self.show_window
|
|
575
|
-
branchpoint_image =
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
branchpoint_image[outside_skel, :] = 1
|
|
580
|
-
branchpoint_image[trunk_mask | branch_mask | end_mask, :] = 0
|
|
581
|
-
branchpoint_image[trunk_mask, 0] = 1
|
|
582
|
-
branchpoint_image[branch_mask, 1] = 1
|
|
583
|
-
branchpoint_image[end_mask, 2] = 1
|
|
584
|
-
branchpoint_image[dilated_labels != 0, :] *= 0.875
|
|
585
|
-
branchpoint_image[dilated_labels != 0, :] += 0.1
|
|
586
|
-
if self.show_window:
|
|
587
|
-
workspace.display_data.branchpoint_image = branchpoint_image
|
|
588
|
-
if self.wants_branchpoint_image:
|
|
589
|
-
bi = Image(branchpoint_image, parent_image=skeleton_image)
|
|
590
|
-
workspace.image_set.add(self.branchpoint_image_name.value, bi)
|
|
404
|
+
if self.show_window:
|
|
405
|
+
workspace.display_data.branchpoint_image = lib_display.branchpoint_image
|
|
406
|
+
if self.wants_branchpoint_image:
|
|
407
|
+
bi = Image(lib_display.branchpoint_image, parent_image=skeleton_image)
|
|
408
|
+
workspace.image_set.add(self.branchpoint_image_name.value, bi)
|
|
591
409
|
|
|
592
410
|
def handle_interaction(
|
|
593
411
|
self, image_number, edge_path, edge_graph, vertex_path, vertex_graph
|
|
594
412
|
):
|
|
595
413
|
columns = tuple(
|
|
596
|
-
[vertex_graph[f].tolist() for f in
|
|
414
|
+
[vertex_graph[f].tolist() for f in vertex_file_columns[2:]]
|
|
597
415
|
)
|
|
598
416
|
with open(vertex_path, "at") as fd:
|
|
599
417
|
for vertex_number, fields in enumerate(zip(*columns)):
|
|
@@ -602,7 +420,7 @@ The file has the following columns:
|
|
|
602
420
|
+ ("%d,%d,%d,%s\n" % fields)
|
|
603
421
|
)
|
|
604
422
|
|
|
605
|
-
columns = tuple([edge_graph[f].tolist() for f in
|
|
423
|
+
columns = tuple([edge_graph[f].tolist() for f in edge_file_columns[1:]])
|
|
606
424
|
with open(edge_path, "at") as fd:
|
|
607
425
|
line_format = "%d,%%d,%%d,%%d,%%.4f\n" % image_number
|
|
608
426
|
for fields in zip(*columns):
|
|
@@ -654,7 +472,7 @@ The file has the following columns:
|
|
|
654
472
|
self.seed_objects_name.value,
|
|
655
473
|
"_".join((C_OBJSKELETON, feature, self.image_name.value)),
|
|
656
474
|
COLTYPE_FLOAT
|
|
657
|
-
if feature ==
|
|
475
|
+
if feature == SkeletonMeasurements.TOTAL_OBJSKELETON_LENGTH
|
|
658
476
|
else COLTYPE_INTEGER,
|
|
659
477
|
)
|
|
660
478
|
for feature in F_ALL
|
|
@@ -722,202 +540,3 @@ The file has the following columns:
|
|
|
722
540
|
]
|
|
723
541
|
variable_revision_number = 3
|
|
724
542
|
return setting_values, variable_revision_number
|
|
725
|
-
|
|
726
|
-
def make_objskeleton_graph(
|
|
727
|
-
self, skeleton, skeleton_labels, trunks, branchpoints, endpoints, image
|
|
728
|
-
):
|
|
729
|
-
"""Make a table that captures the graph relationship of the skeleton
|
|
730
|
-
|
|
731
|
-
skeleton - binary skeleton image + outline of seed objects
|
|
732
|
-
skeleton_labels - labels matrix of skeleton
|
|
733
|
-
trunks - binary image with trunk points as 1
|
|
734
|
-
branchpoints - binary image with branchpoints as 1
|
|
735
|
-
endpoints - binary image with endpoints as 1
|
|
736
|
-
image - image for intensity measurement
|
|
737
|
-
|
|
738
|
-
returns two tables.
|
|
739
|
-
Table 1: edge table
|
|
740
|
-
The edge table is a numpy record array with the following named
|
|
741
|
-
columns in the following order:
|
|
742
|
-
v1: index into vertex table of first vertex of edge
|
|
743
|
-
v2: index into vertex table of second vertex of edge
|
|
744
|
-
length: # of intermediate pixels + 2 (for two vertices)
|
|
745
|
-
total_intensity: sum of intensities along the edge
|
|
746
|
-
|
|
747
|
-
Table 2: vertex table
|
|
748
|
-
The vertex table is a numpy record array:
|
|
749
|
-
i: I coordinate of the vertex
|
|
750
|
-
j: J coordinate of the vertex
|
|
751
|
-
label: the vertex's label
|
|
752
|
-
kind: kind of vertex = "T" for trunk, "B" for branchpoint or "E" for endpoint.
|
|
753
|
-
"""
|
|
754
|
-
i, j = numpy.mgrid[0 : skeleton.shape[0], 0 : skeleton.shape[1]]
|
|
755
|
-
#
|
|
756
|
-
# Give each point of interest a unique number
|
|
757
|
-
#
|
|
758
|
-
points_of_interest = trunks | branchpoints | endpoints
|
|
759
|
-
number_of_points = numpy.sum(points_of_interest)
|
|
760
|
-
#
|
|
761
|
-
# Make up the vertex table
|
|
762
|
-
#
|
|
763
|
-
tbe = numpy.zeros(points_of_interest.shape, "|S1")
|
|
764
|
-
tbe[trunks] = "T"
|
|
765
|
-
tbe[branchpoints] = "B"
|
|
766
|
-
tbe[endpoints] = "E"
|
|
767
|
-
i_idx = i[points_of_interest]
|
|
768
|
-
j_idx = j[points_of_interest]
|
|
769
|
-
poe_labels = skeleton_labels[points_of_interest]
|
|
770
|
-
tbe = tbe[points_of_interest]
|
|
771
|
-
vertex_table = {
|
|
772
|
-
self.VF_I: i_idx,
|
|
773
|
-
self.VF_J: j_idx,
|
|
774
|
-
self.VF_LABELS: poe_labels,
|
|
775
|
-
self.VF_KIND: tbe,
|
|
776
|
-
}
|
|
777
|
-
#
|
|
778
|
-
# First, break the skeleton by removing the branchpoints, endpoints
|
|
779
|
-
# and trunks
|
|
780
|
-
#
|
|
781
|
-
broken_skeleton = skeleton & (~points_of_interest)
|
|
782
|
-
#
|
|
783
|
-
# Label the broken skeleton: this labels each edge differently
|
|
784
|
-
#
|
|
785
|
-
edge_labels, nlabels = centrosome.cpmorphology.label_skeleton(skeleton)
|
|
786
|
-
#
|
|
787
|
-
# Reindex after removing the points of interest
|
|
788
|
-
#
|
|
789
|
-
edge_labels[points_of_interest] = 0
|
|
790
|
-
if nlabels > 0:
|
|
791
|
-
indexer = numpy.arange(nlabels + 1)
|
|
792
|
-
unique_labels = numpy.sort(numpy.unique(edge_labels))
|
|
793
|
-
nlabels = len(unique_labels) - 1
|
|
794
|
-
indexer[unique_labels] = numpy.arange(len(unique_labels))
|
|
795
|
-
edge_labels = indexer[edge_labels]
|
|
796
|
-
#
|
|
797
|
-
# find magnitudes and lengths for all edges
|
|
798
|
-
#
|
|
799
|
-
magnitudes = fix(
|
|
800
|
-
scipy.ndimage.sum(
|
|
801
|
-
image, edge_labels, numpy.arange(1, nlabels + 1, dtype=numpy.int32)
|
|
802
|
-
)
|
|
803
|
-
)
|
|
804
|
-
lengths = fix(
|
|
805
|
-
scipy.ndimage.sum(
|
|
806
|
-
numpy.ones(edge_labels.shape),
|
|
807
|
-
edge_labels,
|
|
808
|
-
numpy.arange(1, nlabels + 1, dtype=numpy.int32),
|
|
809
|
-
)
|
|
810
|
-
).astype(int)
|
|
811
|
-
else:
|
|
812
|
-
magnitudes = numpy.zeros(0)
|
|
813
|
-
lengths = numpy.zeros(0, int)
|
|
814
|
-
#
|
|
815
|
-
# combine the edge labels and indexes of points of interest with padding
|
|
816
|
-
#
|
|
817
|
-
edge_mask = edge_labels != 0
|
|
818
|
-
all_labels = numpy.zeros(numpy.array(edge_labels.shape) + 2, int)
|
|
819
|
-
all_labels[1:-1, 1:-1][edge_mask] = edge_labels[edge_mask] + number_of_points
|
|
820
|
-
all_labels[i_idx + 1, j_idx + 1] = numpy.arange(1, number_of_points + 1)
|
|
821
|
-
#
|
|
822
|
-
# Collect all 8 neighbors for each point of interest
|
|
823
|
-
#
|
|
824
|
-
p1 = numpy.zeros(0, int)
|
|
825
|
-
p2 = numpy.zeros(0, int)
|
|
826
|
-
for i_off, j_off in (
|
|
827
|
-
(0, 0),
|
|
828
|
-
(0, 1),
|
|
829
|
-
(0, 2),
|
|
830
|
-
(1, 0),
|
|
831
|
-
(1, 2),
|
|
832
|
-
(2, 0),
|
|
833
|
-
(2, 1),
|
|
834
|
-
(2, 2),
|
|
835
|
-
):
|
|
836
|
-
p1 = numpy.hstack((p1, numpy.arange(1, number_of_points + 1)))
|
|
837
|
-
p2 = numpy.hstack((p2, all_labels[i_idx + i_off, j_idx + j_off]))
|
|
838
|
-
#
|
|
839
|
-
# Get rid of zeros which are background
|
|
840
|
-
#
|
|
841
|
-
p1 = p1[p2 != 0]
|
|
842
|
-
p2 = p2[p2 != 0]
|
|
843
|
-
#
|
|
844
|
-
# Find point_of_interest -> point_of_interest connections.
|
|
845
|
-
#
|
|
846
|
-
p1_poi = p1[(p2 <= number_of_points) & (p1 < p2)]
|
|
847
|
-
p2_poi = p2[(p2 <= number_of_points) & (p1 < p2)]
|
|
848
|
-
#
|
|
849
|
-
# Make sure matches are labeled the same
|
|
850
|
-
#
|
|
851
|
-
same_labels = (
|
|
852
|
-
skeleton_labels[i_idx[p1_poi - 1], j_idx[p1_poi - 1]]
|
|
853
|
-
== skeleton_labels[i_idx[p2_poi - 1], j_idx[p2_poi - 1]]
|
|
854
|
-
)
|
|
855
|
-
p1_poi = p1_poi[same_labels]
|
|
856
|
-
p2_poi = p2_poi[same_labels]
|
|
857
|
-
#
|
|
858
|
-
# Find point_of_interest -> edge
|
|
859
|
-
#
|
|
860
|
-
p1_edge = p1[p2 > number_of_points]
|
|
861
|
-
edge = p2[p2 > number_of_points]
|
|
862
|
-
#
|
|
863
|
-
# Now, each value that p2_edge takes forms a group and all
|
|
864
|
-
# p1_edge whose p2_edge are connected together by the edge.
|
|
865
|
-
# Possibly they touch each other without the edge, but we will
|
|
866
|
-
# take the minimum distance connecting each pair to throw out
|
|
867
|
-
# the edge.
|
|
868
|
-
#
|
|
869
|
-
edge, p1_edge, p2_edge = centrosome.cpmorphology.pairwise_permutations(
|
|
870
|
-
edge, p1_edge
|
|
871
|
-
)
|
|
872
|
-
indexer = edge - number_of_points - 1
|
|
873
|
-
lengths = lengths[indexer]
|
|
874
|
-
magnitudes = magnitudes[indexer]
|
|
875
|
-
#
|
|
876
|
-
# OK, now we make the edge table. First poi<->poi. Length = 2,
|
|
877
|
-
# magnitude = magnitude at each point
|
|
878
|
-
#
|
|
879
|
-
poi_length = numpy.ones(len(p1_poi)) * 2
|
|
880
|
-
poi_magnitude = (
|
|
881
|
-
image[i_idx[p1_poi - 1], j_idx[p1_poi - 1]]
|
|
882
|
-
+ image[i_idx[p2_poi - 1], j_idx[p2_poi - 1]]
|
|
883
|
-
)
|
|
884
|
-
#
|
|
885
|
-
# Now the edges...
|
|
886
|
-
#
|
|
887
|
-
poi_edge_length = lengths + 2
|
|
888
|
-
poi_edge_magnitude = (
|
|
889
|
-
image[i_idx[p1_edge - 1], j_idx[p1_edge - 1]]
|
|
890
|
-
+ image[i_idx[p2_edge - 1], j_idx[p2_edge - 1]]
|
|
891
|
-
+ magnitudes
|
|
892
|
-
)
|
|
893
|
-
#
|
|
894
|
-
# Put together the columns
|
|
895
|
-
#
|
|
896
|
-
v1 = numpy.hstack((p1_poi, p1_edge))
|
|
897
|
-
v2 = numpy.hstack((p2_poi, p2_edge))
|
|
898
|
-
lengths = numpy.hstack((poi_length, poi_edge_length))
|
|
899
|
-
magnitudes = numpy.hstack((poi_magnitude, poi_edge_magnitude))
|
|
900
|
-
#
|
|
901
|
-
# Sort by p1, p2 and length in order to pick the shortest length
|
|
902
|
-
#
|
|
903
|
-
indexer = numpy.lexsort((lengths, v1, v2))
|
|
904
|
-
v1 = v1[indexer]
|
|
905
|
-
v2 = v2[indexer]
|
|
906
|
-
lengths = lengths[indexer]
|
|
907
|
-
magnitudes = magnitudes[indexer]
|
|
908
|
-
if len(v1) > 0:
|
|
909
|
-
to_keep = numpy.hstack(([True], (v1[1:] != v1[:-1]) | (v2[1:] != v2[:-1])))
|
|
910
|
-
v1 = v1[to_keep]
|
|
911
|
-
v2 = v2[to_keep]
|
|
912
|
-
lengths = lengths[to_keep]
|
|
913
|
-
magnitudes = magnitudes[to_keep]
|
|
914
|
-
#
|
|
915
|
-
# Put it all together into a table
|
|
916
|
-
#
|
|
917
|
-
edge_table = {
|
|
918
|
-
self.EF_V1: v1,
|
|
919
|
-
self.EF_V2: v2,
|
|
920
|
-
self.EF_LENGTH: lengths,
|
|
921
|
-
self.EF_TOTAL_INTENSITY: magnitudes,
|
|
922
|
-
}
|
|
923
|
-
return edge_table, vertex_table
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/__init__.py
RENAMED
|
File without changes
|
{cellprofiler_nightly-5.0.0.dev554 → cellprofiler_nightly-5.0.0.dev562}/cellprofiler/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|