Skip to main content

Python program for automated electron diffraction data collection

Project description

build PyPI - Python Version PyPI DOI

Instamatic banner

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-toolkit library
  • 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:

Source Code Structure

  • demos/ - Jupyter demo notebooks
  • docs/ - Documentation
  • src/ - Source code for instamatic
  • src/instamatic/
    • calibrate/ - Tools for calibration
    • camera/ - Camera interaction code
    • config/ - Configuration management
    • experiments/ - Specific data collection routines
    • formats/ - Image formats and other IO
    • gui/ - GUI code
    • microscope/ - Microscope interaction code
    • neural_network/ - Crystal quality prediction
    • processing/ - Data processing tools
    • server/ - Manages interprocess/network communication
    • utils/ - Helpful utilities
    • acquire_at_items.py - Stage movement/data acquisition engine
    • admin.py - Check for administrator
    • banner.py - Appropriately annoying thank you message
    • browser.py - Montage browsing class
    • controller.py - Main instrument interaction code
    • exceptions.py - Internal exceptions
    • goniotool.py - Goniotool (JEOL) interaction code
    • gridmontage.py - Grid montage data collection code
    • image_utils.py - Image transformation routines
    • imreg.py - Image registration (cross correlation)
    • io.py - Some io-related scripts
    • main.py - Main entry point
    • montage.py - Image stitching
    • navigation.py - Optimize navigation paths
    • tools.py - Collection of functions used throughout the code
  • scripts/ - Helpful scripts
  • pyproject.toml - Dependency/build system declaration

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

instamatic-2.1.1.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

instamatic-2.1.1-py3-none-any.whl (3.1 MB view details)

Uploaded Python 3

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

Hashes for instamatic-2.1.1.tar.gz
Algorithm Hash digest
SHA256 33d29b1c5380d47801aeb887af41a49ff081bff0dea4893d823fada07b2c2bc1
MD5 f1fee2694c20fa38f46d2998b8fec898
BLAKE2b-256 1c5820133e3f94d1907bbe1a2ace74c77222b0b5309cc69298b54e5655c0c17d

See more details on using hashes here.

Provenance

The following attestation bundles were made for instamatic-2.1.1.tar.gz:

Publisher: publish.yml on instamatic-dev/instamatic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for instamatic-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 be56c20ec71c94596396e0870a1cce716a247bcf451b9a9b174fee375f2e430d
MD5 9ae30835e84ef37a584b8cba86a091fc
BLAKE2b-256 8053b6e8d4bee6330c2426caa0db20b911904f7b6fca1b590bb5b499db66a00c

See more details on using hashes here.

Provenance

The following attestation bundles were made for instamatic-2.1.1-py3-none-any.whl:

Publisher: publish.yml on instamatic-dev/instamatic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page