thyra 2.0.2__tar.gz → 2.0.3__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 (96) hide show
  1. {thyra-2.0.2 → thyra-2.0.3}/PKG-INFO +1 -1
  2. {thyra-2.0.2 → thyra-2.0.3}/pyproject.toml +1 -1
  3. {thyra-2.0.2 → thyra-2.0.3}/thyra/__init__.py +1 -1
  4. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/spatialdata/streaming_converter.py +15 -4
  5. {thyra-2.0.2 → thyra-2.0.3}/LICENSE +0 -0
  6. {thyra-2.0.2 → thyra-2.0.3}/README.md +0 -0
  7. {thyra-2.0.2 → thyra-2.0.3}/thyra/__main__.py +0 -0
  8. {thyra-2.0.2 → thyra-2.0.3}/thyra/alignment/__init__.py +0 -0
  9. {thyra-2.0.2 → thyra-2.0.3}/thyra/alignment/affine.py +0 -0
  10. {thyra-2.0.2 → thyra-2.0.3}/thyra/alignment/teaching_points.py +0 -0
  11. {thyra-2.0.2 → thyra-2.0.3}/thyra/config.py +0 -0
  12. {thyra-2.0.2 → thyra-2.0.3}/thyra/convert.py +0 -0
  13. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/__init__.py +0 -0
  14. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/spatialdata/__init__.py +0 -0
  15. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/spatialdata/_chunking.py +0 -0
  16. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/spatialdata/base_spatialdata_converter.py +0 -0
  17. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/spatialdata/converter.py +0 -0
  18. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/spatialdata/spatialdata_2d_converter.py +0 -0
  19. {thyra-2.0.2 → thyra-2.0.3}/thyra/converters/spatialdata/spatialdata_3d_converter.py +0 -0
  20. {thyra-2.0.2 → thyra-2.0.3}/thyra/core/__init__.py +0 -0
  21. {thyra-2.0.2 → thyra-2.0.3}/thyra/core/base_converter.py +0 -0
  22. {thyra-2.0.2 → thyra-2.0.3}/thyra/core/base_extractor.py +0 -0
  23. {thyra-2.0.2 → thyra-2.0.3}/thyra/core/base_reader.py +0 -0
  24. {thyra-2.0.2 → thyra-2.0.3}/thyra/core/registry.py +0 -0
  25. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/__init__.py +0 -0
  26. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/extractors/__init__.py +0 -0
  27. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/extractors/bruker_extractor.py +0 -0
  28. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/extractors/imzml_extractor.py +0 -0
  29. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/extractors/waters_extractor.py +0 -0
  30. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/ontology/__init__.py +0 -0
  31. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/ontology/_ims.py +0 -0
  32. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/ontology/_ms.py +0 -0
  33. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/ontology/_uo.py +0 -0
  34. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/ontology/cache.py +0 -0
  35. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/types.py +0 -0
  36. {thyra-2.0.2 → thyra-2.0.3}/thyra/metadata/validator.py +0 -0
  37. {thyra-2.0.2 → thyra-2.0.3}/thyra/preview.py +0 -0
  38. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/__init__.py +0 -0
  39. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/__init__.py +0 -0
  40. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/base_bruker_reader.py +0 -0
  41. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/folder_structure.py +0 -0
  42. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/mis_parser.py +0 -0
  43. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/rapiflex/__init__.py +0 -0
  44. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/rapiflex/rapiflex_reader.py +0 -0
  45. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/__init__.py +0 -0
  46. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/__init__.py +0 -0
  47. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/dll/LICENCE-BRUKER.txt +0 -0
  48. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/dll/README.md +0 -0
  49. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/dll/timsdata.dll +0 -0
  50. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/dll/timsdata.so +0 -0
  51. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/dll_manager.py +0 -0
  52. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/platform_detector.py +0 -0
  53. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/sdk/sdk_functions.py +0 -0
  54. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/timstof_reader.py +0 -0
  55. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/utils/__init__.py +0 -0
  56. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/utils/batch_processor.py +0 -0
  57. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/utils/coordinate_cache.py +0 -0
  58. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/utils/mass_axis_builder.py +0 -0
  59. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/bruker/timstof/utils/memory_manager.py +0 -0
  60. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/imzml/__init__.py +0 -0
  61. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/imzml/imzml_reader.py +0 -0
  62. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/__init__.py +0 -0
  63. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/imaging_grid.py +0 -0
  64. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/lib/MLReader.dll +0 -0
  65. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/lib/MassLynxRaw.dll +0 -0
  66. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/lib/libMLReader.so +0 -0
  67. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/lib/libMassLynxRaw.so +0 -0
  68. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/masslynx_lib.py +0 -0
  69. {thyra-2.0.2 → thyra-2.0.3}/thyra/readers/waters/waters_reader.py +0 -0
  70. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/__init__.py +0 -0
  71. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/common_axis.py +0 -0
  72. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/constants.py +0 -0
  73. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/data_characteristics.py +0 -0
  74. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/decision_tree.py +0 -0
  75. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/instrument_detectors.py +0 -0
  76. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/mass_axis/__init__.py +0 -0
  77. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/mass_axis/base_generator.py +0 -0
  78. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/mass_axis/fticr_generator.py +0 -0
  79. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/mass_axis/linear_generator.py +0 -0
  80. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/mass_axis/linear_tof_generator.py +0 -0
  81. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/mass_axis/orbitrap_generator.py +0 -0
  82. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/mass_axis/reflector_tof_generator.py +0 -0
  83. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/strategies/__init__.py +0 -0
  84. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/strategies/base.py +0 -0
  85. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/strategies/nearest_neighbor.py +0 -0
  86. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/strategies/tic_preserving.py +0 -0
  87. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/tic.py +0 -0
  88. {thyra-2.0.2 → thyra-2.0.3}/thyra/resampling/types.py +0 -0
  89. {thyra-2.0.2 → thyra-2.0.3}/thyra/tools/__init__.py +0 -0
  90. {thyra-2.0.2 → thyra-2.0.3}/thyra/tools/check_ontology.py +0 -0
  91. {thyra-2.0.2 → thyra-2.0.3}/thyra/tools/make_example_data.py +0 -0
  92. {thyra-2.0.2 → thyra-2.0.3}/thyra/utils/__init__.py +0 -0
  93. {thyra-2.0.2 → thyra-2.0.3}/thyra/utils/bruker_exceptions.py +0 -0
  94. {thyra-2.0.2 → thyra-2.0.3}/thyra/utils/logging_config.py +0 -0
  95. {thyra-2.0.2 → thyra-2.0.3}/thyra/utils/windows_paths.py +0 -0
  96. {thyra-2.0.2 → thyra-2.0.3}/thyra/utils/zarr_atomic_write.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thyra
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: A modern Python library for converting Mass Spectrometry Imaging (MSI) data into SpatialData/Zarr format - your portal to spatial omics
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "thyra"
7
- version = "2.0.2"
7
+ version = "2.0.3"
8
8
  description = "A modern Python library for converting Mass Spectrometry Imaging (MSI) data into SpatialData/Zarr format - your portal to spatial omics"
9
9
  authors = ["Theodoros Visvikis <t.visvikis@maastrichtuniversity.nl>"]
10
10
  maintainers = ["Theodoros Visvikis <t.visvikis@maastrichtuniversity.nl>"]
@@ -36,7 +36,7 @@ warnings.filterwarnings(
36
36
  category=FutureWarning,
37
37
  )
38
38
 
39
- __version__ = "2.0.2"
39
+ __version__ = "2.0.3"
40
40
 
41
41
  # Import key components - avoid wildcard imports
42
42
  try:
@@ -129,10 +129,21 @@ class StreamingSpatialDataConverter(BaseSpatialDataConverter):
129
129
  n_x, n_y, n_z = metadata.dimensions
130
130
  n_pixels = n_x * n_y * n_z
131
131
 
132
- # Estimate number of m/z bins after resampling using the same
133
- # resolution path the axis builder will use, so the gate against
134
- # PCS_SIZE_THRESHOLD_GB sees the real bin count.
135
- if self._resampling_config:
132
+ # Prefer the axis that was actually built. ``convert()`` runs
133
+ # ``_initialize_conversion()`` -- and so ``_setup_mass_axis()`` --
134
+ # before it asks which method to use, so by the time this gate is
135
+ # evaluated the real bin count is known and there is nothing to
136
+ # estimate. That matters most on the raw-axis path, where the
137
+ # fallback below assumes a 10 mDa spacing that the data need not
138
+ # have: a continuous file carrying 4,000 points over 250-1200 m/z
139
+ # was scored as though it had 95,000, and a processed file whose
140
+ # spectra share no m/z values was scored far too low, which routed
141
+ # the largest datasets to the method that holds the most in memory.
142
+ if self._common_mass_axis is not None:
143
+ n_mz_bins = len(self._common_mass_axis)
144
+ elif self._resampling_config:
145
+ # Same resolution path the axis builder will use, so the gate
146
+ # against PCS_SIZE_THRESHOLD_GB sees the real bin count.
136
147
  _, _, _, n_mz_bins = self._resolve_resampling_plan()
137
148
  else:
138
149
  min_mass, max_mass = metadata.mass_range
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes