Tglow: Core Python component of the tglow imaging pipeline
tglow-core is the Python core component of the Tglow high-content imaging (HCI)
analysis pipeline. It provides utilities to index and read multi-well plate images
and parsers for PerkinElmer (Opera Phenix / Operetta) exports. The package is
used by the tglow-pipeline workflows to load, preprocess and write OME-TIFF
images arranged in the common /plate/row/col/field.ome.tiff (CYZX) layout.
Key features
- Read and write CYZX / ZYX / YX image arrays via
AICSImageReader/AICSImageWriter(wrappers aroundaicsimageio) - Parse Revity/PerkinElmer
Index.xmlexports (PerkinElmerParser) and convert to a simple, Python-friendly index - Convert large Revity/PerkinElmer exports to a much lower number of
/plate/row/col/field.ome.tifffiles - Index and query plate/row/col/field image layouts using an
ImageQueryobject - Utilities for registration, flatfield correction and numeric conversions designed to work with
tglow-pipeline
Installation
I recommend installing the published PyPI release where possible:
pip install tglow-core
To install the latest development version from the repository (editable install):
git clone https://github.com/TrynkaLab/tglow-core
cd tglow-core
pip install -e .
Basic usage
Build an index from a PerkinElmer export and read a single image:
from tglow.io.tglow_io import PerkinElmerRawReader
from tglow.io.image_query import ImageQuery
reader = PerkinElmerRawReader('path/to/Index.xml', '/data/exports')
iq = ImageQuery.from_plate_well('plate1', 'A01')
image = reader.read_image(iq) # returns a numpy array
Read and write an OME-TIFF stack organized by plate/row/col/field:
from tglow.io.tglow_io import AICSImageReader, AICSImageWriter
from tglow.io.image_query import ImageQuery
reader = AICSImageReader('/data/plates')
writer = AICSImageWriter('/output/plates')
iq = ImageQuery('plate1', 1, 1, 'field001')
stack = reader.read_stack(iq)
writer.write_stack(stack, iq)
Notes and migration to BioIO
- This package currently wraps
aicsimageio. As that project has been superseded by newer tooling, consider migrating tobioioor equivalent in future releases.
Known issues
There is a known issue with BaSiCpy (https://github.com/peng-lab/BaSiCPy/issues/162). This requires using specific, older versions of hyperactive and gradient-free-optimizers, which can in turn require an older pandas version. The same goes for aicsimageio. The dependency chain can be inconvenient; I'll update this project and migrate to BioIO libraries as newer releases become available.
Acknowledgements
- Martin Prete: initial XML parsing code adapted for this project
References
Metadata
Release files for tglow-core 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tglow_core-0.1.4.tar.gz | 47.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tglow_core-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.9 kB
Release files / tglow_core-0.1.4.tar.gz
| Download URL | tglow_core-0.1.4.tar.gz |
|---|---|
| Size | 47.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92948caace17daab46935fa185b0af3055c13ef7f675587812c7648c688a4f21
|
|
BLAKE2b-256 checksum How to use checksums |
eaea1f7a230a3fc6c5b7c6f62631ce0cd899149c10ebc6cedd788a24e588f55e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|
Release files / tglow_core-0.1.4-py3-none-any.whl
| Download URL | tglow_core-0.1.4-py3-none-any.whl |
|---|---|
| Size | 53.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
30597170b83910771358c9ee7884675e0aa83cb86f786e60e68177a591fd4596
|
|
BLAKE2b-256 checksum How to use checksums |
236a4a3e063c2528769955047f520d7bee281538e8d018ddef0d8ace3775f863
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|