Skip to main content

Atomize - Split your spectrometer apart!


Atomize is a modular software designed to control a wide range of scientific and industrial instruments, integrate them into a unified multifunctional setup, and automate routine experimental work.
The general idea is close to FSC2 software developed by Jens Thomas Törring.
Remote control of spectrometers is usually carried out using home-written programs, which are often restricted to doing a certain experiment with a specific set of devices. In contrast, the programs like FSC2 and Atomize are much more flexible, since they are based on a modular approach for communication with device and scripting language (EDL in FSC2; Python in Atomize) for data measuring.

Atomize1 uses liveplot library based on pyqtgraph as a main graphics library. Liveplot was originally developed by Phil Reinhold. Since then, several improvements have been made to use it in Atomize, and it has been directly embedded into Atomize.

Python Programming Language is used inside experimental scripts, which opens up almost unlimited possibilities for raw experimental data treatment. In addition, with PyQt, one can create experimental scripts with a simple graphical interface, allowing users not familiar with Python to use it. Several examples of scripts (with dummy data) are provided in the /atomize/tests/ directory, including a GUI script with extended comments inside. Also a variant of the Atomize with GUI Control Window extension can be found here.

Currently there are more than 200 device specific and general functions available for over 27 different devices, including 6 series of devices. If you would like to write a module for the device that is not currently available, please, read this short instruction.

Documentation and Available Instruments

Detailed documentation
Available instruments

Status

At the moment, Atomize has been tested and is currently used for controlling several EPR spectrometers using a broad range of different devices. The program has been tested on Ubuntu 18.04 LTS, 20.04 LTS, and 22.04 LTS.

Requirements

Usage

1. Installation

Install from PyPi:

pip3 install atomize-py

Run GUI from terminal:

atomize

2. General Configuration

In the terminal where you launched Atomize, the paths to the configuration files and some other details are displayed as follows:

SYSTEM: Linux
DATA DIRECTORY: /path/to/experimental/data/to/open/
SCRIPTS DIRECTORY: /path/to/atomize/scripts/
MAIN CONFIG PATH: ~/.config/atomize-py/
DEVICE CONFIG DIRECTORY: ~/.config/atomize-py/device_config/
EDITOR: text editor used for editing scripts

The "MAIN CONFIG PATH" shows a path to a general configuration file with the name main_config.ini. It should be changed at will according to the description below:

[DEFAULT]
# configure the text editor that will opened when the Edit  button is pressed.
# "EDITOR":
editor = subl # Linux
editorW = /path/to/text_editor/on/Windows/  # Windows

# configure the directory that will opened when Open 1D Data or Open 2D Data
# feature is used in the Liveplot tab. 
# "DATA DIRECTORY":
open_dir = /path/to/experimental/data/to/open/

# configure the directory that will be opened when the Open Script button is pressed:
# "SCRIPTS DIRECTORY":
script_dir = /path/to/atomize/scripts/

# configure Telegram bot
telegram_bot_token = 
message_id = 

3. Using Instrument Modules

To communicate with a device one should:

  1. Modify the config file located in "DEVICE CONFIG DIRECTORY" of the desired device accordingly. Choose the desired protocol (rs-232, gpib, ethernet, etc.) and correct the settings of the specified protocol in accordance with device settings. A little bit more detailed information about protocol settings can be found here.
  2. Import the module or modules in your script and initialize the appropriate class. A class always has the same name as the module file. Initialization connect the desired device, if the settings are correct.
# importing of the instruments
import atomize.device_modules.Keysight_3000_Xseries as keys
import atomize.device_modules.Lakeshore331 as tc

# initialization of the instruments
dsox3034t = keys.Keysight_3000_Xseries()
lakeshore331 = tc.Lakeshore331()

# using the instruments
name_oscilloscope = dsox3034t.oscilloscope_name()
temperature = lakeshore331.tc_temperature('CH A')

The same idea is valid for plotting and file handling modules.

# importing of the general purpose modules
import atomize.general_modules.general_functions as general
import atomize.general_modules.csv_opener_saver_tk_kinter as openfile

# initialization
file_handler = openfile.Saver_Opener()
head, data = file_handler.open_1D_dialog(header = 0)

# using
general.plot_1d('1D Plot', data[0], data[1], label = 'test_data', yname = 'Y axis', yscale = 'V')

4. Experimental Scripts

Python is used to write an experimental script. Examples (with dummy data) can be found in the "SCRIPTS DIRECTORY".

Screenshots

  1. Atomize = A + TOM + ize; A stands for Anatoly, main developer; TOMo stands for the International TOMography center, our organization ↩

Metadata

Release files for atomize-py 0.4.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 atomize-py 0.4.0
File Size Uploaded Provenance Actions
atomize_py-0.4.0.tar.gz 1.1 MB Without provenance Details for atomize_py-0.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for atomize-py 0.4.0
File Interpreter ABI Platform Actions
atomize_py-0.4.0-py3-none-any.whl Python 3 none any Details for atomize_py-0.4.0-py3-none-any.whl

Total release size: 2.1 MB

Release files / atomize_py-0.4.0.tar.gz

Download URL atomize_py-0.4.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
cbfc8fa4cf8d6c50a84cffc86c93d94180062f310fcc0fc0338cc6a690b5dba2
BLAKE2b-256 checksum
How to use checksums
e465dafc1333ee4732e0f028447c601a2549648db072039975f254e18f59e77b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.7

Release files / atomize_py-0.4.0-py3-none-any.whl

Download URL atomize_py-0.4.0-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
402e2fb1bb07a4e39b2afaa057e289251a66d716cb79fb0efc84ecd4308cd9f3
BLAKE2b-256 checksum
How to use checksums
7c623d97d95d28b08d5ab1ac2a444b045545ba198c004d8d225cd5bfcd39c530
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.7

Security for atomize-py 0.4.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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files No provenance

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