Python program for automated electron diffraction data collection
Project description
Instamatic
Instamatic is a Python program that is being developed with the aim to automate the collection of electron diffraction data. At the core is a Python library for transmission electron microscope experimental control with bindings for the JEOL/FEI microscopes and interfaces to the ASI/TVIPS/Gatan cameras. Routines have been implemented for collecting serial electron diffraction (serialED), continuous rotation electron diffraction (cRED, aka 3D-ED / microED), and stepwise rotation electron diffraction (RED) data. For streaming cameras, instamatic includes a live-view GUI.
Instamatic is distributed via pypi and https://github.com/instamatic-dev/instamatic/releases. However, the most up-to-date version of the code (including bugs!) is available from this repository.
Electron microscopes supported:
- JEOL microscopes with the TEMCOM library
- FEI microscopes via the scripting interface
Cameras supported:
- ASI Timepix
- ASI CheeTah through
serval-toolkitlibrary - TVIPS cameras through EMMENU4 API
- Quantum Detectors MerlinEM
- (Gatan cameras through DM plugin [1])
Instamatic has been developed on a JEOL-2100 with a Timepix camera, and a JEOL-1400 and JEOL-3200 with TVIPS cameras (XF416/F416).
See instamatic-dev/instamatic-tecnai-server for a TEM interface to control a FEI Tecnai-TEM on Windows XP/Python 3.4 via instamatic.
[1]: Support for Gatan cameras is somewhat underdeveloped. As an alternative, a DigitalMicrograph script for collecting cRED data on a OneView camera (or any other Gatan camera) can be found here.
Installation
If you use conda, create a new environment:
conda create -n instamatic python=3.11
conda activate instamatic
Install using pip, works with python versions 3.7 or newer:
pip install instamatic
OS requirement
The package requires Windows 7 or higher. It has been mainly developed and tested under windows 7 and higher.
Package dependencies
Check pypoject.toml for the full dependency list and versions.
Documentation
See the documentation for how to set up and use Instamatic.
Reference
If you found Instamatic useful, please consider citing it or one of the references below.
Each software release is archived on Zenodo, which provides a DOI for the project and each release. The project DOI 10.5281/zenodo.1090388 will always resolve to the latest archive, which contains all the information needed to cite the release.
Alternatively, some of the methods implemented in Instamatic are described in:
-
B. Wang, X. Zou, and S. Smeets, Automated serial rotation electron diffraction combined with cluster analysis: an efficient multi-crystal workflow for structure determination, IUCrJ (2019). 6, 854-867
-
B. Wang, Development of rotation electron diffraction as a fully automated and accurate method for structure determination. PhD thesis (2019), Dept. of Materials and Environmental Chemistry (MMK), Stockholm University
-
M.O. Cichocka, J. Ångström, B. Wang, X. Zou, and S. Smeets, High-throughput continuous rotation electron diffraction data acquisition via software automation, J. Appl. Cryst. (2018). 51, 1652–1661
-
S. Smeets, X. Zou, and W. Wan, Serial electron crystallography for structure determination and phase analysis of nanocrystalline materials, J. Appl. Cryst. (2018). 51, 1262–1273
Source Code Structure
demos/- Jupyter demo notebooksdocs/- Documentationsrc/- Source code for instamaticsrc/instamatic/calibrate/- Tools for calibrationcamera/- Camera interaction codeconfig/- Configuration managementexperiments/- Specific data collection routinesformats/- Image formats and other IOgui/- GUI codemicroscope/- Microscope interaction codeneural_network/- Crystal quality predictionprocessing/- Data processing toolsserver/- Manages interprocess/network communicationutils/- Helpful utilitiesacquire_at_items.py- Stage movement/data acquisition engineadmin.py- Check for administratorbanner.py- Appropriately annoying thank you messagebrowser.py- Montage browsing classcontroller.py- Main instrument interaction codeexceptions.py- Internal exceptionsgoniotool.py- Goniotool (JEOL) interaction codegridmontage.py- Grid montage data collection codeimage_utils.py- Image transformation routinesimreg.py- Image registration (cross correlation)io.py- Some io-related scriptsmain.py- Main entry pointmontage.py- Image stitchingnavigation.py- Optimize navigation pathstools.py- Collection of functions used throughout the code
scripts/- Helpful scriptspyproject.toml- Dependency/build system declaration
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file instamatic-2.1.1.tar.gz.
File metadata
- Download URL: instamatic-2.1.1.tar.gz
- Upload date:
- Size: 3.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33d29b1c5380d47801aeb887af41a49ff081bff0dea4893d823fada07b2c2bc1
|
|
| MD5 |
f1fee2694c20fa38f46d2998b8fec898
|
|
| BLAKE2b-256 |
1c5820133e3f94d1907bbe1a2ace74c77222b0b5309cc69298b54e5655c0c17d
|
Provenance
The following attestation bundles were made for instamatic-2.1.1.tar.gz:
Publisher:
publish.yml on instamatic-dev/instamatic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
instamatic-2.1.1.tar.gz -
Subject digest:
33d29b1c5380d47801aeb887af41a49ff081bff0dea4893d823fada07b2c2bc1 - Sigstore transparency entry: 206416780
- Sigstore integration time:
-
Permalink:
instamatic-dev/instamatic@c2dd6e32574d1d9febdbd9085280e4b8a551a177 -
Branch / Tag:
refs/tags/2.1.1 - Owner: https://github.com/instamatic-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c2dd6e32574d1d9febdbd9085280e4b8a551a177 -
Trigger Event:
release
-
Statement type:
File details
Details for the file instamatic-2.1.1-py3-none-any.whl.
File metadata
- Download URL: instamatic-2.1.1-py3-none-any.whl
- Upload date:
- Size: 3.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be56c20ec71c94596396e0870a1cce716a247bcf451b9a9b174fee375f2e430d
|
|
| MD5 |
9ae30835e84ef37a584b8cba86a091fc
|
|
| BLAKE2b-256 |
8053b6e8d4bee6330c2426caa0db20b911904f7b6fca1b590bb5b499db66a00c
|
Provenance
The following attestation bundles were made for instamatic-2.1.1-py3-none-any.whl:
Publisher:
publish.yml on instamatic-dev/instamatic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
instamatic-2.1.1-py3-none-any.whl -
Subject digest:
be56c20ec71c94596396e0870a1cce716a247bcf451b9a9b174fee375f2e430d - Sigstore transparency entry: 206416781
- Sigstore integration time:
-
Permalink:
instamatic-dev/instamatic@c2dd6e32574d1d9febdbd9085280e4b8a551a177 -
Branch / Tag:
refs/tags/2.1.1 - Owner: https://github.com/instamatic-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c2dd6e32574d1d9febdbd9085280e4b8a551a177 -
Trigger Event:
release
-
Statement type: