thyra 3.2.0__tar.gz → 3.2.1__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 (97) hide show
  1. {thyra-3.2.0 → thyra-3.2.1}/PKG-INFO +1 -1
  2. {thyra-3.2.0 → thyra-3.2.1}/pyproject.toml +1 -1
  3. {thyra-3.2.0 → thyra-3.2.1}/thyra/__init__.py +1 -1
  4. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/spatialdata/streaming_converter.py +17 -7
  5. {thyra-3.2.0 → thyra-3.2.1}/LICENSE +0 -0
  6. {thyra-3.2.0 → thyra-3.2.1}/README.md +0 -0
  7. {thyra-3.2.0 → thyra-3.2.1}/thyra/__main__.py +0 -0
  8. {thyra-3.2.0 → thyra-3.2.1}/thyra/alignment/__init__.py +0 -0
  9. {thyra-3.2.0 → thyra-3.2.1}/thyra/alignment/affine.py +0 -0
  10. {thyra-3.2.0 → thyra-3.2.1}/thyra/alignment/teaching_points.py +0 -0
  11. {thyra-3.2.0 → thyra-3.2.1}/thyra/config.py +0 -0
  12. {thyra-3.2.0 → thyra-3.2.1}/thyra/convert.py +0 -0
  13. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/__init__.py +0 -0
  14. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/spatialdata/__init__.py +0 -0
  15. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/spatialdata/_chunking.py +0 -0
  16. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/spatialdata/base_spatialdata_converter.py +0 -0
  17. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/spatialdata/converter.py +0 -0
  18. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/spatialdata/spatialdata_2d_converter.py +0 -0
  19. {thyra-3.2.0 → thyra-3.2.1}/thyra/converters/spatialdata/spatialdata_3d_converter.py +0 -0
  20. {thyra-3.2.0 → thyra-3.2.1}/thyra/core/__init__.py +0 -0
  21. {thyra-3.2.0 → thyra-3.2.1}/thyra/core/base_converter.py +0 -0
  22. {thyra-3.2.0 → thyra-3.2.1}/thyra/core/base_extractor.py +0 -0
  23. {thyra-3.2.0 → thyra-3.2.1}/thyra/core/base_reader.py +0 -0
  24. {thyra-3.2.0 → thyra-3.2.1}/thyra/core/registry.py +0 -0
  25. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/__init__.py +0 -0
  26. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/extractors/__init__.py +0 -0
  27. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/extractors/bruker_extractor.py +0 -0
  28. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/extractors/imzml_extractor.py +0 -0
  29. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/extractors/waters_extractor.py +0 -0
  30. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/ontology/__init__.py +0 -0
  31. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/ontology/_ims.py +0 -0
  32. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/ontology/_ms.py +0 -0
  33. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/ontology/_uo.py +0 -0
  34. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/ontology/cache.py +0 -0
  35. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/types.py +0 -0
  36. {thyra-3.2.0 → thyra-3.2.1}/thyra/metadata/validator.py +0 -0
  37. {thyra-3.2.0 → thyra-3.2.1}/thyra/preview.py +0 -0
  38. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/__init__.py +0 -0
  39. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/__init__.py +0 -0
  40. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/base_bruker_reader.py +0 -0
  41. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/folder_structure.py +0 -0
  42. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/mis_parser.py +0 -0
  43. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/rapiflex/__init__.py +0 -0
  44. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/rapiflex/rapiflex_reader.py +0 -0
  45. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/__init__.py +0 -0
  46. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/__init__.py +0 -0
  47. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/dll/LICENCE-BRUKER.txt +0 -0
  48. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/dll/README.md +0 -0
  49. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/dll/timsdata.dll +0 -0
  50. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/dll/timsdata.so +0 -0
  51. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/dll_manager.py +0 -0
  52. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/platform_detector.py +0 -0
  53. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/sdk/sdk_functions.py +0 -0
  54. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/timstof_reader.py +0 -0
  55. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/utils/__init__.py +0 -0
  56. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/utils/batch_processor.py +0 -0
  57. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/utils/coordinate_cache.py +0 -0
  58. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/utils/mass_axis_builder.py +0 -0
  59. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/bruker/timstof/utils/memory_manager.py +0 -0
  60. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/imzml/__init__.py +0 -0
  61. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/imzml/imzml_reader.py +0 -0
  62. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/__init__.py +0 -0
  63. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/imaging_grid.py +0 -0
  64. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/lib/MLReader.dll +0 -0
  65. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/lib/MassLynxRaw.dll +0 -0
  66. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/lib/libMLReader.so +0 -0
  67. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/lib/libMassLynxRaw.so +0 -0
  68. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/masslynx_lib.py +0 -0
  69. {thyra-3.2.0 → thyra-3.2.1}/thyra/readers/waters/waters_reader.py +0 -0
  70. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/__init__.py +0 -0
  71. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/common_axis.py +0 -0
  72. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/constants.py +0 -0
  73. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/data_characteristics.py +0 -0
  74. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/decision_tree.py +0 -0
  75. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/gaps.py +0 -0
  76. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/instrument_detectors.py +0 -0
  77. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/mass_axis/__init__.py +0 -0
  78. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/mass_axis/base_generator.py +0 -0
  79. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/mass_axis/fticr_generator.py +0 -0
  80. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/mass_axis/linear_generator.py +0 -0
  81. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/mass_axis/linear_tof_generator.py +0 -0
  82. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/mass_axis/orbitrap_generator.py +0 -0
  83. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/mass_axis/reflector_tof_generator.py +0 -0
  84. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/strategies/__init__.py +0 -0
  85. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/strategies/base.py +0 -0
  86. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/strategies/nearest_neighbor.py +0 -0
  87. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/strategies/tic_preserving.py +0 -0
  88. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/tic.py +0 -0
  89. {thyra-3.2.0 → thyra-3.2.1}/thyra/resampling/types.py +0 -0
  90. {thyra-3.2.0 → thyra-3.2.1}/thyra/tools/__init__.py +0 -0
  91. {thyra-3.2.0 → thyra-3.2.1}/thyra/tools/check_ontology.py +0 -0
  92. {thyra-3.2.0 → thyra-3.2.1}/thyra/tools/make_example_data.py +0 -0
  93. {thyra-3.2.0 → thyra-3.2.1}/thyra/utils/__init__.py +0 -0
  94. {thyra-3.2.0 → thyra-3.2.1}/thyra/utils/bruker_exceptions.py +0 -0
  95. {thyra-3.2.0 → thyra-3.2.1}/thyra/utils/logging_config.py +0 -0
  96. {thyra-3.2.0 → thyra-3.2.1}/thyra/utils/windows_paths.py +0 -0
  97. {thyra-3.2.0 → thyra-3.2.1}/thyra/utils/zarr_atomic_write.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: thyra
3
- Version: 3.2.0
3
+ Version: 3.2.1
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 = "3.2.0"
7
+ version = "3.2.1"
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__ = "3.2.0"
39
+ __version__ = "3.2.1"
40
40
 
41
41
  # Import key components - avoid wildcard imports
42
42
  try:
@@ -1278,18 +1278,28 @@ class StreamingSpatialDataConverter(BaseSpatialDataConverter):
1278
1278
 
1279
1279
  nnz = len(mz_indices)
1280
1280
  if nnz > 0:
1281
- # Count entries per column (vectorized)
1282
- np.add.at(col_counts, mz_indices, 1)
1283
- total_nnz += nnz
1284
-
1285
- # Accumulate for average spectrum (vectorized)
1281
+ # Accumulate for average spectrum (vectorized). Left
1282
+ # outside the bounds check to match the COO pre-scan,
1283
+ # which also averages over every spectrum read rather
1284
+ # than every spectrum stored.
1286
1285
  np.add.at(total_intensity, mz_indices, resampled_ints)
1287
1286
 
1288
- # TIC and occupancy. Both are indexed by grid position,
1289
- # so both need the bounds check: a reader yielding a
1287
+ # Column counts, TIC and occupancy all describe a
1288
+ # spectrum that is going to get a row, so all three sit
1289
+ # behind the bounds check: a reader yielding a
1290
1290
  # coordinate outside the declared dimensions would
1291
1291
  # otherwise wrap round and land on an unrelated pixel.
1292
+ #
1293
+ # col_counts and total_nnz size the CSC arrays, and the
1294
+ # scatter pass skips exactly the spectra this rejects
1295
+ # (row_of_grid gives them no row). Counting them here
1296
+ # reserved slots nothing ever wrote: the memmap is
1297
+ # zero-filled, so they surfaced as explicit zeros at
1298
+ # row 0, out of order within their column, which is a
1299
+ # matrix scipy reports as non-canonical.
1292
1300
  if 0 <= y < n_y and 0 <= x < n_x:
1301
+ np.add.at(col_counts, mz_indices, 1)
1302
+ total_nnz += nnz
1293
1303
  tic_values[y, x] = resampled_ints.sum()
1294
1304
  occupancy[y * n_x + x] = True
1295
1305
  else:
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
File without changes