thyra 4.6.1__tar.gz → 4.6.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 (163) hide show
  1. {thyra-4.6.1 → thyra-4.6.2}/PKG-INFO +17 -28
  2. {thyra-4.6.1 → thyra-4.6.2}/README.md +14 -26
  3. {thyra-4.6.1 → thyra-4.6.2}/pyproject.toml +4 -3
  4. {thyra-4.6.1 → thyra-4.6.2}/thyra/__init__.py +1 -1
  5. {thyra-4.6.1 → thyra-4.6.2}/.gitignore +0 -0
  6. {thyra-4.6.1 → thyra-4.6.2}/LICENSE +0 -0
  7. {thyra-4.6.1 → thyra-4.6.2}/thyra/__main__.py +0 -0
  8. {thyra-4.6.1 → thyra-4.6.2}/thyra/alignment/__init__.py +0 -0
  9. {thyra-4.6.1 → thyra-4.6.2}/thyra/alignment/affine.py +0 -0
  10. {thyra-4.6.1 → thyra-4.6.2}/thyra/alignment/teaching_points.py +0 -0
  11. {thyra-4.6.1 → thyra-4.6.2}/thyra/config.py +0 -0
  12. {thyra-4.6.1 → thyra-4.6.2}/thyra/convert.py +0 -0
  13. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/__init__.py +0 -0
  14. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/__init__.py +0 -0
  15. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/_chunking.py +0 -0
  16. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/acquisition_frame.py +0 -0
  17. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/base_spatialdata_converter.py +0 -0
  18. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/converter.py +0 -0
  19. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/csc_assembly.py +0 -0
  20. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/fused_passes.py +0 -0
  21. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/mobility_heatmap.py +0 -0
  22. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/mobility_table.py +0 -0
  23. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/msms_table.py +0 -0
  24. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/optical_image.py +0 -0
  25. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/root_attrs.py +0 -0
  26. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/sibling_tables.py +0 -0
  27. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/streaming_converter.py +0 -0
  28. {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/uns_assembler.py +0 -0
  29. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/__init__.py +0 -0
  30. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/base_converter.py +0 -0
  31. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/base_extractor.py +0 -0
  32. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/base_reader.py +0 -0
  33. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/conversion_state.py +0 -0
  34. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/drop_tally.py +0 -0
  35. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/frames.py +0 -0
  36. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/mass_axis.py +0 -0
  37. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/mobility.py +0 -0
  38. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/msms.py +0 -0
  39. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/positions.py +0 -0
  40. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/region_map.py +0 -0
  41. {thyra-4.6.1 → thyra-4.6.2}/thyra/core/registry.py +0 -0
  42. {thyra-4.6.1 → thyra-4.6.2}/thyra/errors.py +0 -0
  43. {thyra-4.6.1 → thyra-4.6.2}/thyra/mass_axis_plan.py +0 -0
  44. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/__init__.py +0 -0
  45. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/constants.py +0 -0
  46. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/document.py +0 -0
  47. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/__init__.py +0 -0
  48. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/bruker_extractor.py +0 -0
  49. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/imzml_extractor.py +0 -0
  50. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/imzml_header_extractor.py +0 -0
  51. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/mzpeak_extractor.py +0 -0
  52. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/phi_extractor.py +0 -0
  53. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/solarix_extractor.py +0 -0
  54. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/waters_extractor.py +0 -0
  55. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/__init__.py +0 -0
  56. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/_ims.py +0 -0
  57. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/_ms.py +0 -0
  58. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/_uo.py +0 -0
  59. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/cache.py +0 -0
  60. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/dump_obo_files.py +0 -0
  61. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/personal_data.py +0 -0
  62. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/__init__.py +0 -0
  63. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/axis_fingerprint.py +0 -0
  64. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/builder.py +0 -0
  65. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/cli.py +0 -0
  66. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/generate.py +0 -0
  67. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/metaspace.py +0 -0
  68. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/models.py +0 -0
  69. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/msi_metadata.linkml.yaml +0 -0
  70. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/msi_metadata_schema_v0_14.json +0 -0
  71. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/store_io.py +0 -0
  72. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/validate.py +0 -0
  73. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/vocab.py +0 -0
  74. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/types.py +0 -0
  75. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/uns_compat.py +0 -0
  76. {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/validator.py +0 -0
  77. {thyra-4.6.1 → thyra-4.6.2}/thyra/preview.py +0 -0
  78. {thyra-4.6.1 → thyra-4.6.2}/thyra/py.typed +0 -0
  79. {thyra-4.6.1 → thyra-4.6.2}/thyra/reader_options.py +0 -0
  80. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/__init__.py +0 -0
  81. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/__init__.py +0 -0
  82. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/base_bruker_reader.py +0 -0
  83. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/folder_structure.py +0 -0
  84. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/mis_parser.py +0 -0
  85. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/rapiflex/__init__.py +0 -0
  86. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/rapiflex/rapiflex_reader.py +0 -0
  87. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/solarix/__init__.py +0 -0
  88. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/solarix/solarix_reader.py +0 -0
  89. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/__init__.py +0 -0
  90. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/__init__.py +0 -0
  91. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/LICENCE-BRUKER.txt +0 -0
  92. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/README.md +0 -0
  93. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/timsdata.dll +0 -0
  94. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/timsdata.so +0 -0
  95. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll_manager.py +0 -0
  96. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/platform_detector.py +0 -0
  97. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/sdk_functions.py +0 -0
  98. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/timstof_reader.py +0 -0
  99. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/vendor_db.py +0 -0
  100. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/__init__.py +0 -0
  101. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/_pyimzml_compat.py +0 -0
  102. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/header.py +0 -0
  103. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/imzml_reader.py +0 -0
  104. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/mobility_array.py +0 -0
  105. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/mzpeak/__init__.py +0 -0
  106. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/mzpeak/chunk_decoding.py +0 -0
  107. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/mzpeak/mzpeak_reader.py +0 -0
  108. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/__init__.py +0 -0
  109. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/event_stream.py +0 -0
  110. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/mass_axis.py +0 -0
  111. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/phi_header.py +0 -0
  112. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/phi_reader.py +0 -0
  113. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/__init__.py +0 -0
  114. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/imaging_grid.py +0 -0
  115. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/instrument.py +0 -0
  116. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/MLReader.dll +0 -0
  117. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/MassLynxRaw.dll +0 -0
  118. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/libMLReader.so +0 -0
  119. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/libMassLynxRaw.so +0 -0
  120. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lockmass.py +0 -0
  121. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/masslynx_lib.py +0 -0
  122. {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/waters_reader.py +0 -0
  123. {thyra-4.6.1 → thyra-4.6.2}/thyra/regions.py +0 -0
  124. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/__init__.py +0 -0
  125. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/axis_planner.py +0 -0
  126. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/binning.py +0 -0
  127. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/common_axis.py +0 -0
  128. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/constants.py +0 -0
  129. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/data_characteristics.py +0 -0
  130. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/decision_tree.py +0 -0
  131. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/gaps.py +0 -0
  132. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/instrument_detectors.py +0 -0
  133. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/interpolation.py +0 -0
  134. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/__init__.py +0 -0
  135. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/base_generator.py +0 -0
  136. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/fticr_generator.py +0 -0
  137. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/linear_generator.py +0 -0
  138. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/linear_tof_generator.py +0 -0
  139. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/orbitrap_generator.py +0 -0
  140. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/reflector_tof_generator.py +0 -0
  141. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/tof_generator.py +0 -0
  142. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/memory_guard.py +0 -0
  143. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mobility_grid.py +0 -0
  144. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/plan.py +0 -0
  145. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/__init__.py +0 -0
  146. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/base.py +0 -0
  147. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/nearest_neighbor.py +0 -0
  148. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/tic_preserving.py +0 -0
  149. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/tic.py +0 -0
  150. {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/types.py +0 -0
  151. {thyra-4.6.1 → thyra-4.6.2}/thyra/tools/__init__.py +0 -0
  152. {thyra-4.6.1 → thyra-4.6.2}/thyra/tools/check_ontology.py +0 -0
  153. {thyra-4.6.1 → thyra-4.6.2}/thyra/tools/make_example_data.py +0 -0
  154. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/__init__.py +0 -0
  155. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/bruker_exceptions.py +0 -0
  156. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/imzml_coordinate_base.py +0 -0
  157. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/imzml_spectrum_terms.py +0 -0
  158. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/logging_config.py +0 -0
  159. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/ms_levels.py +0 -0
  160. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/output_files.py +0 -0
  161. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/pyimzml_direct.py +0 -0
  162. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/store_lifecycle.py +0 -0
  163. {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/windows_paths.py +0 -0
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: thyra
3
- Version: 4.6.1
3
+ Version: 4.6.2
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
  Project-URL: Homepage, https://github.com/M4i-Imaging-Mass-Spectrometry/thyra
6
6
  Project-URL: Repository, https://github.com/M4i-Imaging-Mass-Spectrometry/thyra
7
7
  Project-URL: Documentation, https://M4i-Imaging-Mass-Spectrometry.github.io/thyra/
8
- Project-URL: Paper, https://doi.org/10.1021/jasms.6c00169
8
+ Project-URL: Paper, https://doi.org/10.1038/s41592-026-03305-5
9
+ Project-URL: Paper (JASMS), https://doi.org/10.1021/jasms.6c00169
9
10
  Project-URL: Bug Tracker, https://github.com/M4i-Imaging-Mass-Spectrometry/thyra/issues
10
11
  Project-URL: Discussions, https://github.com/M4i-Imaging-Mass-Spectrometry/thyra/discussions
11
12
  Project-URL: Changelog, https://github.com/M4i-Imaging-Mass-Spectrometry/thyra/blob/main/CHANGELOG.md
@@ -223,7 +224,15 @@ MIT -- see [LICENSE](LICENSE).
223
224
 
224
225
  ## Citation
225
226
 
226
- If you use Thyra, please cite the paper:
227
+ If you use Thyra, please cite:
228
+
229
+ > Visvikis, T.; Hendriks, T. F. E.; Vierdag, W.-M.; Marconato, L.; Heeren, R. M. A.;
230
+ > Cuypers, E. Thyra: bridging mass spectrometry imaging and SpatialData for
231
+ > unified multimodal analysis. *Nat. Methods* **2026**.
232
+ > [doi:10.1038/s41592-026-03305-5](https://doi.org/10.1038/s41592-026-03305-5)
233
+
234
+ If your work relies on how Thyra reads vendor files or keeps memory bounded
235
+ while converting, please also cite:
227
236
 
228
237
  > Visvikis, T.; Vierdag, W.-M.; Marconato, L.; Birmpili, A.; Heeren, R. M. A.;
229
238
  > Cuypers, E. Native, Memory-Bounded Conversion of Mass Spectrometry Imaging
@@ -231,39 +240,19 @@ If you use Thyra, please cite the paper:
231
240
  > *37* (10), 2379-2387.
232
241
  > [doi:10.1021/jasms.6c00169](https://doi.org/10.1021/jasms.6c00169)
233
242
 
234
- ```bibtex
235
- @article{visvikis2026thyra,
236
- title = {Native, Memory-Bounded Conversion of Mass Spectrometry Imaging Data into the {SpatialData} Ecosystem},
237
- author = {Visvikis, Theodoros and Vierdag, Wouter-Michiel and Marconato, Luca and Birmpili, Angeliki and Heeren, Ron M. A. and Cuypers, Eva},
238
- journal = {Journal of the American Society for Mass Spectrometry},
239
- year = {2026},
240
- volume = {37},
241
- number = {10},
242
- pages = {2379--2387},
243
- doi = {10.1021/jasms.6c00169}
244
- }
245
- ```
246
-
247
- The same entry is in [CITATION.cff](CITATION.cff), which GitHub's "Cite this
248
- repository" button reads. To cite the software itself:
249
-
250
- ```bibtex
251
- @software{thyra2024,
252
- title = {Thyra: Modern Mass Spectrometry Imaging Data Conversion},
253
- author = {Visvikis, Theodoros},
254
- year = {2024},
255
- url = {https://github.com/M4i-Imaging-Mass-Spectrometry/thyra}
256
- }
257
- ```
243
+ BibTeX for both is in [CITATION.bib](CITATION.bib). GitHub's "Cite this
244
+ repository" button reads [CITATION.cff](CITATION.cff), which shows the Nature
245
+ Methods paper and lists the JASMS paper under its references.
258
246
 
259
247
  ### Papers
260
248
 
261
249
  | Paper | Published | DOI |
262
250
  |---|---|---|
251
+ | Thyra: bridging mass spectrometry imaging and SpatialData for unified multimodal analysis (*Nat. Methods*) | 2026-10 | [10.1038/s41592-026-03305-5](https://doi.org/10.1038/s41592-026-03305-5) |
263
252
  | Native, Memory-Bounded Conversion of Mass Spectrometry Imaging Data into the SpatialData Ecosystem (*J. Am. Soc. Mass Spectrom.*) | 2026-09 | [10.1021/jasms.6c00169](https://doi.org/10.1021/jasms.6c00169) |
264
253
  | Thyra: Bridging Mass Spectrometry Imaging and SpatialData for Unified Multi-Modal Analysis (bioRxiv preprint) | 2026-01 | [10.64898/2026.01.26.700792](https://doi.org/10.64898/2026.01.26.700792) |
265
254
 
266
- Ion mobility and MS/MS support came after both papers. If you use them,
255
+ Ion mobility and MS/MS support came after the JASMS paper and the preprint. If you use them,
267
256
  please also name the Thyra version you used.
268
257
 
269
258
  ## Acknowledgments
@@ -169,7 +169,15 @@ MIT -- see [LICENSE](LICENSE).
169
169
 
170
170
  ## Citation
171
171
 
172
- If you use Thyra, please cite the paper:
172
+ If you use Thyra, please cite:
173
+
174
+ > Visvikis, T.; Hendriks, T. F. E.; Vierdag, W.-M.; Marconato, L.; Heeren, R. M. A.;
175
+ > Cuypers, E. Thyra: bridging mass spectrometry imaging and SpatialData for
176
+ > unified multimodal analysis. *Nat. Methods* **2026**.
177
+ > [doi:10.1038/s41592-026-03305-5](https://doi.org/10.1038/s41592-026-03305-5)
178
+
179
+ If your work relies on how Thyra reads vendor files or keeps memory bounded
180
+ while converting, please also cite:
173
181
 
174
182
  > Visvikis, T.; Vierdag, W.-M.; Marconato, L.; Birmpili, A.; Heeren, R. M. A.;
175
183
  > Cuypers, E. Native, Memory-Bounded Conversion of Mass Spectrometry Imaging
@@ -177,39 +185,19 @@ If you use Thyra, please cite the paper:
177
185
  > *37* (10), 2379-2387.
178
186
  > [doi:10.1021/jasms.6c00169](https://doi.org/10.1021/jasms.6c00169)
179
187
 
180
- ```bibtex
181
- @article{visvikis2026thyra,
182
- title = {Native, Memory-Bounded Conversion of Mass Spectrometry Imaging Data into the {SpatialData} Ecosystem},
183
- author = {Visvikis, Theodoros and Vierdag, Wouter-Michiel and Marconato, Luca and Birmpili, Angeliki and Heeren, Ron M. A. and Cuypers, Eva},
184
- journal = {Journal of the American Society for Mass Spectrometry},
185
- year = {2026},
186
- volume = {37},
187
- number = {10},
188
- pages = {2379--2387},
189
- doi = {10.1021/jasms.6c00169}
190
- }
191
- ```
192
-
193
- The same entry is in [CITATION.cff](CITATION.cff), which GitHub's "Cite this
194
- repository" button reads. To cite the software itself:
195
-
196
- ```bibtex
197
- @software{thyra2024,
198
- title = {Thyra: Modern Mass Spectrometry Imaging Data Conversion},
199
- author = {Visvikis, Theodoros},
200
- year = {2024},
201
- url = {https://github.com/M4i-Imaging-Mass-Spectrometry/thyra}
202
- }
203
- ```
188
+ BibTeX for both is in [CITATION.bib](CITATION.bib). GitHub's "Cite this
189
+ repository" button reads [CITATION.cff](CITATION.cff), which shows the Nature
190
+ Methods paper and lists the JASMS paper under its references.
204
191
 
205
192
  ### Papers
206
193
 
207
194
  | Paper | Published | DOI |
208
195
  |---|---|---|
196
+ | Thyra: bridging mass spectrometry imaging and SpatialData for unified multimodal analysis (*Nat. Methods*) | 2026-10 | [10.1038/s41592-026-03305-5](https://doi.org/10.1038/s41592-026-03305-5) |
209
197
  | Native, Memory-Bounded Conversion of Mass Spectrometry Imaging Data into the SpatialData Ecosystem (*J. Am. Soc. Mass Spectrom.*) | 2026-09 | [10.1021/jasms.6c00169](https://doi.org/10.1021/jasms.6c00169) |
210
198
  | Thyra: Bridging Mass Spectrometry Imaging and SpatialData for Unified Multi-Modal Analysis (bioRxiv preprint) | 2026-01 | [10.64898/2026.01.26.700792](https://doi.org/10.64898/2026.01.26.700792) |
211
199
 
212
- Ion mobility and MS/MS support came after both papers. If you use them,
200
+ Ion mobility and MS/MS support came after the JASMS paper and the preprint. If you use them,
213
201
  please also name the Thyra version you used.
214
202
 
215
203
  ## Acknowledgments
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "thyra"
7
- version = "4.6.1"
7
+ version = "4.6.2"
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 = [{ name = "Theodoros Visvikis", email = "t.visvikis@maastrichtuniversity.nl" }]
10
10
  maintainers = [{ name = "Theodoros Visvikis", email = "t.visvikis@maastrichtuniversity.nl" }]
@@ -241,14 +241,15 @@ dependencies = [
241
241
  # Floor is scikit-image's own, which is also comfortably above the 9.5
242
242
  # that `Image.has_transparency_data` needs; no upper bound, nothing here
243
243
  # has tested one.
244
- "pillow>=10.1", # tested 12.3.0
244
+ "pillow>=10.1", # tested 13.0.0
245
245
  ]
246
246
 
247
247
  [project.urls]
248
248
  Homepage = "https://github.com/M4i-Imaging-Mass-Spectrometry/thyra"
249
249
  Repository = "https://github.com/M4i-Imaging-Mass-Spectrometry/thyra"
250
250
  Documentation = "https://M4i-Imaging-Mass-Spectrometry.github.io/thyra/"
251
- Paper = "https://doi.org/10.1021/jasms.6c00169"
251
+ Paper = "https://doi.org/10.1038/s41592-026-03305-5"
252
+ "Paper (JASMS)" = "https://doi.org/10.1021/jasms.6c00169"
252
253
  "Bug Tracker" = "https://github.com/M4i-Imaging-Mass-Spectrometry/thyra/issues"
253
254
  Discussions = "https://github.com/M4i-Imaging-Mass-Spectrometry/thyra/discussions"
254
255
  Changelog = "https://github.com/M4i-Imaging-Mass-Spectrometry/thyra/blob/main/CHANGELOG.md"
@@ -70,7 +70,7 @@ warnings.filterwarnings(
70
70
  category=FutureWarning,
71
71
  )
72
72
 
73
- __version__ = "4.6.1"
73
+ __version__ = "4.6.2"
74
74
 
75
75
  #: Public name -> the module that defines it, imported on first access.
76
76
  _LAZY_ATTRS = {
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
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