Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bencardoen/smlmvis
Superresolution visualization of 3D protein localization data from a range of microscopes
https://github.com/bencardoen/smlmvis
microscopy smlm superresolution visualization-tools vtk
Last synced: 22 days ago
JSON representation
Superresolution visualization of 3D protein localization data from a range of microscopes
- Host: GitHub
- URL: https://github.com/bencardoen/smlmvis
- Owner: bencardoen
- License: mit
- Created: 2019-05-31T21:22:10.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-06-05T16:51:39.000Z (over 1 year ago)
- Last Synced: 2024-07-08T06:47:30.923Z (4 months ago)
- Topics: microscopy, smlm, superresolution, visualization-tools, vtk
- Language: Jupyter Notebook
- Homepage:
- Size: 12.8 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Superresolution visualization of 3D protein localization data from a range of microscopes
[![Anaconda-Server Badge](https://anaconda.org/bcardoen/smlmvis/badges/version.svg)](https://anaconda.org/bcardoen/smlmvis)[![PyPI version](https://badge.fury.io/py/smlmvis.svg)](https://badge.fury.io/py/smlmvis)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7226577.svg)](https://doi.org/10.5281/zenodo.7226577)
Read, analyze and visualize SMLM localization data quickly from a wide range of localization algorithms.
![Paraview](./example.png "Example")
Example rendering of EPFL challenge dataset ['MT0.N1.HD'](http://bigwww.epfl.ch/smlm/challenge2016/datasets/MT0.N1.HD/Data/data.html)See demo.ipynb for example usage.
## Requirements
### Python
* vtk
* numpy
* jupyter
* pandas
* seaborn
* requests
* scipySee requirements.yml for Conda, piprequirements.txt for pip
### Optional
* [Paraview](https://www.paraview.org/)## Gif of install
![](smlmvis.gif)
## Supported Microscopes/Algorithms
* **EPFL** Challenge:
* epflreader.EPFLReader('data.csv')
* [source](http://bigwww.epfl.ch/smlm/challenge2016/datasets/MT0.N1.HD/Oracle-AS/index.html)
* **Leica GSD**
* gsd.GSDReader('test.bin') # with test.desc in same folder,
* gsdreader.GSDReader('test.ascii', preprocess=True, binary=False) # ASCII format
* (needs pixel to nm conversion (e.g. *160 nm /px) : obj.points *= X
* [source](https://www.leica-microsystems.com/products/light-microscopes/p/leica-sr-gsd-3d/)
* **Tafteh et al** dSTORM with z-drift correction (LSI - UBC)
* dlpreader.DlpReader('test.3dlp')
* [source](https://onlinelibrary.wiley.com/doi/abs/10.1002/jbio.201500140)
* **Rainstorm**
* db = rainstormreader.RainStormReader('data.csv') # Automatically finds pixel to nm
* [source](https://titan.physx.u-szeged.hu/~adoptim/?page_id=582)
* **Abbelight**
* ab = abbelightreader.AbbelightReader('data.csv') # in Nm
* [source](https://www.abbelight.com/)## Install
### PIP
```bash
$pip install smlmvis
```
### Conda
```bash
$conda conda install -c bcardoen smlmvis
```### Local from git master
```bash
$git clone [email protected]:bencardoen/smlmvis.git
$pip install .
```### Optional
You may want to install optional dependencies, e.g. jupyter notebook and seaborn for the demo:
```
pip install jupyter seaborn
```## Usage
See demo.ipynb for example usage.A typical workflow is
* use one of the readers (e.g. GSDReader in smlmvis.gsreader) to load in the SMLM data
* process the point cloud (obj.points) or compute statistics on the metadata (obj.values)
* write out the data to vtk/paraview format using e.g. VtuWriter in vtuwriter## Cite
```latex
@misc{Cardoen2019,
author = {Cardoen, Ben},
title = {Superresolution visualization of 3D protein localization data from a range of microscopes},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
doi = 189660035
howpublished = {\url{https://github.com/bencardoen/smlmvis/}}
}
```
## Tests
See tests/test_writer.pyThis will download the challenge data set, read it, decode it, write it to VTK and compare with a reference.
## Acknowledgements
VTU writing code uses the VTK examples heavily to figure out how to interface with VTK.
* [VTK Python API](https://lorensen.github.io/VTKExamples/site/Python/)