Giter VIP home page Giter VIP logo

sparse-sim's Introduction

Weisong Zhao, Ph.D.

  • Professor, PI, microscopist, and data scientist at Harbin Institute of Technology (HIT).
  • His research interest focuses on biomedical imaging, machine learning, and bioimage analysis.
  • His lab is building advanced optical microscopy for biomedical applications, as well as developing smart algorithms across modalities including optical microscopy, acoustic/photoacoustic imaging, and cryo-EM/ET.

Scripting:

Contact 📱

  1. Website: https://weisongzhao.github.io/
  2. Email: [email protected]
  3. Twitter: @weisong_zhao
  4. Blogs: CSDN

News (start from 2020)

Selected Projects

Name MATLAB Java (ImageJ) Python Other languages Reference Description
SN2N - - SN2N - bioRxiv Self-inspired Noise2Noise learning to denoise engine
rFRC & PANEL PANELM PANELJ PANELpy - Light: Sci. Appl. Quantitatively mapping the local image quality at super-resolution scale
SACD SACDm SACDj - - Nat. Photon. 100 times faster super-resolution fluctuation imaging.
Sparse deconvolution Sparse-SIM - sparse-deconv-py - Nat. Biotech. An universal post-processing framework for fluorescence microscopy.
ImagePy - - ImagePy - Bioinformatics An open source image processing framework (A Pythonic ImageJ).
Simulation for Adaptive Optics Adaptive-Optics-simulation - - - Rev. Sci. Instrum. A light weight simulation framework for adaptive optics in microscopy.
img2vid img2vid - - - Nat. Biotech. A light weight framework for making exsiting images to videos.
Palette.ui Palette.ui - - - Nat. Biotech. Multi-color imaging tool to merge/composite frames.
Adaptive median filter - Adaptive-Median-imagej - - Nat. Biotech. A median filter with adaptive threshold to avoid blurring effects.
t-varianceJ - t-varianceJ - - - T-axial variance calculation will highlight the regions that have calcium signal transients.
Clean Web Template - - - CleanWeb-Template (html/Javascript) - A light weight personal website template.

sparse-sim's People

Contributors

weisongzhao avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

sparse-sim's Issues

input data error (.tif) and how to export the reconstructed image?

Hi, Weisong,

Thank you so much for sharing the excellent work. It was amazing!

Can I ask you two questions? First, how can I export the reconstructed image (where is the button on the GUI)?

And the second question: when I was using your software, I found I couldn't load my own data (TIF format and I got the image by using Zeiss 880 confocal microscopy). So, is there any special for the data or just a .tif format image is good? Looking forward to your reply. Thank you.

Best regards,

Shangyu Gong

PSF for confocal microsope?

Hello there!

I have been getting really good results compared to any other deconv method I have tried before including many of commercially available softwares, thank you very much for developing this :)

Do you mind asking a question again?

Is there any code edit needed for PSF generation for the laser scanning confocal and/or laser spanning disk? I have been using default code for PSF generation, and I wonder if this is for widefield images?

Suggestions for importing SIM/Lattice-SIM images

Hello,

Thank you very much for the cool software!

I have a question about your recommendations for inputting SIM data into the software. As the original title was "Sparse-SIM" I anticipated that the software would also reconstruct from raw SIM data but I believe I can only input previously reconstructed SIM data. What method/software did you use to reconstruct your raw SIM data before running through Sparse-SIM please?

We have a Lattice-SIM system and we were very interested to run our generated data (reconstructed with Zeiss SIM/SIM^2 algorithm) through your algorithm, have you already tried this please?

Some confusion about sparse deconvolution

Dear Weisong
Hello, I am very excited to tell you that sparse deconvolution has a very obvious processing effect on many kinds of microscope images. After reading your article and using sparse deconvolution, I still have some confusion. I sincerely hope to get your advice, thank you!

  1. I found that the PSF estimation you used in Sparse-SIM GUI is two-dimensional form. When processing three-dimensional data (z-stack or time series), the procedure process the data slice by slice. For time series data, I think this is reasonable, but for a three-dimensional stack (the z direction changes with depth), the psf should be three-dimensional. I have tried to change the iterative deconvolution part of your program to 3d RL, but I found that the one-by-one deconvolution you used is better, and I am a little confused.
  2. For Sparse deconvolution, we first use sparse iteration to reduce the noise, and then perform RL deconvolution to get a significant improvement in resolution. I try to use the method of the article Zhang, Zhe, Dongzhou Gou, Fan Feng, Ruyi Zheng, Ke Du, Hongrun Yang, Guangyi Zhang, et al. "3d Hessian Deconvolution of Thick Light-Sheet Z-Stacks for High-Contrast and High-Snr Volumetric Imaging." Photonics Research 8, no. 6 (2020): 1011-21.
    and add sparse restrictions. But its effect is not obvious. What is the reason for the worse resolution enhancement of one step deconvolution?It does include an iterative deblurring process. Are all the deconvolution methods inferior to RL, laugh and cry

Unable to run Sparse-SIM.app on MacBook Pro with M2 Max processor

Hi Weisong, thank you for sharing your project. It is really helpful. These days I tried to run Sparse-SIM.app on my MacBook Pro with M2 Max processor, but the installer just never initiate (it crashed every time I clicked it). I also tried to use MATLAB runtime, but it didn't work neither, it kept saying "no such file" (files' names are different in MACI64 folder) . I am not sure if it is the Apple M2 Max processor does not compatible with your project. Could you provide me some suggestions? Thank you!

What is "effective NA" in the software

First of all, congratz on new paper (SACD)! I tried it, and it works really well :)

Question: what is "effective NA" in the sparse-sim software? if I were to use confocal with 1.27NA water lens, for example, what value should I put in...?

Thank you very much!

Some images become all 0 or NaN after sparse deconvolution

Hello, thanks for making this available! I've been trying out the Sparse SIM release 1.0.3 with Matlab 2017b on a machine running Windows 10 enterprise. Some images that I apply it on produce very nice results, but for some the output is all zeros in the tiff file, and the variable SHdeblurCPU from the .mat file is all NaN's. I assume that the input image file I supply is not meeting the assumptions of the program in these cases, but I don't see any errors being thrown. I am hoping you have some advice on how to figure out what goes wrong with these images.

Software flash back problem

There was a software flash out today and I have reinstalled the software and still can't solve the problem.
Do you know how to address such a problem?

Is FFT operation neccesary in Hessian deblur?

I notice that in

operationfft=1*xxfft+ 1*yyfft+(contiz^2)*zzfft+ 2*xyfft+ 2*(contiz)*xzfft+2*(contiz)*yzfft;

operation_fft is a variable only depends on image shapes. It is always a small number compared to (fidelity/mu) +paral1^2 in
normlize = single((fidelity/mu) +paral1^2 +operationfft);

So I tried to remove this number. Thus according to the formula in the supplementary information of your paper:
image
when the red column of item is removed, all the fft operation seems to be redundant. So to validate this idea, I modify https://github.com/WeisongZhao/Sparse-SIM/blob/master/src_win/SHIter/SparseHessian_core.m. Specifically, here is the detailed modification:
Original code:

operationfft=1*xxfft+ 1*yyfft+(contiz^2)*zzfft+ 2*xyfft+ 2*(contiz)*xzfft+2*(contiz)*yzfft;
normlize = single((fidelity/mu) +paral1^2 +operationfft);
clear xxfft yyfft zzfft xyfft xzfft yzfft operationfft
if gpu==1
    f=gpuArray(f);
    normlize =gpuArray(normlize);
    bxx = gpuArray.zeros(sizeg,'single');
    byy = bxx;
    bzz = bxx;
    bxy =bxx;
    bxz =bxx;
    byz = bxx;
    bl1 =bxx;
else
    bxx = zeros(sizeg,'single');
    byy = bxx;
    bzz = bxx;
    bxy = bxx;
    bxz = bxx;
    byz = bxx;
    bl1 = bxx;
end
g_update = (fidelity/mu)*f;
for iter = 1:iteration
    tic;
    g_update = fftn(g_update);
    if iter>1
        g = real(ifftn(g_update./normlize));
    else
        g = real(ifftn(g_update./(fidelity/mu)));
    end
    g_update = (fidelity/mu)*f;

modified code without fft:

%operationfft=1*xxfft+ 1*yyfft+(contiz^2)*zzfft+ 2*xyfft+ 2*(contiz)*xzfft+2*(contiz)*yzfft;
normlize = single((fidelity/mu) +paral1^2 );%+operationfft);
clear xxfft yyfft zzfft xyfft xzfft yzfft %operationfft
if gpu==1
    f=gpuArray(f);
    normlize =gpuArray(normlize);
    bxx = gpuArray.zeros(sizeg,'single');
    byy = bxx;
    bzz = bxx;
    bxy =bxx;
    bxz =bxx;
    byz = bxx;
    bl1 =bxx;
else
    bxx = zeros(sizeg,'single');
    byy = bxx;
    bzz = bxx;
    bxy = bxx;
    bxz = bxx;
    byz = bxx;
    bl1 = bxx;
end
g_update = (fidelity/mu)*f;
for iter = 1:iteration
    tic;
    %g_update = fftn(g_update);
    if iter>1
        %g = real(ifftn(g_update./normlize));
        g = g_update./normlize;
    else
        %g = real(ifftn(g_update./(fidelity/mu)));
        g = g_update / (fidelity / mu);
    end
    g_update = (fidelity/mu)*f;

I have tested the codes on a test image from your open data https://github.com/WeisongZhao/Sparse-SIM/releases/download/v1.0.3/Example.Data.from.Manuscript.zip.
It turns out that, on Fig4a_2DSIM_Actin.tif, the two codes achieves almost the same performance:
SSIM between the outputs of two codes: 0.99988
cosine distance between the outputs of two codes: 1.16e-05

According to the result, It seems that fft operation is not neccessay. Any idea about this?

Cannot write to file .\RUN\recentsetting_SHrecon.mat: Access is denied. Error in => Sparse_SIM_recon.m at line 84

Description:
I encountered an error message while running the program that says "Cannot write to file .\RUN\recentsetting_SHrecon.mat: Access is denied. Error in => Sparse_SIM_recon.m at line 84". I am using MATLAB R2017a on Windows 11.

The error occurred when I started the application Sparse_deconvolution.

I have tried to investigate the issue by checking the file permissions, but I have not been able to resolve the problem yet.

Could you please provide any suggestions on how to solve this issue? Thank you.

ovesampling?

Hello there,

I have been recently found this algorithm and trying to use it for my research.

I wonder how we can do the oversampling? I downloaded the software and whenever I choose "oversampling", it just doesn't do anything (the sparse reconstruction progress bar is 0%).

Except for this, everything works fine. Would be very appreciated if you can help me out!

Also, naive question.

If I upsample the image, and use the correct pixel size for deconvolution, wouldn't that similar as "oversampling" option in the program?

Thanks!!!

Ask for specific setting instructions

Hello!

After carefully reading your masterpiece, I found this very useful software.

Excuse me, is there a specific setting guide for various parameters in this software?

Thank you!

Where can I find the processed data?

Hello,

Thanks for the great software. I'm currently playing with it via GUI , but I do not know where the deconvoluted data save to (or does this save image?)

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.