Skip to main content

Numbers and brightness analysis for microscopic image analysis implemented in python.

Project description

Numbers-and-brightness

Numbers and brightness analysis for microscopic image analysis implemented in python.

Functions both as a python package and command-line tool.

Installation

Numbers and brightness can be installed as follows:

pip install numbers_and_brightness

Usage

Python package

Numbers and brightness can be used as follows:

from numbers_and_brightness.numbers_and_brightness import numbers_and_brightness_analysis
numbers_and_brightness_analysis(file = "./Images/image.tif")

Or in batch processing mode:

from numbers_and_brightness.numbers_and_brightness import numbers_and_brightness_batch
numbers_and_brightness_batch(folder = "./Images")

Command line

The package can also be accessed using the command line:

C:\Users\User> numbers_and_brightness --file "Images/image.tif"
C:\Users\User> numbers_and_brightness --folder "Images"

Graphical user interface

The package contains a small GUI that can be accessed as follows:

Python

from numbers_and_brightness.gui import nb_gui
nb_gui()

Command line

C:\Users\User> numbers_and_brightness

Parameters

The package contains the following parameters. These parameters can be altered by passing the parameter to the function, or to the cli as '--parameter'

  • background : int, default = 0
    • background noise in the signal. Will be included in the calculations as $k_0$ as described by Digman et al., 2008.
  • segment : bool, default = False
    • perform automatic segmentation of the cells using cellpose
  • diameter : int, default = 100
    • expected diameter of the cell, passed to cellpose model
  • flow_threshold : float, default = 0.4
    • flow threshold, passed to cellpose model
  • cellprob_threshold : float, default = 3
    • cellprob threshold, passed to cellpose model
  • analysis : bool, default = False
    • perform analysis by plotting intensity of cell against apparent brightness
  • erode : int, default = 2
    • erode the edges of the cell mask to ensure only pixels inside the cell are used for the analysis

Examples:

C:\Users\User> numbers_and_brightness --folder "Images" --analysis true
from numbers_and_brightness.numbers_and_brightness import numbers_and_brightness_batch
numbers_and_brightness_batch(folder = "./Images", analysis = True)

Core calculations

All calculations are derived from Digman et al., 2008.

Here img represents a numpy array of shape (t, y, x).

Intensity

Intensity is calculated as:

$$\langle k \rangle = \frac{\sum_i k_i}{K}$$

In python:

average_intensity = np.mean(img, axis=0)

Variance

Variance is calculated as:

$$\sigma^2 = \frac{\sum_i (k_i - \langle k \rangle)^2}{K}$$

In python:

variance = np.var(img, axis=0)

Apparent brightness

Apparent brightness is calculated as:

$$B = \frac{\sigma^2}{\langle k \rangle}$$

In python:

apparent_brightness = variance / average_intensity

Apparent number

Apparent number is calculated as:

$$N = \frac{\langle k \rangle^2}{\sigma^2}$$

In python:

apparent_number = average_intensity**2 / variance

Brightness

Brightness is calculated as:

$$\varepsilon = \frac{\sigma^2 - \langle k \rangle}{\langle k \rangle - k_0}$$

In python:

brightness = (variance - average_intensity) / (average_intensity - background)

Number

Number is calculated as:

$$n = \frac{(\langle k \rangle - k_0)^2}{\sigma^2 - \langle k \rangle}$$

In python:

number = ((average_intensity-background)**2) / np.clip((variance - average_intensity), 1e-6, None)

Here the denominator is clipped (limited) to a value of 1e-6 to prevent extremely high number values.

Output

For each image, the package generates a new folder containing the following output:

Examples:

Dependencies

This package depends on:

  • "cellpose>=3.1.1.1" for cell segmentation
  • "matplotlib>=3.10.1" for plotting
  • "numpy>=2.0.2" for array calculations
  • "opencv-python>=4.11.0.86" for image processing
  • "scipy>=1.15.2" for image processing
  • "tifffile>=2025.3.30" .tiff i/o
  • "tqdm>=4.67.1" for progressbar
  • "customtkinter>=5.2.2" for gui

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

numbers_and_brightness-0.1.0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

numbers_and_brightness-0.1.0-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file numbers_and_brightness-0.1.0.tar.gz.

File metadata

  • Download URL: numbers_and_brightness-0.1.0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for numbers_and_brightness-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d4bf6d65eec751fed3baa462ef91516c1e1715de541e24ce6ba0667e25c80df1
MD5 72d5c10da4e85da5ddf629eb6c1cffc3
BLAKE2b-256 bd086f022e4716fa576f93e499e30e8e5da55915f8e3a667f191377efe74fbb1

See more details on using hashes here.

File details

Details for the file numbers_and_brightness-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for numbers_and_brightness-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 265e85ae7ba494dbc85ca40571cd44f937a68bfc37647732d2cd1b1d6cc0d5d0
MD5 de44476057485e6c9c8f7729e0a87b7e
BLAKE2b-256 5abefa75d6c50f3a47151459f996e8f9798ab1dab7b3ba6a976088be1de8d954

See more details on using hashes here.

Supported by

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