BPHO-Salk / PSSR

Deep Learning-Based Point-Scanning Super-Resolution (PSSR)
BSD 3-Clause "New" or "Revised" License
81 stars 29 forks source link

UPDATE: PSSR is now available as an updated and improved package at ucsdmanorlab/PSSR

Point-Scanning Super-Resolution (PSSR)

This repository hosts the PyTorch implementation source code for Point-Scanning Super-Resolution (PSSR), a Deep Learning-based framework that faciliates otherwise unattainable resolution, speed and sensitivity of point-scanning imaging systems (e.g. scanning electron or laser scanning confocal microscopes).

BioRxiv Preprint: Deep Learning-Based Point-Scanning Super-Resolution Imaging

There is also a PSSR Tweetorial that explains the whole development story of PSSR.

Update: This work has been published in Nature Methods:

Fang, L., Monroe, F., Novak, S.W. et al. Deep learning-based point-scanning super-resolution imaging. Nat Methods (2021). https://doi.org/10.1038/s41592-021-01080-z

Overview

Point-scanning imaging systems (e.g. scanning electron or laser scanning confocal microscopes) are perhaps the most widely used tools for high-resolution cellular and tissue imaging, benefitting from an ability to use arbitrary pixel sizes. Like all other imaging modalities, the resolution, speed, sample preservation, and signal-to-noise ratio (SNR) of point-scanning systems are difficult to optimize simultaneously. In particular, point-scanning systems are uniquely constrained by an inverse relationship between imaging speed and pixel resolution.

Here we show these limitations can be mitigated via the use of Deep Learning-based super-sampling of undersampled images acquired on a point-scanning system, which we termed point-scanning super-resolution (PSSR) imaging. Our proposed PSSR model coule restore undersampled images by increasing optical and pixel resolution, and denoising simultaneously. The model training requires no manually acquired image pairs thanks to the "crappification" method we developed. In addition, the multi-frame PSSR apporach enabled otherwise impossible high spatiotemporal resolution fluorescence timelapse imaging.

Data Availability

All data are hosted in 3DEM Dataverse: https://doi.org/10.18738/T8/YLCK5A, which include:

Instruction of Use

Run PSSR from Google Colaboratory (Colab)

Google Colaboratory (Colab) version of PSSR is now ready. (PSSR - Colab for programmers)

Another PSSR Colab version that orients to non-programmers is also going to be released soon. (PSSR - Colab for non-programmers (In progress))

Very few libraries need to be installed manually for PSSR Colab verion - most dependencies are preinstalled in the Colab environment. This makes the environment set-up step painless and you will be able to quickly get straight to the real fun. However, it also means some of the libraries you will be using are more recent than the ones used for the manuscript, which can be accessed from the instruction below.

Run PSSR from the command line

System Requirements

OS Requirements

This software is only supported for Linux, and has been tested on Ubuntu 18.04.

Python Dependencies

PSSR is mainly written with Fastai, and final models used in the manuscript were generated using fast.ai v1.0.55 library.

Environment Set-up

Scenario 1: Inference using our pretrained models

Please refer to the handy Inference_PSSR_for_EM.ipynb. You need to modify the path for the test images accordingly. Note the input pixel size needs to be 8 nm.

Scenario 2: Train your own data

Step 1: Understand your datasource (see details in gen_sample_info.py)

Step 2: Generate your training data (see details in tile_from_info.py)

Step 3: Train your PSSR model (see details in train.py)

Step 4: Run inference on test data (see details in image_gen.py)

Citation

Please cite our work if you find it useful for your research:

Fang, L., Monroe, F., Novak, S.W. et al. Deep learning-based point-scanning super-resolution imaging. Nat Methods (2021). https://doi.org/10.1038/s41592-021-01080-z

License

Licensed under BSD 3-Clause License.