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 forsmo
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
Built Distribution
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 |