Skip to main content

Implementation of the Silver Mountain Operator (SMO) for the estimation of background distributions.

Project description

PyPi License PyPi Conda

SMO

SMO is a Python package that implements the Silver Mountain Operator (SMO), which allows to recover an unbiased estimation of the background intensity distribution in a robust way.

We provide an easy to use Python package and plugins for some of the major image processing softwares: napari, CellProfiler, and ImageJ / FIJI. See Plugins section below.

Citation

To learn more about the theory behind SMO, you can read the pre-print in BioRxiv.

If you use this software, please cite that pre-print.

Usage

To obtain a background-corrected image, it is as straightforward as:

import skimage.data
from smo import SMO

image = skimage.data.human_mitosis()
smo = SMO(sigma=0, size=7, shape=(1024, 1024))
background_corrected_image = smo.bg_corrected(image)

where we used a sample image from scikit-image. By default, the background correction subtracts the median value of the background distribution. Note that the background regions will end up with negative values, but with a median value of 0.

A notebook explaining in more detail the meaning of the parameters and other possible uses for SMO is available here: smo/examples/usage.ipynb Open In Colab.

Installation

It can be installed with pip from PyPI:

pip install smo

or with conda from the conda-forge channel:

conda install -c conda-forge smo

Plugins

Napari

A napari plugin is available.

To install:

  • Option 1: in napari, go to Plugins > Install/Uninstall Plugins... in the top menu, search for smo and click on the install button.

  • Option 2: just pip install this package in the napari environment.

It will appear in the Plugins menu.

CellProfiler

A CellProfiler plugin in available in the smo/plugins/cellprofiler folder.

To install, save this file into your CellProfiler plugins folder. You can find (or change) the location of your plugins directory in File > Preferences > CellProfiler plugins directory.

ImageJ / FIJI

An ImageJ / FIJI plugin is available in the smo/plugins/imagej folder.

To install, download this file and:

  • Option 1: in the ImageJ main window, click on Plugins > Install... (Ctrl+Shift+M), which opens a file chooser dialog. Browse and select the downloaded file. It will prompt to restart ImageJ for changes to take effect.

  • Option 2: copy into your ImageJ plugins folder (File > Show Folder > Plugins).

To use the plugin, type smo on the bottom right search box:

select smo in the Quick Search window and click on the Run button.

Note: the ImageJ plugin does not check that saturated pixels are properly excluded.

Development

Code style is enforced via pre-commit hooks. To set up a development environment, clone the repository, optionally create a virtual environment, install the [dev] extras and the pre-commit hooks:

git clone https://github.com/maurosilber/SMO
cd SMO
conda create -n smo python pip numpy scipy
pip install -e .[dev]
pre-commit install

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

smo-2.0.2.tar.gz (811.9 kB view details)

Uploaded Source

Built Distribution

smo-2.0.2-py2.py3-none-any.whl (702.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file smo-2.0.2.tar.gz.

File metadata

  • Download URL: smo-2.0.2.tar.gz
  • Upload date:
  • Size: 811.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for smo-2.0.2.tar.gz
Algorithm Hash digest
SHA256 e6bd078874f7401d76c31d8ced0721b67cddae2658bba1ad22c0bf4baad94aed
MD5 cd11931c9b84962ebbb49c73bbb50d26
BLAKE2b-256 4d9420a9a64bd4d6967058b9b5c881c5be8ae3f86d6469a2266d442d71c09b20

See more details on using hashes here.

File details

Details for the file smo-2.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: smo-2.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 702.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for smo-2.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 06e47647f3fc2caaa9278ac47c6dbe22fe152c7f32f8563ec5539b2487eae17c
MD5 7546090e27d07f1051ef4c2e374b3271
BLAKE2b-256 87436bdd23ddbe118c977c5ebe4ad32deccdfc08729ca5213ee62630ae8821c8

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