JuNkIE (a JUpyter NotebooK Image Explorer)
JuNkIE is a multidimensional image explorer for browsing and simple manipulation of 2D-5D images in Jupyter notebooks. If you are interested in exploring multidimensional images from the command line, checkout CLIMAX, our multidimensional image explorer for the terminal.
Installing JuNkIE
If you want to try out JuNkIE without having to install it, click this button:
JuNkIE is also distributed with a sample notebook that can be run locally, or in a hosted notebook service such as Colab.
We recommend that you install JuNkIE using uv:
$ uv pip install junkie-rfglab
JuNkIE can also be installed using pip:
$ python3 -m pip install --no-cache-dir -U junkie-rfglab
We do most of the development and testing of JuNkIE in Jupyter Lab, so we recommend using Jupyter Lab.
A note on the Python interpreter
JuNkIE requires that you have Python 3.10 or above installed.
Using JuNkIE
JuNkIE is distributed with several sample images that can be found in the docs folder. The images include:
-
cells_movie.tif: single-channel, 150x150 multi-page tiff image with 90 time points; each image in the sequence is the maximum intensity projection of a spinning-disk confocal micrograph depicting epithelial cells in the ectoderm of a fruit fly embryo
-
cells_movie.zarr: three-channel, 512x512 zarr image with 22 time points; each time point represents the maximum intensity projection of a spinning-disk confocal micrograph depicting epithelial cells in the epidermis of a fruit fly embryo; the first channel shows cell nuclei, the second and third channels (repeated) show the cytoskeletal protein filamentous actin
-
slices: two-channel, 512x512 tiff image sequence with 4 time points and 40 Z-slices per time point; each file contains one time point in a specific channel of a spinning-disk confocal micrograph depicting epithelial cells in the head of a fruit fly embryo; the first channel shows the cytoskeletal protein filamentous actin, the second channel shows cell-cell junctions
To start, open a notebook and import JuNkIE:
from junkie import junkie
There are a few ways to open an image with JuNkIE:
-
You can open an image with some other package (e.g. scikit-image, opencv, PIL, etc.) and invoke JuNkIE with a numpy ndarray as the parameter:
import skimage.io as skio astack = skio.imread('cells_movie.tif') myim = junkie(astack) -
You can also specifiy the path to the image that you want to open ...:
myim = junkie('cells_movie.tif') -
... including zarr files:
myim = junkie('cells_movie.zarr') -
Or you can indicate a folder that contains an image sequence:
myim = junkie('./slices') -
If there are image channels split into different files, you can also specify a tuple of strings to distinguish which files in the folder belong to which channel:
myim = junkie('./slices', ('488', '561')) -
You can use a list of numpy arrays and/or paths to concatenate sideways (i.e. display side-by-side, but all the images must have the same dimensions!!):
myim = junkie([astack, 'cells_movie.tif']) -
You can combine the list input with the JuNkIE class method read_image to display image channels side-by-side:
myim = junkie([*junkie.read_image('./slices', ('488', '561'))])
JuNkIE has a couple of additional parameters:
-
cmap (str) indicates the color map used to display the image. It defaults to 'gray'. Check here for a list of color maps.
myim = junkie('cells_movie.tif', cmap='viridis') -
figsize (Tuple[int, int]) specifies the image panel size. The image aspect ratio is maintained. It defaults to (4, 4).
myim = junkie('cells_movie.tif', figsize=(8, 8)
JuNkIE provides access to the standard matplotlib toolbar, and also includes a second toolbar with additional functionality:
| icon | function |
|---|---|
| rotate 90° clockwise | |
| flip horizontally | |
| flip vertically | |
| invert color map | |
| hide/show axes | |
| continuous/discrete update |
JuNkIE today
As we develop and improve JuNkIE, there may be small changes to the user interface. This is how JuNkIE looks as of today:
Citing JuNkIE
If you use JuNkIE, please cite this repository. We are working on the paper!
Adding functionality onto JuNkIE
If you would like to extend JuNkIE, please make contributions to this repository. You can also check out JuNkIE-picasso, a JuNkIE fork that allows you to define arbitrary image processing pipelines and integrate them into JuNkIE.
Sponsors
We are grateful for the generous support from the following agencies and institutions, which contribute to the development and maintenance of JuNkIE:
Release files for junkie-rfglab 2026.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| junkie_rfglab-2026.4.1.tar.gz | 23.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| junkie_rfglab-2026.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.7 kB
Release files / junkie_rfglab-2026.4.1.tar.gz
| Download URL | junkie_rfglab-2026.4.1.tar.gz |
|---|---|
| Size | 23.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
edd107d0293b46b7f9f28817e15fc8dc6c86214236434c39502d1133f3612db1
|
|
BLAKE2b-256 checksum How to use checksums |
2b677271f37a90b56004cbe46c6e98566d3a87b379f3ae03b67d23c99697bc70
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.
Transparency logRelease files / junkie_rfglab-2026.4.1-py3-none-any.whl
| Download URL | junkie_rfglab-2026.4.1-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c75069b19194fda49f2293702f7eec52217cc15b35ea623f0c02daeb5e4d5e42
|
|
BLAKE2b-256 checksum How to use checksums |
1e9ac1356957c06541492fdaab8bfdbe27ee52fdd599744613bae7afa232a13e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.
Transparency log