From c6538dc6c8e8f9b00a815b4e90d6b4c43c533094 Mon Sep 17 00:00:00 2001 From: arthurmccray Date: Wed, 22 Jul 2026 22:16:42 -0700 Subject: [PATCH 01/10] updating readme, adding/renaming CONTRIBUTING and CONTRIBUTORS --- CONTRIBUTING.md | 49 +++++++++++++++++++++++++++++++++++ CONTRIBUTORS.md | 52 ++++++++++++++++--------------------- README.md | 53 ++++++++++++++++++++++++++++++++++---- media/.placeholder | 0 media/quantem_logo_53.png | Bin 0 -> 94032 bytes 5 files changed, 119 insertions(+), 35 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 media/.placeholder create mode 100644 media/quantem_logo_53.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..670ce9f6c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,49 @@ +# Contributing to quantem + +Thanks for your interest in improving quantem! Bug reports, feature requests, and pull requests are all welcome. + +## Contribution workflow + +- Open an [issue](https://github.com/electronmicroscopy/quantem/issues) to report a bug or discuss a feature before starting larger work. +- Fork the repository and create a feature branch off the appropriate base branch (`dev` for most work or ask a maintainer if you are unsure). +- Make your changes, keeping them formatted and linted (see below), and add tests where it makes sense. +- Push to your fork and open a pull request against `electronmicroscopy/quantem`. + +## Development setup + +We use [uv](https://docs.astral.sh/uv/) to manage the package. + +Getting started: + +- [install uv](https://docs.astral.sh/uv/getting-started/installation/) +- `git clone` the repo and `cd` into the directory +- run `uv sync` to install all the dependencies in an editable environment +- run `uv sync --all-packages` to also install `quantem.widget` (optional) + +For widget developers (requires [Node.js](https://nodejs.org/)): + +- `cd widget && npm install` to install JS dependencies +- `npm run build` to build the widget +- `npm run dev` to watch for changes during development + +The following will set up the pre-commit and [ruff](https://github.com/astral-sh/ruff) for linting and formatting. These commands only need to be run once when first setting up your dev environment: + +- `uv tool install pre-commit` +- `uv tool install ruff` +- `pre-commit install` + +Once these have been installed, the `.pre-commit-config.yaml` file will be run when trying to `git commit`. Errors that cannot be auto-fixed will be listed and you will have to resolve them before committing. In many cases you will get a warning that the formatting and auto-fixes have been applied; you can stage the changes for commit with `git add -u` and the pre-commit should allow you to commit your changes. + +Dependency management: + +- use `uv add package_name` to add dependencies +- use `uv remove package_name` to remove dependencies +- use `uv add dev_package_name --dev` to add a dev dependency, i.e. that devs need (e.g. pytest) but you don't want shipped to users +- use `uv pip install testing_package_name` to install a package you think you might need, but don't want to add to dependencies just yet + +Running python/scripts in environment: + +- use `uv run python`, `uv run jupyterlab` etc. to automatically activate the environment and run your command +- alternatively use `source .venv/bin/activate` to explicitly activate environment and use `python`, `jupyterlab` etc. as usual + - note that if you're using an IDE like VS Code, it probably activates the environment automatically + diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 993a6a034..a6f1c0f29 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,38 +1,30 @@ -# Developer Instructions +# Contributors -We use [uv](https://docs.astral.sh/uv/) to manage the package. +quantem is developed by researchers and students across the electron microscopy community. +Thank you to everyone who has contributed code, ideas, bug reports, and tutorials. -Getting started: +## Core developers -- [install uv](https://docs.astral.sh/uv/getting-started/installation/) -- `git clone` the repo and `cd` into the directory -- run `uv sync` to install all the dependencies in an editable environment -- run `uv sync --all-packages` to also install `quantem.widget` (optional) +- [Arthur McCray](https://github.com/arthurmccray) +- [Colin Ophus](https://github.com/cophus) +- [Stephanie Ribet](https://github.com/smribet) +- [Georgios Varnavides](https://github.com/gvarnavi) -For widget developers (requires [Node.js](https://nodejs.org/)): +## Contributors -- `cd widget && npm install` to install JS dependencies -- `npm run build` to build the widget -- `npm run dev` to watch for changes during development +- [Karen Ehrhardt](https://github.com/ehrhardtkm) +- [Matthew Feickert](https://github.com/matthewfeickert) +- [Carter Francis](https://github.com/CSSFrancis) +- [Sangjoon Bob Lee](https://github.com/bobleesj) +- [Cedric Lim](https://github.com/cedriclim1) +- [Darshan Mali](https://github.com/darshan-mali) +- [Nicholas Marchese](https://github.com/NJMarchese) +- [Will Millsaps](https://github.com/wwmills) -The following will set up the pre-commit and [ruff](https://github.com/astral-sh/ruff) for linting and formatting. These commands only need to be run once when first setting up your dev environment: +For the complete, always-up-to-date list of everyone who has contributed, +see the [GitHub contributors graph](https://github.com/electronmicroscopy/quantem/graphs/contributors). -- `uv tool install pre-commit` -- `uv tool install ruff` -- `pre-commit install` +--- -Once these have been installed, the `.pre-commit-config.yaml` file will be run when trying to `git commit`. Errors that cannot be auto-fixed will be listed and you will have to resolve them before committing. In many cases you will get a warning that the formatting and auto-fixes have been applied; you can stage the changes for commit with `git add -u` and the pre-commit should allow you to commit your changes. - -Dependency management: - -- use `uv add package_name` to add dependencies -- use `uv remove package_name` to remove dependencies -- use `uv add dev_package_name --dev` to add a dev dependency, i.e. that devs need (e.g. pytest) but you don't want shipped to users -- use `uv pip install testing_package_name` to install a package you think you might need, but don't want to add to dependencies just yet - -Running python/scripts in environment: - -- use `uv run python`, `uv run jupyterlab` etc. to automatically activate the environment and run your command -- alternatively use `source .venv/bin/activate` to explicitly activate environment and use `python`, `jupyterlab` etc. as usual - - note that if you're using an IDE like VS Code, it probably activates the environment automatically - +This list is maintained by hand and grouped by contribution history — if your nameis missing, +listed incorrectly, or you would like it shown differently, please open a pull request or issue. \ No newline at end of file diff --git a/README.md b/README.md index f08b9ed06..cbc43ebcf 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,57 @@ +![quantem logo](https://raw.githubusercontent.com/electronmicroscopy/quantem/main/media/quantem_logo_53.png) + # quantem -This is the home repository for the quantitative electron microscopy (quantem) data analysis toolkit. +[![PyPI version](https://img.shields.io/pypi/v/quantem.svg)](https://pypi.org/project/quantem/) +[![Python versions](https://img.shields.io/pypi/pyversions/quantem.svg)](https://pypi.org/project/quantem/) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) + +``quantem`` is a quantitative electron microscopy data analysis toolkit built on [PyTorch](https://pytorch.org/). It brings together tools for reconstructing or analyzing a wide range of transmission electron microscopy (TEM) techniques, including nanobeam diffraction, phase retrieval, real-space imaging and tomography, spectroscopy, and related analyses within a consistent, GPU-accelerated API. + +## Capabilities + +- **Ptychographic phase retrieval**: ML-enabled iterative reconstruction ([McCray et al., 2025](https://arxiv.org/abs/2511.07795)) and direct methods ([Varnavides et al., 2026](https://doi.org/10.1093/mam/ozaf139)). +- **Tomography**: fast and accurate HAADF tomography using implicit representations ([Lim et al., 2025](https://arxiv.org/abs/2512.08113)). +- **Imaging**: drift correction and lattice analysis for (S)TEM images. +- **Data structures & I/O**: a unified `Dataset` hierarchy that reads common electron-microscopy formats and serializes to [Zarr](https://zarr.dev/). +- **Visualization**: publication-quality figures with perceptually-uniform colormaps. +- **GPU-accelerated & ML-ready**: a PyTorch backend with neural object representations and multi-GPU / multi-node reconstruction. +- **Spectroscopy**: under development. +- **Diffraction**: multi-angle precession electron diffraction (MAPED), under development ([Ribet et al., 2025](https://doi.org/10.1093/mam/ozaf103)). + +## Installation + +quantem is available on the [Python Package Index](https://pypi.org/project/quantem/) and requires Python 3.11+: + +```bash +pip install quantem +``` + +This installs PyTorch as a dependency. For CUDA-specific PyTorch builds, follow the [official PyTorch install guide](https://pytorch.org/get-started/locally/) for your platform first. + +To install from source or set up a development environment, see [CONTRIBUTING.md](CONTRIBUTING.md). + +### GPU acceleration + +For custom CUDA kernels that accelerate tomography, ptychography, and io behind a torch-native API, see the companion [quantem-cuda](https://github.com/electronmicroscopy/quantem-cuda) package (optional, more coming soon). + +## Getting started + +The [quantem-tutorials](https://github.com/electronmicroscopy/quantem-tutorials) repository contains Jupyter notebooks that walk through the main workflows for each module. + +## Citing + +If you use quantem in your research, please cite the relevant paper(s): -## Installation Instructions +- **Iterative ptychography**: McCray, A. R. C., Ribet, S. M., Varnavides, G., & Ophus, C. (2025). *Deep generative priors for robust and efficient electron ptychography.* arXiv:2511.07795. https://arxiv.org/abs/2511.07795 +- **Direct ptychography**: Varnavides, G., Bekkevold, J. M., Ribet, S. M., Scott, M. C., Jones, L., & Ophus, C. (2026). *Relaxing Direct Ptychography Sampling Requirements via Parallax Imaging Insights.* Microscopy and Microanalysis, 32(2), ozaf139. https://doi.org/10.1093/mam/ozaf139 +- **Electron tomography (implicit neural representations)**: Lim, C., Casert, C., McCray, A. R. C., Lee, S., Barnum, A., Dionne, J., & Ophus, C. (2025). *Missing Wedge Inpainting and Joint Alignment in Electron Tomography through Implicit Neural Representations.* arXiv:2512.08113. https://arxiv.org/abs/2512.08113 +- **Multi-angle precession electron diffraction (MAPED)**: Ribet, S. M., Dhall, R., Ophus, C., & Bustillo, K. C. (2025). *Multi-angle Precession Electron Diffraction (MAPED): A Versatile Approach to 4D-STEM Precession.* Microscopy and Microanalysis, 31(6), ozaf103. https://doi.org/10.1093/mam/ozaf103 -The package is available on the Python Package Index (PyPi), as [quantem](https://pypi.org/project/quantem/). -You can install it using `pip install quantem`. +## Contributing -For a developer install, please refer to [CONTRIBUTORS.md](CONTRIBUTORS.md). +Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for the development setup and workflow, and [CONTRIBUTORS.md](CONTRIBUTORS.md) for the people who have built quantem. ## License diff --git a/media/.placeholder b/media/.placeholder deleted file mode 100644 index e69de29bb..000000000 diff --git a/media/quantem_logo_53.png b/media/quantem_logo_53.png new file mode 100644 index 0000000000000000000000000000000000000000..83dab2242b1ca5e961342004de8481bae256ab13 GIT binary patch literal 94032 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 literal 0 HcmV?d00001 From b7d5ce0db20f9b06815f70d665d5fe20f57a0cda Mon Sep 17 00:00:00 2001 From: arthurmccray Date: Wed, 22 Jul 2026 22:22:31 -0700 Subject: [PATCH 02/10] removing broken python thing --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index cbc43ebcf..982a55291 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ # quantem [![PyPI version](https://img.shields.io/pypi/v/quantem.svg)](https://pypi.org/project/quantem/) -[![Python versions](https://img.shields.io/pypi/pyversions/quantem.svg)](https://pypi.org/project/quantem/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ``quantem`` is a quantitative electron microscopy data analysis toolkit built on [PyTorch](https://pytorch.org/). It brings together tools for reconstructing or analyzing a wide range of transmission electron microscopy (TEM) techniques, including nanobeam diffraction, phase retrieval, real-space imaging and tomography, spectroscopy, and related analyses within a consistent, GPU-accelerated API. From bb85b4dd2af41e64f219eaab0dc3f4b3328bfa94 Mon Sep 17 00:00:00 2001 From: Arthur McCray Date: Thu, 23 Jul 2026 10:19:38 -0700 Subject: [PATCH 03/10] updating readme --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 982a55291..0962f2640 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ # quantem [![PyPI version](https://img.shields.io/pypi/v/quantem.svg)](https://pypi.org/project/quantem/) +[![DOI](https://zenodo.org/badge/961571754.svg)](https://doi.org/10.5281/zenodo.18642593) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ``quantem`` is a quantitative electron microscopy data analysis toolkit built on [PyTorch](https://pytorch.org/). It brings together tools for reconstructing or analyzing a wide range of transmission electron microscopy (TEM) techniques, including nanobeam diffraction, phase retrieval, real-space imaging and tomography, spectroscopy, and related analyses within a consistent, GPU-accelerated API. @@ -28,7 +29,7 @@ pip install quantem This installs PyTorch as a dependency. For CUDA-specific PyTorch builds, follow the [official PyTorch install guide](https://pytorch.org/get-started/locally/) for your platform first. -To install from source or set up a development environment, see [CONTRIBUTING.md](CONTRIBUTING.md). +To install from source or set up a development environment, see [CONTRIBUTING.md](CONTRIBUTING.md). A local install can also be used to access the newest development features of individual modules that exist on feature branches prior to PRs. ### GPU acceleration @@ -40,7 +41,9 @@ The [quantem-tutorials](https://github.com/electronmicroscopy/quantem-tutorials) ## Citing -If you use quantem in your research, please cite the relevant paper(s): +If you use quantem in your research, please cite our main DOI as well as the relevant paper(s) for any module(s) that you used: + +- **quantem repository**: https://doi.org/10.5281/zenodo.18642593 - **Iterative ptychography**: McCray, A. R. C., Ribet, S. M., Varnavides, G., & Ophus, C. (2025). *Deep generative priors for robust and efficient electron ptychography.* arXiv:2511.07795. https://arxiv.org/abs/2511.07795 - **Direct ptychography**: Varnavides, G., Bekkevold, J. M., Ribet, S. M., Scott, M. C., Jones, L., & Ophus, C. (2026). *Relaxing Direct Ptychography Sampling Requirements via Parallax Imaging Insights.* Microscopy and Microanalysis, 32(2), ozaf139. https://doi.org/10.1093/mam/ozaf139 From bdc0f7f4e8feed289eea49ce781c3739a1213c72 Mon Sep 17 00:00:00 2001 From: arthurmccray Date: Thu, 23 Jul 2026 11:02:47 -0700 Subject: [PATCH 04/10] adding citation.cff --- CITATION.cff | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 4 +- 2 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 CITATION.cff diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 000000000..bd5efdd58 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,148 @@ +# This file describes how to cite the quantem software (schema: https://citation-file-format.github.io). +# It is maintained BY HAND. Unlike Zenodo's auto-generated author list, this file will not +# pick up new contributors on its own: update `authors`, `version`, and `date-released` +# with each release. Add `orcid:` and `affiliation:` to each author as that info becomes available. +message: >- + If you use quantem in your research, please cite this software using the metadata below, + along with any relevant method papers listed in the README. +title: "quantem: quantitative electron microscopy analysis toolkit" +abstract: >- + quantem is a quantitative electron microscopy data analysis toolkit built on PyTorch, + providing tools for analyzing many kinds of transmission electron microscopy data. +type: software +authors: + - given-names: "Arthur R. C." + family-names: McCray + orcid: "0000-0001-6077-4698" + affiliation: "Stanford University" + - given-names: Colin + family-names: Ophus + orcid: "0000-0003-2348-8558" + affiliation: "Stanford University" + - given-names: "Stephanie M." + family-names: Ribet + orcid: "0000-0002-7117-066X" + affiliation: "Lawrence Berkeley National Laboratory" + - given-names: Georgios + family-names: Varnavides + orcid: "0000-0001-8338-3323" + affiliation: "Delft University of Technology" + - given-names: Cedric + family-names: Lim + # orcid: "" + # affiliation: "" + - given-names: Karen + family-names: Ehrhardt + # orcid: "" + # affiliation: "" + - given-names: Matthew + family-names: Feickert + # orcid: "" + # affiliation: "" + - given-names: Carter + family-names: Francis + # orcid: "" + # affiliation: "" + - given-names: "Sangjoon Bob" + family-names: Lee + # orcid: "" + # affiliation: "" + - given-names: Darshan + family-names: Mali + # orcid: "" + # affiliation: "" + - given-names: Nicholas + family-names: Marchese + # orcid: "" + # affiliation: "" + - given-names: Will + family-names: Millsaps + # orcid: "" + # affiliation: "" +doi: 10.5281/zenodo.18642593 # concept DOI (always resolves to the latest release) +license: MIT +repository-code: "https://github.com/electronmicroscopy/quantem" +url: "https://github.com/electronmicroscopy/quantem" +keywords: + - electron microscopy + - 4D-STEM + - ptychography + - tomography + - TEM + - STEM + - PyTorch +references: + - type: article + title: "Deep generative priors for robust and efficient electron ptychography" + authors: + - given-names: "Arthur R. C." + family-names: McCray + - given-names: "Stephanie M." + family-names: Ribet + - given-names: Georgios + family-names: Varnavides + - given-names: Colin + family-names: Ophus + year: 2025 + url: "https://arxiv.org/abs/2511.07795" + notes: "arXiv:2511.07795" + - type: article + title: "Relaxing Direct Ptychography Sampling Requirements via Parallax Imaging Insights" + authors: + - given-names: Georgios + family-names: Varnavides + - given-names: "Julie Marie" + family-names: Bekkevold + - given-names: "Stephanie M." + family-names: Ribet + - given-names: "Mary C." + family-names: Scott + - given-names: Lewys + family-names: Jones + - given-names: Colin + family-names: Ophus + journal: "Microscopy and Microanalysis" + volume: 32 + issue: 2 + year: 2026 + doi: 10.1093/mam/ozaf139 + - type: article + title: >- + Missing Wedge Inpainting and Joint Alignment in Electron Tomography through + Implicit Neural Representations + authors: + - given-names: Cedric + family-names: Lim + - given-names: Corneel + family-names: Casert + - given-names: "Arthur R. C." + family-names: McCray + - given-names: Serin + family-names: Lee + - given-names: Andrew + family-names: Barnum + - given-names: Jennifer + family-names: Dionne + - given-names: Colin + family-names: Ophus + year: 2025 + url: "https://arxiv.org/abs/2512.08113" + notes: "arXiv:2512.08113" + - type: article + title: >- + Multi-angle Precession Electron Diffraction (MAPED): A Versatile Approach to + 4D-STEM Precession + authors: + - given-names: "Stephanie M." + family-names: Ribet + - given-names: Rohan + family-names: Dhall + - given-names: Colin + family-names: Ophus + - given-names: "Karen C." + family-names: Bustillo + journal: "Microscopy and Microanalysis" + volume: 31 + issue: 6 + year: 2025 + doi: 10.1093/mam/ozaf103 diff --git a/README.md b/README.md index 0962f2640..f58ea809a 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,9 @@ The [quantem-tutorials](https://github.com/electronmicroscopy/quantem-tutorials) ## Citing -If you use quantem in your research, please cite our main DOI as well as the relevant paper(s) for any module(s) that you used: +If you use quantem in your research, please cite this repository as the relevant paper(s) for any module(s) that you used: -- **quantem repository**: https://doi.org/10.5281/zenodo.18642593 +- **quantem (software)**: please cite the version you used. Ready to use citations can be copied from the [Zenodo record](https://doi.org/10.5281/zenodo.18642593), or from the "Cite this repository" button on [GitHub](https://github.com/electronmicroscopy/quantem). - **Iterative ptychography**: McCray, A. R. C., Ribet, S. M., Varnavides, G., & Ophus, C. (2025). *Deep generative priors for robust and efficient electron ptychography.* arXiv:2511.07795. https://arxiv.org/abs/2511.07795 - **Direct ptychography**: Varnavides, G., Bekkevold, J. M., Ribet, S. M., Scott, M. C., Jones, L., & Ophus, C. (2026). *Relaxing Direct Ptychography Sampling Requirements via Parallax Imaging Insights.* Microscopy and Microanalysis, 32(2), ozaf139. https://doi.org/10.1093/mam/ozaf139 From 2c5bc1d3ec4cb6be2d62654890dd66dce199bae8 Mon Sep 17 00:00:00 2001 From: Arthur McCray Date: Thu, 23 Jul 2026 11:18:27 -0700 Subject: [PATCH 05/10] updating readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f58ea809a..60419691d 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -![quantem logo](https://raw.githubusercontent.com/electronmicroscopy/quantem/main/media/quantem_logo_53.png) +quantem_logo # quantem [![PyPI version](https://img.shields.io/pypi/v/quantem.svg)](https://pypi.org/project/quantem/) -[![DOI](https://zenodo.org/badge/961571754.svg)](https://doi.org/10.5281/zenodo.18642593) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) +[![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.18642593-blue)](https://doi.org/10.5281/zenodo.18642593) ``quantem`` is a quantitative electron microscopy data analysis toolkit built on [PyTorch](https://pytorch.org/). It brings together tools for reconstructing or analyzing a wide range of transmission electron microscopy (TEM) techniques, including nanobeam diffraction, phase retrieval, real-space imaging and tomography, spectroscopy, and related analyses within a consistent, GPU-accelerated API. From 0ab1efa46cc0514a3c9f40c5eb48d4d1a0adf7c2 Mon Sep 17 00:00:00 2001 From: arthurmccray Date: Thu, 23 Jul 2026 11:21:55 -0700 Subject: [PATCH 06/10] updating citation --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index bd5efdd58..508dc9144 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -1,7 +1,7 @@ # This file describes how to cite the quantem software (schema: https://citation-file-format.github.io). -# It is maintained BY HAND. Unlike Zenodo's auto-generated author list, this file will not +# It is maintained by hand. Unlike Zenodo's auto-generated author list, this file will not # pick up new contributors on its own: update `authors`, `version`, and `date-released` -# with each release. Add `orcid:` and `affiliation:` to each author as that info becomes available. +# with each release. message: >- If you use quantem in your research, please cite this software using the metadata below, along with any relevant method papers listed in the README. From 89dbb2d3627b05e13c67426ceea827ca68c07796 Mon Sep 17 00:00:00 2001 From: arthurmccray Date: Thu, 23 Jul 2026 12:00:39 -0700 Subject: [PATCH 07/10] updating contributors --- CONTRIBUTORS.md | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index a6f1c0f29..32df792e5 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,30 +1,47 @@ # Contributors -quantem is developed by researchers and students across the electron microscopy community. +``quantem`` is developed by researchers and students across the electron microscopy community. Thank you to everyone who has contributed code, ideas, bug reports, and tutorials. -## Core developers +Contributions are broken down by module: +## Core +- [Georgios Varnavides](https://github.com/gvarnavi) - [Arthur McCray](https://github.com/arthurmccray) - [Colin Ophus](https://github.com/cophus) - [Stephanie Ribet](https://github.com/smribet) -- [Georgios Varnavides](https://github.com/gvarnavi) - -## Contributors +- [Cedric Lim](https://github.com/cedriclim1) +- [Matthew Feickert](https://github.com/matthewfeickert) +## Diffraction - [Karen Ehrhardt](https://github.com/ehrhardtkm) -- [Matthew Feickert](https://github.com/matthewfeickert) -- [Carter Francis](https://github.com/CSSFrancis) -- [Sangjoon Bob Lee](https://github.com/bobleesj) -- [Cedric Lim](https://github.com/cedriclim1) -- [Darshan Mali](https://github.com/darshan-mali) +- [Colin Ophus](https://github.com/cophus) - [Nicholas Marchese](https://github.com/NJMarchese) + +## Diffractive Imaging +- [Arthur McCray](https://github.com/arthurmccray) +- [Georgios Varnavides](https://github.com/gvarnavi) +- [Stephanie Ribet](https://github.com/smribet) +- [Sangjoon Bob Lee](https://github.com/bobleesj) + +## Imaging +- [Colin Ophus](https://github.com/cophus) +- [Sangjoon Bob Lee](https://github.com/bobleesj) - [Will Millsaps](https://github.com/wwmills) +- [Darshan Mali](https://github.com/darshan-mali) + +## Spectroscopy +- [Colin Ophus](https://github.com/cophus) +- [Stephanie Ribet](https://github.com/smribet) + +## Tomography +- [Cedric Lim](https://github.com/cedriclim1) +- [Arthur McCray](https://github.com/arthurmccray) For the complete, always-up-to-date list of everyone who has contributed, see the [GitHub contributors graph](https://github.com/electronmicroscopy/quantem/graphs/contributors). --- -This list is maintained by hand and grouped by contribution history — if your nameis missing, +This list is maintained by hand and grouped by contribution history. If your name is missing, listed incorrectly, or you would like it shown differently, please open a pull request or issue. \ No newline at end of file From 2d1ac24357aed60e37e7a628e42f7b6cd2e48554 Mon Sep 17 00:00:00 2001 From: Cedric Lim Date: Thu, 23 Jul 2026 12:38:02 -0700 Subject: [PATCH 08/10] Update CITATION.cff Added orcid and affiliation --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 508dc9144..e9ceb099d 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -29,8 +29,8 @@ authors: affiliation: "Delft University of Technology" - given-names: Cedric family-names: Lim - # orcid: "" - # affiliation: "" + # orcid: "0009-0000-1319-5175" + # affiliation: "Stanford University" - given-names: Karen family-names: Ehrhardt # orcid: "" From 2b4c51526aae5220cf4eebedabe75ea528f0a195 Mon Sep 17 00:00:00 2001 From: Cedric Lim Date: Thu, 23 Jul 2026 12:39:16 -0700 Subject: [PATCH 09/10] Update CITATION.cff --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index e9ceb099d..e58d31d31 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -29,8 +29,8 @@ authors: affiliation: "Delft University of Technology" - given-names: Cedric family-names: Lim - # orcid: "0009-0000-1319-5175" - # affiliation: "Stanford University" + orcid: "0009-0000-1319-5175" + affiliation: "Stanford University" - given-names: Karen family-names: Ehrhardt # orcid: "" From bd450652215142dfedbb0855591fc986cf690e43 Mon Sep 17 00:00:00 2001 From: Arthur McCray Date: Sun, 2 Aug 2026 11:14:45 -0700 Subject: [PATCH 10/10] update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 60419691d..489291c0b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ - **Data structures & I/O**: a unified `Dataset` hierarchy that reads common electron-microscopy formats and serializes to [Zarr](https://zarr.dev/). - **Visualization**: publication-quality figures with perceptually-uniform colormaps. - **GPU-accelerated & ML-ready**: a PyTorch backend with neural object representations and multi-GPU / multi-node reconstruction. -- **Spectroscopy**: under development. +- **Spectroscopy**: GPU-accelerated spectra fitting for EDS and EELS, under development. - **Diffraction**: multi-angle precession electron diffraction (MAPED), under development ([Ribet et al., 2025](https://doi.org/10.1093/mam/ozaf103)). ## Installation @@ -41,7 +41,7 @@ The [quantem-tutorials](https://github.com/electronmicroscopy/quantem-tutorials) ## Citing -If you use quantem in your research, please cite this repository as the relevant paper(s) for any module(s) that you used: +If you use quantem in your research, please cite this repository as well as the relevant paper(s) for any module(s) that you used: - **quantem (software)**: please cite the version you used. Ready to use citations can be copied from the [Zenodo record](https://doi.org/10.5281/zenodo.18642593), or from the "Cite this repository" button on [GitHub](https://github.com/electronmicroscopy/quantem).