Giter Site home page Giter Site logo

yu-lab-vt / synquant Goto Github PK

View Code? Open in Web Editor NEW
13.0 2.0 4.0 22.22 MB

A Fiji plugin that automatically quantify synapses from multi-channel fluorescence microscopy images.

License: GNU General Public License v3.0

Java 100.00%
synapse bioimage-informatics fiji-plugin image-analysis

synquant's Introduction

logo


SynQuant is a Fiji plugin that automatically quantifies synapses from fluorescence microscopy images. If you have any feedback or issues, you are welcome to either post an issue in the Issues section or send an email to [email protected] (Guoqiang Yu at Virginia Tech).

Welcome to SynQuant

SynQuant is a Fiji plugin that automatically quantifies synapses from fluorescence microscopy images. Try SynQuant Now!

Any problem? SynQuant does not work on your data? Please open an issue. We are happy to help!

Overview of SynQuant

Why SynQuant

Versatile and works with difficult data

  • Detect and segment synaptic punctum
  • 2D and 3D data
  • Confocal imaging, two-photon imaging, and array tomograhy
  • Cultured tissue, brain slice, and in-vivo data
  • Combine pre-synaptic and post-synaptic chanenls to predict the ground-truth synaptic cleft
  • With or without neurite comtamination
  • Puncta may have different sizes, shapes and brighness

Unsupervised, but works as good as (or better than) supervised methods

  • SynQuant performs better than peer unsupervised methods [5-8] for all the three data sets we tested (3D in-vivo [2], array tomography [3], neuron-astrocyte coculture [4]).
  • SynQuant performs similarly to the best-performing supervised method [10] in terms of F1 score and works better than it in terms of average precision.
  • SynQuant outperforms other supervised methods [9,11].

Statistical significance for each punctum

  • SynQuant is based on order statistics, which assign a p-value or z-score to each puncta.
  • Adjust z-score to trade-off between false positives and false negatives.

Easy to use

  • User friendly Fiji plug-in
  • Export detected puncta to the ROI manager
  • For 2D images, SynQuant can trace neurites as well
  • Coming soon: Have lots of images? It is easy to call the Java class of SynQuant in your MATLAB code.

Getting started

  1. Downlaod SynQuant.
    • If you do not have Fiji yet, get it here.
  2. Put the downloaded jar file in the plugin folder of Fiji.
  3. Open Fiji and load the image.
  4. Open SynQuantVid from the plugins menu.
  5. Check out the user guide.
  6. Check out the Simple Video Demo.

Images and datasets

Example images

Example data for testing the SynQuant plugin can be found here.

Synthetic and real data used in the paper

Click here to get the following things related to the experiments in [1]:

  • Three real data sets and labels
  • Synthetic data with labels
  • Description of real and synthetic data
  • Code to generate synthetic data

Algorithm overview

SynQuant detects synapses through an unsupervised probability principled framework. In this framework, analysis is conducted on salient regions rather than pixels.

All synapse candidates are scored by order statistics which combine the information of size, local contrast, and noise level. What’s more, p-value or z-score to determine synapse selection, which provides statistical evidence of the detected synapse. The parameter used in this framework is only the threshold of p-value or z-score which is statistically meaningful and easy to tune.

The framework of the synapse detection algorithm now is based on the idea of the component tree which scales well to 3D data.

For more information, check out our paper. For citation, see reference [1].

Tree based detection and segmentation algorithm

Batch processing

For processing large amounts of data, you may wish to write some scripts in ImageJ. In this case, a simplified version of SynQuant might be useful.

Another choice is to call SynQuant Java classes directly from MATLAB. An example is given here. Note that this only contains a subset of the features of the Fiji plug-in, and does not provide a GUI. For a smaller amount of images, it is better to use the Fiji plug-in.

You may also try to call SynQuant using the Python-ImageJ interface PyImageJ, but we have not tested that yet.

Updates

Version 1.2.8 [7/30/2020]

  • Fixed the bug that SynQuant can’t get any result when the input images don’t contain any noise.

Version 1.2.7 [7/3/2020]

  • When users open SynQuant without any valid image, it will give users a notification.

Version 1.2.6 [6/11/2020]

  • Add extending distance for the "intersect" channel combination method.

Version 1.2

  • Allow for the detection of pre-, post-synaptic puncta and synaptic sites.
  • Add the function of combining pre-, post-synaptic puncta detection results.
  • Support of puncta detection for both 2D and 3D data in the same plugin.
  • Add one more noise estimation/stabilization method.
  • Add two more input parameters for the user to tune their targets' shapes.
  • Add a slider for the user to post-process results based on the z-score.

Version 1.1

  • Add the component tree structure for synapse detection suggested by Dr.Petter Ranefall. 3 times faster than before
  • Output ROI regions overlaid with original synaptic data. Quantification can be done based on detected synapses or synaptic sites.

Reference

Citation

[1] Yizhi Wang*, Congchao Wang*, Petter Ranefall, Gerard Joey Broussard, Yinxue Wang, Guilai Shi, Boyu Lyu, Chiung-Ting Wu, Yue Wang, Lin Tian, Guoqiang Yu. (2020). SynQuant: An Automatic Tool to Quantify Synapses from Microscopy Images, Bioinformatics, 36(5), 1599–1606

Dataset related papers

[2] Bass, C., Helkkula, P., De Paola, V., Clopath, C., & Bharath, A. A. (2017). Detection of axonal synapses in 3d two-photon images. PloS one, 12(9).

[3] Collman, F., Buchanan, J., Phend, K. D., Micheva, K. D., Weinberg, R. J., & Smith, S. J. (2015). Mapping synapses by conjugate light-electron array tomography. Journal of Neuroscience, 35(14), 5792-5807.

[4] Mizuno, G. O., Wang, Y., Shi, G., Wang, Y., Sun, J., Papadopoulos, S., ... & Bhattacharyya, A. (2018). Aberrant calcium signaling in astrocytes inhibits neuronal excitability in a human Down syndrome stem cell model. Cell Reports, 24(2), 355-365.

Peer methods: unsupervised

[5] Zhang, B., et al. (2007) Multiscale variance-stabilizing transform for mixed-Poisson-Gaussian processes and its applications in bioimaging. Image Processing, 2007 IEEE International Conference on, VI-233-VI-236.

[6] Rezatofighi, S., et al. (2012) A new approach for spot detection in total internal reflection fluorescence microscopy. Biomedical Imaging (ISBI), 2012 9th IEEE International Symposium on, 860-863.

[7] Schmitz, S., et al. "Automated analysis of neuronal morphology, synapse number and synaptic recruitment." Journal of Neuroscience Methods 195 (2011): 185-193.

[8] Simhal, AK., et al. "Probabilistic fluorescence-based synapse detection." PLoS Computational Biology 13.4 (2017).

Peer methods: supervised

[9] Bass, C., Helkkula, P., De Paola, V., Clopath, C., & Bharath, A. A. (2017). Detection of axonal synapses in 3d two-photon images. PloS one, 12(9).

[10] Kulikov, V., Guo, S. M., Stone, M., Goodman, A., Carpenter, A., Bathe, M., & Lempitsky, V. (2019). DoGNet: A deep architecture for synapse detection in multiplexed fluorescence images. PLoS Computational Biology, 15 (5).

[11] Ronneberger, O., et al. "U-net: Convolutional networks for biomedical image segmentation." International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015.

synquant's People

Contributors

ccwang92 avatar freemanwyz avatar mengfanwang avatar weizheng96 avatar yu-lab-vt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

synquant's Issues

Unable to consistently generate feature table from images

When I follow the instructions from the manual to detect synapses, I always get the synapse detection results table, but I only occasionally get the synapse quantification summary table. how can I generate this table consistently?

Java CLI/Fiji headless mode for batch processing?

Hello there,

Thank you very much for this wonderful tool!
Just wondering whether there's a chance to have a CLI/Fiji headless version for batch processing?
I know you mentioned in the README that you are working on Matlab version.
However, having a Java CLI/Fiji headless will be much more open-source frendly and potentially will intrigue more people using this great tool.

Many thanks!
Best,
Tong

Java exception on FIJI

Hello
I followed the instruction to install SynQuant but when I opened the plugin I received an error message ( please, see attached the error)

How can I solve the problem?
I have the last version of Fiji and I using Windows 10. I will try to do on a MAC too, to see if windows is the problem.

Thank you
Regards
synquantproblem

Null Pointer Exception with an Image Opened

Hi,

I noticed that user PMLLancao posted an Issue about the same problem that I'm currently finding with SynQuant.

I have a .tif file open in Fiji, and when I click the SynQuantVid plugin under 'Plugins,' the 3D Particles - Data and Parameter Setting GUI does come up as it should as I've seen in the demo videos you've posted. However, once I click OK on these settings, I receive the same error that PMLLancao discussed:

image

I also receive another pop-up 'Log' window saying 'Pixel format not supported.'

image

Do you know what the issue may be?

Thank you for developing this plugin and your help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.