PiSCAT

PiSCAT: A Python Package for Interferometric Scattering Microscopy - Published in JOSS (2022)

https://github.com/sandoghdarlab/piscat

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 23 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: aps.org, joss.theoj.org, zenodo.org
  • Committers with academic emails
    6 of 11 committers (54.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

data-analysis microscopy-images nano-particles python

Scientific Fields

Sociology Social Sciences - 87% confidence
Mathematics Computer Science - 84% confidence
Artificial Intelligence and Machine Learning Computer Science - 83% confidence
Last synced: 4 months ago · JSON representation

Repository

PiSCAT is a python-based package with a graphical user interface for performing high-performance analysis on a variety of iSCAT measurements.

Basic Info
  • Host: GitHub
  • Owner: SandoghdarLab
  • License: gpl-3.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage: https://piscat.readthedocs.io/
  • Size: 17.1 MB
Statistics
  • Stars: 20
  • Watchers: 3
  • Forks: 14
  • Open Issues: 9
  • Releases: 1
Topics
data-analysis microscopy-images nano-particles python
Created over 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License

README.md

DOI

DOI badge

PiSCAT: An open source package in Python for interferometric Scattering Microscopy (Homepage)

iSCAT microscopy was introduced about two decades ago (1) and demonstrated to be the method of choice for label-free imaging and tracking of matter at nanometric scale (2), with a wide range of applications such as detection of gold nanoparticles, single dye molecules, viruses, and small proteins (3). The image of a nanoparticle in iSCAT microscopy is formed via the interference between the light scattered from the particle and a reference field which is a part of the incident laser light. The photostable scattering signal from nanoparticles allows for very long measurements at high speeds, all the way up to megahertz, limited only by the available technology, e.g. of cameras or scanners. Recording fast and long videos however, produces a large volume of data which needs to undergo several stages of computationally demanding analysis. We introduce PiSCAT as a python-based package for the analysis of variuos iSCAT measurements and related experiments. PiSCAT aims to facilitate high-performance quantitative analysis of big data and provide a generally open-access platform to enable and speed up the research in iSCAT and related communities. To facilitate the use of PiSCAT, we offer tutorials with live-code features in which we present state-of-the-art algorithms for iSCAT microscopy. These cover important educative materials in jupyter notebooks, supported with a web-based documentation page.

In this first release, we provide analysis tools for the sensitive detection of single unlabelled proteins via wide-field iSCAT microscopy. Proteins are only a few nanometers in size with a molecular weight of a few to several hundred kDa. They were detected via iSCAT already in 2014 for small proteins down to the Bovines Serumalbumin (BSA) protein with a mass of 65 kDa (4). iSCAT microscopy is since employed in several more advanced applications such as real-time investigation of cellular secretion (5,6) and quantitative mass spectrometry of single proteins (7).

Documentation

The documentation webpage of PiSCAT modules can be found here.

The outputs from most of the PiSCAT localization and tracking methods are of Panda data frame type. This data structure has the ability to be easily appended/extended with more information based on different levels of analysis. The data structures containing the results of localization and tracking routines can be saved as csv, mat and HDF5 files. This helps users to work with the analyzed information using different softwares namely, MATLAB and Microsoft Excel. HDF5 is a well-known format that is readable in different programming languages and supports large, complex, heterogeneous data. HDF5 uses a "file directory" like structure that allows users to organize data within the file in structured ways and to embed metadata as well, making it self-describing.

Installation

From PyPi

To install PiSCAT using PyPi, enter the following command in the console:

pip install piscat

Local installation of PiSCAT

Clone/download this repository and unzip it. In the project directory enter the following command

pip install -e .

Running PiSCAT GUI

Once the installation is done and the python environment is activated, enter the following command in the console:

python -m piscat

Running PiSCAT Tutorials

Once the installation is done and the python environment is activated, enter the following command in the console:

python -m piscat.Tutorials

Citing PiSCAT

DOI badge

If you use PiSCAT in a scientific publication or for its API or design, we would appreciate citations to the following paper:

[1] Mirzaalian Dastjerdi, Houman, et al. "PiSCAT: A Python Package for Interferometric Scattering Microscopy." The Journal of Open Source Software 7.71 (2022). (Journal)

Bibtex entry:

@article{Dastjerdi2022,
  doi = {10.21105/joss.04024},
  url = {https://doi.org/10.21105/joss.04024},
  year = {2022},
  publisher = {The Open Journal},
  volume = {7},
  number = {71},
  pages = {4024},
  author = {Houman Mirzaalian Dastjerdi and Reza Gholami Mahmoodabadi and Matthias Bär and Vahid Sandoghdar and Harald Köstler},
  title = {PiSCAT: A Python Package for Interferometric Scattering Microscopy},
  journal = {Journal of Open Source Software}
}

Testing

To run the tests, please activate the PiSCAT virtual environment. In the project directory, in the console, enter the following command:

python setup.py test

Installation of PiSCAT virtual environment in the PyCharm IDE:

  1. Follow the hyper links and the install Python 3.9 and PyCharm.
  2. Create a virtual environment based on the instructions provided here.
  3. Follow this link to select PiSCAT venv as the interpreter, to install the setup.py file and then to run a setup.py task.

Contributing

Contributions to PiSCAT are always welcome, and they are greatly appreciated! Our contribution policy can be found here.

Owner

  • Name: Sandoghdar Lab - Nano Optics
  • Login: SandoghdarLab
  • Kind: organization
  • Location: Max Planck Institute for the Science of Light

JOSS Publication

PiSCAT: A Python Package for Interferometric Scattering Microscopy
Published
March 31, 2022
Volume 7, Issue 71, Page 4024
Authors
Houman Mirzaalian Dastjerdi ORCID
Max Planck Institute for the Science of Light, 91058 Erlangen, Germany., Max-Planck-Zentrum für Physik und Medizin, 91058 Erlangen, Germany., Department of Computer Science, Friedrich-Alexander University Erlangen-Nürnberg, 91058 Erlangen, Germany.
Reza Gholami Mahmoodabadi
Max Planck Institute for the Science of Light, 91058 Erlangen, Germany., Max-Planck-Zentrum für Physik und Medizin, 91058 Erlangen, Germany.
Matthias Bär
Max Planck Institute for the Science of Light, 91058 Erlangen, Germany., Max-Planck-Zentrum für Physik und Medizin, 91058 Erlangen, Germany.
Vahid Sandoghdar
Max Planck Institute for the Science of Light, 91058 Erlangen, Germany., Max-Planck-Zentrum für Physik und Medizin, 91058 Erlangen, Germany., Department of Physics, Friedrich-Alexander University Erlangen-Nürnberg, 91058 Erlangen, Germany.
Harald Köstler
Department of Computer Science, Friedrich-Alexander University Erlangen-Nürnberg, 91058 Erlangen, Germany., Erlangen National High Performance Computing Center (NHR@FAU).
Editor
Elizabeth DuPre ORCID
Tags
Python microscopy interferometric microscopy

GitHub Events

Total
  • Watch event: 3
Last Year
  • Watch event: 3

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 399
  • Total Committers: 11
  • Avg Commits per committer: 36.273
  • Development Distribution Score (DDS): 0.574
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Houman Mirzaalian Dastjerdi h****i@m****e 170
msarraf m****f@g****m 129
Houman H****n@g****m 26
Marco Heisig m****g@f****e 20
Houman.M_Dastjerdi h****i@b****m 14
Reza Gholami M r****i@m****e 12
mirzaali h****i@i****e 12
Mohammadhossein Sheikhsarraf m****h@m****e@0****e 7
po60nani h****m 6
Matthias Baer m****r@m****e 2
Seyed Mohammad Yousef Najafi s****i@m****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 17
  • Total pull requests: 28
  • Average time to close issues: 8 days
  • Average time to close pull requests: 22 days
  • Total issue authors: 9
  • Total pull request authors: 6
  • Average comments per issue: 0.71
  • Average comments per pull request: 0.39
  • Merged pull requests: 23
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • marcoheisig (8)
  • mriedmann (2)
  • smuench34 (1)
  • jacopoabramo (1)
  • MajaR01 (1)
  • masihnajafi02 (1)
  • morti3091 (1)
  • BoostCookie (1)
  • mnotrin (1)
  • nithilamk (1)
Pull Request Authors
  • po60nani (11)
  • msarraf (8)
  • marcoheisig (6)
  • dependabot[bot] (1)
  • masihnajafi02 (1)
  • stephtr (1)
Top Labels
Issue Labels
enhancement (6) bug (2)
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 61 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 37
  • Total maintainers: 1
pypi.org: piscat

A high-performance library for interferometric scattering microscopy.

  • Versions: 37
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 61 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 12.8%
Average: 14.8%
Dependent repos count: 21.5%
Maintainers (1)
Last synced: 4 months ago

Dependencies

docs/requirements.txt pypi
  • PyQt5 *
  • Pyside2 *
  • astropy *
  • h5py *
  • ipykernel *
  • ipywidgets *
  • joblib *
  • m2r2 *
  • matplotlib *
  • nbsphinx *
  • networkx *
  • numba *
  • numpy *
  • opencv-python *
  • pandas *
  • psutil *
  • pyqtgraph *
  • recommonmark *
  • requests *
  • scikit-image *
  • scikit_learn *
  • scipy *
  • sphinx *
  • sphinx-markdown-tables *
  • sphinx_rtd_theme *
  • sphinxcontrib-bibtex *
  • tqdm *
  • trackpy *
  • versioned-hdf5 *
  • wget *
requirements.txt pypi
  • PyQt6 ==6.2.3
  • PyQtWebEngine ==5.15.5
  • PySide6 ==6.2.3
  • astropy ==5.0
  • h5py ==3.6.0
  • imageio-ffmpeg ==0.4.5
  • ipywidgets ==7.6.5
  • joblib ==1.1.0
  • matplotlib ==3.5.0
  • networkx ==2.6.3
  • numba ==0.54.1
  • numpy ==1.22
  • opencv-python ==4.5.4.60
  • pandas ==1.3.4
  • psutil ==5.8.0
  • pyqtgraph ==0.12.4
  • requests ==2.26.0
  • scikit-image ==0.18.3
  • scikit-learn ==1.0.1
  • scipy ==1.7.3
  • tifffile ==2022.5.4
  • tqdm ==4.62.3
  • trackpy ==0.5.0
  • wget ==3.2
setup.py pypi
  • PyQt6 *
  • PyQtWebEngine *
  • Pyside6 *
  • astropy *
  • h5py *
  • imageio-ffmpeg *
  • ipywidgets *
  • joblib *
  • matplotlib *
  • networkx *
  • numba *
  • numpy >=1.22.0
  • opencv-python *
  • pandas *
  • psutil *
  • pyqtgraph *
  • requests *
  • scikit-image *
  • scikit_learn *
  • scipy >=0.14.0
  • tifffile *
  • tqdm *
  • trackpy *
  • wget *
.github/workflows/python-app.yml actions
  • actions/checkout v2 composite
  • actions/checkout v3 composite
  • actions/configure-pages v2 composite
  • actions/deploy-pages v1 composite
  • actions/setup-python v2 composite
  • actions/upload-pages-artifact v1 composite