Implementation of the Silver Mountain Operator (SMO) for the estimation of background distributions.
Project description
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 .
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 forsmoand click on the install button. -
Option 2: just
pipinstall 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6bd078874f7401d76c31d8ced0721b67cddae2658bba1ad22c0bf4baad94aed
|
|
| MD5 |
cd11931c9b84962ebbb49c73bbb50d26
|
|
| BLAKE2b-256 |
4d9420a9a64bd4d6967058b9b5c881c5be8ae3f86d6469a2266d442d71c09b20
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06e47647f3fc2caaa9278ac47c6dbe22fe152c7f32f8563ec5539b2487eae17c
|
|
| MD5 |
7546090e27d07f1051ef4c2e374b3271
|
|
| BLAKE2b-256 |
87436bdd23ddbe118c977c5ebe4ad32deccdfc08729ca5213ee62630ae8821c8
|