SMITE

SMITE: Single Molecule Imaging Toolbox Extraordinaire (MATLAB) - Published in JOSS (2023)

https://github.com/lidkelab/smite

Science Score: 100.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README and JOSS metadata
  • Academic publication links
  • Committers with academic emails
    4 of 9 committers (44.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 32% confidence
Last synced: 6 months ago · JSON representation ·

Repository

Single Molecule Imaging Toolbox Extraordinaire

Basic Info
  • Host: GitHub
  • Owner: LidkeLab
  • License: mit
  • Language: MATLAB
  • Default Branch: main
  • Size: 38.5 MB
Statistics
  • Stars: 17
  • Watchers: 2
  • Forks: 5
  • Open Issues: 12
  • Releases: 9
Created over 5 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation Zenodo

README.md

MATLAB

smite: Single Molecule Imaging Toolbox Extraordinaire

This work was supported by the following grants.

This MATLAB-based toolbox provides analysis tools for fluorescence single molecule imaging with an emphasis on single molecule localization microscopy (SMLM) and single particle tracking (SPT).


Overview

Workflow concept

smite is designed around the concept that a parameter structure, the Single Molecule Fitting (SMF) structure, uniquely and completely defines the data analysis. The results are completely contained in a Single Molecule Data (SMD) structure. smite is designed to make lowest-level tools just as easy to use as the higher-level application-specific classes. All tools make use of the SMF and SMD structures.

Code organization

smite is organized into a set of namespaces that group similar tools and concepts. The namespace +smi contains the highest level tools that will be the most common entry point for processing SMLM and SPT data sets. The file SMITEclasses.md provides a short 1-line description of each class in the distribution.

Image and Detector Model

Image arrays follow MATLAB's column-major format. An image coordinate of (1,1) means the center of the top-left pixel, whereas (2,1) would indicate the center of the pixel that is one down from the top, but in the left-most column.


Installation

Clone (Linux/MacOS example; similar for Windows) into ~/Documents/MATLAB the smite GitHub distribution (https://github.com/LidkeLab/smite.git) to obtain the development version. Otherwise, choose the latest release (https://github.com/LidkeLab/smite/releases) for the most recent frozen version. Add to ~/Documents/MATLAB/startup.m the following: addpath '~/Documents/MATLAB/smite/MATLAB' setupSMITE Now, smite contains some mex and CUDA files. Precompiled files for 64-bit Linux, MacOS and Windows (mex extensions: mexa64, mexmaci64, mexw64, respectively; CUDA extension: ptx) come with the repository, so often no further installation will be needed. Note that the GPU compute capability is assumed to be 5.0 or greater. However, if for some reason (for example, the user modifies a mex or CUDA source file), recompilation of the appropriate file is necessary, then see mex+CUDA for details.

To verify that smite is running properly, see the Testing subsection below.

Dependencies

For full functionality, smite requires: - Linux, MacOS or Windows - MATLAB version R2021a or later - NVIDIA GPU with CUDA compute capability (>= 5.0) supported by your version of MATLAB - MATLAB Curve Fitting Toolbox [ONLY smicluster, smicore.FRC, smistat.DiffusionEstimator] - MATLAB Image Processing Toolbox - MATLAB Optimization Toolbox [ONLY smicluster.PairCorrelation, smistat.DiffusionEstimator] - MATLAB Parallel Computing Toolbox - MATLAB Signal Processing Toolbox [ONLY smicore.FRC] - MATLAB Statistics and Machine Learning Toolbox - ffmpeg installed for Linux (https://ffmpeg.org) [smi_core.LocalizeData.genLocalizations for obj.Verbose >= 3]


Simple Examples

Working with SMF

SMF is implemented as a class to enable a gui and to provide useful helper methods. However, the most common use will be as a structure with fixed fields.

Create an SMF object: SMF = smi_core.SingleMoleculeFitting() Get an SMF property: B = SMF.BoxFinding.BoxOverlap Set an SMF property: SMF.BoxFinding.BoxOverlap = 0 Use the SMF GUI to interactively set values: SMF.gui()

Finding coordinates from a stack of images containing blobs

Create a test dataset and make it noisy: B = smi_sim.GaussBlobs.genRandomBlobImage(); B = poissrnd(B); Create an SMF object with default values: SMF = smi_core.SingleMoleculeFitting() Create a LocalizeData object with our SMF: LD = smi_core.LocalizeData(B, SMF) Localize: [SMD] = LD.genLocalizations();

Localize again with Verbose = 3 to show color overlay output: LD.Verbose = 3; [SMD] = LD.genLocalizations();

High level SMLM analysis

Create an SMLM object. When there are no input aruments, it will open the GUI: SMLMobj = smi.SMLM() Use the GUI to navigate to a test dataset such as available from

  • Pallikkuth, S., Martin, C., Farzam, F., Edwards, J. S., Lakin, M. R., Lidke, D. S., & Lidke, K. A. (2018). Supporting data for Sequential Super-Resolution Imaging using DNA Strand Displacement [Data set]. University of New Mexico https://doi.org/10.25827/CS2A-DH13.
  • Wester, Michael J., Mazloom-Farsibaf, Hanieh, Farzam, Farzin, Fazel, Mohamadreza, Meddens, Marjolein B. M., & Lidke, Keith A. (2020), Comparing Lifeact and Phalloidin for super-resolution imaging of actin in fixed cells, Dryad, Dataset, https://doi.org/10.5061/dryad.xsj3tx9cn.

Set SMF values from within the GUI and run either a test dataset or analyze all datasets.


Getting Started

  • Install smite as discussed above.
  • Run the collection of unit tests as discussed in the Testing section below to verify that smite has been properly installed.
  • Run some of the Code Examples linked to below which simulate data.
  • Obtain or generate a dataset (see the citations above) and try out the core functionality (see Overview section below). The user can also obtain a dataset by running the SMLM unitTest, which will produce the ~1 Gb tempdir/smite/unitTest/SMLM/SMLM_testData.h5.

Testing

run_tests run a series of unit tests that cover major smite core functionality. Much output will be saved in tempdir/smite/unitTest/nameoftest. Note that the first two tests (smi.SMLM.unitTest and smi.SPT.unitTestFFGC) test a great deal of functionality all at once, and so their success is a good indicator that smite is working. ExpectedResults are provided in the smite/MATLAB directory in which run_tests.m resides, noting that very large files have been deleted so as to not bloat up the the smite distribution (these files are listed in the various ExpectedResults READMEs). Also, the tests are frequently stochastic in nature, so outputs from run to run will not necessarily be identical, even on the same system, but the ExpectedResults will provide a flavor of what to expect.

Code Examples

Additional smite examples can be found in the examples subdirectory of MATLAB as well as the unitTests for some of the classes (see here for a summary). Some of the examples generate and analyze their own data, while others provide a template for how to run the example given supplied data. (The unit tests always generate their own data if any is needed.)

Overview of Core Functionality

Additional details on the core functionality of smite can be found here, including both simple and extended examples of usage.


Contributions/Support

Issues or problems and people seeking support with the software should be reported via the Issues tab of the smite GitHub repository. Contributions to smite should be performed on new branches which are then requested to merge with the main branch via Pull Requests.


Related Software

Please note the related software: MATLAB Instrument Control (MIC), a collection of MATLAB classes for automated data collection on complex, multi-component custom built microscopes. This software can be obtained from the MIC GitHub distribution (https://github.com/LidkeLab/matlab-instrument-control.git).

Owner

  • Name: LidkeLab
  • Login: LidkeLab
  • Kind: organization

JOSS Publication

SMITE: Single Molecule Imaging Toolbox Extraordinaire (MATLAB)
Published
October 02, 2023
Volume 8, Issue 90, Page 5563
Authors
David J. Schodt ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Michael J. Wester ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America, Department of Mathematics and Statistics, Albuquerque, University of New Mexico, United States of America
Mohamadreza Fazel ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Sajjad Khan ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Hanieh Mazloom-Farsibaf ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Sandeep Pallikkuth ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Marjolein B. m. Meddens ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Farzin Farzam ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Eric A. Burns ORCID
Department of Pathology, University of New Mexico Health Sciences Center, Albuquerque, United States of America
William K. Kanagy ORCID
Department of Pathology, University of New Mexico Health Sciences Center, Albuquerque, United States of America
Derek A. Rinaldi ORCID
Department of Pathology, University of New Mexico Health Sciences Center, Albuquerque, United States of America
Elton Jhamba ORCID
Department of Pathology, University of New Mexico Health Sciences Center, Albuquerque, United States of America
Sheng Liu ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Peter K. Relich ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Mark J. Olah
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Stanly L. Steinberg
Department of Mathematics and Statistics, Albuquerque, University of New Mexico, United States of America
Keith A. Lidke ORCID
Department of Physics and Astronomy, University of New Mexico, Albuquerque, United States of America
Editor
Jeff Gostick ORCID
Tags
single molecule localization microscopy (SMLM) single particle tracking (SPT) super resolution

Citation (CITATION.cff)

cff-version: 1.0.0
message: If you use this software, please cite it as below.
references:
  - type: software
    authors:
      - family-names: Schodt
        given-names: David J.
        orcid: 0000-0002-8986-2736
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Wester
        given-names: Michael J.
        orcid: 0000-0002-3520-7605
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Fazel
        given-names: Mohamadreza
        orcid: 0000-0002-6215-1336
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Khan
        given-names: Sajjad
        orcid: 0000-0002-6910-5199
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Mazloom-Farsibaf
        given-names: Hanieh
        orcid: 0000-0002-2571-0418
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Pallikkuth
        given-names: Sandeep
        orcid: 0009-0003-0400-6389
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Meddens
        given-names: Marjolein B. M.
        orcid: 0000-0002-9965-1342
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Farzam
        given-names: Farzin
        orcid:  0000-0002-9939-1923
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Burns
        given-names: Eric A.
        orcid: 0000-0002-1625-2400
        affiliation: "Department of Pathology, University of New Mexico Health Sciences Center"
      - family-names: Kanagy
        given-names: William K.
        orcid: 0000-0002-5756-9965
        affiliation: "Department of Pathology, University of New Mexico Health Sciences Center"
      - family-names: Rinaldi
        given-names: Derek A.
        orcid: 0009-0000-8394-3626
        affiliation: "Department of Pathology, University of New Mexico Health Sciences Center"
      - family-names: Jhamba
        given-names: Elton
        orcid: 0000-0002-5272-6466
        affiliation: "Department of Pathology, University of New Mexico Health Sciences Center"
      - family-names: Liu
        given-names: Sheng
        orcid: 0000-0003-1225-0763
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Relich
        given-names: Peter K.
        orcid: 0000-0002-6063-6233
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Olah
        given-names: Mark J.
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
      - family-names: Steinberg
        given-names: Stanly L.
        affiliation: "Department of Mathematics and Statistics, University of New Mexico"
      - family-names: Lidke
        given-names: Keith A.
        orcid: 0000-0002-9328-4318
        affiliation: "Department of Physics and Astronomy, University of New Mexico"
  title: "SMITE: Single Molecule Imaging Toolbox Extraordinaire (MATLAB)"
  version: 1.0.0
  doi: 10.5281/zenodo.8327410
  date-released: 2023-09-08
  keywords:
    - "MATLAB"
    - "single molecule localization microscopy (SMLM)"
    - "single particle tracking (SPT)"
    - "super resolution"
  license: MIT
  url: "https://github.com/LidkeLab/smite"

GitHub Events

Total
  • Watch event: 2
  • Delete event: 5
  • Issue comment event: 1
  • Push event: 35
  • Pull request event: 1
  • Fork event: 2
  • Create event: 2
Last Year
  • Watch event: 3
  • Delete event: 5
  • Issue comment event: 1
  • Push event: 35
  • Pull request event: 1
  • Fork event: 2
  • Create event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,637
  • Total Committers: 9
  • Avg Commits per committer: 181.889
  • Development Distribution Score (DDS): 0.644
Past Year
  • Commits: 44
  • Committers: 4
  • Avg Commits per committer: 11.0
  • Development Distribution Score (DDS): 0.159
Top Committers
Name Email Commits
MJWester w****r@s****u 582
dschodt 3****t 443
dschodt s****d@u****u 381
Michael Wester w****r@m****u 153
Keith A. Lidke k****e 39
sajjad88 5****8 26
kiwibogo k****o@g****m 6
Sandeep p****h@u****u 4
Erburns 8****s 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 37
  • Total pull requests: 12
  • Average time to close issues: 3 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 9
  • Total pull request authors: 5
  • Average comments per issue: 1.35
  • Average comments per pull request: 0.58
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 18 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 1.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • kalidke (16)
  • dschodt (6)
  • bencardoen (3)
  • MJWester (3)
  • ajinkyakadu (2)
  • derekrinaldi (1)
  • hirschmichael (1)
  • sajjad88 (1)
  • irortizc (1)
Pull Request Authors
  • kalidke (4)
  • kiwibogo (3)
  • MJWester (3)
  • Erburns (1)
  • dschodt (1)
Top Labels
Issue Labels
bug (1)
Pull Request Labels

Dependencies

.github/workflows/draft-pdf.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
.github/workflows/cat_src.yml actions
  • actions/checkout v2 composite
  • ad-m/github-push-action master composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • matlab-actions/run-tests v1 composite
  • matlab-actions/setup-matlab v1 composite