ExTemp

ExTemp: A computational and image-processing suite for extracting temporal barcodes - Published in JOSS (2020)

https://github.com/shalinshah1993/temporaldnabarcodes

Science Score: 93.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 11 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: springer.com, acs.org, joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

dna-barcode fluorescence-microscopy-imaging matlab-functions single-molecule-imaging temporal-dna-barcodes tirf
Last synced: 9 months ago · JSON representation

Repository

A MATLAB suite implementing computer vision pipeline to extract information from the noisy TIRF microscopy data (image stack)

Basic Info
  • Host: GitHub
  • Owner: shalinshah1993
  • License: gpl-3.0
  • Language: MATLAB
  • Default Branch: master
  • Homepage:
  • Size: 81.5 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 1
Topics
dna-barcode fluorescence-microscopy-imaging matlab-functions single-molecule-imaging temporal-dna-barcodes tirf
Created over 7 years ago · Last pushed over 6 years ago
Metadata Files
Readme Contributing License Code of conduct

README.md

ExTemp: A computational and image-processing suite for extracting temporal barcodes

DOI GitHub release GitHub license GitHub all releases GitHub issues

Contents

This software contains modules that are a part of the temporal DNA barcoding framework. It is a single-molecule imaging technique that uses time-domain to encode information for optical multiplexing. Although, the scripts were developed to our framework, they can be used for any arbitrary microscopy project that requires data extraction from fluorescence microscopy data.

If you find our software suite helpful, please cite our paper(s):

Shalin Shah, Abhishek Dubey, and John Reif. "Programming temporal DNA barcodes for single-molecule fingerprinting". Nano Letters (2019) DOI: 10.1021/acs.nanolett.9b00590 [PDF]

Shalin Shah, Abhishek Dubey, and John Reif. ExTemp: A computational and image-processing suite for extracting temporal barcodes. Journal of Open Source Software, 5(46), 2026, DOI: 10.21105/joss.02026 [PDF]

If you find temporal DNA barcodes useful, please cite our paper(s):

Shalin Shah, Abhishek Dubey, and John Reif. "Improved optical multiplexing with temporal DNA barcodes". ACS Synthetic Biology (2019) DOI: 10.1021/acssynbio.9b00010 [PDF]

Shalin Shah, and John Reif. "Temporal DNA Barcodes: A Time-Based Approach for Single-Molecule Imaging." International Conference on DNA Computing and Molecular Programming. Springer, Cham, 2018. DOI: 10.1007/978-3-030-00030-1_5 [PDF]

Information extraction scripts

| Computer vision pipeline | |:--:| | A visual depiction of the computer vision pipeline/ algorithm. The figure is adapted with permission from Shalin Shah, Abhishek K. Dubey, and John Reif, "Programming Temporal DNA Barcodes for Single-Molecule Fingerprinting." Nano Letters 2019 19 (4), 2668-2673. Copyright 2019 American Chemical Society |

A set of MATLAB scripts which can act as pipeline to extract information from the raw image stack. There are several steps involved to extract meaningful information from the recorded raw image stacks. The first step is data-collection \textit{i.e} recording an image stack using TIRF microscope. Once we have the raw data, we convert the proprietary Leica lif file to a mat file using the bfmatlab library. This can help us with the development of the programmable downstream MATLAB scripts as the raw data is now available in the supported format.

The next step includes the estimation and correction of the lateral (x-axis, y-axis) and axial (z-axis) drift. For lateral drift correction, we use the redundant cross-correlation algorithm proposed by Wang et al. Optics Express (2014) by incorporating their library within our MATLAB scripts.

Once the drift corrected data stack is available, we apply several filters to locate the localizations and find their centroid coordinates. After extracting the possible set of device coordinates, the temporal intensity time trace is generated assuming the point spread function of 3 X 3 pixels. Once we obtain the intensity time trace for each localization, the next step includes applying the wavelet filter. The filtered temporal barcodes are clustered in two or three states depending on the device using the unsupervised mean shift clustering technique to obtain a state chain. This state chain can be analyzed to extract parameters such as dark-time, on-time, double-blink etc.

Installation

To use ExTemp, simply add its top-level directory to the MATLAB path. All functions are organized in packages. Most modules are stand-alone i.e they take in a file process the intermediate step of pipeline and returns processed output which can act as an input for next sub-step of the pipeline.

For testing purposes, you can download the sample lif file (https://duke.box.com/s/9xy67550rdawj6pk4woqxnyhwknq0n3c) and put it in the /lif/ folder. sample_date.lif should be in the lif folder at this point. For example, to convert it to mat, inside MATLAB terminal, type lif2mat('sample_data.lif'). Individual modules are described in detail below.

Module description (sample use)

  • lif2mat: converts the proprietary Leica file to mat file life2mat(<file_name>) %this file should be in /lif/ folder, outputs .mat in /tmp/mat/ folder

  • findalllocalizations: find localizations per frame in the entire image stack findalllocalizations(<file_name>) %this video file should be in /video/ folder, outputs in /tmp/all_pnts/ folder

  • estdrift: need localization per frame list to estimate drift using RCC estddrift(<file_name>, <toDisplay>, <segSize>) %this file should be in /tmp/all_pnt/s folder, outputs in /tmp/drft_trc/ folder

  • crctdrift: uses estimated drift trace to apply translational shift crctdrift(<file_name>, <debug>) %this file should be in /tmp/drft_trc/ folder, outputs in /tmp/drft_crct/ folder

  • calcdatatrend: uses input mat image stack file to compute z-drift (or trend) calcdatatrend(<file_name>, <pDegree>) %loads file in /tmp/mat/ folder, outputs in /tmp/calcdatatrend/ folder

  • cropmat: takes a mat image stack and crops each frame it the stack cropmat(<file_name>, <prefix>, <size>) %loads .mat file in /tmp/<prefix>/ folder, outputs in /tmp/crop/ folder

  • findlocalizations: takes an image stack, computes z-projection and finds localization coordinates findlocalizations(<file_name>, <prefix>, <to_display>, <threshold1>, <threshold2>) %loads file in /tmp/<prefix>/ folder, outputs in /tmp/pnts/ folder

  • gettemporalbarcode: computes the temporal barcode for each coordinate in a 3X3 pixel ROI gettemporalbarcode(<file_name>, <prefix>) %loads file in /tmp/<prefix>/ folder, outputs in /tmp/pnts/ folder

  • getstatechain: applies mean shift to denoise temporal barcode into state chain getstatechain(<file_name>, <BW>, <min_on>, <min_db>, <states>) %tloads file in /tmp/pnts/ folder, outputs in /tmp/brcd/ folder

  • analyzebarcode: computes parameters such as on-time, off-time using denoised state chain analyzebarcode(<file_name>, <expTime>) %loads file in /tmp/st_chn/ folder, outputs in /tmp/stats/ folder

Dependencies

  • RCC - http://huanglab.ucsf.edu/Resources.html
  • bfmatlab - https://docs.openmicroscopy.org/bio-formats/5.3.4/users/matlab/index.html
  • meanshift - https://www.mathworks.com/matlabcentral/fileexchange/10161-mean-shift-clustering
  • sauvola - https://www.mathworks.com/matlabcentral/fileexchange/40266-sauvola-local-image-thresholding
  • Statistics and machine learning toolbox (MATLAB): https://www.mathworks.com/products/statistics.html
  • Wavelet toolbox (MATLAB) - https://www.mathworks.com/products/wavelet.html
  • Computer vision toolbox (MATLAB) - https://www.mathworks.com/products/computer-vision.html

License and community guidelines

The ExTemp code is licensed under the GNU general public license v3.0. If you wish to contribute to idvf or report any bugs/issues, please see our contribution guidelines and code of conduct.

System environment

The ExTemp code was developed and tested on MATLAB R2018b. The machine used for development and testing has following config: 10x Tensor TXR231-1000R D126 Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz (512GB RAM - 40 cores). Note that the use of cluster machine is crucial since most raw data files are several hundreds of gigabytes making it extremely difficult to handle them. Therefore, in order to avoid dealing with memory overflow issue, we use machines with much larger available main memory.

Contributors

  • Design, development, testing:
    Shalin Shah, and Abhishek Dubey
    Department of Electrical & Computer Engineering, Duke University
    Department of Computer Science, Duke University

  • Supervision:
    John Reif
    Department of Computer Science, Duke University

Acknowledgements

This work was supported by National Science Foundation Grants CCF-1813805 and CCF-1617791.

Owner

  • Name: Shalin Shah
  • Login: shalinshah1993
  • Kind: user

JOSS Publication

ExTemp: A computational and image-processing suite for extracting temporal barcodes
Published
February 09, 2020
Volume 5, Issue 46, Page 2026
Authors
Shalin Shah ORCID
Department of Electrical & Computer Engineering, Duke University, Durham, NC 27708, USA
Abhishek Dubey ORCID
Department of Electrical & Computer Engineering, Duke University, Durham, NC 27708, USA, Computational Sciences and Engineering Division, Health Data Sciences Institute, Oak Ridge National Lab, Oak Ridge, Tennessee 37831, United States
John Reif
Department of Electrical & Computer Engineering, Duke University, Durham, NC 27708, USA, Department of Computer Science, Duke University, Durham, NC 27708, USA
Editor
Charlotte Soneson ORCID
Tags
object detection signal processing drift correction object tracking microscopy image analysis computer vision TIRF MATLAB

GitHub Events

Total
Last Year

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 61
  • Total Committers: 2
  • Avg Commits per committer: 30.5
  • Development Distribution Score (DDS): 0.016
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Shalin Shah s****3@g****m 60
Charlotte Soneson c****n@g****m 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 4
  • Total pull requests: 3
  • Average time to close issues: 3 days
  • Average time to close pull requests: 1 minute
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 3.25
  • Average comments per pull request: 0.33
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
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
  • shalinshah1993 (2)
  • AoifeHughes (1)
  • lbugnon (1)
Pull Request Authors
  • shalinshah1993 (2)
  • csoneson (1)
Top Labels
Issue Labels
bug (2) review (2) joss (2)
Pull Request Labels
license (1) enhancement (1) joss (1)