cellprofiler-library-nightly 5.0.0.dev728__tar.gz → 5.0.0.dev737__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 (136) hide show
  1. {cellprofiler_library_nightly-5.0.0.dev728/cellprofiler_library_nightly.egg-info → cellprofiler_library_nightly-5.0.0.dev737}/PKG-INFO +1 -1
  2. cellprofiler_library_nightly-5.0.0.dev737/cellprofiler_library/__init__.py +1 -0
  3. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/_version.py +3 -3
  4. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/functions/measurement.py +2 -71
  5. {cellprofiler_library_nightly-5.0.0.dev728/cellprofiler_library → cellprofiler_library_nightly-5.0.0.dev737/cellprofiler_library/measurements}/measurement_model.py +6 -5
  6. cellprofiler_library_nightly-5.0.0.dev737/cellprofiler_library/measurements/wrappers.py +180 -0
  7. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_align.py +1 -1
  8. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_identifydeadworms.py +1 -1
  9. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measurecolocalization.py +1 -1
  10. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measuregranularity.py +1 -1
  11. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureimageareaoccupied.py +1 -1
  12. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureimageintensity.py +1 -1
  13. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureimageoverlap.py +1 -1
  14. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureimagequality.py +1 -1
  15. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureimageskeleton.py +1 -1
  16. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureobjectintensity.py +1 -1
  17. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureobjectintensitydistribution.py +1 -1
  18. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureobjectneighbors.py +1 -1
  19. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureobjectoverlap.py +1 -1
  20. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureobjectsizeshape.py +1 -1
  21. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measureobjectskeleton.py +1 -1
  22. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_measuretexture.py +1 -1
  23. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_relateobjects.py +1 -1
  24. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureobjectintensity.py +2 -1
  25. cellprofiler_library_nightly-5.0.0.dev737/cellprofiler_library/py.typed +0 -0
  26. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737/cellprofiler_library_nightly.egg-info}/PKG-INFO +1 -1
  27. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library_nightly.egg-info/SOURCES.txt +3 -1
  28. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library_nightly.egg-info/scm_file_list.json +3 -1
  29. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library_nightly.egg-info/scm_version.json +2 -2
  30. cellprofiler_library_nightly-5.0.0.dev728/cellprofiler_library/__init__.py +0 -1
  31. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/LICENSE +0 -0
  32. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/README.md +0 -0
  33. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/functions/__init__.py +0 -0
  34. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/functions/file_processing.py +0 -0
  35. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/functions/image_processing.py +0 -0
  36. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/functions/object_processing.py +0 -0
  37. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/functions/segmentation.py +0 -0
  38. {cellprofiler_library_nightly-5.0.0.dev728/cellprofiler_library/opts → cellprofiler_library_nightly-5.0.0.dev737/cellprofiler_library/measurements}/__init__.py +0 -0
  39. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/__init__.py +0 -0
  40. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_closing.py +0 -0
  41. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_colortogray.py +0 -0
  42. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_combineobjects.py +0 -0
  43. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_convertimagetoobjects.py +0 -0
  44. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_convertobjectstoimage.py +0 -0
  45. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_correctilluminationapply.py +0 -0
  46. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_correctilluminationcalculate.py +0 -0
  47. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_crop.py +0 -0
  48. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_dilateimage.py +0 -0
  49. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_dilateobjects.py +0 -0
  50. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_enhanceedges.py +0 -0
  51. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_enhanceorsuppressfeatures.py +0 -0
  52. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_erodeimage.py +0 -0
  53. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_erodeobjects.py +0 -0
  54. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_expandorshrinkobjects.py +0 -0
  55. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_fillobjects.py +0 -0
  56. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_filterobjects.py +0 -0
  57. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_findmaxima.py +0 -0
  58. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_flipandrotate.py +0 -0
  59. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_gaussianfilter.py +0 -0
  60. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_graytocolor.py +0 -0
  61. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_identifyprimaryobjects.py +0 -0
  62. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_identifysecondaryobjects.py +0 -0
  63. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_identifytertiaryobjects.py +0 -0
  64. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_imagemath.py +0 -0
  65. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_makeprojection.py +0 -0
  66. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_medialaxis.py +0 -0
  67. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_medianfilter.py +0 -0
  68. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_morph.py +0 -0
  69. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_morphologicalskeleton.py +0 -0
  70. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_opening.py +0 -0
  71. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_overlayobjects.py +0 -0
  72. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_overlayoutlines.py +0 -0
  73. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_reducenoise.py +0 -0
  74. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_removeholes.py +0 -0
  75. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_rescaleintensity.py +0 -0
  76. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_resize.py +0 -0
  77. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_savecroppedobjects.py +0 -0
  78. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_shrinktoobjectcenters.py +0 -0
  79. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_smooth.py +0 -0
  80. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_threshold.py +0 -0
  81. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/modules/_watershed.py +0 -0
  82. /cellprofiler_library_nightly-5.0.0.dev728/cellprofiler_library/py.typed → /cellprofiler_library_nightly-5.0.0.dev737/cellprofiler_library/opts/__init__.py +0 -0
  83. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/align.py +0 -0
  84. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/colortogray.py +0 -0
  85. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/convertimagetoobjects.py +0 -0
  86. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/convertobjectstoimage.py +0 -0
  87. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/correctilluminationapply.py +0 -0
  88. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/correctilluminationcalculate.py +0 -0
  89. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/crop.py +0 -0
  90. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/dilateimage.py +0 -0
  91. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/dilateobjects.py +0 -0
  92. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/enhanceedges.py +0 -0
  93. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/enhanceorsuppressfeatures.py +0 -0
  94. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/erodeimage.py +0 -0
  95. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/erodeobjects.py +0 -0
  96. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/filterobjects.py +0 -0
  97. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/findmaxima.py +0 -0
  98. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/flipandrotate.py +0 -0
  99. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/graytocolor.py +0 -0
  100. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/identifydeadworms.py +0 -0
  101. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/identifyprimaryobjects.py +0 -0
  102. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/identifysecondaryobjects.py +0 -0
  103. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/identifytertiaryobjects.py +0 -0
  104. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/imagemath.py +0 -0
  105. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/makeprojection.py +0 -0
  106. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measurecolocalization.py +0 -0
  107. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measuregranularity.py +0 -0
  108. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureimageareaoccupied.py +0 -0
  109. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureimageintensity.py +0 -0
  110. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureimageoverlap.py +0 -0
  111. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureimagequality.py +0 -0
  112. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureimageskeleton.py +0 -0
  113. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measurement.py +0 -0
  114. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureobjectintensitydistribution.py +0 -0
  115. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureobjectneighbors.py +0 -0
  116. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureobjectoverlap.py +0 -0
  117. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measureobjectskeleton.py +0 -0
  118. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/measuretexture.py +0 -0
  119. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/morph.py +0 -0
  120. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/objectsizeshapefeatures.py +0 -0
  121. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/overlayoutlines.py +0 -0
  122. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/relateobjects.py +0 -0
  123. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/removeholes.py +0 -0
  124. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/rescaleintensity.py +0 -0
  125. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/resize.py +0 -0
  126. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/shrinktoobjectcenters.py +0 -0
  127. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/smooth.py +0 -0
  128. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/structuring_elements.py +0 -0
  129. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/opts/threshold.py +0 -0
  130. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library/types.py +0 -0
  131. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library_nightly.egg-info/dependency_links.txt +0 -0
  132. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library_nightly.egg-info/requires.txt +0 -0
  133. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/cellprofiler_library_nightly.egg-info/top_level.txt +0 -0
  134. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/environment.yml +0 -0
  135. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/pyproject.toml +0 -0
  136. {cellprofiler_library_nightly-5.0.0.dev728 → cellprofiler_library_nightly-5.0.0.dev737}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cellprofiler-library-nightly
3
- Version: 5.0.0.dev728
3
+ Version: 5.0.0.dev737
4
4
  Summary: cellprofiler-library implements CellProfiler's image processing and mathematical code, and is usable as a standalone library
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>
@@ -0,0 +1 @@
1
+ from .measurements.measurement_model import LibraryMeasurements
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '5.0.0.dev728'
22
- __version_tuple__ = version_tuple = (5, 0, 0, 'dev728')
21
+ __version__ = version = '5.0.0.dev737'
22
+ __version_tuple__ = version_tuple = (5, 0, 0, 'dev737')
23
23
 
24
- __commit_id__ = commit_id = 'gf66c883bd'
24
+ __commit_id__ = commit_id = 'gcb2ef7a2c'
@@ -41,20 +41,10 @@ from cellprofiler_library.opts.measureobjectoverlap import DecimationMethod as O
41
41
  from cellprofiler_library.opts.measureobjectskeleton import VF_I, VF_J, VF_LABELS, VF_KIND, EF_V1, EF_V2, EF_LENGTH, EF_TOTAL_INTENSITY
42
42
  from cellprofiler_library.opts.measureobjectneighbors import DistanceMethod as NeighborsDistanceMethod
43
43
  from cellprofiler_library.opts.measureobjectneighbors import MeasurementScale as NeighborsMeasurementScale
44
- from cellprofiler_core.constants.measurement import (
45
- FF_COUNT,
46
- FF_PARENT,
47
- )
48
44
  from cellprofiler_library.opts.relateobjects import TemplateMeasurementFormat
49
- from cellprofiler_library.measurement_model import LibraryMeasurements
45
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
50
46
  from cellprofiler_library.functions.segmentation import center_of_labels_mass
51
- from cellprofiler_library.opts.measurement import (
52
- M_LOCATION_CENTER_X,
53
- M_LOCATION_CENTER_Y,
54
- M_LOCATION_CENTER_Z,
55
- C_LOCATION,
56
- M_NUMBER_OBJECT_NUMBER,
57
- )
47
+ from cellprofiler_library.opts.measurement import FF_PARENT
58
48
 
59
49
  ###############################################################################
60
50
  # MeasureImageOverlap
@@ -4429,62 +4419,3 @@ def find_parents_of(
4429
4419
  )
4430
4420
 
4431
4421
  return parents_of
4432
-
4433
- def get_object_location_measurements(object_name, labels, object_count=None):
4434
- measurements = LibraryMeasurements()
4435
- if object_count is None:
4436
- object_count = numpy.max(labels)
4437
- #
4438
- # Get the centers of each object - center_of_mass <- list of two-tuples.
4439
- #
4440
- if object_count:
4441
- centers = scipy.ndimage.center_of_mass(
4442
- numpy.ones(labels.shape), labels, list(range(1, object_count + 1))
4443
- )
4444
- centers = numpy.array(centers)
4445
- centers = centers.reshape((object_count, len(labels.shape)))
4446
- if centers.shape[1] != 3:
4447
- location_center_z = None
4448
- location_center_y = centers[:, 0]
4449
- location_center_x = centers[:, 1]
4450
- else:
4451
- location_center_z = centers[:, 0]
4452
- location_center_y = centers[:, 1]
4453
- location_center_x = centers[:, 2]
4454
- number = numpy.arange(1, object_count + 1)
4455
- else:
4456
- location_center_z = numpy.zeros((0,), dtype=float)
4457
- location_center_y = numpy.zeros((0,), dtype=float)
4458
- location_center_x = numpy.zeros((0,), dtype=float)
4459
- number = numpy.zeros((0,), dtype=int)
4460
- measurements.add_measurement(
4461
- object_name, M_LOCATION_CENTER_X, location_center_x,
4462
- )
4463
- measurements.add_measurement(
4464
- object_name, M_LOCATION_CENTER_Y, location_center_y,
4465
- )
4466
- if len(labels.shape) > 2:
4467
- measurements.add_measurement(
4468
- object_name, M_LOCATION_CENTER_Z, location_center_z,
4469
- )
4470
-
4471
- measurements.add_measurement(
4472
- object_name, M_NUMBER_OBJECT_NUMBER, number,
4473
- )
4474
- return measurements
4475
-
4476
- def get_object_count_measurements(object_name, object_count):
4477
- """Add the # of objects to the measurements"""
4478
- lib_measurements = LibraryMeasurements()
4479
- lib_measurements.add_image_measurement(FF_COUNT % object_name, object_count)
4480
- return lib_measurements
4481
-
4482
- def get_object_processing_measurements(*args, **kwargs):
4483
- # TODO: #5117 implement add_measurements from src/subpackages/core/cellprofiler_core/module/image_segmentation/_object_processing.py
4484
- pass
4485
-
4486
- def get_image_segmentation_measurements(*args, **kwargs):
4487
- # TODO: #5117 implement add_measurements from src/subpackages/core/cellprofiler_core/module/image_segmentation/_image_segmentation.py
4488
- pass
4489
-
4490
-
@@ -6,11 +6,12 @@ import numpy
6
6
  from typing import Any, Dict, List
7
7
  from numpy.typing import NDArray
8
8
 
9
- # Constants for relationship measurements
10
- IMAGE_NUMBER = "ImageNumber"
11
- OBJECT_NUMBER = "ObjectNumber"
12
- R_FIRST_OBJECT_NUMBER = f"{OBJECT_NUMBER}_First"
13
- R_SECOND_OBJECT_NUMBER = f"{OBJECT_NUMBER}_Second"
9
+ from cellprofiler_library.opts.measurement import (
10
+ IMAGE_NUMBER,
11
+ OBJECT_NUMBER,
12
+ R_FIRST_OBJECT_NUMBER,
13
+ R_SECOND_OBJECT_NUMBER,
14
+ )
14
15
 
15
16
  class RelationshipBase:
16
17
  """Key for identifying relationship groups."""
@@ -0,0 +1,180 @@
1
+ import numpy
2
+ import scipy.ndimage
3
+ from typing import Annotated, Optional
4
+ from pydantic import Field, validate_call, ConfigDict
5
+
6
+ from cellprofiler_library.types import ObjectSegmentation, ObjectSegmentationIJV
7
+ from cellprofiler_library.functions.segmentation import center_of_labels_mass, relate_children
8
+ from cellprofiler_library.opts.measurement import (
9
+ M_LOCATION_CENTER_X,
10
+ M_LOCATION_CENTER_Y,
11
+ M_LOCATION_CENTER_Z,
12
+ M_NUMBER_OBJECT_NUMBER,
13
+ FF_COUNT,
14
+ FF_PARENT,
15
+ FF_CHILDREN_COUNT,
16
+ )
17
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
18
+
19
+
20
+ @validate_call(config=ConfigDict(arbitrary_types_allowed=True))
21
+ def wrap_object_location_measurements(
22
+ object_name: Annotated[str, Field(description="Name of the objects being measured")],
23
+ labels: Annotated[ObjectSegmentation, Field(description="Dense label matrix of the objects")],
24
+ object_count: Annotated[
25
+ Optional[int],
26
+ Field(description="Number of objects in labels, if known. Otherwise taken as the max label value."),
27
+ ] = None,
28
+ ) -> LibraryMeasurements:
29
+ """Return the X/Y(/Z) centers of mass and object numbers for the given objects"""
30
+ measurements = LibraryMeasurements()
31
+ if object_count is None:
32
+ object_count = numpy.max(labels)
33
+ #
34
+ # Get the centers of each object - center_of_mass <- list of two-tuples.
35
+ #
36
+ if object_count:
37
+ centers = scipy.ndimage.center_of_mass(
38
+ numpy.ones(labels.shape), labels, list(range(1, object_count + 1))
39
+ )
40
+ centers = numpy.array(centers)
41
+ centers = centers.reshape((object_count, len(labels.shape)))
42
+ if centers.shape[1] != 3:
43
+ location_center_y = centers[:, 0]
44
+ location_center_x = centers[:, 1]
45
+ else:
46
+ location_center_z = centers[:, 0]
47
+ location_center_y = centers[:, 1]
48
+ location_center_x = centers[:, 2]
49
+ number = numpy.arange(1, object_count + 1)
50
+ else:
51
+ location_center_z = numpy.zeros((0,), dtype=float)
52
+ location_center_y = numpy.zeros((0,), dtype=float)
53
+ location_center_x = numpy.zeros((0,), dtype=float)
54
+ number = numpy.zeros((0,), dtype=int)
55
+ measurements.add_measurement(
56
+ object_name, M_LOCATION_CENTER_X, location_center_x,
57
+ )
58
+ measurements.add_measurement(
59
+ object_name, M_LOCATION_CENTER_Y, location_center_y,
60
+ )
61
+ if len(labels.shape) > 2:
62
+ measurements.add_measurement(
63
+ object_name, M_LOCATION_CENTER_Z, location_center_z,
64
+ )
65
+
66
+ measurements.add_measurement(
67
+ object_name, M_NUMBER_OBJECT_NUMBER, number,
68
+ )
69
+ return measurements
70
+
71
+
72
+ @validate_call(config=ConfigDict(arbitrary_types_allowed=True))
73
+ def wrap_object_count_measurements(
74
+ object_name: Annotated[str, Field(description="Name of the objects being counted")],
75
+ object_count: Annotated[int, Field(description="Number of objects")],
76
+ ) -> LibraryMeasurements:
77
+ """Return the image-level object count measurement"""
78
+ lib_measurements = LibraryMeasurements()
79
+ lib_measurements.add_image_measurement(
80
+ FF_COUNT % object_name, numpy.array([object_count], dtype=float),
81
+ )
82
+ return lib_measurements
83
+
84
+
85
+ @validate_call(config=ConfigDict(arbitrary_types_allowed=True))
86
+ def wrap_relate_object_measurements(
87
+ object_labels: Annotated[ObjectSegmentation, Field(description="Dense label matrix of the child objects")],
88
+ object_volumetric: Annotated[bool, Field(description="Whether the objects are volumetric (3D)")],
89
+ object_name: Annotated[str, Field(description="Name of the child objects")],
90
+ object_ijv: Annotated[ObjectSegmentationIJV, Field(description="Child object segmentation in IJV format")],
91
+ parent_object_name: Annotated[str, Field(description="Name of the parent objects")],
92
+ parent_object_labels: Annotated[ObjectSegmentation, Field(description="Dense label matrix of the parent objects")],
93
+ parent_object_ijv: Annotated[ObjectSegmentationIJV, Field(description="Parent object segmentation in IJV format")],
94
+ ) -> LibraryMeasurements:
95
+ """Return parent/child relate measurements: children-per-parent count and parent-of-child"""
96
+ lib_measurements = LibraryMeasurements()
97
+ children_per_parent, parents_of_children = relate_children(
98
+ parent_object_labels,
99
+ object_labels,
100
+ parent_object_ijv,
101
+ object_ijv,
102
+ volumetric=object_volumetric,
103
+ )
104
+ lib_measurements.add_measurement(
105
+ parent_object_name,
106
+ FF_CHILDREN_COUNT % object_name,
107
+ children_per_parent,
108
+ )
109
+
110
+ lib_measurements.add_measurement(
111
+ object_name, FF_PARENT % parent_object_name, parents_of_children,
112
+ )
113
+ return lib_measurements
114
+
115
+
116
+ @validate_call(config=ConfigDict(arbitrary_types_allowed=True))
117
+ def wrap_image_segmentation_measurements(
118
+ object_labels: Annotated[ObjectSegmentation, Field(description="Dense label matrix of the objects")],
119
+ object_volumetric: Annotated[bool, Field(description="Whether the objects are volumetric (3D)")],
120
+ object_count: Annotated[int, Field(description="Number of objects")],
121
+ object_name: Annotated[str, Field(description="Name of the objects being measured")],
122
+ ) -> LibraryMeasurements:
123
+ """Return the location and count measurements produced by ImageSegmentation.add_measurements"""
124
+ lib_measurements = LibraryMeasurements()
125
+ centers = center_of_labels_mass(object_labels, validate=False)
126
+
127
+ if len(centers) == 0:
128
+ center_z, center_y, center_x = [], [], []
129
+ else:
130
+ if object_volumetric:
131
+ center_z, center_y, center_x = centers.transpose()
132
+ else:
133
+ center_z = [0] * len(centers)
134
+
135
+ center_y, center_x = centers.transpose()
136
+
137
+ lib_measurements.add_measurement(
138
+ object_name, M_LOCATION_CENTER_X, center_x,
139
+ )
140
+
141
+ lib_measurements.add_measurement(
142
+ object_name, M_LOCATION_CENTER_Y, center_y,
143
+ )
144
+
145
+ lib_measurements.add_measurement(
146
+ object_name, M_LOCATION_CENTER_Z, center_z,
147
+ )
148
+
149
+ lib_measurements.add_measurement(
150
+ object_name, M_NUMBER_OBJECT_NUMBER, numpy.arange(1, object_count + 1),
151
+ )
152
+
153
+ lib_measurements = lib_measurements.merge(
154
+ wrap_object_count_measurements(object_name, object_count)
155
+ )
156
+ return lib_measurements
157
+
158
+
159
+ @validate_call(config=ConfigDict(arbitrary_types_allowed=True))
160
+ def wrap_object_processing_measurements(
161
+ object_labels: Annotated[ObjectSegmentation, Field(description="Dense label matrix of the output objects")],
162
+ object_volumetric: Annotated[bool, Field(description="Whether the output objects are volumetric (3D)")],
163
+ object_count: Annotated[int, Field(description="Number of output objects")],
164
+ object_name: Annotated[str, Field(description="Name of the output objects")],
165
+ object_ijv: Annotated[ObjectSegmentationIJV, Field(description="Output object segmentation in IJV format")],
166
+ parent_object_name: Annotated[str, Field(description="Name of the input (parent) objects")],
167
+ parent_object_labels: Annotated[ObjectSegmentation, Field(description="Dense label matrix of the input objects")],
168
+ parent_object_ijv: Annotated[ObjectSegmentationIJV, Field(description="Input object segmentation in IJV format")],
169
+ ) -> LibraryMeasurements:
170
+ """Return the measurements produced by ObjectProcessing.add_measurements"""
171
+ lib_measurements = wrap_image_segmentation_measurements(
172
+ object_labels, object_volumetric, object_count, object_name
173
+ )
174
+ lib_measurements_relate = wrap_relate_object_measurements(
175
+ object_labels, object_volumetric, object_name, object_ijv,
176
+ parent_object_name, parent_object_labels, parent_object_ijv,
177
+ )
178
+ lib_measurements = lib_measurements.merge(lib_measurements_relate)
179
+
180
+ return lib_measurements
@@ -5,7 +5,7 @@ from pydantic import Field, validate_call, ConfigDict, BaseModel
5
5
 
6
6
  from cellprofiler_library.opts.align import CropMode, AlignmentMethod, AdditionalAlignmentChoice, MEASUREMENT_FORMAT
7
7
  from cellprofiler_library.types import Image2D, Image2DMask, ImageBinary
8
- from cellprofiler_library.measurement_model import LibraryMeasurements
8
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
9
9
  from cellprofiler_library.functions.image_processing import (
10
10
  align_cross_correlation,
11
11
  align_mutual_information,
@@ -6,7 +6,7 @@ from pydantic import Field, validate_call, ConfigDict, BaseModel
6
6
 
7
7
  from cellprofiler_library.types import Image2DBinary, Image2DBinaryMask, ObjectLabel
8
8
  from cellprofiler_library.functions.image_processing import get_3d_adjacent_after_erosion, process_all_connected_components, find_adjacent_by_distance
9
- from cellprofiler_library.measurement_model import LibraryMeasurements
9
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
10
10
 
11
11
  from cellprofiler_library.opts.identifydeadworms import M_LOCATION_CENTER_X, M_LOCATION_CENTER_Y, M_ANGLE, M_NUMBER_OBJECT_NUMBER, TemplateMeasurementFormat
12
12
 
@@ -6,7 +6,7 @@ from cellprofiler_library.functions.measurement import measure_correlation_and_s
6
6
  from cellprofiler_library.opts.measurecolocalization import TemplateMeasurementFormat, MeasurementType
7
7
  from cellprofiler_library.types import ImageGrayscale, ImageGrayscaleMask, Pixel, ObjectLabel, ObjectSegmentation, ImageAny, ImageAnyMask
8
8
  from cellprofiler_library.opts.measurecolocalization import CostesMethod
9
- from cellprofiler_library.measurement_model import LibraryMeasurements
9
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
10
10
  from cellprofiler_library.functions.image_processing import crop_image_similarly
11
11
  from cellprofiler_library.functions.object_processing import size_similarly, object_crop_image_similarly
12
12
 
@@ -3,7 +3,7 @@ from typing import Annotated, List, Tuple, Union
3
3
  from enum import Enum
4
4
  import numpy as np
5
5
 
6
- from cellprofiler_library.measurement_model import LibraryMeasurements
6
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
7
7
  from cellprofiler_library.functions.measurement import get_granularity_measurements, ObjectRecord
8
8
  from cellprofiler_library.functions.image_processing import apply_grayscale_tophat_filter, downsample_image_and_mask
9
9
  from cellprofiler_library.types import ImageGrayscale, ImageGrayscaleMask
@@ -4,7 +4,7 @@ from typing import Annotated, Optional, Tuple, List, Union
4
4
  from pydantic import Field, validate_call, ConfigDict, BaseModel
5
5
  from cellprofiler_library.types import ImageBinary, ObjectSegmentation, ImageAnyMask
6
6
  from cellprofiler_library.functions.measurement import measure_area_occupied, measure_total_area, measure_perimeter, measure_object_perimeter, measure_objects_area_occupied, measure_objects_total_area
7
- from cellprofiler_library.measurement_model import LibraryMeasurements
7
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
8
8
  from cellprofiler_library.opts.measureimageareaoccupied import TemplateMeasurementFormat
9
9
 
10
10
  ImageAreaOccupiedStatistics = List[List[str]]
@@ -4,7 +4,7 @@ from typing import List, Annotated, Optional, Tuple, Union
4
4
  from pydantic import Field, validate_call, ConfigDict, BaseModel
5
5
  from cellprofiler_library.functions.measurement import measure_image_intensities
6
6
  from cellprofiler_library.opts.measureimageintensity import TemplateMeasurementFormat, Feature, FORMATED_FEATURE_NAMES, FORMATED_PERCENTILE_TEMPLATE
7
- from cellprofiler_library.measurement_model import LibraryMeasurements
7
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
8
8
 
9
9
  ImageIntensityStatistics = List[Union[List[str], Tuple[str,float]]]
10
10
 
@@ -7,7 +7,7 @@ from cellprofiler_library.functions.measurement import (
7
7
  compute_earth_movers_distance,
8
8
  )
9
9
  from cellprofiler_library.types import ImageBinary, ImageBinaryMask
10
- from cellprofiler_library.measurement_model import LibraryMeasurements
10
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
11
11
 
12
12
  ImageOverlapStatistics = List[Tuple[str, Union[int, float, numpy.float_, numpy.int_]]]
13
13
 
@@ -3,7 +3,7 @@ from numpy.typing import NDArray
3
3
  from typing import Optional, List, Sequence, Annotated, Union, Tuple, Any
4
4
  from pydantic import BaseModel, Field, validate_call, ConfigDict
5
5
  from cellprofiler_library.types import ImageGrayscale, ImageGrayscaleMask
6
- from cellprofiler_library.measurement_model import LibraryMeasurements
6
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
7
7
  from cellprofiler_library.opts.measureimagequality import (
8
8
  Feature, ScaledThresholdMethod, TemplateMeasurementFormat
9
9
  )
@@ -6,7 +6,7 @@ from pydantic import Field, validate_call, ConfigDict, BaseModel
6
6
  from cellprofiler_library.types import ImageGrayscale
7
7
  from cellprofiler_library.opts.measureimageskeleton import TemplateMeasurementFormat
8
8
  from cellprofiler_library.functions.measurement import branches, endpoints
9
- from cellprofiler_library.measurement_model import LibraryMeasurements
9
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
10
10
 
11
11
 
12
12
  ImageSkeletonStatistics = List[Tuple[int, int]]
@@ -6,7 +6,7 @@ from typing import Tuple, Annotated, Optional, List, Any, Union
6
6
  from pydantic import Field, validate_call, ConfigDict, BaseModel
7
7
  from cellprofiler_core.utilities.core.object import crop_labels_and_image
8
8
  from cellprofiler_library.types import ImageGrayscale, ImageGrayscaleMask, ObjectLabelSet, Pixel, ObjectLabel
9
- from cellprofiler_library.measurement_model import LibraryMeasurements
9
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
10
10
  from cellprofiler_library.functions.measurement import measure_object_area_occupied, measure_integrated_intensity, measure_mean_intensity, measure_std_intensity, measure_min_intensity, measure_max_intensity, measure_max_position, measure_center_of_mass_binary, measure_center_of_mass_intensity, measure_mass_displacement, measure_quartile_intensity, measure_mad_intensity
11
11
  from cellprofiler_library.opts.measureobjectintensity import TemplateMeasurementFormat, IntensityFeature
12
12
 
@@ -12,7 +12,7 @@ from cellprofiler_library.functions.measurement import (
12
12
  compute_radial_indexes,
13
13
  prepare_object_zernike_polynomials, # passthrough import
14
14
  )
15
- from cellprofiler_library.measurement_model import LibraryMeasurements
15
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
16
16
  from cellprofiler_library.opts.measureobjectintensitydistribution import (
17
17
  C_RADIAL_DISTRIBUTION,
18
18
  CenterChoice,
@@ -4,7 +4,7 @@ from typing import Optional, Tuple, Annotated, Union, List
4
4
  from pydantic import Field, validate_call, ConfigDict, BaseModel
5
5
 
6
6
  from cellprofiler_library.types import ObjectSegmentation, ObjectLabelMask
7
- from cellprofiler_library.measurement_model import LibraryMeasurements
7
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
8
8
  from cellprofiler_library.opts.measureobjectneighbors import (
9
9
  DistanceMethod as NeighborsDistanceMethod,
10
10
  Measurement as NeighborsMeasurement,
@@ -5,7 +5,7 @@ from typing import Annotated, Tuple, Union, Optional, List, Any
5
5
  from cellprofiler_library.opts.measureobjectoverlap import DecimationMethod, Feature, C_IMAGE_OVERLAP
6
6
  from cellprofiler_library.types import ObjectLabelSet
7
7
  from cellprofiler_library.functions.measurement import calculate_overlap_measurements, compute_earth_movers_distance_objects
8
- from cellprofiler_library.measurement_model import LibraryMeasurements
8
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
9
9
 
10
10
  ObjectOverlapStatistics = List[Tuple[str, float]]
11
11
 
@@ -4,7 +4,7 @@ import centrosome
4
4
  import centrosome.cpmorphology
5
5
  from pydantic import validate_call, ConfigDict, Field, BaseModel
6
6
  from cellprofiler_library.types import ObjectLabelsDense
7
- from cellprofiler_library.measurement_model import LibraryMeasurements
7
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
8
8
  from cellprofiler_library.functions.measurement import (
9
9
  measure_object_size_shape_2d,
10
10
  measure_object_size_shape_3d
@@ -5,7 +5,7 @@ from cellprofiler_library.types import Image2DBinary, ObjectSegmentation, Image2
5
5
  from pydantic import Field, validate_call, ConfigDict, BaseModel
6
6
  from cellprofiler_library.functions.measurement import calculate_object_skeleton
7
7
  from cellprofiler_library.opts.measureobjectskeleton import SkeletonMeasurements, C_OBJSKELETON
8
- from cellprofiler_library.measurement_model import LibraryMeasurements
8
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
9
9
 
10
10
 
11
11
  ObjectSkeletonStatistics = List[None]
@@ -5,7 +5,7 @@ from cellprofiler_library.types import ImageGrayscale, ImageGrayscaleMask, Objec
5
5
  from pydantic import validate_call, Field, ConfigDict, BaseModel
6
6
  from cellprofiler_library.functions.measurement import measure_haralick_features_image, measure_haralick_features_objects
7
7
  from cellprofiler_library.opts.measuretexture import F_HARALICK, TEXTURE
8
- from cellprofiler_library.measurement_model import LibraryMeasurements
8
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
9
9
 
10
10
 
11
11
  MeasureTextureStatistics = List[Tuple[
@@ -6,7 +6,7 @@ import scipy.ndimage
6
6
  from cellprofiler_library.types import ObjectSegmentation, ObjectSegmentationIJV
7
7
  from cellprofiler_library.functions.segmentation import relate_children
8
8
  from cellprofiler_library.functions.object_processing import get_filtered_object
9
- from cellprofiler_library.measurement_model import LibraryMeasurements
9
+ from cellprofiler_library.measurements.measurement_model import LibraryMeasurements
10
10
  from cellprofiler_library.opts.relateobjects import TemplateMeasurementFormat, Relationship, C_MEAN, C_PARENT, M_NUMBER_OBJECT_NUMBER
11
11
  from cellprofiler_library.functions.measurement import (
12
12
  calculate_centroid_distances,
@@ -1,7 +1,8 @@
1
1
  from enum import Enum
2
2
 
3
+ from cellprofiler_library.opts.measurement import C_LOCATION
4
+
3
5
  C_INTENSITY = "Intensity"
4
- C_LOCATION = "Location"
5
6
 
6
7
  class IntensityFeature(str, Enum):
7
8
  """Raw strings for intensity and location features."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cellprofiler-library-nightly
3
- Version: 5.0.0.dev728
3
+ Version: 5.0.0.dev737
4
4
  Summary: cellprofiler-library implements CellProfiler's image processing and mathematical code, and is usable as a standalone library
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>
@@ -4,7 +4,6 @@ environment.yml
4
4
  pyproject.toml
5
5
  cellprofiler_library/__init__.py
6
6
  cellprofiler_library/_version.py
7
- cellprofiler_library/measurement_model.py
8
7
  cellprofiler_library/py.typed
9
8
  cellprofiler_library/types.py
10
9
  cellprofiler_library/functions/__init__.py
@@ -13,6 +12,9 @@ cellprofiler_library/functions/image_processing.py
13
12
  cellprofiler_library/functions/measurement.py
14
13
  cellprofiler_library/functions/object_processing.py
15
14
  cellprofiler_library/functions/segmentation.py
15
+ cellprofiler_library/measurements/__init__.py
16
+ cellprofiler_library/measurements/measurement_model.py
17
+ cellprofiler_library/measurements/wrappers.py
16
18
  cellprofiler_library/modules/__init__.py
17
19
  cellprofiler_library/modules/_align.py
18
20
  cellprofiler_library/modules/_closing.py
@@ -9,7 +9,9 @@
9
9
  "cellprofiler_library/functions/measurement.py",
10
10
  "cellprofiler_library/functions/object_processing.py",
11
11
  "cellprofiler_library/functions/segmentation.py",
12
- "cellprofiler_library/measurement_model.py",
12
+ "cellprofiler_library/measurements/__init__.py",
13
+ "cellprofiler_library/measurements/measurement_model.py",
14
+ "cellprofiler_library/measurements/wrappers.py",
13
15
  "cellprofiler_library/modules/__init__.py",
14
16
  "cellprofiler_library/modules/_align.py",
15
17
  "cellprofiler_library/modules/_closing.py",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "tag": "5.0.0.dev0",
3
- "distance": 728,
4
- "node": "gf66c883bd90c65d71095cd85bea58cc7c6b092e1",
3
+ "distance": 737,
4
+ "node": "gcb2ef7a2c2bff190d85bff9aaae1b000385e32fb",
5
5
  "dirty": true,
6
6
  "branch": "main",
7
7
  "node_date": "2026-09-28"
@@ -1 +0,0 @@
1
- from .measurement_model import LibraryMeasurements