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.
- {thyra-4.6.1 → thyra-4.6.2}/PKG-INFO +17 -28
- {thyra-4.6.1 → thyra-4.6.2}/README.md +14 -26
- {thyra-4.6.1 → thyra-4.6.2}/pyproject.toml +4 -3
- {thyra-4.6.1 → thyra-4.6.2}/thyra/__init__.py +1 -1
- {thyra-4.6.1 → thyra-4.6.2}/.gitignore +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/LICENSE +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/__main__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/alignment/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/alignment/affine.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/alignment/teaching_points.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/config.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/convert.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/_chunking.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/acquisition_frame.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/base_spatialdata_converter.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/converter.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/csc_assembly.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/fused_passes.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/mobility_heatmap.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/mobility_table.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/msms_table.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/optical_image.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/root_attrs.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/sibling_tables.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/streaming_converter.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/converters/spatialdata/uns_assembler.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/base_converter.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/base_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/base_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/conversion_state.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/drop_tally.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/frames.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/mass_axis.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/mobility.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/msms.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/positions.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/region_map.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/core/registry.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/errors.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/mass_axis_plan.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/constants.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/document.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/bruker_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/imzml_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/imzml_header_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/mzpeak_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/phi_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/solarix_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/extractors/waters_extractor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/_ims.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/_ms.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/_uo.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/cache.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/ontology/dump_obo_files.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/personal_data.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/axis_fingerprint.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/builder.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/cli.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/generate.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/metaspace.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/models.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/msi_metadata.linkml.yaml +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/msi_metadata_schema_v0_14.json +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/store_io.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/validate.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/schema/vocab.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/types.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/uns_compat.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/metadata/validator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/preview.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/py.typed +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/reader_options.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/base_bruker_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/folder_structure.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/mis_parser.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/rapiflex/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/rapiflex/rapiflex_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/solarix/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/solarix/solarix_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/LICENCE-BRUKER.txt +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/README.md +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/timsdata.dll +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll/timsdata.so +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/dll_manager.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/platform_detector.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/sdk/sdk_functions.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/timstof/timstof_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/bruker/vendor_db.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/_pyimzml_compat.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/header.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/imzml_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/imzml/mobility_array.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/mzpeak/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/mzpeak/chunk_decoding.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/mzpeak/mzpeak_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/event_stream.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/mass_axis.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/phi_header.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/phi/phi_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/imaging_grid.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/instrument.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/MLReader.dll +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/MassLynxRaw.dll +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/libMLReader.so +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lib/libMassLynxRaw.so +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/lockmass.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/masslynx_lib.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/readers/waters/waters_reader.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/regions.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/axis_planner.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/binning.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/common_axis.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/constants.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/data_characteristics.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/decision_tree.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/gaps.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/instrument_detectors.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/interpolation.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/base_generator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/fticr_generator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/linear_generator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/linear_tof_generator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/orbitrap_generator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/reflector_tof_generator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mass_axis/tof_generator.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/memory_guard.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/mobility_grid.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/plan.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/base.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/nearest_neighbor.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/strategies/tic_preserving.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/tic.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/resampling/types.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/tools/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/tools/check_ontology.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/tools/make_example_data.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/__init__.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/bruker_exceptions.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/imzml_coordinate_base.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/imzml_spectrum_terms.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/logging_config.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/ms_levels.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/output_files.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/pyimzml_direct.py +0 -0
- {thyra-4.6.1 → thyra-4.6.2}/thyra/utils/store_lifecycle.py +0 -0
- {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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|