Rhapso 0.2.1__tar.gz → 0.2.2__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 (107) hide show
  1. {rhapso-0.2.1 → rhapso-0.2.2}/PKG-INFO +1 -1
  2. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/matching/ransac_matching.py +1 -1
  3. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/local/alignment_pipeline.py +1 -1
  4. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/split_dataset/save_xml.py +2 -64
  5. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso.egg-info/PKG-INFO +1 -1
  6. {rhapso-0.2.1 → rhapso-0.2.2}/setup.py +2 -1
  7. {rhapso-0.2.1 → rhapso-0.2.2}/LICENSE +0 -0
  8. {rhapso-0.2.1 → rhapso-0.2.2}/README.md +0 -0
  9. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/__init__.py +0 -0
  10. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/data_prep/__init__.py +0 -0
  11. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/data_prep/n5_reader.py +0 -0
  12. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/data_prep/s3_big_stitcher_reader.py +0 -0
  13. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/data_prep/xml_to_dataframe.py +0 -0
  14. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/__init__.py +0 -0
  15. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/advanced_refinement.py +0 -0
  16. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/difference_of_gaussian.py +0 -0
  17. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/image_reader.py +0 -0
  18. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/metadata_builder.py +0 -0
  19. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/overlap_detection.py +0 -0
  20. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/points_validation.py +0 -0
  21. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/save_interest_points.py +0 -0
  22. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/detection/view_transform_models.py +0 -0
  23. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/__init__.py +0 -0
  24. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion/__init__.py +0 -0
  25. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion/blend.py +0 -0
  26. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion/fusion.py +0 -0
  27. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion/geometry.py +0 -0
  28. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion/io.py +0 -0
  29. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion/script_utils.py +0 -0
  30. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion/setup.py +0 -0
  31. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/affine_fusion_worker.py +0 -0
  32. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/__init__.py +0 -0
  33. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/__init__.py +0 -0
  34. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/compress/__init__.py +0 -0
  35. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/compress/czi_to_zarr.py +0 -0
  36. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/compress/zarr_writer.py +0 -0
  37. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/models.py +0 -0
  38. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/utils/__init__.py +0 -0
  39. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/utils/utils.py +0 -0
  40. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_hcr_data_transformation/zeiss_job.py +0 -0
  41. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_z1_radial_correction/__init__.py +0 -0
  42. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_z1_radial_correction/array_to_zarr.py +0 -0
  43. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_z1_radial_correction/radial_correction.py +0 -0
  44. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_z1_radial_correction/run_capsule.py +0 -0
  45. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_z1_radial_correction/utils/__init__.py +0 -0
  46. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_z1_radial_correction/utils/utils.py +0 -0
  47. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale/aind_z1_radial_correction/worker.py +0 -0
  48. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/multiscale_worker.py +0 -0
  49. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/__init__.py +0 -0
  50. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/dispim_link.py +0 -0
  51. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/exaspim_link.py +0 -0
  52. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/hcr_link.py +0 -0
  53. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/iSPIM_top.py +0 -0
  54. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/link_utils.py +0 -0
  55. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/main.py +0 -0
  56. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/ng_layer.py +0 -0
  57. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/ng_state.py +0 -0
  58. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/parsers.py +0 -0
  59. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/raw_link.py +0 -0
  60. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/utils/__init__.py +0 -0
  61. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/utils/shader_utils.py +0 -0
  62. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/utils/transfer.py +0 -0
  63. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen/utils/utils.py +0 -0
  64. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/fusion/neuroglancer_link_gen_worker.py +0 -0
  65. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/matching/__init__.py +0 -0
  66. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/matching/load_and_transform_points.py +0 -0
  67. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/matching/save_matches.py +0 -0
  68. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/matching/xml_parser.py +0 -0
  69. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/__init__.py +0 -0
  70. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/__init__.py +0 -0
  71. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/aws/__init__.py +0 -0
  72. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/aws/alignment_pipeline.py +0 -0
  73. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/aws/config/__init__.py +0 -0
  74. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/evaluation.py +0 -0
  75. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/interest_point_detection.py +0 -0
  76. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/interest_point_matching.py +0 -0
  77. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/local/__init__.py +0 -0
  78. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/matching_stats.py +0 -0
  79. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/param/__init__.py +0 -0
  80. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/solver.py +0 -0
  81. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/pipelines/ray/split_dataset.py +0 -0
  82. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/__init__.py +0 -0
  83. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/compute_tiles.py +0 -0
  84. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/concatenate_models.py +0 -0
  85. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/connected_graphs.py +0 -0
  86. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/data_prep.py +0 -0
  87. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/global_optimization.py +0 -0
  88. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/model_and_tile_setup.py +0 -0
  89. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/pre_align_tiles.py +0 -0
  90. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/save_results.py +0 -0
  91. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/view_transforms.py +0 -0
  92. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/solver/xml_to_dataframe_solver.py +0 -0
  93. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/split_dataset/__init__.py +0 -0
  94. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/split_dataset/compute_grid_rules.py +0 -0
  95. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/split_dataset/save_points.py +0 -0
  96. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/split_dataset/split_images.py +0 -0
  97. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso/split_dataset/xml_to_dataframe_split.py +0 -0
  98. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso.egg-info/SOURCES.txt +0 -0
  99. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso.egg-info/dependency_links.txt +0 -0
  100. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso.egg-info/requires.txt +0 -0
  101. {rhapso-0.2.1 → rhapso-0.2.2}/Rhapso.egg-info/top_level.txt +0 -0
  102. {rhapso-0.2.1 → rhapso-0.2.2}/pyproject.toml +0 -0
  103. {rhapso-0.2.1 → rhapso-0.2.2}/setup.cfg +0 -0
  104. {rhapso-0.2.1 → rhapso-0.2.2}/tests/__init__.py +0 -0
  105. {rhapso-0.2.1 → rhapso-0.2.2}/tests/test_detection.py +0 -0
  106. {rhapso-0.2.1 → rhapso-0.2.2}/tests/test_matching.py +0 -0
  107. {rhapso-0.2.1 → rhapso-0.2.2}/tests/test_solving.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Rhapso
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: A python package for aligning and stitching light sheet fluorescence microscopy images
5
5
  Author: ND
6
6
  Author-email: sean.fite@alleninstitute.org
@@ -271,7 +271,7 @@ class RansacMatching:
271
271
  for b in range(1):
272
272
 
273
273
  matches = []
274
- for i in range(3):
274
+ for i in range(self.num_required_neighbors):
275
275
  point_match = (desc_a['relative_descriptors'][i], desc_b['relative_descriptors'][i])
276
276
  matches.append(point_match)
277
277
 
@@ -9,7 +9,7 @@ import ray
9
9
  ray.init()
10
10
 
11
11
  # Point to param file
12
- with open("Rhapso/pipelines/ray/param/exaSPIM_802450.yml", "r") as file:
12
+ with open("Rhapso/pipelines/ray/param/exaSPIM_794495.yml", "r") as file:
13
13
  config = yaml.safe_load(file)
14
14
 
15
15
  # -- INITIALIZE EACH COMPONENT --
@@ -13,13 +13,6 @@ class SaveXML:
13
13
  self.xml_output_path = xml_output_path
14
14
 
15
15
  def save_tile_attributes_to_xml(self, xml):
16
- """
17
- Ensure the *last* <ViewSetups> (the outer split one) has:
18
- - <Attributes name="illumination"> old_tile_0..N </Attributes>
19
- - <Attributes name="channel"> ... </Attributes>
20
- - <Attributes name="tile"> with locations from Image Splitting </Attributes>
21
- - <Attributes name="angle"><Angle id=0 name=0/></Attributes>
22
- """
23
16
  root = ET.fromstring(xml)
24
17
 
25
18
  def tagname(el):
@@ -249,26 +242,6 @@ class SaveXML:
249
242
  """
250
243
  Wrap the top-level ImageLoader in <ImageLoader format="split.viewerimgloader">
251
244
  and move the ORIGINAL ViewSetups/Timepoints/MissingViews into an inner
252
- <SequenceDescription> inside that wrapper.
253
-
254
- Resulting structure:
255
-
256
- <SpimData>
257
- <BasePath/>
258
- <SequenceDescription>
259
- <ImageLoader format="split.viewerimgloader">
260
- <ImageLoader format="bdv.multimg.zarr"> ... </ImageLoader>
261
- <SequenceDescription>
262
- <ViewSetups> (ORIGINAL) </ViewSetups>
263
- <Timepoints> (ORIGINAL) </Timepoints>
264
- <MissingViews/>
265
- </SequenceDescription>
266
- <!-- SetupIds (for split tiles) will be added later -->
267
- </ImageLoader>
268
- <!-- NEW ViewSetups/Timepoints/MissingViews for split views are added later -->
269
- </SequenceDescription>
270
- <ViewRegistrations> ... </ViewRegistrations>
271
- </SpimData>
272
245
  """
273
246
  root = ET.fromstring(xml)
274
247
 
@@ -309,8 +282,6 @@ class SaveXML:
309
282
  if fmt == 'split.viewerimgloader':
310
283
  return xml
311
284
 
312
- # Collect any other ImageLoader siblings (other sources)
313
- other_imageloaders = []
314
285
  # Collect ORIGINAL ViewSetups / Timepoints / MissingViews that are siblings
315
286
  orig_viewsetups = None
316
287
  orig_timepoints = None
@@ -318,18 +289,15 @@ class SaveXML:
318
289
 
319
290
  for ch in children[base_loader_idx + 1:]:
320
291
  name = tn(ch)
321
- if name == 'ImageLoader':
322
- other_imageloaders.append(ch)
323
- elif name == 'ViewSetups':
292
+ if name == 'ViewSetups':
324
293
  orig_viewsetups = ch
325
294
  elif name == 'Timepoints':
326
295
  orig_timepoints = ch
327
296
  elif name == 'MissingViews':
328
297
  orig_missingviews = ch
329
-
330
298
 
331
299
  # Remove them from the outer SequenceDescription
332
- for node in (orig_viewsetups, orig_timepoints, orig_missingviews, *other_imageloaders):
300
+ for node in (orig_viewsetups, orig_timepoints, orig_missingviews):
333
301
  if node is not None and node in seq:
334
302
  seq.remove(node)
335
303
 
@@ -340,12 +308,9 @@ class SaveXML:
340
308
  wrapper = ET.Element('ImageLoader', {'format': 'split.viewerimgloader'})
341
309
  # First child: original loader
342
310
  wrapper.append(base_loader)
343
- for other_loader in other_imageloaders:
344
- wrapper.append(other_loader)
345
311
 
346
312
  # Inner <SequenceDescription> that holds the original ViewSetups/Timepoints/MissingViews
347
313
  inner_seq = ET.Element('SequenceDescription')
348
-
349
314
  if orig_viewsetups is not None:
350
315
  inner_seq.append(orig_viewsetups)
351
316
  if orig_timepoints is not None:
@@ -516,33 +481,6 @@ class SaveXML:
516
481
  return ET.tostring(root, encoding='unicode')
517
482
 
518
483
  def save_setup_id_to_xml(self, xml):
519
- """
520
- Create/overwrite the OUTER <ViewSetups> (split tiles) and ensure outer
521
- <Timepoints> and <MissingViews> exist under the top-level SequenceDescription.
522
-
523
- Outer layout target:
524
-
525
- <SpimData>
526
- <BasePath/>
527
- <SequenceDescription>
528
- <ImageLoader format="split.viewerimgloader">
529
- ...
530
- <SequenceDescription> (original) </SequenceDescription>
531
- <SetupIds> ... </SetupIds> (from save_setup_id_definition_to_xml)
532
- </ImageLoader>
533
- <ViewSetups> <-- created here (ids 0..499)
534
- <ViewSetup>...</ViewSetup>
535
- ...
536
- <Attributes ...>...</Attributes>
537
- </ViewSetups>
538
- <Timepoints type="pattern">
539
- <integerpattern>0</integerpattern>
540
- </Timepoints>
541
- <MissingViews/>
542
- </SequenceDescription>
543
- <ViewRegistrations>...</ViewRegistrations>
544
- </SpimData>
545
- """
546
484
  root = ET.fromstring(xml)
547
485
 
548
486
  def tn(el):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Rhapso
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: A python package for aligning and stitching light sheet fluorescence microscopy images
5
5
  Author: ND
6
6
  Author-email: sean.fite@alleninstitute.org
@@ -7,7 +7,7 @@ long_description = (this_directory / "README.md").read_text(encoding="utf-8")
7
7
 
8
8
  setup(
9
9
  name='Rhapso',
10
- version='0.2.1',
10
+ version='0.2.2',
11
11
  author='ND',
12
12
  author_email='sean.fite@alleninstitute.org',
13
13
  description='A python package for aligning and stitching light sheet fluorescence microscopy images',
@@ -56,3 +56,4 @@ setup(
56
56
 
57
57
 
58
58
 
59
+
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes