leicaexperiment
Overview
This is a python module for interfacing with Leica LAS AF/X Matrix Screener experiments.
The module can be used to:
- stitch wells from an experiment exported with the LAS AF Data Exporter
- batch compress images lossless
- programmatically select slides/wells/fields/images given by attributes like
- slide (S)
- well position (U, V)
- field position (X, Y)
- z-stack position (Z)
- channel (C)
Features
- Access experiment as a python object
- Compress to PNGs without loosing precision, metadata or colormap
- ImageJ stitching (Fiji is installed via fijibin)
Installation
Install using pip
...
pip install leicaexperiment
Examples
stitch experiment
from leicaexperiment import Experiment
# path should contain AditionalData and slide--S*
experiment = Experiment('path/to/experiment')
# if path is omitted, experiment path is used for output files
stitched_images = experiment.stitch('/path/to/output/files/')
# get information about placement of images in the stitch
xs, ys, attrs = experiment.stitch_coordinates(well_x=0, well_y=0)
stitch specific well
from leicaexperiment import stitch
stitched_images = stitch('/path/to/well')
do stuff on all images
from leicaexperiment import Experiment
experiment = Experiment('path/to/experiment--')
for image in experiment.images:
do stuff...
do stuff on specific wells/fields
from leicaexperiment import Experiment
from PIL import Image
experiment = Experiment('path/to/experiment--')
# on images in well --U00--V00
for well in experiment.well_images(0, 0):
do stuff...
# rotate top left image in all rows
rows = experiment.well_rows
for r in rows:
img_path = experiment.image(r, 0, 0, 0)
img = Image.open(img_path)
img = img.rotate(90)
img.save(img_path)
subtract attributes from file names
from leicaexperiment import attribute
# get all channels
channels = [attribute(image, 'C') for image in experiment.images]
min_ch, max_ch = min(channels), max(channels)
batch lossless compress of experiment
from leicaexperiment import Experiment
e = Experiment('/path/to/experiment')
pngs = e.compress()
print(pngs)
API reference
API reference is at http://leicaexperiment.rtfd.org.
Development
Install dependencies and link development version of leicaexperiment to pip:
git clone https://github.com/arve0/leicaexperiment
cd leicaexperiment
pip install -r requirements.txt
run test
pip install tox
tox
extra output, jump into pdb upon error
DEBUG=leicaexperiment tox -- --pdb -s
build api reference
pip install -r docs/requirements.txt
make docs