driftlessmap 1.1.0__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 (245) hide show
  1. driftlessmap-1.1.0/AUTHOR.txt +18 -0
  2. driftlessmap-1.1.0/CITATION.cff +35 -0
  3. driftlessmap-1.1.0/CONTRIBUTORS.md +23 -0
  4. driftlessmap-1.1.0/LICENSE.txt +23 -0
  5. driftlessmap-1.1.0/MANIFEST.in +31 -0
  6. driftlessmap-1.1.0/ORIGINS.md +71 -0
  7. driftlessmap-1.1.0/PKG-INFO +186 -0
  8. driftlessmap-1.1.0/README.md +131 -0
  9. driftlessmap-1.1.0/THANKS.txt +28 -0
  10. driftlessmap-1.1.0/WhatsNew.md +913 -0
  11. driftlessmap-1.1.0/driftlessmap/__init__.py +16 -0
  12. driftlessmap-1.1.0/driftlessmap/__main__.py +5 -0
  13. driftlessmap-1.1.0/driftlessmap/about.py +24 -0
  14. driftlessmap-1.1.0/driftlessmap/allen_downloader.py +908 -0
  15. driftlessmap-1.1.0/driftlessmap/app.py +8085 -0
  16. driftlessmap-1.1.0/driftlessmap/atlas_downloader.py +370 -0
  17. driftlessmap-1.1.0/driftlessmap/atlas_loader.py +526 -0
  18. driftlessmap-1.1.0/driftlessmap/atlas_processor.py +784 -0
  19. driftlessmap-1.1.0/driftlessmap/atlas_transform.py +111 -0
  20. driftlessmap-1.1.0/driftlessmap/atlas_view.py +1435 -0
  21. driftlessmap-1.1.0/driftlessmap/cell_detection.py +27 -0
  22. driftlessmap-1.1.0/driftlessmap/coordinate_validation.py +19 -0
  23. driftlessmap-1.1.0/driftlessmap/czi_reader.py +236 -0
  24. driftlessmap-1.1.0/driftlessmap/data/WHS_atlas_labels.pkl +0 -0
  25. driftlessmap-1.1.0/driftlessmap/data/allen_mice_atlas_labels.pkl +0 -0
  26. driftlessmap-1.1.0/driftlessmap/data/atlas_labels.pkl +0 -0
  27. driftlessmap-1.1.0/driftlessmap/data/query.csv +1328 -0
  28. driftlessmap-1.1.0/driftlessmap/download_utils.py +85 -0
  29. driftlessmap-1.1.0/driftlessmap/herbs.png +0 -0
  30. driftlessmap-1.1.0/driftlessmap/icons/backward.svg +15 -0
  31. driftlessmap-1.1.0/driftlessmap/icons/dot.svg +11 -0
  32. driftlessmap-1.1.0/driftlessmap/icons/down-arrow.svg +10 -0
  33. driftlessmap-1.1.0/driftlessmap/icons/fast_backward.svg +14 -0
  34. driftlessmap-1.1.0/driftlessmap/icons/fast_forward.svg +14 -0
  35. driftlessmap-1.1.0/driftlessmap/icons/forward.svg +14 -0
  36. driftlessmap-1.1.0/driftlessmap/icons/layers/add.png +0 -0
  37. driftlessmap-1.1.0/driftlessmap/icons/layers/ai.png +0 -0
  38. driftlessmap-1.1.0/driftlessmap/icons/layers/eye_off.png +0 -0
  39. driftlessmap-1.1.0/driftlessmap/icons/layers/eye_on.png +0 -0
  40. driftlessmap-1.1.0/driftlessmap/icons/layers/eye_white.png +0 -0
  41. driftlessmap-1.1.0/driftlessmap/icons/layers/hi.png +0 -0
  42. driftlessmap-1.1.0/driftlessmap/icons/layers/trash.png +0 -0
  43. driftlessmap-1.1.0/driftlessmap/icons/object.svg +22 -0
  44. driftlessmap-1.1.0/driftlessmap/icons/sidebar/add.png +0 -0
  45. driftlessmap-1.1.0/driftlessmap/icons/sidebar/atlascontrol.png +0 -0
  46. driftlessmap-1.1.0/driftlessmap/icons/sidebar/atlascontrol.svg +32 -0
  47. driftlessmap-1.1.0/driftlessmap/icons/sidebar/bnd.svg +14 -0
  48. driftlessmap-1.1.0/driftlessmap/icons/sidebar/c_section.png +0 -0
  49. driftlessmap-1.1.0/driftlessmap/icons/sidebar/c_section2.png +0 -0
  50. driftlessmap-1.1.0/driftlessmap/icons/sidebar/cell.svg +24 -0
  51. driftlessmap-1.1.0/driftlessmap/icons/sidebar/check.svg +9 -0
  52. driftlessmap-1.1.0/driftlessmap/icons/sidebar/compare.svg +18 -0
  53. driftlessmap-1.1.0/driftlessmap/icons/sidebar/contour.svg +14 -0
  54. driftlessmap-1.1.0/driftlessmap/icons/sidebar/h_section.png +0 -0
  55. driftlessmap-1.1.0/driftlessmap/icons/sidebar/info.svg +14 -0
  56. driftlessmap-1.1.0/driftlessmap/icons/sidebar/layers.png +0 -0
  57. driftlessmap-1.1.0/driftlessmap/icons/sidebar/layers.svg +23 -0
  58. driftlessmap-1.1.0/driftlessmap/icons/sidebar/line.svg +10 -0
  59. driftlessmap-1.1.0/driftlessmap/icons/sidebar/link.svg +18 -0
  60. driftlessmap-1.1.0/driftlessmap/icons/sidebar/link_off.svg +18 -0
  61. driftlessmap-1.1.0/driftlessmap/icons/sidebar/merge.svg +11 -0
  62. driftlessmap-1.1.0/driftlessmap/icons/sidebar/object.svg +13 -0
  63. driftlessmap-1.1.0/driftlessmap/icons/sidebar/probe.png +0 -0
  64. driftlessmap-1.1.0/driftlessmap/icons/sidebar/probe.svg +23 -0
  65. driftlessmap-1.1.0/driftlessmap/icons/sidebar/rotation_horizontal.svg +14 -0
  66. driftlessmap-1.1.0/driftlessmap/icons/sidebar/rotation_vertical.svg +14 -0
  67. driftlessmap-1.1.0/driftlessmap/icons/sidebar/s_section.png +0 -0
  68. driftlessmap-1.1.0/driftlessmap/icons/sidebar/tool.png +0 -0
  69. driftlessmap-1.1.0/driftlessmap/icons/sidebar/tool.svg +19 -0
  70. driftlessmap-1.1.0/driftlessmap/icons/sidebar/trash.png +0 -0
  71. driftlessmap-1.1.0/driftlessmap/icons/sidebar/tree_checked.svg +10 -0
  72. driftlessmap-1.1.0/driftlessmap/icons/sidebar/treeview.png +0 -0
  73. driftlessmap-1.1.0/driftlessmap/icons/sidebar/treeview.svg +10 -0
  74. driftlessmap-1.1.0/driftlessmap/icons/sidebar/treeview2.png +0 -0
  75. driftlessmap-1.1.0/driftlessmap/icons/sidebar/virus.svg +24 -0
  76. driftlessmap-1.1.0/driftlessmap/icons/tdown.svg +16 -0
  77. driftlessmap-1.1.0/driftlessmap/icons/toolbar/accept.svg +18 -0
  78. driftlessmap-1.1.0/driftlessmap/icons/toolbar/accept2.svg +24 -0
  79. driftlessmap-1.1.0/driftlessmap/icons/toolbar/aim.svg +44 -0
  80. driftlessmap-1.1.0/driftlessmap/icons/toolbar/aim_not.svg +28 -0
  81. driftlessmap-1.1.0/driftlessmap/icons/toolbar/anchor.svg +14 -0
  82. driftlessmap-1.1.0/driftlessmap/icons/toolbar/anticlockwise_rotation.svg +12 -0
  83. driftlessmap-1.1.0/driftlessmap/icons/toolbar/atlas_icon.png +0 -0
  84. driftlessmap-1.1.0/driftlessmap/icons/toolbar/boundary_register.svg +18 -0
  85. driftlessmap-1.1.0/driftlessmap/icons/toolbar/cancel.svg +32 -0
  86. driftlessmap-1.1.0/driftlessmap/icons/toolbar/cell_select.svg +22 -0
  87. driftlessmap-1.1.0/driftlessmap/icons/toolbar/cell_select_not.svg +12 -0
  88. driftlessmap-1.1.0/driftlessmap/icons/toolbar/check.svg +9 -0
  89. driftlessmap-1.1.0/driftlessmap/icons/toolbar/clockwise_rotation.svg +11 -0
  90. driftlessmap-1.1.0/driftlessmap/icons/toolbar/closed_path.svg +16 -0
  91. driftlessmap-1.1.0/driftlessmap/icons/toolbar/closed_path2 copy.svg +19 -0
  92. driftlessmap-1.1.0/driftlessmap/icons/toolbar/closed_path2.svg +20 -0
  93. driftlessmap-1.1.0/driftlessmap/icons/toolbar/eraser.png +0 -0
  94. driftlessmap-1.1.0/driftlessmap/icons/toolbar/eraser.svg +19 -0
  95. driftlessmap-1.1.0/driftlessmap/icons/toolbar/eye.svg +17 -0
  96. driftlessmap-1.1.0/driftlessmap/icons/toolbar/eye_closed.svg +19 -0
  97. driftlessmap-1.1.0/driftlessmap/icons/toolbar/fill.svg +12 -0
  98. driftlessmap-1.1.0/driftlessmap/icons/toolbar/gps.svg +15 -0
  99. driftlessmap-1.1.0/driftlessmap/icons/toolbar/h_flip.png +0 -0
  100. driftlessmap-1.1.0/driftlessmap/icons/toolbar/handle.png +0 -0
  101. driftlessmap-1.1.0/driftlessmap/icons/toolbar/image_icon.png +0 -0
  102. driftlessmap-1.1.0/driftlessmap/icons/toolbar/image_icon.svg +25 -0
  103. driftlessmap-1.1.0/driftlessmap/icons/toolbar/info.svg +14 -0
  104. driftlessmap-1.1.0/driftlessmap/icons/toolbar/inpart.png +0 -0
  105. driftlessmap-1.1.0/driftlessmap/icons/toolbar/inpart.svg +17 -0
  106. driftlessmap-1.1.0/driftlessmap/icons/toolbar/lasso.png +0 -0
  107. driftlessmap-1.1.0/driftlessmap/icons/toolbar/lasso.svg +14 -0
  108. driftlessmap-1.1.0/driftlessmap/icons/toolbar/left90.png +0 -0
  109. driftlessmap-1.1.0/driftlessmap/icons/toolbar/line.svg +10 -0
  110. driftlessmap-1.1.0/driftlessmap/icons/toolbar/line_sites.svg +11 -0
  111. driftlessmap-1.1.0/driftlessmap/icons/toolbar/linear_silicon.png +0 -0
  112. driftlessmap-1.1.0/driftlessmap/icons/toolbar/linear_silicon.svg +88 -0
  113. driftlessmap-1.1.0/driftlessmap/icons/toolbar/list.svg +14 -0
  114. driftlessmap-1.1.0/driftlessmap/icons/toolbar/location.svg +14 -0
  115. driftlessmap-1.1.0/driftlessmap/icons/toolbar/magic-wand.svg +16 -0
  116. driftlessmap-1.1.0/driftlessmap/icons/toolbar/magic_white.png +0 -0
  117. driftlessmap-1.1.0/driftlessmap/icons/toolbar/mask.svg +10 -0
  118. driftlessmap-1.1.0/driftlessmap/icons/toolbar/match.svg +20 -0
  119. driftlessmap-1.1.0/driftlessmap/icons/toolbar/matchbnd.svg +18 -0
  120. driftlessmap-1.1.0/driftlessmap/icons/toolbar/matching.svg +36 -0
  121. driftlessmap-1.1.0/driftlessmap/icons/toolbar/merge.svg +11 -0
  122. driftlessmap-1.1.0/driftlessmap/icons/toolbar/move_down.png +0 -0
  123. driftlessmap-1.1.0/driftlessmap/icons/toolbar/move_left.png +0 -0
  124. driftlessmap-1.1.0/driftlessmap/icons/toolbar/move_right.png +0 -0
  125. driftlessmap-1.1.0/driftlessmap/icons/toolbar/move_up.png +0 -0
  126. driftlessmap-1.1.0/driftlessmap/icons/toolbar/moving.png +0 -0
  127. driftlessmap-1.1.0/driftlessmap/icons/toolbar/multi-probe.svg +119 -0
  128. driftlessmap-1.1.0/driftlessmap/icons/toolbar/multi_pencil.svg +23 -0
  129. driftlessmap-1.1.0/driftlessmap/icons/toolbar/multi_probe.png +0 -0
  130. driftlessmap-1.1.0/driftlessmap/icons/toolbar/object.svg +13 -0
  131. driftlessmap-1.1.0/driftlessmap/icons/toolbar/open_path.svg +22 -0
  132. driftlessmap-1.1.0/driftlessmap/icons/toolbar/outpart.png +0 -0
  133. driftlessmap-1.1.0/driftlessmap/icons/toolbar/outpart.svg +26 -0
  134. driftlessmap-1.1.0/driftlessmap/icons/toolbar/pencil.png +0 -0
  135. driftlessmap-1.1.0/driftlessmap/icons/toolbar/pencil.svg +19 -0
  136. driftlessmap-1.1.0/driftlessmap/icons/toolbar/plasso.png +0 -0
  137. driftlessmap-1.1.0/driftlessmap/icons/toolbar/probe.svg +19 -0
  138. driftlessmap-1.1.0/driftlessmap/icons/toolbar/radar.svg +32 -0
  139. driftlessmap-1.1.0/driftlessmap/icons/toolbar/rotation.svg +45 -0
  140. driftlessmap-1.1.0/driftlessmap/icons/toolbar/rotation_clockwise.svg +18 -0
  141. driftlessmap-1.1.0/driftlessmap/icons/toolbar/rotation_counter_clockwise.svg +18 -0
  142. driftlessmap-1.1.0/driftlessmap/icons/toolbar/ruler.svg +27 -0
  143. driftlessmap-1.1.0/driftlessmap/icons/toolbar/separate_sites.svg +13 -0
  144. driftlessmap-1.1.0/driftlessmap/icons/toolbar/single_pencil.svg +16 -0
  145. driftlessmap-1.1.0/driftlessmap/icons/toolbar/toa.svg +11 -0
  146. driftlessmap-1.1.0/driftlessmap/icons/toolbar/toa_delete.svg +36 -0
  147. driftlessmap-1.1.0/driftlessmap/icons/toolbar/toaa.svg +11 -0
  148. driftlessmap-1.1.0/driftlessmap/icons/toolbar/toh.svg +11 -0
  149. driftlessmap-1.1.0/driftlessmap/icons/toolbar/toh_delete.svg +36 -0
  150. driftlessmap-1.1.0/driftlessmap/icons/toolbar/tohh.svg +11 -0
  151. driftlessmap-1.1.0/driftlessmap/icons/toolbar/trans.png +0 -0
  152. driftlessmap-1.1.0/driftlessmap/icons/toolbar/trans.svg +16 -0
  153. driftlessmap-1.1.0/driftlessmap/icons/toolbar/triangulation.svg +10 -0
  154. driftlessmap-1.1.0/driftlessmap/icons/toolbar/two_window.png +0 -0
  155. driftlessmap-1.1.0/driftlessmap/icons/toolbar/unmerge.svg +16 -0
  156. driftlessmap-1.1.0/driftlessmap/icons/toolbar/v_flip.png +0 -0
  157. driftlessmap-1.1.0/driftlessmap/icons/toolbar/virus.svg +24 -0
  158. driftlessmap-1.1.0/driftlessmap/icons/toolbar/virus_register.svg +31 -0
  159. driftlessmap-1.1.0/driftlessmap/icons/toolbar/vis2d.svg +29 -0
  160. driftlessmap-1.1.0/driftlessmap/icons/toolbar/window2.png +0 -0
  161. driftlessmap-1.1.0/driftlessmap/icons/toolbar/window3.png +0 -0
  162. driftlessmap-1.1.0/driftlessmap/icons/toolbar/window4.png +0 -0
  163. driftlessmap-1.1.0/driftlessmap/icons/tree_close.svg +14 -0
  164. driftlessmap-1.1.0/driftlessmap/icons/tree_open.svg +14 -0
  165. driftlessmap-1.1.0/driftlessmap/icons/up-arrow.svg +10 -0
  166. driftlessmap-1.1.0/driftlessmap/image_curves.py +579 -0
  167. driftlessmap-1.1.0/driftlessmap/image_reader.py +186 -0
  168. driftlessmap-1.1.0/driftlessmap/image_stacks.py +359 -0
  169. driftlessmap-1.1.0/driftlessmap/image_view.py +646 -0
  170. driftlessmap-1.1.0/driftlessmap/images_reader.py +5 -0
  171. driftlessmap-1.1.0/driftlessmap/label_tree.py +278 -0
  172. driftlessmap-1.1.0/driftlessmap/layer_validation.py +25 -0
  173. driftlessmap-1.1.0/driftlessmap/layers_control.py +554 -0
  174. driftlessmap-1.1.0/driftlessmap/main_window.ui +883 -0
  175. driftlessmap-1.1.0/driftlessmap/movable_points.py +254 -0
  176. driftlessmap-1.1.0/driftlessmap/obj_items.py +122 -0
  177. driftlessmap-1.1.0/driftlessmap/object_control.py +1762 -0
  178. driftlessmap-1.1.0/driftlessmap/persistence.py +376 -0
  179. driftlessmap-1.1.0/driftlessmap/popup_message.py +16 -0
  180. driftlessmap-1.1.0/driftlessmap/probe_csv.py +319 -0
  181. driftlessmap-1.1.0/driftlessmap/probe_reconstruction.py +409 -0
  182. driftlessmap-1.1.0/driftlessmap/probe_utiles.py +1442 -0
  183. driftlessmap-1.1.0/driftlessmap/qss/atlas_view_group_box.qss +15 -0
  184. driftlessmap-1.1.0/driftlessmap/qss/box_label.qss +7 -0
  185. driftlessmap-1.1.0/driftlessmap/qss/channel_selector.qss +19 -0
  186. driftlessmap-1.1.0/driftlessmap/qss/color_combo.qss +121 -0
  187. driftlessmap-1.1.0/driftlessmap/qss/decor_label.qss +9 -0
  188. driftlessmap-1.1.0/driftlessmap/qss/dialogs.qss +11 -0
  189. driftlessmap-1.1.0/driftlessmap/qss/hidden_line_edit.qss +5 -0
  190. driftlessmap-1.1.0/driftlessmap/qss/label_tree.qss +123 -0
  191. driftlessmap-1.1.0/driftlessmap/qss/main_window.qss +243 -0
  192. driftlessmap-1.1.0/driftlessmap/qss/menu_bar.qss +42 -0
  193. driftlessmap-1.1.0/driftlessmap/qss/multi_handle_slider.qss +14 -0
  194. driftlessmap-1.1.0/driftlessmap/qss/obj_ctrl_bottom_button.qss +29 -0
  195. driftlessmap-1.1.0/driftlessmap/qss/object_text_button.qss +19 -0
  196. driftlessmap-1.1.0/driftlessmap/qss/page_control.qss +36 -0
  197. driftlessmap-1.1.0/driftlessmap/qss/rotation_button.qss +9 -0
  198. driftlessmap-1.1.0/driftlessmap/qss/side_bar.qss +23 -0
  199. driftlessmap-1.1.0/driftlessmap/qss/spinbox.qss +106 -0
  200. driftlessmap-1.1.0/driftlessmap/qss/tabs.qss +211 -0
  201. driftlessmap-1.1.0/driftlessmap/qss/tool_bar.qss +77 -0
  202. driftlessmap-1.1.0/driftlessmap/resources.py +34 -0
  203. driftlessmap-1.1.0/driftlessmap/roi_analysis.py +375 -0
  204. driftlessmap-1.1.0/driftlessmap/run_driftlessmap.py +4 -0
  205. driftlessmap-1.1.0/driftlessmap/slice_stacks.py +268 -0
  206. driftlessmap-1.1.0/driftlessmap/slice_validation.py +20 -0
  207. driftlessmap-1.1.0/driftlessmap/toolbox.py +569 -0
  208. driftlessmap-1.1.0/driftlessmap/triangulation.py +517 -0
  209. driftlessmap-1.1.0/driftlessmap/triangulation_points.py +108 -0
  210. driftlessmap-1.1.0/driftlessmap/user_settings.py +92 -0
  211. driftlessmap-1.1.0/driftlessmap/uuuuuu.py +1168 -0
  212. driftlessmap-1.1.0/driftlessmap/version.py +3 -0
  213. driftlessmap-1.1.0/driftlessmap/widgets_utils.py +140 -0
  214. driftlessmap-1.1.0/driftlessmap/wtiles.py +715 -0
  215. driftlessmap-1.1.0/driftlessmap.egg-info/PKG-INFO +186 -0
  216. driftlessmap-1.1.0/driftlessmap.egg-info/SOURCES.txt +243 -0
  217. driftlessmap-1.1.0/driftlessmap.egg-info/dependency_links.txt +1 -0
  218. driftlessmap-1.1.0/driftlessmap.egg-info/entry_points.txt +2 -0
  219. driftlessmap-1.1.0/driftlessmap.egg-info/requires.txt +27 -0
  220. driftlessmap-1.1.0/driftlessmap.egg-info/top_level.txt +1 -0
  221. driftlessmap-1.1.0/pyproject.toml +108 -0
  222. driftlessmap-1.1.0/setup.cfg +4 -0
  223. driftlessmap-1.1.0/setup.py +6 -0
  224. driftlessmap-1.1.0/tests/test_allen_downloader.py +111 -0
  225. driftlessmap-1.1.0/tests/test_atlas_loader.py +104 -0
  226. driftlessmap-1.1.0/tests/test_atlas_transform.py +108 -0
  227. driftlessmap-1.1.0/tests/test_atlas_view.py +211 -0
  228. driftlessmap-1.1.0/tests/test_cell_detection.py +37 -0
  229. driftlessmap-1.1.0/tests/test_coordinate_validation.py +42 -0
  230. driftlessmap-1.1.0/tests/test_download_utils.py +77 -0
  231. driftlessmap-1.1.0/tests/test_image_reader.py +108 -0
  232. driftlessmap-1.1.0/tests/test_label_tree.py +76 -0
  233. driftlessmap-1.1.0/tests/test_layer_validation.py +50 -0
  234. driftlessmap-1.1.0/tests/test_layers_control.py +98 -0
  235. driftlessmap-1.1.0/tests/test_object_control.py +176 -0
  236. driftlessmap-1.1.0/tests/test_packaging_metadata.py +134 -0
  237. driftlessmap-1.1.0/tests/test_persistence.py +191 -0
  238. driftlessmap-1.1.0/tests/test_probe_csv.py +167 -0
  239. driftlessmap-1.1.0/tests/test_probe_mapping.py +133 -0
  240. driftlessmap-1.1.0/tests/test_probe_reconstruction.py +221 -0
  241. driftlessmap-1.1.0/tests/test_roi_analysis.py +150 -0
  242. driftlessmap-1.1.0/tests/test_runtime_paths.py +119 -0
  243. driftlessmap-1.1.0/tests/test_slice_validation.py +30 -0
  244. driftlessmap-1.1.0/tests/test_triangulation.py +191 -0
  245. driftlessmap-1.1.0/tests/test_version.py +31 -0
@@ -0,0 +1,18 @@
1
+ DriftlessMap maintenance and development:
2
+ - Mohebi & Associates: https://www.mohebi-associates.org/
3
+ - Ali Mohebi: https://www.mohebial.com/
4
+
5
+ Original HERBS authors:
6
+ - Jingyi Guo Fuglstad
7
+ - Pearl Saldanha
8
+ - Jacopo Paglia
9
+ - Jonathan R. Whitlock
10
+
11
+ Original HERBS design, development, and CookBook: Jingyi Guo Fuglstad
12
+
13
+ DriftlessMap is an independent continuation of HERBS. See ORIGINS.md for the
14
+ complete project lineage, original publication, and contributor credits.
15
+
16
+
17
+ Institutions
18
+ ------------
@@ -0,0 +1,35 @@
1
+ cff-version: 1.2.0
2
+ message: >-
3
+ If you use DriftlessMap, cite the software version you used and the original
4
+ HERBS paper listed under references.
5
+ title: DriftlessMap
6
+ type: software
7
+ version: 1.1.0
8
+ authors:
9
+ - name: Mohebi & Associates
10
+ website: https://www.mohebi-associates.org/
11
+ - family-names: Mohebi
12
+ given-names: Ali
13
+ website: https://www.mohebial.com/
14
+ repository-code: https://github.com/mohebi-n-associates/DriftlessMap
15
+ url: https://github.com/mohebi-n-associates/DriftlessMap
16
+ license: MIT
17
+ abstract: >-
18
+ An interactive desktop application for histological image registration,
19
+ brain-atlas mapping, probe reconstruction, and anatomical data visualization.
20
+ references:
21
+ - type: article
22
+ title: Histological E-data Registration in rodent Brain Spaces
23
+ authors:
24
+ - family-names: Fuglstad
25
+ given-names: Jingyi Guo
26
+ - family-names: Saldanha
27
+ given-names: Pearl
28
+ - family-names: Paglia
29
+ given-names: Jacopo
30
+ - family-names: Whitlock
31
+ given-names: Jonathan R.
32
+ journal: eLife
33
+ volume: 12
34
+ year: 2023
35
+ doi: 10.7554/eLife.83496
@@ -0,0 +1,23 @@
1
+ # Contributors
2
+
3
+ ## DriftlessMap
4
+
5
+ DriftlessMap is maintained and developed by:
6
+
7
+ - [Mohebi & Associates](https://www.mohebi-associates.org/)
8
+ - [Ali Mohebi](https://www.mohebial.com/) — project lead and maintainer
9
+ - Additional contributors recorded in the repository's Git history
10
+
11
+ ## Original HERBS project
12
+
13
+ DriftlessMap began as a fork of HERBS. The original authors are:
14
+
15
+ - Jingyi Guo Fuglstad
16
+ - Pearl Saldanha
17
+ - Jacopo Paglia
18
+ - Jonathan R. Whitlock
19
+ - Additional HERBS contributors recorded in the inherited Git history and
20
+ `THANKS.txt`
21
+
22
+ The original project, publication, license, and complete relationship to
23
+ DriftlessMap are documented in [ORIGINS.md](ORIGINS.md).
@@ -0,0 +1,23 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 HERBS Developers.
4
+ All rights reserved.
5
+ Copyright (c) 2026 Ali Mohebi and DriftlessMap contributors.
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in all
15
+ copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ SOFTWARE.
@@ -0,0 +1,31 @@
1
+ #
2
+ # Use .add_data_files and .add_data_dir methods in a appropriate
3
+ # setup.py files to include non-python files such as documentation,
4
+ # data, etc files to distribution (*for installation*).
5
+ # Avoid using MANIFEST.in for that.
6
+ #
7
+ # Files in top-level directory:
8
+ include AUTHOR.txt
9
+ include CITATION.cff
10
+ include CONTRIBUTORS.md
11
+ include LICENSE.txt
12
+ include MANIFEST.in
13
+ include ORIGINS.md
14
+ include pyproject.toml
15
+ include README.md
16
+ include WhatsNew.md
17
+ include setup.py
18
+ include THANKS.txt
19
+
20
+ include driftlessmap/main_window.ui
21
+
22
+ include driftlessmap/data/query.csv
23
+ include driftlessmap/data/atlas_labels.pkl
24
+
25
+ # Included are: icons/, data/, qss/
26
+ recursive-include driftlessmap/icons *.svg
27
+ recursive-include driftlessmap/icons *.png
28
+
29
+ recursive-include driftlessmap/qss *.qss
30
+
31
+ global-exclude .DS_Store
@@ -0,0 +1,71 @@
1
+ # Project origins and attribution
2
+
3
+ ## Relationship to HERBS
4
+
5
+ DriftlessMap is an independent open-source continuation of HERBS (Histological
6
+ E-data Registration in rodent Brain Spaces). It retains substantial portions of
7
+ the original HERBS code and therefore remains a derivative work under the MIT
8
+ License.
9
+
10
+ - Original project: <https://github.com/Whitlock-Group/HERBS>
11
+ - Original license: MIT
12
+ - Recorded upstream base commit: `7a181097a57d9f34b189f233a484a0f0c228c5da`
13
+ - Independent project: <https://github.com/mohebi-n-associates/DriftlessMap>
14
+
15
+ DriftlessMap is not affiliated with or endorsed by the original HERBS
16
+ developers or the Whitlock Group.
17
+
18
+ ## Original authors and publication
19
+
20
+ The original HERBS research software and publication were created by:
21
+
22
+ - Jingyi Guo Fuglstad
23
+ - Pearl Saldanha
24
+ - Jacopo Paglia
25
+ - Jonathan R. Whitlock
26
+ - Additional HERBS code, testing, documentation, and research contributors
27
+ recorded in the repository history and `THANKS.txt`
28
+
29
+ Original publication:
30
+
31
+ Fuglstad JG, Saldanha P, Paglia J, Whitlock JR. Histological E-data
32
+ Registration in rodent Brain Spaces. *eLife*. 2023;12:e83496.
33
+ <https://doi.org/10.7554/eLife.83496>
34
+
35
+ The original software is also identified as RRID:SCR_022776.
36
+
37
+ ## Independent development
38
+
39
+ Independent work after the upstream base includes platform modernization,
40
+ current Python and Qt support, safer persistence, validation and security
41
+ hardening, automated regression tests, atlas-coordinate corrections, probe
42
+ reconstruction and CSV export, ROI analysis, and expanded documentation.
43
+ The Git history is intentionally preserved so individual contributions remain
44
+ auditable.
45
+
46
+ DriftlessMap development is led by
47
+ [Mohebi & Associates](https://www.mohebi-associates.org/) and
48
+ [Ali Mohebi](https://www.mohebial.com/). See `CONTRIBUTORS.md` for the current
49
+ and original contributor groups.
50
+
51
+ ## Licensing and notices
52
+
53
+ The complete project remains licensed under the MIT License:
54
+
55
+ - The original `Copyright (c) 2022 HERBS Developers` notice is preserved
56
+ verbatim in `LICENSE.txt`.
57
+ - `Copyright (c) 2026 Ali Mohebi and DriftlessMap contributors` covers
58
+ subsequent modifications.
59
+ - Neither the new project name nor this attribution statement changes the
60
+ license governing the original HERBS code.
61
+
62
+ When redistributing DriftlessMap or a substantial portion of its source, retain
63
+ `LICENSE.txt`. Preserving this file is a condition of the MIT License.
64
+
65
+ ## Compatibility names
66
+
67
+ Names such as `.herbs*` legacy file extensions, `HERBS_CONFIG_DIR`, and
68
+ persisted `herbs_vox` coordinate fields are retained only where needed for data
69
+ compatibility. DriftlessMap does not install a top-level `herbs` Python package
70
+ or a `herbs` command. These compatibility names do not indicate affiliation
71
+ with or endorsement by the original HERBS developers.
@@ -0,0 +1,186 @@
1
+ Metadata-Version: 2.4
2
+ Name: driftlessmap
3
+ Version: 1.1.0
4
+ Summary: Interactive histology registration and brain-atlas mapping
5
+ Author: Pearl Saldanha, Jacopo Paglia, Jonathan R. Whitlock, Mohebi & Associates, Ali Mohebi
6
+ Author-email: Jingyi Guo Fuglstad <jingyi.g.fuglstad@gmail.com>
7
+ Maintainer: Mohebi & Associates, Ali Mohebi
8
+ License-Expression: MIT
9
+ Project-URL: Homepage, https://github.com/mohebi-n-associates/DriftlessMap
10
+ Project-URL: Bug Tracker, https://github.com/mohebi-n-associates/DriftlessMap/issues
11
+ Project-URL: Documentation, https://github.com/mohebi-n-associates/DriftlessMap#readme
12
+ Project-URL: Maintaining Organization, https://www.mohebi-associates.org/
13
+ Project-URL: Lead Maintainer, https://www.mohebial.com/
14
+ Keywords: brain atlas,histological image registration,probe coordinates
15
+ Classifier: Development Status :: 5 - Production/Stable
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Intended Audience :: Education
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
+ Classifier: Topic :: Scientific/Engineering
27
+ Classifier: Operating System :: Microsoft :: Windows
28
+ Classifier: Operating System :: POSIX
29
+ Classifier: Operating System :: MacOS
30
+ Requires-Python: >=3.10
31
+ Description-Content-Type: text/markdown
32
+ License-File: LICENSE.txt
33
+ Requires-Dist: PyQt6<7,>=6.8
34
+ Requires-Dist: pyqtgraph<0.15,>=0.14
35
+ Requires-Dist: PyOpenGL<4,>=3.1.7
36
+ Requires-Dist: superqt<0.9,>=0.8
37
+ Requires-Dist: opencv-python<6,>=4.10
38
+ Requires-Dist: numba<1,>=0.61
39
+ Requires-Dist: numpy<3,>=2.0
40
+ Requires-Dist: scipy<2,>=1.13
41
+ Requires-Dist: requests<3,>=2.32
42
+ Requires-Dist: nibabel<6,>=5.2
43
+ Requires-Dist: pynrrd<2,>=1.0
44
+ Requires-Dist: tifffile>=2024.7
45
+ Requires-Dist: pandas<4,>=2.2
46
+ Requires-Dist: natsort<9,>=8.4
47
+ Requires-Dist: imagecodecs>=2024.6
48
+ Provides-Extra: czi
49
+ Requires-Dist: aicspylibczi>=3.3.1; python_version < "3.14" and extra == "czi"
50
+ Provides-Extra: test
51
+ Requires-Dist: pytest>=8.3; extra == "test"
52
+ Requires-Dist: ruff>=0.9; extra == "test"
53
+ Requires-Dist: tomli>=2; python_version < "3.11" and extra == "test"
54
+ Dynamic: license-file
55
+
56
+ # DriftlessMap
57
+
58
+ Interactive histology registration and brain-atlas mapping.
59
+
60
+ DriftlessMap is an open-source desktop application for registering histological
61
+ images to reference brain atlases, reconstructing probes and other anatomical
62
+ objects, and visualizing data in 2D and 3D. The name refers to Wisconsin's
63
+ Driftless Area and to the project's focus on dependable spatial mapping.
64
+
65
+ ## Origin and independence
66
+
67
+ DriftlessMap began as a fork of
68
+ [HERBS](https://github.com/Whitlock-Group/HERBS) — Histological E-data
69
+ Registration in rodent Brain Spaces — originally created by Jingyi Guo
70
+ Fuglstad, Pearl Saldanha, Jacopo Paglia, Jonathan R. Whitlock, and HERBS
71
+ contributors.
72
+
73
+ DriftlessMap is independently maintained. It is not affiliated with or endorsed
74
+ by the original HERBS developers. Their foundational work remains credited in
75
+ the Git history, [license](LICENSE.txt), [project history](ORIGINS.md),
76
+ [contributors](CONTRIBUTORS.md), [authors](AUTHOR.txt), and
77
+ [acknowledgements](THANKS.txt).
78
+
79
+ Current development is led by
80
+ [Mohebi & Associates](https://www.mohebi-associates.org/), with
81
+ [Ali Mohebi](https://www.mohebial.com/) as project lead and maintainer.
82
+
83
+ If DriftlessMap contributes to published research, please cite both the software
84
+ version used and the original HERBS paper:
85
+
86
+ > Fuglstad, J. G., Saldanha, P., Paglia, J., & Whitlock, J. R. (2023).
87
+ > Histological E-data Registration in rodent Brain Spaces. *eLife*, 12,
88
+ > e83496. https://doi.org/10.7554/eLife.83496
89
+
90
+ See [CITATION.cff](CITATION.cff) for machine-readable citation metadata.
91
+
92
+ ## Features
93
+
94
+ - 2D and 3D visualization of volumetric brain atlases and arbitrary slices.
95
+ - Interactive histology-to-atlas registration with local elastic deformation.
96
+ - Probe planning, reconstruction, contact mapping, and CSV export.
97
+ - Drawing, cell, virus-expression, and user-defined object workflows.
98
+ - Safe, versioned project and object archives.
99
+ - Support for custom compatible atlases.
100
+
101
+ ## Install
102
+
103
+ DriftlessMap 1.1.0 supports Python 3.10–3.14 and Qt 6 through PyQt6. Python
104
+ 3.14 in a dedicated environment is recommended for new installations.
105
+
106
+ ```bash
107
+ conda create --name DriftlessMap python=3.14 -y
108
+ conda activate DriftlessMap
109
+ python -m pip install --upgrade pip
110
+ python -m pip install driftlessmap
111
+ ```
112
+
113
+ Launch the application with any of:
114
+
115
+ ```bash
116
+ driftlessmap
117
+ python -m driftlessmap
118
+ ```
119
+
120
+ ```python
121
+ import driftlessmap
122
+
123
+ driftlessmap.run()
124
+ ```
125
+
126
+ For an editable development install, clone the repository and use
127
+ `python -m pip install -e .`.
128
+
129
+ ### Zeiss CZI files
130
+
131
+ CZI support uses the optional `aicspylibczi` package, whose prebuilt packages
132
+ currently support Python through 3.13:
133
+
134
+ ```bash
135
+ conda create --name DriftlessMap-CZI python=3.13 -y
136
+ conda activate DriftlessMap-CZI
137
+ python -m pip install --upgrade pip
138
+ python -m pip install "driftlessmap[czi]"
139
+ ```
140
+
141
+ ## Compatibility with HERBS
142
+
143
+ The rebrand is designed not to strand existing research data:
144
+
145
+ - DriftlessMap reads legacy `.herbs`, `.herbslayer`, `.herbsobj`,
146
+ `.herbsslice`, and `.herbstri` files.
147
+ - New files use `.dmap`, `.dmaplayer`, `.dmapobj`, `.dmapslice`, and
148
+ `.dmaptri`.
149
+ - DriftlessMap installs only the `driftlessmap` Python package and command. It
150
+ does not overwrite the original HERBS package, so both distributions can be
151
+ installed in the same environment. New code should use `import driftlessmap`.
152
+ - Existing `HERBS_CONFIG_DIR` overrides remain supported. New configurations
153
+ should use `DRIFTLESSMAP_CONFIG_DIR`.
154
+ - Some persisted coordinate field names retain `herbs` because changing them
155
+ would break existing datasets and downstream analysis scripts.
156
+
157
+ The original HERBS application may not be able to open files newly written by
158
+ DriftlessMap. Keep backups before converting important projects.
159
+
160
+ ## Documentation
161
+
162
+ Read the [DriftlessMap User Manual](MANUAL.md) for installation, atlas,
163
+ registration, reconstruction, persistence, export, and troubleshooting
164
+ guidance. The original [HERBS Cookbook](CookBook.pdf) and [tutorials](Tutorial)
165
+ remain useful for workflows whose interface has not changed.
166
+
167
+ The screenshot below is retained from HERBS for historical workflow reference;
168
+ its title bar predates the DriftlessMap rebrand.
169
+
170
+ <img src="./driftlessmap/herbs.png" width="800px" alt="Historical HERBS interface used as the basis for DriftlessMap">
171
+
172
+ Do not store downloaded atlases inside the source or installed package
173
+ directory. Keep each atlas in its own external folder.
174
+
175
+ See [What’s New in DriftlessMap](WhatsNew.md) for release history and migration
176
+ notes.
177
+
178
+ ## License
179
+
180
+ DriftlessMap is distributed under the MIT License. The original HERBS copyright
181
+ and permission notice are preserved, and a separate copyright notice covers
182
+ subsequent DriftlessMap modifications. See [LICENSE.txt](LICENSE.txt) and
183
+ [ORIGINS.md](ORIGINS.md).
184
+
185
+ Please report issues or start discussions at
186
+ <https://github.com/mohebi-n-associates/DriftlessMap>.
@@ -0,0 +1,131 @@
1
+ # DriftlessMap
2
+
3
+ Interactive histology registration and brain-atlas mapping.
4
+
5
+ DriftlessMap is an open-source desktop application for registering histological
6
+ images to reference brain atlases, reconstructing probes and other anatomical
7
+ objects, and visualizing data in 2D and 3D. The name refers to Wisconsin's
8
+ Driftless Area and to the project's focus on dependable spatial mapping.
9
+
10
+ ## Origin and independence
11
+
12
+ DriftlessMap began as a fork of
13
+ [HERBS](https://github.com/Whitlock-Group/HERBS) — Histological E-data
14
+ Registration in rodent Brain Spaces — originally created by Jingyi Guo
15
+ Fuglstad, Pearl Saldanha, Jacopo Paglia, Jonathan R. Whitlock, and HERBS
16
+ contributors.
17
+
18
+ DriftlessMap is independently maintained. It is not affiliated with or endorsed
19
+ by the original HERBS developers. Their foundational work remains credited in
20
+ the Git history, [license](LICENSE.txt), [project history](ORIGINS.md),
21
+ [contributors](CONTRIBUTORS.md), [authors](AUTHOR.txt), and
22
+ [acknowledgements](THANKS.txt).
23
+
24
+ Current development is led by
25
+ [Mohebi & Associates](https://www.mohebi-associates.org/), with
26
+ [Ali Mohebi](https://www.mohebial.com/) as project lead and maintainer.
27
+
28
+ If DriftlessMap contributes to published research, please cite both the software
29
+ version used and the original HERBS paper:
30
+
31
+ > Fuglstad, J. G., Saldanha, P., Paglia, J., & Whitlock, J. R. (2023).
32
+ > Histological E-data Registration in rodent Brain Spaces. *eLife*, 12,
33
+ > e83496. https://doi.org/10.7554/eLife.83496
34
+
35
+ See [CITATION.cff](CITATION.cff) for machine-readable citation metadata.
36
+
37
+ ## Features
38
+
39
+ - 2D and 3D visualization of volumetric brain atlases and arbitrary slices.
40
+ - Interactive histology-to-atlas registration with local elastic deformation.
41
+ - Probe planning, reconstruction, contact mapping, and CSV export.
42
+ - Drawing, cell, virus-expression, and user-defined object workflows.
43
+ - Safe, versioned project and object archives.
44
+ - Support for custom compatible atlases.
45
+
46
+ ## Install
47
+
48
+ DriftlessMap 1.1.0 supports Python 3.10–3.14 and Qt 6 through PyQt6. Python
49
+ 3.14 in a dedicated environment is recommended for new installations.
50
+
51
+ ```bash
52
+ conda create --name DriftlessMap python=3.14 -y
53
+ conda activate DriftlessMap
54
+ python -m pip install --upgrade pip
55
+ python -m pip install driftlessmap
56
+ ```
57
+
58
+ Launch the application with any of:
59
+
60
+ ```bash
61
+ driftlessmap
62
+ python -m driftlessmap
63
+ ```
64
+
65
+ ```python
66
+ import driftlessmap
67
+
68
+ driftlessmap.run()
69
+ ```
70
+
71
+ For an editable development install, clone the repository and use
72
+ `python -m pip install -e .`.
73
+
74
+ ### Zeiss CZI files
75
+
76
+ CZI support uses the optional `aicspylibczi` package, whose prebuilt packages
77
+ currently support Python through 3.13:
78
+
79
+ ```bash
80
+ conda create --name DriftlessMap-CZI python=3.13 -y
81
+ conda activate DriftlessMap-CZI
82
+ python -m pip install --upgrade pip
83
+ python -m pip install "driftlessmap[czi]"
84
+ ```
85
+
86
+ ## Compatibility with HERBS
87
+
88
+ The rebrand is designed not to strand existing research data:
89
+
90
+ - DriftlessMap reads legacy `.herbs`, `.herbslayer`, `.herbsobj`,
91
+ `.herbsslice`, and `.herbstri` files.
92
+ - New files use `.dmap`, `.dmaplayer`, `.dmapobj`, `.dmapslice`, and
93
+ `.dmaptri`.
94
+ - DriftlessMap installs only the `driftlessmap` Python package and command. It
95
+ does not overwrite the original HERBS package, so both distributions can be
96
+ installed in the same environment. New code should use `import driftlessmap`.
97
+ - Existing `HERBS_CONFIG_DIR` overrides remain supported. New configurations
98
+ should use `DRIFTLESSMAP_CONFIG_DIR`.
99
+ - Some persisted coordinate field names retain `herbs` because changing them
100
+ would break existing datasets and downstream analysis scripts.
101
+
102
+ The original HERBS application may not be able to open files newly written by
103
+ DriftlessMap. Keep backups before converting important projects.
104
+
105
+ ## Documentation
106
+
107
+ Read the [DriftlessMap User Manual](MANUAL.md) for installation, atlas,
108
+ registration, reconstruction, persistence, export, and troubleshooting
109
+ guidance. The original [HERBS Cookbook](CookBook.pdf) and [tutorials](Tutorial)
110
+ remain useful for workflows whose interface has not changed.
111
+
112
+ The screenshot below is retained from HERBS for historical workflow reference;
113
+ its title bar predates the DriftlessMap rebrand.
114
+
115
+ <img src="./driftlessmap/herbs.png" width="800px" alt="Historical HERBS interface used as the basis for DriftlessMap">
116
+
117
+ Do not store downloaded atlases inside the source or installed package
118
+ directory. Keep each atlas in its own external folder.
119
+
120
+ See [What’s New in DriftlessMap](WhatsNew.md) for release history and migration
121
+ notes.
122
+
123
+ ## License
124
+
125
+ DriftlessMap is distributed under the MIT License. The original HERBS copyright
126
+ and permission notice are preserved, and a separate copyright notice covers
127
+ subsequent DriftlessMap modifications. See [LICENSE.txt](LICENSE.txt) and
128
+ [ORIGINS.md](ORIGINS.md).
129
+
130
+ Please report issues or start discussions at
131
+ <https://github.com/mohebi-n-associates/DriftlessMap>.
@@ -0,0 +1,28 @@
1
+ DriftlessMap gratefully acknowledges everyone who created, tested, documented,
2
+ and supported the original HERBS project. The original acknowledgements are
3
+ preserved below.
4
+
5
+ Dr. Menno P. Witter for providing anatomical support.
6
+
7
+ Dr. Grethe M. Olsen for histological image data sharing and data registration confirmation anatomically contributions.
8
+
9
+ Ida Välikangas Rautio for HERBS testing and histological image data sharing.
10
+
11
+ Pearl Saldanha for testing and cookbook writing.
12
+
13
+ Kristian Moan for light sheet data sharing and discussion.
14
+
15
+ Paulo Jorge Bettencourt Girão for ideas and technical information on all types of microscopy.
16
+
17
+ Abraham Z. Vollan for NP2.0 histological image data sharing and anatomical information providing.
18
+
19
+ Dr. Jerneja Rudolf for HERBS testing.
20
+
21
+ Dr. Noam Almog for HERBS testing.
22
+
23
+ Dr. Jonathan R. Whitlock for administration and coordination.
24
+
25
+
26
+ Institutions
27
+ ------------
28
+