Skip to main content

Goniometric imaging software

Project description

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

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

gonio-imsoft-0.2.0.tar.gz (147.1 kB view details)

Uploaded Source

Built Distribution

gonio_imsoft-0.2.0-py3-none-any.whl (58.0 kB view details)

Uploaded Python 3

File details

Details for the file gonio-imsoft-0.2.0.tar.gz.

File metadata

  • Download URL: gonio-imsoft-0.2.0.tar.gz
  • Upload date:
  • Size: 147.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for gonio-imsoft-0.2.0.tar.gz
Algorithm Hash digest
SHA256 167416f5705e7fbd85c6b2a7d361200ec2c9f65da675cb6782abada915e2c3e1
MD5 c7b1436938af1ed72e4b3db87ea4a0eb
BLAKE2b-256 93709831b0bf0c4693d4465e8a80a0ad6ff54a178cc7cf09998f63a07a12abaa

See more details on using hashes here.

File details

Details for the file gonio_imsoft-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gonio_imsoft-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 58.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for gonio_imsoft-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e00d4c8fc61fad732b813deb299f57e5b86fa44a7f9f5a1992b068137285a005
MD5 fdc1ef927c4345c1bb301c068d95bbf1
BLAKE2b-256 c99154f9552f1c0e2d6efb1881e2c82fe1b0a4169a5a8355723f2ad54239f508

See more details on using hashes here.

Supported by

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