Published May 14, 2024 | Version v1
Journal article Open

4D Single-Particle Tracking with Asynchronous Read-Out Single-Photon Avalanche Diode Array Detector - Data and Code

  • 1. Molecular Microscopy and Spectroscopy, Istituto Italiano di Tecnologia, Genoa, Italy
  • 2. Dipartimento di Informatica, Bioingegneria, Robotica e Ingegneria dei Sistemi, University of Genoa, Genoa, Italy
  • 3. Non coding RNAs in Physiology and Pathology, Istituto Italiano di Tecnologia, Genoa, Italy

Description

This repository hosts the data and code relative to the publication "4D Single-Particle Tracking with Asynchronous Read-Out SPAD-Array Detector"

Data

This folder contains the raw data for all the 3D and 4D trajectories referenced in the main text.

All data is provided as a compressed .npz files to reduce memory usage. These files can be opened and processed using Python through the functions in the NumPy package.To extract the content, use the function numpy.load() as documented here. No changes to the standard values of the optional inputs are necessary.

Files are organized according to figures in the main text, and their names consist of three labels separated by underscores, structured as "label1_label2_label3.npz". The first label "label1" indicates the relevant subfigure(s) where the data is used. The second label "label2" offers a concise description of the trajectory. For comprehensive metadata, we encourage users to consult the main text of the article, particularly the figure captions. The last label "label3" identifies the file's content, categorizing them into two groups: 3DTrajectory files and LifetimeHistogram<dwell_time> files.

_3DTrajectory.npz files

These files contain the raw data of a 3D spatial trajectory in the form of NumPy arrays. The keys are:

  • "x", "y", "z" : 1-dimensional NumPy arrays of type int32. They contain the coordinates of the tracking system in nanometers along the specific direction, sampled every 2 microseconds.
  • "stack": 3-dimensional NumPy array of type uint8. It contains the stream of microimages obtained by integrating the photon stream of the 25 SPAD array detectors every 2 microseconds. The first dimension represents time, while the second and third dimensions represent the horizontal and vertical axes of the detector array, respectively.
  • "found": 1-dimensional NumPy array of type bool. It contains the value of the found flag from the FPGA control module, sampled every 2 microseconds. The flag indicates whether the system found a particle to track or not (True = found, False = not found). For more details, refer to the methods section of the main article.
  • "err": 1-dimensional NumPy array of type bool. It contains a safety check performed on the stream of data every 2 microseconds (True = communication error, False = no error).

_LifetimeHistogram<dwell_time>.npz files

These files contain the raw data of the 25 emission time histograms obtained by integrating the photon stream every <dwell_time> for each detector. For more details about the calculation of the histograms, refer to the main article and this reference.

The files contain just one key:

  • "life_hist": 3-dimensional NumPy array of type float64. The first dimension represents time with a sampling step of <dwell_time>, the second dimension represents the SPAD pixel, and the third dimension represents the delay time. This dimension is divided into 120 bins, each with a width of 397 picoseconds. Note the presence of a 26th channel along the second dimension, representing the laser trigger used for synchronization.

 

Code

The code folder contains a Python script named Functions.py, which defines the primary functions utilized for analyzing the 4D trajectories. Each function is thoroughly documented, and its usage is exemplified in the script Minimal_working_example.py.

 

Files

Code.zip

Files (1.2 GB)

Name Size Download all
md5:5a072b3a9d10ce4ca4452f068fdf5ffc
3.0 kB Preview Download
md5:0e25bfdafa3b36df958e8a41031e569c
1.2 GB Preview Download