EMDataBridge
A bridge between electron microscopy data formats, and the researcher identity shared by the NUANCE tools.
Created by Roberto dos Reis (@rmsreis) · NUANCE Center, Northwestern University
- Identity: ORCID-validated researcher identity with an Ed25519 signing key. NUScope, NUScope-TOMO and NUANCE-MCP use it to sign data, so a file can prove who acquired, processed or approved it
- Format Standardizer: Standardize various electron microscopy data formats to a common schema
- Format Translator: Convert between different electron microscopy data formats
- Metadata Discovery: Automatically discover and extract self-describing data organization from electron microscopy files
Installation
pip install EMDataBridge # identity layer (light: numpy, pyyaml, cryptography)
pip install "EMDataBridge[tools,io]" # + standardize / translate / discover
pip install "EMDataBridge[all]" # + transformers and HyperSpy
Identity: ORCID and signing key
emdb identity create "Your Name" --orcid 0000-0002-1825-0097 # once; the ORCID check digit is validated
emdb identity show
emdb identity export me.json # public part only: share it with collaborators or the facility
emdb identity trust colleague.json # trust someone else's key
emdb identity list
emdb identity check-orcid 0000-0002-1825-0097
from EMDataBridge import identity
me = identity.me() # name, ORCID, key fingerprint
entry = identity.sign({"seal": "<sha256>"}, role="author")
identity.verify({"seal": "<sha256>"}, entry) # Check(valid=True, trusted=True, signer={...})
- The private key is stored in
~/.emdatabridge/identity/(or$EMDATABRIDGE_HOME), readable only by you. SetEMDATABRIDGE_KEY_PASSPHRASEto keep it encrypted. Back it up: a lost key cannot sign again, but everything it signed stays verifiable, because each signature carries the public key. - A signature covers the signed claims and the signer record (name, ORCID, key fingerprint, role, time), so none of them can be changed afterwards.
- Keys created by NUScope 0.3 (
~/.nuscope/keys) are imported automatically on first use. The originals are left in place.
Usage
See the documentation for each tool in their respective modules:
standardizer.py- Standardize data formatstranslator.py- Translate between formatsdiscovery.py- Discover self-describing data organization
Supported Formats
- MRC (Medical Research Council)
- EM (Electron Microscopy)
- DM3/DM4 (Digital Micrograph)
- TIF/TIFF with metadata
- HDF5/Zarr-based formats
- MSA (EMSA format)
- EMD (Thermo Fisher Scientific's electron microscopy data format, formerly FEI)
- SER (Thermo Fisher Scientific's TIA series data format, formerly FEI)
- SerialEM formats
- Oxford Instruments formats (AZtec, INCA)
- Hitachi formats (.hds, .tif with metadata)
- Thermo Fisher Scientific formats (formerly FEI)
Requirements
See requirements.txt for dependencies.
Benchmarking
The package includes benchmarking tools to measure performance of format conversions and metadata extraction.
Running Benchmarks
# Run the sample benchmark suite
python run_benchmarks.py
# Run specific benchmarks using the benchmark module
python benchmark.py standardize --files sample_data/*.tif --output-dir benchmark_results
python benchmark.py translate --files sample_data/*.dm4 --formats tiff hdf5 mrc --output-dir benchmark_results
python benchmark.py batch --input-dir sample_data --formats tiff emd ser --output-dir benchmark_results
# Run a full benchmark suite
python benchmark.py full --files sample_data/*.* --formats tiff hdf5 emd ser --input-dir sample_data --output-dir benchmark_results
Benchmark Reports
Benchmark results are saved as JSON files in the output directory, along with visualizations showing performance metrics for different formats and operations.
Metadata
Release files for EMDataBridge 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| emdatabridge-0.1.0.tar.gz | 35.5 kB | With provenance | Details for emdatabridge-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| emdatabridge-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for emdatabridge-0.1.0-py3-none-any.whl |
Total release size: 72.7 kB
Release files / emdatabridge-0.1.0.tar.gz
| Download URL | emdatabridge-0.1.0.tar.gz |
|---|---|
| Size | 35.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b641fbaca309cde0fb0785ae8c6958f0b968f11db915f9ba364ece62c4feacdb
|
|
BLAKE2b-256 checksum How to use checksums |
c64725e26653caa55325a52a09930f2654ae7bf65fe961a893b45439fdf3241b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / emdatabridge-0.1.0-py3-none-any.whl
| Download URL | emdatabridge-0.1.0-py3-none-any.whl |
|---|---|
| Size | 37.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3284e7e734918dbb48c9c7b3cf87a74aedd5a4efacfc79721293825979e8cbb0
|
|
BLAKE2b-256 checksum How to use checksums |
caefc95464b56ced824f4ce6f61bcd5d46aae8c14b9360c46ad1c37418cf647a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logSecurity for EMDataBridge 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for emdatabridge-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.