rosettasciio
Reading and writing scientific file formats
What it is and what it does
RosettaSciIO is a scientific data input/output library that translates between many file formats used in research, particularly in electron microscopy and spectroscopy. It was spun out from the HyperSpy project and provides a unified interface for reading and writing data: files are loaded as Python dictionaries containing datasets, axes, and metadata, making them easy to pass to other analysis tools in the scientific Python ecosystem.
The library supports a large range of formats (dm3, dm4, hdf5, mrc, msa, and many others), with particularly strong coverage of electron microscopy formats. It depends on standard scientific Python packages—numpy, dask, pint for units, and others—and runs on current Python versions (3.10 through 3.14). The API is still stabilizing after the recent split from HyperSpy.
Use it for:
- Load electron microscopy data (dm3, dm4, mib files) into Python for analysis with other tools.
- Convert between incompatible scientific file formats (e.g., msa to hdf5) without manual parsing.
- Read spectroscopy or microscopy metadata and axes alongside raw data in a single dictionary structure.
- Build data pipelines that ingest multiple scientific formats and pass them to dask for distributed processing.
- Integrate file I/O into research workflows that need to handle formats from different instruments or labs.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
RosettaSciIO reads and writes scientific data files across many formats—particularly those used in electron microscopy and spectroscopy—returning datasets, axes, and metadata as Python dictionaries for use with other analysis libraries.
Yes, if you work with scientific data files—especially electron microscopy or spectroscopy formats. Low install friction, active maintenance, and no known vulnerabilities. The copyleft license is fine for research and open-source work but requires checking if you're building proprietary software. The API is still in Beta after recent separation, so expect some refinement, but the library is actively developed.
Install
rosettasciio on PyPI
pip
pip install rosettasciiouv
uv add rosettasciiopoetry
poetry add rosettasciioInstalling rosettasciio
Before you install
Low friction: pure Python wheel, six runtime dependencies (dask, numpy, pint, python-dateutil, python-box, pyyaml) that are themselves well-established. Active maintenance with recent commits; still in Beta status but actively developed.
License in practice
GPL-3.0-or-later copyleft license: any code that links this library must be distributed under a compatible open-source license. Acceptable for research and open-source projects; check compatibility if integrating into proprietary software.
Quickstart
pip install rosettasciio
from rosettasciio import msa
data = msa.file_reader("your_msa_file.msa")
Requires Python 3.10 or later.
Verify before relying
- Completeness and stability of the new API after recent split from HyperSpy—whether all planned readers/writers are implemented.
- Performance characteristics when handling large datasets or many file formats in sequence.
- Extent of format coverage beyond electron microscopy (e.g., how well general scientific formats are supported).
Package facts
| License | GPL-3.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — dask, python-dateutil, numpy, pint, python-box, pyyaml |
| Maintenance | actively maintained — 79 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 77,919/month — #14,481 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: rosettasciio-0.14.0-py3-none-any.whl
Keywords: electron microscopy, hyperspy, input/output, io, microscopy, scientific data formats, spectroscopy, numpy, python, scipy, app5, asw, blo, bcf, de5, dens, dm3, dm4, eds, elid, emd, emi, hdf5, hspy, img, itex, map, mib, mrc, mrcz, msa, nxs, prz, pts, rpl, ser, spc, sur, spx, tvf, tvips, unf, usid, wdf, zspy
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
mrcfilemrcfile reads and writes MRC2014 format files…
permissive · top 15,000 on PyPI
edn-formatReads and writes EDN (Extensible Data Notation)…
permissive · top 5,000 on PyPI
libhreelsLibhreels reads, analyzes, and simulates…
unclear · top 15,000 on PyPI
silxsilx provides Python tools for reading,…
permissive · top 15,000 on PyPI
fabioFabIO reads and writes 2D X-ray detector images…
permissive · top 15,000 on PyPI
h5pyh5py reads and writes HDF5 files from Python,…
permissive · top 1,000 on PyPI
gemmiGemmi is a C++ library with Python bindings for…
copyleft · top 5,000 on PyPI
ome-zarrReads and writes multi-resolution images stored…
permissive · top 15,000 on PyPI
specutilsSpecutils provides Python representations of…
permissive · top 15,000 on PyPI
pymatreaderReads MATLAB .mat files in both legacy and…
permissive · top 15,000 on PyPI