Skip to main content

2D Multi-Modal Data Fusion for Electron Microscopy

Fused multi-modal electron microscopy, a combines elastic scattering (HAADF) and inelastic spectroscopic signals (EELS/EDX) to recover high signal-to-noise ratio chemical maps at nano- and atomic-resolution.

By linking simultaneously acquired modalities through regularized optimization, the method can reduce dose requirements by over one order of magnitude while substantially improving SNR for chemical maps.

Installation

The package is available on PyPI:

pip install multimodal-fusion

For local development, clone the repository and install in editable mode:

git clone https://github.com/jtschwar/Multi-Modal-2D-Data-Fusion.git --recursive
cd Multi-Modal-2D-Data-Fusion
pip install -e . 

Quick Start

from multimodal_fusion import DataFusion

# Initialize fusion with list of elements
elements = ['Co', 'S', 'O']
fusion = DataFusion(elements)

# Load your chemical maps
# Provide as a dictionary where keys match your element list
# This helper function loads starter data from github
cobalt_map, sulfur_map, oxygen_map, haadf_im = fusion.load_edx_example()
chemical_maps = {
    'Co': cobalt_map,      # 2D numpy arrays
    'S': sulfur_map, 
    'O': oxygen_map
}
fusion.load_chemical_maps(chemical_maps)

# Load the simultaneously acquired HAADF image
fusion.load_haadf(haadf_im)  # 2D numpy array

# Run the fusion algorithm 
# We can adjust with regularization parameters
fusion.run(
    nIter=50, 
    lambdaEDS = 0.005, lambdaTV=0.1,
    plot_images=True, plot_convergence=True)

# Get results in dictionary format
results = fusion.get_results()
fused_cobalt = results['Co']
fused_sulfur = results['S']

Documentation

A comprehensive tutorial for learning how to adjust the hyperparameters is available: J. Manassa, M. Shah, et. al. "Fused Multi-Modal Electron Microscopy - A Beginner's Guide, Elemental Microscopy (2024).

Citation

If you use any of the data and source codes in your publications and/or presentations, we request that you cite our papers:

J. Schwartz, Z.W. Di, et. al., "Imaging atomic-scale chemistry from fused multi-modal electron microscopy", npj Comput. Mater. 8, 16 (2022).

A tutorial for learning how to adjust the hyper-parameters is also available here: J. Manassa, M. Shah, et. al. "Fused Multi-Modal Electron Microscopy - A Beginner's Guide, Elemental Microscopy (2024).

Metadata

Release files for multimodal-fusion 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multimodal-fusion 0.6.0
File Size Uploaded
multimodal_fusion-0.6.0.tar.gz 1.6 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for multimodal-fusion 0.6.0
File
multimodal_fusion-0.6.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
multimodal_fusion-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
multimodal_fusion-0.6.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
multimodal_fusion-0.6.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
multimodal_fusion-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
multimodal_fusion-0.6.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
multimodal_fusion-0.6.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
multimodal_fusion-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
multimodal_fusion-0.6.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
multimodal_fusion-0.6.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
multimodal_fusion-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
multimodal_fusion-0.6.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
multimodal_fusion-0.6.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
multimodal_fusion-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
multimodal_fusion-0.6.0-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details

Total release size: 3.3 MB

Release files / multimodal_fusion-0.6.0.tar.gz

Download URL multimodal_fusion-0.6.0.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
75ab6bf170bc89cc805a5794343d13f206af0d7285fe9aa5c0a8a236055798f7
BLAKE2b-256 checksum
How to use checksums
72c07ff28f3260b78ab38874c84420dbc0eefc89f93d682cae93ab176e59066e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp312-cp312-win_amd64.whl

Download URL multimodal_fusion-0.6.0-cp312-cp312-win_amd64.whl
Size 92.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
054baca0687c6fc86484d6053f9264ec199925f7e8021fd0c91716ed5dd21134
BLAKE2b-256 checksum
How to use checksums
e76f3c16ee2d8e8f07f153194f3fcc6e3cf2e789312bfacc98bff6d9e7495b88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL multimodal_fusion-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 147.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
61ff1d8b06c455f7f23c3005f22724c0386c8d23c87eb3a66f136266c4f7ebfd
BLAKE2b-256 checksum
How to use checksums
fffa13396b10fc0fa6b0af170decf0d1e5f3012da44be05b94a6ad7e43435b60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL multimodal_fusion-0.6.0-cp312-cp312-macosx_11_0_arm64.whl
Size 100.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d7294658ce6e034aff4b38ef10ef69ead0700a6b61a6385d593a1b2d1293ee6a
BLAKE2b-256 checksum
How to use checksums
100639dc8aba97f8446f6e97a283d51417423b41a729d4398fc573c2096c661e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp311-cp311-win_amd64.whl

Download URL multimodal_fusion-0.6.0-cp311-cp311-win_amd64.whl
Size 91.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2f14e4eb109709c1d44bd0ebcaccc53b71d43a230004b11ac955b754b20b7c6a
BLAKE2b-256 checksum
How to use checksums
3f1cc168a74eda5289a177461da9a8702e83b6f72f69dd99446bfe07a5a9a1ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL multimodal_fusion-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 146.5 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
995216588685c5acdf41c7846a49ba2a9eb80db222ab15b1cf84e01b604ed326
BLAKE2b-256 checksum
How to use checksums
b9233353f2d2eaa3476f3944125adec09979c1503de067057e6c2436f1526826
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL multimodal_fusion-0.6.0-cp311-cp311-macosx_11_0_arm64.whl
Size 99.6 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
88b2aa4e00ae7acbd4ecab6d4ea76177abd2a0c178dd105be19febcb2fdbc452
BLAKE2b-256 checksum
How to use checksums
986b280a57f3b3f4a612bf079075810eea6e870a68b929205537338bfcbc8ba4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp310-cp310-win_amd64.whl

Download URL multimodal_fusion-0.6.0-cp310-cp310-win_amd64.whl
Size 90.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
bea82aaffe0719b6aec6c3e504d1689ff92545e480c7d0e278f233bf8abd4bc3
BLAKE2b-256 checksum
How to use checksums
b4a784632c90fd60ca88886e3730632b1325f3f45707c7ac9f8f3169fe67e647
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL multimodal_fusion-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 145.3 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f6af4f2d89c125516e7c99cf272e07d3ad56d12e8fc45fda2cd8a41db249e3e3
BLAKE2b-256 checksum
How to use checksums
fdfc5ae78a1d813f6db454b98cba32728010fb517f1d3d465e90f6b04684bd3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL multimodal_fusion-0.6.0-cp310-cp310-macosx_11_0_arm64.whl
Size 97.9 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4a288bbaba6ea8d1de6fa7467210603a72222593e6e23a6391fcf6cdea915703
BLAKE2b-256 checksum
How to use checksums
7d70ba2c289b99f29fcfd0ddb35b7bf02169cac6b2f6f4964d156b9e234ab7f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp39-cp39-win_amd64.whl

Download URL multimodal_fusion-0.6.0-cp39-cp39-win_amd64.whl
Size 91.5 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
432a96d74f862b08ee318dcbb885f3ef6ee8d621cb9628a8704bf9cc3bb23799
BLAKE2b-256 checksum
How to use checksums
9becfeb9165d4472a26572addb010fc7710dbcae9eac0de93a7ea04981862435
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL multimodal_fusion-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 145.7 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
46e1b49314506ec3652361891d7d0ffa4923bdf503e44e5602e93874db6abf3d
BLAKE2b-256 checksum
How to use checksums
00663c71fa562fdc1674781ef426485f84a441f6c3e56f143d46ef7d64c28a02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL multimodal_fusion-0.6.0-cp39-cp39-macosx_11_0_arm64.whl
Size 98.0 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c56fef7cda26bd5d559050707e471819c4b6f2d41373ac3ba61309e9ad182cd1
BLAKE2b-256 checksum
How to use checksums
983e99eaacc68c5681b5b5b6e35855089b7ca13d3a35f038c3e8539584b51fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp38-cp38-win_amd64.whl

Download URL multimodal_fusion-0.6.0-cp38-cp38-win_amd64.whl
Size 90.2 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
0d1f220a0f72a261e16fceca06eb899bf6f1f58001c5a462779be59e2451b908
BLAKE2b-256 checksum
How to use checksums
387ebf8248b7d7b8065df990ac5364b5df70ee69197111e80f48fd5768c43455
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL multimodal_fusion-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 144.9 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4fd271078c36d38bde48dfd6ffe3d1fe5376177f24beb8d9b5226291e6af899f
BLAKE2b-256 checksum
How to use checksums
aee8b2911e4bc577cc866bfb10301cf7455bc95677886f6104cb759e358d787c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release files / multimodal_fusion-0.6.0-cp38-cp38-macosx_11_0_arm64.whl

Download URL multimodal_fusion-0.6.0-cp38-cp38-macosx_11_0_arm64.whl
Size 97.7 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2f6f7f24a1a483e193e2f28180155a06953714aeac947f0d29b501df00a01006
BLAKE2b-256 checksum
How to use checksums
5abd79912682ad918a6ef2d82fa8b62e44a1cf18efa77edc47c80f7d35971032
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

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 Jul 26, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

16 release files

0.5.0

16 release files

0.3.0

15 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page