histomicsui 1.7.3.dev72__tar.gz → 1.7.3.dev77__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 (187) hide show
  1. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/PKG-INFO +1 -1
  2. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/metadataPlot.js +5 -2
  3. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/MetadataPlot.js +69 -16
  4. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/dialogs/metadataPlot.styl +10 -0
  5. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/metadataPlot.pug +8 -1
  6. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui.egg-info/PKG-INFO +1 -1
  7. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/.circleci/config.yml +0 -0
  8. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/.editorconfig +0 -0
  9. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/.git-blame-ignore-revs +0 -0
  10. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/.gitignore +0 -0
  11. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/.pre-commit-config.yaml +0 -0
  12. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/LICENSE +0 -0
  13. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/MANIFEST.in +0 -0
  14. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/NOTICE +0 -0
  15. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/README.rst +0 -0
  16. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/codecov.yml +0 -0
  17. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/docs/config_options.rst +0 -0
  18. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/docs/controls.rst +0 -0
  19. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/docs/images/difference.gif +0 -0
  20. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/docs/images/intersect.gif +0 -0
  21. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/docs/images/union.gif +0 -0
  22. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/docs/images/xor.gif +0 -0
  23. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/docs/slicer_cli_plugins.rst +0 -0
  24. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/__init__.py +0 -0
  25. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/constants.py +0 -0
  26. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/handlers.py +0 -0
  27. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/__init__.py +0 -0
  28. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/aperio.py +0 -0
  29. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/case.py +0 -0
  30. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/cohort.py +0 -0
  31. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/image.py +0 -0
  32. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/meta.py +0 -0
  33. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/pathology.py +0 -0
  34. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/models/slide.py +0 -0
  35. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/rest/__init__.py +0 -0
  36. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/rest/aperio.py +0 -0
  37. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/rest/hui_resource.py +0 -0
  38. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/rest/image_browse_resource.py +0 -0
  39. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/rest/system.py +0 -0
  40. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/rest/tcga.py +0 -0
  41. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/app.js +0 -0
  42. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/collections/StyleCollection.js +0 -0
  43. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/collections/UserCollection.js +0 -0
  44. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/collections/index.js +0 -0
  45. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/confirmDialog.js +0 -0
  46. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/editElement.js +0 -0
  47. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/editRegionOfInterest.js +0 -0
  48. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/editStyleGroups.js +0 -0
  49. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/index.js +0 -0
  50. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/openAnnotatedImage.js +0 -0
  51. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/openImage.js +0 -0
  52. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/dialogs/saveAnnotation.js +0 -0
  53. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/events.js +0 -0
  54. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/index.js +0 -0
  55. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/main.js +0 -0
  56. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/models/StyleModel.js +0 -0
  57. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/models/index.js +0 -0
  58. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/package.json +0 -0
  59. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/AnnotationSelector.js +0 -0
  60. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/DrawWidget.js +0 -0
  61. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/FrameSelectorWidget.js +0 -0
  62. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/MetadataWidget.js +0 -0
  63. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/OverviewWidget.js +0 -0
  64. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/RegionSelector.js +0 -0
  65. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/ZoomWidget.js +0 -0
  66. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/panels/index.js +0 -0
  67. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/router.js +0 -0
  68. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/routes.js +0 -0
  69. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/static/favicon.png +0 -0
  70. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/body/configView.styl +0 -0
  71. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/body/image.styl +0 -0
  72. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/dialogs/editStyleGroups.styl +0 -0
  73. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/dialogs/openAnnotatedImage.styl +0 -0
  74. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/dialogs/saveAnnotation.styl +0 -0
  75. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/layout/header.styl +0 -0
  76. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/layout/headerAnalyses.styl +0 -0
  77. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/layout/headerImage.styl +0 -0
  78. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/layout/layout.styl +0 -0
  79. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/annotationSelector.styl +0 -0
  80. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/drawWidget.styl +0 -0
  81. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/frameSelectorWidget.styl +0 -0
  82. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/metadataPlot.styl +0 -0
  83. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/metadataWidget.styl +0 -0
  84. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/overviewWidget.styl +0 -0
  85. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/regionSelector.styl +0 -0
  86. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/panels/zoomWidget.styl +0 -0
  87. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/popover/annotationContextMenu.styl +0 -0
  88. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/popover/annotationPopover.styl +0 -0
  89. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/views/itemList.styl +0 -0
  90. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/stylesheets/views/searchResultsView.styl +0 -0
  91. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/body/configView.pug +0 -0
  92. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/body/image.pug +0 -0
  93. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/annotatedImageList.pug +0 -0
  94. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/confirmDialog.pug +0 -0
  95. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/editElement.pug +0 -0
  96. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/editRegionOfInterest.pug +0 -0
  97. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/editStyleGroups.pug +0 -0
  98. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/openAnnotatedImage.pug +0 -0
  99. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/openImage.pug +0 -0
  100. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/dialogs/saveAnnotation.pug +0 -0
  101. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/layout/header.pug +0 -0
  102. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/layout/headerAnalyses.pug +0 -0
  103. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/layout/headerImage.pug +0 -0
  104. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/layout/headerUser.pug +0 -0
  105. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/layout/layout.pug +0 -0
  106. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/annotationSelector.pug +0 -0
  107. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/drawWidget.pug +0 -0
  108. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/drawWidgetElement.pug +0 -0
  109. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/frameSelectorWidget.pug +0 -0
  110. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/metadataPlot.pug +0 -0
  111. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/metadataWidgetPanel.pug +0 -0
  112. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/overviewWidget.pug +0 -0
  113. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/panel.pug +0 -0
  114. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/regionSelector.pug +0 -0
  115. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/panels/zoomWidget.pug +0 -0
  116. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/popover/annotationContextMenu.pug +0 -0
  117. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/popover/annotationPopover.pug +0 -0
  118. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/popover/annotationPopoverMetadata.pug +0 -0
  119. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/templates/popover/pixelmapContextMenu.pug +0 -0
  120. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/HierarchyWidget.js +0 -0
  121. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/JobDetailsWidget.js +0 -0
  122. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/View.js +0 -0
  123. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/body/ConfigView.js +0 -0
  124. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/body/ImageView.js +0 -0
  125. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/body/index.js +0 -0
  126. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/index.js +0 -0
  127. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/itemList.js +0 -0
  128. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/itemPage.js +0 -0
  129. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/layout/HeaderAnalysesView.js +0 -0
  130. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/layout/HeaderImageView.js +0 -0
  131. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/layout/HeaderUserView.js +0 -0
  132. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/layout/HeaderView.js +0 -0
  133. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/layout/LoginView.js +0 -0
  134. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/layout/index.js +0 -0
  135. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/popover/AnnotationContextMenu.js +0 -0
  136. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/popover/AnnotationPopover.js +0 -0
  137. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/popover/PixelmapContextMenu.js +0 -0
  138. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/popover/index.js +0 -0
  139. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/searchResultsView.js +0 -0
  140. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/views/utils.js +0 -0
  141. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/vue/components/AnnotationHistoryBrowser.vue +0 -0
  142. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/vue/components/AnnotationHistoryBrowserContainer.vue +0 -0
  143. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/vue/components/AnnotationHistoryGroup.vue +0 -0
  144. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/vue/components/ColorPickerInput.vue +0 -0
  145. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/vue/components/EditHeatmapOrGridData.vue +0 -0
  146. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/vue/components/EditHeatmapOrGridDataContainer.vue +0 -0
  147. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/web_client/webpack.helper.js +0 -0
  148. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui/webroot.mako +0 -0
  149. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui.egg-info/SOURCES.txt +0 -0
  150. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui.egg-info/dependency_links.txt +0 -0
  151. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui.egg-info/entry_points.txt +0 -0
  152. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui.egg-info/not-zip-safe +0 -0
  153. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui.egg-info/requires.txt +0 -0
  154. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/histomicsui.egg-info/top_level.txt +0 -0
  155. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/pyproject.toml +0 -0
  156. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/requirements-dev.txt +0 -0
  157. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/ruff.toml +0 -0
  158. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/setup.cfg +0 -0
  159. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/setup.py +0 -0
  160. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/__init__.py +0 -0
  161. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/datastore.py +0 -0
  162. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/girder_utilities.py +0 -0
  163. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_files/.histomicsui_config.yaml +0 -0
  164. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_files/sample.anot +0 -0
  165. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_files/sample.meta +0 -0
  166. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_files/sample_girder_id.anot +0 -0
  167. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_files/test_analysis_detection.xml +0 -0
  168. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_files/test_analysis_features.xml +0 -0
  169. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_handlers.py +0 -0
  170. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_hui_rest.py +0 -0
  171. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_image_browse_endpoints.py +0 -0
  172. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_load.py +0 -0
  173. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_tcga.py +0 -0
  174. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/test_web_client.py +0 -0
  175. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/.eslintrc +0 -0
  176. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/analysisSpec.js +0 -0
  177. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/annotationSpec.js +0 -0
  178. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/girderUISpec.js +0 -0
  179. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/huiSpec.js +0 -0
  180. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/huiTest.js +0 -0
  181. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/itemSpec.js +0 -0
  182. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/metadataPanelSpec.js +0 -0
  183. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/metadataPlotSpec.js +0 -0
  184. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/overviewPanelSpec.js +0 -0
  185. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/panelLayoutSpec.js +0 -0
  186. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tests/web_client_specs/pixelmapCategorySpec.js +0 -0
  187. {histomicsui-1.7.3.dev72 → histomicsui-1.7.3.dev77}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: histomicsui
3
- Version: 1.7.3.dev72
3
+ Version: 1.7.3.dev77
4
4
  Summary: Organize, visualize, and analyze histology images.
5
5
  Home-page: https://github.com/DigitalSlideArchive/histomicsui
6
6
  Author: Kitware, Inc.
@@ -16,13 +16,15 @@ const MetadataPlotDialog = View.extend({
16
16
  initialize(settings) {
17
17
  this.plotConfig = settings.plotConfig;
18
18
  this.plotOptions = settings.plotOptions;
19
+ this.palettes = settings.palettes;
19
20
  },
20
21
 
21
22
  render() {
22
23
  this.$el.html(
23
24
  metadataPlotDialog({
24
25
  plotConfig: this.plotConfig,
25
- plotOptions: this.plotOptions
26
+ plotOptions: this.plotOptions,
27
+ palettes: this.palettes
26
28
  })
27
29
  ).girderModal(this);
28
30
  // this adds search functionality to the select boxes, but not to the
@@ -40,7 +42,8 @@ const MetadataPlotDialog = View.extend({
40
42
  evt.preventDefault();
41
43
  const configOptions = {
42
44
  folder: this.$('#h-plot-folder').is(':checked'),
43
- format: this.$('#h-plot-format').val()
45
+ format: this.$('#h-plot-format').val(),
46
+ palette: this.$('#h-plot-palette').val()
44
47
  };
45
48
  ['x', 'y', 'r', 'c', 's'].forEach((series) => {
46
49
  const val = this.$('#h-plot-series-' + series).val();
@@ -7,7 +7,6 @@ import {v4 as uuidv4} from 'uuid';
7
7
  import {restRequest} from '@girder/core/rest';
8
8
 
9
9
  import Panel from '@girder/slicer_cli_web/views/Panel';
10
- // import events from '@girder/core/events';
11
10
 
12
11
  import MetadataPlotDialog from '../dialogs/metadataPlot';
13
12
  import metadataPlotTemplate from '../templates/panels/metadataPlot.pug';
@@ -15,6 +14,30 @@ import '../stylesheets/panels/metadataPlot.styl';
15
14
 
16
15
  const sessionId = uuidv4();
17
16
 
17
+ const palettes = {
18
+ colorBrewerPaired12: {
19
+ name: 'Color Brewer Paired 12',
20
+ type: 'discrete',
21
+ palette: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928',
22
+ // concatenate viridis this so we have predictable colors for a
23
+ // longer scale for discrete values. It would probably be better
24
+ // to use a longer scale to start with
25
+ '#440154', '#482172', '#423d84', '#38578c', '#2d6f8e', '#24858d', '#1e9a89', '#2ab07e', '#51c468', '#86d449', '#c2df22', '#fde724']
26
+ },
27
+ viridis: {name: 'Viridis', type: 'continuous', palette: ['#440154', '#482172', '#423d84', '#38578c', '#2d6f8e', '#24858d', '#1e9a89', '#2ab07e', '#51c468', '#86d449', '#c2df22', '#fde724']},
28
+ category10: {name: 'Category 10', type: 'discrete', palette: ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']},
29
+ dark2: {name: 'Dark 2', type: 'discrete', palette: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666']},
30
+ set1: {name: 'Set 1', type: 'discrete', palette: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999']},
31
+ observable10: {name: 'Observable 10', type: 'discrete', palette: ['#4269d0', '#efb118', '#ff725c', '#6cc5b0', '#3ca951', '#ff8ab7', '#a463f2', '#97bbf5', '#9c6b4e', '#9498a0']},
32
+ tableau10: {name: 'Tableau 10', type: 'discrete', palette: ['#4e79a7', '#f28e2c', '#e15759', '#76b7b2', '#59a14f', '#edc949', '#af7aa1', '#ff9da7', '#9c755f', '#bab0ab']},
33
+ turbo: {name: 'Turbo', type: 'continuous', palette: ['rgb(35, 23, 27)', 'rgb(74, 81, 212)', 'rgb(52, 145, 248)', 'rgb(37, 201, 213)', 'rgb(58, 239, 154)', 'rgb(113, 254, 101)', 'rgb(184, 241, 64)', 'rgb(242, 203, 44)', 'rgb(255, 146, 32)', 'rgb(237, 82, 21)', 'rgb(180, 29, 7)', 'rgb(144, 12, 0)']},
34
+ inferno: {name: 'Inferno', type: 'continuous', palette: ['#000004', '#140b34', '#390963', '#5f136e', '#85216b', '#a92e5e', '#cb4149', '#e65d2f', '#f78410', '#fcae12', '#f5db4c', '#fcffa4']},
35
+ magma: {name: 'Magma', type: 'continuous', palette: ['#000004', '#120d31', '#331067', '#59157e', '#7e2482', '#a3307e', '#c83e73', '#e95462', '#fa7d5e', '#fea973', '#fed395', '#fcfdbf']},
36
+ plasma: {name: 'Plasma', type: 'continuous', palette: ['#0d0887', '#3e049c', '#6300a7', '#8606a6', '#a62098', '#c03a83', '#d5546e', '#e76f5a', '#f68d45', '#fdae32', '#fcd225', '#f0f921']},
37
+ cividis: {name: 'Cividis', type: 'continuous', palette: ['rgb(0, 32, 81)', 'rgb(8, 48, 105)', 'rgb(36, 65, 110)', 'rgb(68, 81, 109)', 'rgb(95, 98, 110)', 'rgb(117, 115, 114)', 'rgb(137, 132, 119)', 'rgb(157, 151, 120)', 'rgb(180, 170, 115)', 'rgb(208, 190, 103)', 'rgb(236, 211, 84)', 'rgb(253, 234, 69)']},
38
+ warm: {name: 'Warm', type: 'continuous', palette: ['rgb(110, 64, 170)', 'rgb(146, 61, 179)', 'rgb(184, 60, 176)', 'rgb(218, 63, 163)', 'rgb(246, 71, 141)', 'rgb(255, 85, 114)', 'rgb(255, 105, 86)', 'rgb(255, 130, 62)', 'rgb(245, 159, 48)', 'rgb(221, 189, 48)', 'rgb(196, 217, 62)', 'rgb(175, 240, 91)']}
39
+ };
40
+
18
41
  function mean(arr) {
19
42
  if (!arr.length) {
20
43
  return 0;
@@ -30,6 +53,32 @@ function stddev(arr) {
30
53
  return Math.sqrt(arr.map((x) => Math.pow(x - m, 2)).reduce((a, b) => a + b) / arr.length);
31
54
  }
32
55
 
56
+ function shufflePalette(arr) {
57
+ const n = arr.length;
58
+ if (n <= 2) return arr;
59
+ const picked = new Set([0, n - 1]);
60
+ const order = [0, n - 1];
61
+ const remaining = new Set(Array.from({length: n}, (_, i) => i).filter((i) => !picked.has(i)));
62
+ while (remaining.size) {
63
+ let bestDist = -1;
64
+ let bestIdx = -1;
65
+ for (const i of remaining) {
66
+ let dist = Infinity;
67
+ for (const p of picked) {
68
+ dist = Math.min(dist, Math.abs(i - p));
69
+ }
70
+ if (dist > bestDist) {
71
+ bestDist = dist;
72
+ bestIdx = i;
73
+ }
74
+ }
75
+ picked.add(bestIdx);
76
+ order.push(bestIdx);
77
+ remaining.delete(bestIdx);
78
+ }
79
+ return order.map((i) => arr[i]);
80
+ }
81
+
33
82
  var MetadataPlot = Panel.extend({
34
83
  events: _.extend(Panel.prototype.events, {
35
84
  'click .g-widget-metadata-plot-settings': function (event) {
@@ -37,6 +86,7 @@ var MetadataPlot = Panel.extend({
37
86
  plotOptions: this.getPlotOptions(),
38
87
  plotConfig: this.plotConfig,
39
88
  plotPanel: this,
89
+ palettes: palettes,
40
90
  el: $('#g-dialog-container'),
41
91
  parentView: this
42
92
  }).render();
@@ -255,7 +305,8 @@ var MetadataPlot = Panel.extend({
255
305
  colDict: {},
256
306
  series: {},
257
307
  format: plotConfig.format || 'scatter',
258
- adjacentItems: !!plotConfig.folder
308
+ adjacentItems: !!plotConfig.folder,
309
+ palette: plotConfig.palette
259
310
  };
260
311
  plotData.columns.forEach((col) => {
261
312
  plotData.colDict[col.key] = col;
@@ -465,18 +516,20 @@ var MetadataPlot = Panel.extend({
465
516
  },
466
517
 
467
518
  plotDataToPlotly: function (plotData, plotOptions) {
468
- let colorBrewerPaired12 = ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'];
469
- const viridis = ['#440154', '#482172', '#423d84', '#38578c', '#2d6f8e', '#24858d', '#1e9a89', '#2ab07e', '#51c468', '#86d449', '#c2df22', '#fde724'];
470
- // concatenate this so we have predictable colors for a longer scale
471
- // for discrete values. It would probably be better to use a longer
472
- // scale
473
- colorBrewerPaired12 = colorBrewerPaired12.concat(viridis);
519
+ let discretePalette = palettes.colorBrewerPaired12.palette;
520
+ let continuousPalette = palettes.viridis.palette;
521
+ if (palettes[plotData.palette]) {
522
+ continuousPalette = palettes[plotData.palette].palette;
523
+ if (plotData.palette !== 'colorBrewerPaired12') {
524
+ discretePalette = shufflePalette(palettes[plotData.palette].palette.slice()).concat(palettes.colorBrewerPaired12.palette);
525
+ }
526
+ }
474
527
  let colorScale, sColorScale;
475
- if (plotData.series.c && (plotData.series.c.type === 'number' || !plotData.series.c.distinctcount || plotData.series.c.distinctcount > colorBrewerPaired12.length)) {
476
- colorScale = window.d3.scale.linear().domain(viridis.map((_, i) => i / (viridis.length - 1) * ((plotData.series.c.max - plotData.series.c.min) || 0) + plotData.series.c.min)).range(viridis);
528
+ if (plotData.series.c && (plotData.series.c.type === 'number' || !plotData.series.c.distinctcount || plotData.series.c.distinctcount > discretePalette.length)) {
529
+ colorScale = window.d3.scale.linear().domain(continuousPalette.map((_, i) => i / (continuousPalette.length - 1) * ((plotData.series.c.max - plotData.series.c.min) || 0) + plotData.series.c.min)).range(continuousPalette);
477
530
  }
478
- if (plotData.series.s && (plotData.series.s.type === 'number' || !plotData.series.s.distinctcount || plotData.series.s.distinctcount > colorBrewerPaired12.length)) {
479
- sColorScale = window.d3.scale.linear().domain(viridis.map((_, i) => i / (viridis.length - 1) * ((plotData.series.s.max - plotData.series.s.min) || 0) + plotData.series.s.min)).range(viridis);
531
+ if (plotData.series.s && (plotData.series.s.type === 'number' || !plotData.series.s.distinctcount || plotData.series.s.distinctcount > discretePalette.length)) {
532
+ sColorScale = window.d3.scale.linear().domain(continuousPalette.map((_, i) => i / (continuousPalette.length - 1) * ((plotData.series.s.max - plotData.series.s.min) || 0) + plotData.series.s.min)).range(continuousPalette);
480
533
  }
481
534
  const plotlyData = {
482
535
  x: plotData.series.x ? plotData.data.map((d) => d[plotData.series.x.index]) : 0,
@@ -499,7 +552,7 @@ var MetadataPlot = Panel.extend({
499
552
  ? (
500
553
  colorScale
501
554
  ? plotData.data.map((d) => colorScale(d[plotData.series.c.index]))
502
- : plotData.data.map((d) => colorBrewerPaired12[plotData.series.c.distinct.indexOf(d[plotData.series.c.index])] || '#000000')
555
+ : plotData.data.map((d) => discretePalette[plotData.series.c.distinct.indexOf(d[plotData.series.c.index])] || '#000000')
503
556
  )
504
557
  : '#000000',
505
558
  opacity: 0.5
@@ -536,7 +589,7 @@ var MetadataPlot = Panel.extend({
536
589
  target: kidx,
537
590
  value: {
538
591
  line: {
539
- color: colorScale ? sColorScale[cval] : colorBrewerPaired12[cidx]
592
+ color: colorScale ? sColorScale[cval] : discretePalette[cidx]
540
593
  }
541
594
  }
542
595
  };
@@ -624,13 +677,13 @@ var MetadataPlot = Panel.extend({
624
677
  ? (
625
678
  !plotData.series.c.distinctcount
626
679
  ? pv.c.map((c) => colorScale(c))
627
- : pv.dd.map((d) => colorBrewerPaired12[plotData.series.c.distinct.indexOf(d[plotData.series.c.index])] || '#000000')
680
+ : pv.dd.map((d) => discretePalette[plotData.series.c.distinct.indexOf(d[plotData.series.c.index])] || '#000000')
628
681
  )
629
682
  : '#000000';
630
683
  }
631
684
  plotlyData.type = 'scatter';
632
685
  }
633
- if (plotOptions && (plotData.format === 'violin' || plotData.format === 'distrib')) {
686
+ if (plotOptions && (plotData.format === 'violin' || plotData.format === 'distrib') && plotData.series.s) {
634
687
  if (!plotOptions.xaxis) {
635
688
  plotOptions.xaxis = {};
636
689
  }
@@ -14,3 +14,13 @@
14
14
 
15
15
  .select2-results__option
16
16
  padding 0 6px
17
+
18
+ .form-group>label+p
19
+ display inline
20
+ margin-left 20px
21
+
22
+ .h-plot-right
23
+ float right
24
+
25
+ label
26
+ margin-right 5px
@@ -21,7 +21,7 @@
21
21
  {key: 'x', label: 'x-axis', number: true, comment: 'Not used in violin plots'},
22
22
  {key: 'y', label: 'y-axis', number: true, noNone: true},
23
23
  {key: 'r', label: 'Radius'},
24
- {key: 'c', label: 'Color'},
24
+ {key: 'c', label: 'Color', palette: true},
25
25
  {key: 's', label: 'Symbol', string: true, comment: 'Grouping for violin and distribution plots'},
26
26
  {key: 'u', label: 'Dimension Reduction', number: true, multiple: true}]
27
27
  -
@@ -33,6 +33,13 @@
33
33
  label(for='h-plot-series-' + series.key) #{series.label}
34
34
  if series.comment
35
35
  p.g-hui-description #{series.comment}
36
+ if series.palette && palettes
37
+ span.h-plot-right
38
+ label(for='h-plot-palette') Palette
39
+ select#h-plot-palette
40
+ option(value='auto') Automatic
41
+ for p, pkey in palettes
42
+ option(value=pkey, selected=plotConfig.palette === pkey) #{p.name} (#{p.type})
36
43
  select.h-plot-select.form-control(id='h-plot-series-' + series.key, multiple=series.multiple)
37
44
  if !series.noNone
38
45
  option(value='_none_', selected=plotConfig[series.key] === undefined) None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: histomicsui
3
- Version: 1.7.3.dev72
3
+ Version: 1.7.3.dev77
4
4
  Summary: Organize, visualize, and analyze histology images.
5
5
  Home-page: https://github.com/DigitalSlideArchive/histomicsui
6
6
  Author: Kitware, Inc.