Skip to main content

Goniometric imaging software

GonioImsoft is a terminal user interface Python program designed to control the goniometric high-speed imaging experiments where

  • rotary encoder values are read over serial (pySerial)
  • NI-DAQmx is used for general input/output (nidaqmx)
  • the camera is controlled over MicroManager (pymmcore)

It was developed for the need of imaging 200 distinct rotations (eye locations) per specimen fast, requiring only the space bar to be pressed between the rotations.

For general imaging, without these specific needs, it is better to use MicroManager or other image acquisition software.

Following block diagram illustrates the used software architecture

´´´ tui.py - GonioImsoft terminal user interface | core.py | |__ nidaqmx - Control NI boards (trigger, stimuli) | |__ pyserial - Read Arduino (rotation data) | |__ Camera Client |Camera Server | |_ pymmcore - camera control using MicroManager |__ tifffile - writes images/stacks ´´´

Thanks to the camera server/client model, the cameras can be ran on separate computers. This parallel image acquisition allows using many cameras without worrying about memory and bandwidth or processing limits.

Required hardware and current limitations

Windows (and Linux to some extent) tested.

  • A MicroManager-supported camera device
  • National Instruments input/output board (NI specificity can be lifted in future by using PyVISA or similar)
  • Serial device reporting rotation values in format "pos1,pos2\n"

For full description of the used hardware configuration, please see the GHS-DPP imaging methods article

How to install

Rotary encoders

Rotary encoders monitor the rotation of the imaged specimen/sample. They are mechanically attached to their respective rotation stages. Their state is digitally read out using an Arduino microcontroller.

In our system, we used two 1024-step rotary encoders attached on two perpendicular rotation stages. If your system is identical, you can flash arduino/angle_sensors/angle_sensors.ino and use the Serial Monitor in the Arduino IDE to confirm it works.

If your system differs, you may have to modify the Arduino ino file. However, any serial device reporting rotations in format "pos1,pos2\n" will do. Here, pos1 and pos2 are rotation steps (integers) of the two encoders.

Main software (using pip)

First please make sure that you have

  • MicroManager installation with a working camera
  • National Insturments cards configured with names Dev1 and Dev2 for input and output, respectively
  • Python 3.6 or newer

Then, use pip to install

pip install gonio-imsoft

How to use

You can launch the main program using

python -m gonioimsoft.tui

Release files for gonio-imsoft 0.2.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 gonio-imsoft 0.2.0
File Size Uploaded
gonio-imsoft-0.2.0.tar.gz 147.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gonio-imsoft 0.2.0
File Interpreter ABI Platform
gonio_imsoft-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 205.0 kB

Release files / gonio-imsoft-0.2.0.tar.gz

Download URL gonio-imsoft-0.2.0.tar.gz
Size 147.1 kB
Tags Source
SHA-256 checksum
How to use checksums
167416f5705e7fbd85c6b2a7d361200ec2c9f65da675cb6782abada915e2c3e1
BLAKE2b-256 checksum
How to use checksums
93709831b0bf0c4693d4465e8a80a0ad6ff54a178cc7cf09998f63a07a12abaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release files / gonio_imsoft-0.2.0-py3-none-any.whl

Download URL gonio_imsoft-0.2.0-py3-none-any.whl
Size 58.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e00d4c8fc61fad732b813deb299f57e5b86fa44a7f9f5a1992b068137285a005
BLAKE2b-256 checksum
How to use checksums
c99154f9552f1c0e2d6efb1881e2c82fe1b0a4169a5a8355723f2ad54239f508
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

0.0.2

2 release files

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