particle_trajectory_analyzer
A computationally efficient geometric method for classifying linear motion in single-particle tracking data without requiring tensor decomposition. The method employs two primary metrics: directionality ratio and normalized perpendicular distance, to classify trajectories as linear unidirectional, l
Overview
Languages: Python
Documentation
Geometric Method for Linear Motion Classification in Single-Particle Trajectories
A computationally efficient geometric method for classifying linear motion in single-particle tracking data without requiring tensor decomposition. The method employs two primary metrics: directionality ratio and normalized perpendicular distance, to classify trajectories as linear unidirectional, linear bidirectional, or non-linear. This approach provides comparable classification accuracy to eigenvalue-based methods while offering computational advantages for large-scale trajectory analysis.
1. Introduction
A critical challenge in SPT analysis is the automated classification of trajectory patterns, particularly distinguishing between linear (directed or confined linear) and non-linear (random or confined) motion modes
Traditional approaches rely on gyration tensor decomposition to extract eigenvalues and eigenvectors that characterize trajectory shape. While mathematically rigorous, these methods are computationally intensive for large datasets. Here, we introduce a simple geometric method that achieves robust linear motion classification using direct geometric measurements.
2. Mathematical Framework
2.1 Trajectory Representation
Consider a trajectory consisting of N positions recorded at discrete time points:
X = {xi = (xi, yi) | i = 1, 2, ..., N}
where xi represents the particle position at frame i.
2.2 Radius of Gyration (Simple Method)
The radius of gyration Rg quantifies the spatial extent of a trajectory:
Rg = √[⟨x2⟩ - ⟨x⟩2]
where: - ⟨x⟩ = (1/N) Σi=1N xi is the mean position - ⟨x2⟩ = (1/N) Σi=1N xi2 is the mean squared position
2.3 Scaled Radius of Gyration
Following Golan and Sherman8, we normalize R<
[View full README on GitHub]