Skip to content

Commit

Permalink
13.02.2024: README update
Browse files Browse the repository at this point in the history
  • Loading branch information
wisstock committed Feb 13, 2024
1 parent 073e47c commit 302d4cb
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 27 deletions.
37 changes: 28 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
domb-napari
===========

[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine/)
[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine/)

[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/domb-napari)](https://napari-hub.org/plugins/domb-napari)
![PyPI - Version](https://img.shields.io/pypi/v/domb-napari)
Expand All @@ -10,21 +10,25 @@ domb-napari

__napari Toolkit of Department of Molecular Biophysics <br /> Bogomoletz Institute of Physiology of NAS of Ukraine, Kyiv, Ukraine__

napari plugin offers widgets to analyze fluorescence-labeled proteins redistribution in widefield epifluorescence time-lapse acquisitions. Useful for studying calcium-dependent translocation of neuronal calcium sensors, synaptic receptors traffic during long-term plasticity induction, membrane protein tracking, etc.
napari plugin for analyzing fluorescence-labeled proteins redistribution. Offers widgets designed for analyzing the redistribution of fluorescence-labeled proteins in widefield epifluorescence time-lapse acquisitions. Particularly useful for studying various phenomena such as calcium-dependent translocation of neuronal calcium sensors, synaptic receptor traffic during long-term plasticity induction, and membrane protein tracking.

![](https://raw.githubusercontent.com/wisstock/domb-napari/master/images/translocation.gif)
__Hippocalcin (neuronal calcium sensor) redistributes in dendritic branches upon NMDA application__

## Widgets
### Image Preprocessing
# Detection of fluorescence redistributions
A set of widgets designed for detecting fluorescence intensity redistribution through the analysis of differential image series (red-green detection).

Inspired by [Dovgan et al., 2010](https://pubmed.ncbi.nlm.nih.gov/20704590/) and [Osypenko et al., 2019](https://www.sciencedirect.com/science/article/pii/S0969996119301974?via%3Dihub).

## Image preprocessing
Provides functions for preprocessing multi-channel fluorescence acquisitions:
- If the input image has 4 dimensions (time, channel, x-axis, y-axis), channels will be split into individual 3 dimensions images (time, x-axis, y-axis) with the `_ch%index%` suffix.
- If the `gaussian blur` option is selected, the image will be blurred with a Gaussian filter using sigma=`gaussian sigma`.
- If the `photobleaching correction` option is selected, the image will undergo correction with exponential (method `exp`) or bi-exponential (method `bi_exp`) fitting.

![](https://raw.githubusercontent.com/wisstock/domb-napari/master/images/pic_0.png)

### Red-Green Series
## Red-green series
Primary method for detecting fluorescent-labeled targets redistribution in time. Returns a series of differential images representing the intensity difference between the current frame and the previous one as new image with the `_red-green` suffix.

Parameters:
Expand All @@ -36,7 +40,7 @@ Parameters:

![](https://raw.githubusercontent.com/wisstock/domb-napari/master/images/pic_1.png)

### Up Masking
## Up masking
Generates labels for insertion sites (regions with increasing intensity) based on `-red-green` images. Returns labels layer with `_up-labels` suffix.

Parameters:
Expand All @@ -47,7 +51,11 @@ Parameters:

![](https://raw.githubusercontent.com/wisstock/domb-napari/master/images/pic_2.png)

### Individual Labels Profile
## Intensity masking
Extension of __Up Masking__ widget. Detects regions with increasing (`masking mode` - `up`) or decreasing (`masking mode` - `down`) intensity in `-red-green` images. Returns a labels layer with either `_up-labels` or `_down-labels` suffix, depending on the mode.


## Individual labels profiles
Builds a plot with mean intensity profiles for each ROI in `labels` using absolute intensity (if `raw intensity` is selected) or relative intensities (ΔF/F0).

The `time scale` sets the number of seconds between frames for x-axis scaling.
Expand All @@ -63,13 +71,14 @@ Additionally, you can save ROI intensity profiles as .csv using the `save data f
- __id__ - unique image ID, the name of the input `napari.Image` object.
- __roi__ - ROI number, consecutively numbered starting from 1.
- __int__ - ROI mean intensity, raw or ΔF/F0 according to the `raw intensity` option.
- __index__ - frame index
- __time__ - frame time point according to the `time scale`.

_Note: The data frame will contain information for all ROIs; filtering options pertain to plotting only._

![](https://raw.githubusercontent.com/wisstock/domb-napari/master/images/pic_3.png)

### Labels Profile
## Labels profile
Builds a plot with the averaged intensity of all ROIs in `labels`. Can take two images (`img 0` and `img 1`) as input if `two profiles` are selected.

The `time scale` and `ΔF win` are the same as in the __Individual Labels Profiles__.
Expand All @@ -80,4 +89,14 @@ The `stat method` provides methods for calculating intensity errors:
- `iqr` - interquartile range.
- `ci` - 95% confidence interval for t-distribution.

![](https://raw.githubusercontent.com/wisstock/domb-napari/master/images/pic_4.png)
![](https://raw.githubusercontent.com/wisstock/domb-napari/master/images/pic_4.png)

# Traffic monitoring with pH-sensitive tag
A collection of widgets designed for the analysis of image series containing the pH-sensitive fluorescence protein Superecliptic pHluorin (SEP).

Insipred by [Fujii et al., 2017](https://pubmed.ncbi.nlm.nih.gov/28474392/), [Gao et al., 2018](https://www.beilstein-journals.org/bjnano/articles/9/79) and [Sposini et al., 2020](https://www.nature.com/articles/s41596-020-0371-z).

## SEP image preprocessing
Processes image series obtained through repetitive pH exchange methods (such as U-tube or ppH approaches). Frames with odd indexes, including index 0, are interpreted as images acquired at pH 7.0, representing total fluorescence intensity (saved with the suffix `_total`). Even frames are interpreted as images obtained at acidic pH (5.5-6.0), representing intracellular fluorescence only (saved with the suffix `_intra`).

If `calc surface img` is selected, an additional total fluorescence image with subtracted intracellular intensity will be saved as the cell surface fluorescence fraction (suffix `_surface`).
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ version = 2024.02.13
author = Borys Olifirov
author_email = [email protected]
license = MIT
description = napari plugin offers widgets to analyze fluorescence-labeled proteins redistribution in widefield epifluorescence time-lapse acquisitions
description = napari plugin for analyzing fluorescence-labeled proteins redistribution
long_description = file: README.md
long_description_content_type = text/markdown

Expand Down
7 changes: 4 additions & 3 deletions src/domb_napari/_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,11 @@ def mask_calc(viewer: Viewer, img:Image, detection_frame_index:int=2,
if masking_mode == 'up':
mask = detection_img >= np.max(np.abs(detection_img)) * up_threshold
labels_name = img.name + '_up-labels'
mask_name = img.name + '_up-mask'
# mask_name = img.name + '_up-mask'
elif masking_mode == 'down':
mask = detection_img <= np.max(np.abs(detection_img)) * down_threshold
labels_name = img.name + '_down-labels'
mask_name = img.name + '_down-mask'
# mask_name = img.name + '_down-mask'

mask = morphology.opening(mask, footprint=morphology.disk(3))
mask = ndi.binary_fill_holes(mask)
Expand Down Expand Up @@ -271,12 +271,13 @@ def labels_profile_line(viewer: Viewer, img:Image, labels:Labels,

if save_data_frame:
import pandas as pd
output_df = pd.DataFrame(columns=['id','roi','int', 'time'])
output_df = pd.DataFrame(columns=['id','roi','int', 'index', 'time'])
for num_ROI in range(profile_to_plot.shape[0]):
profile_ROI = profile_to_plot[num_ROI]
df_ROI = pd.DataFrame({'id':np.full(profile_ROI.shape[0], img.name),
'roi':np.full(profile_ROI.shape[0], num_ROI+1),
'int':profile_ROI,
'index': np.linspace(0, input_img.shape[0], num=input_img.shape[0], dtype=int),
'time':time_line})
output_df = pd.concat([output_df.astype(df_ROI.dtypes),
df_ROI.astype(output_df.dtypes)],
Expand Down
28 changes: 14 additions & 14 deletions src/domb_napari/napari.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,38 @@ name: domb-napari
contributions:
commands:
- id: domb-napari.split_channels_widget
title: Multichannel Image Preprocessing
title: Multichannel image preprocessing
python_name: domb_napari._widget:split_channels
- id: domb-napari.split_sep_widget
title: SEP Image Preprocessing
title: SEP image preprocessing
python_name: domb_napari._widget:split_sep
- id: domb-napari.der_series_widget
title: Red-Green Series
title: Red-green series
python_name: domb_napari._widget:der_series
- id: domb-napari.up_mask_calc_widget
title: Up Masking
title: Up masking
python_name: domb_napari._widget:up_mask_calc
- id: domb-napari.mask_calc_widget
title: Intensity Masking
title: Intensity masking
python_name: domb_napari._widget:mask_calc
- id: domb-napari.labels_profiles_set_widget
title: Individual Labels Profiles
title: Individual labels profiles
python_name: domb_napari._widget:labels_profile_line
- id: domb-napari.labels_profile_widget
title: Labels Profile
title: Labels profile
python_name: domb_napari._widget:labels_profile_stat
widgets:
- command: domb-napari.split_channels_widget
display_name: Image Preprocessing
display_name: Image preprocessing
- command: domb-napari.der_series_widget
display_name: Red-Green Series
display_name: Red-green series
- command: domb-napari.split_sep_widget
display_name: SEP Preprocessing
display_name: SEP preprocessing
- command: domb-napari.up_mask_calc_widget
display_name: Up Mask
display_name: Up masking
- command: domb-napari.mask_calc_widget
display_name: Intensity Masking
display_name: Intensity masking
- command: domb-napari.labels_profiles_set_widget
display_name: Individual Labels Profile
display_name: Individual labels profiles
- command: domb-napari.labels_profile_widget
display_name: Labels Profile
display_name: Labels profile

0 comments on commit 302d4cb

Please sign in to comment.