TRamWAy is a tool to analyse single molecule dynamics using their locations or trajectories. Parameters of single molecule dynamics such as diffusivity, drift, force and potential energy are resolved in space and time.

TRamWAy has been designed as a modular Python library that may accomodate additional plugins to sample the localization microscopy data and infer model parameters in microdomains.

The full code is distributed under CeCILL license and is available at github.


  • tracking of localization microscopy data
  • spatial tessellation and temporal segmentation
  • inference of diffusivity, drift, force, potential energy, etc.
  • analyses of the estimated force, such as curl calculation and Bayes factor calculation to distinguish between interactions and spurious forces
  • and more: generation of random walk trajectories, plotting utilities, etc

Quick example

Maps of diffusivity and effective potential estimates can be generated from molecule trajectories with as few as three commands:

tramway tessellate gwr -i trajectories.txt -o my_analyses.rwa
tramway infer dv -i my_analyses.rwa
tramway draw map -i my_analyses.rwa
  • Single molecule locations and/or trajectories are usually stored in text files. In the above example, such an input file is named trajectories.txt.
  • The first step (1) consists of importing these location data and tessellating the space into cells of adequate size. The GWR method grows a graph that fits molecule density.
  • All the analysis results derived from a same dataset are stored in a single .rwa file.
  • The second step (2) consists of inferring parameters of the molecule dynamics, for example local diffusivities and potential energies (DV mode). This may take a while and recruit most of the processing units of the host.
  • The estimated values can now be visualized as 2D maps (3).
molecule locations tessellation (1) maps (2,3)
diffusivity potential energy force
_images/t0-0.jpg _images/t0-1.jpg _images/t0-2.jpg _images/t0-3.jpg _images/t0-4.jpg

The equivalent Python code is:

from tramway.helper import *

tessellate('trajectories.txt', 'gwr', output_file='my_analyses.rwa')
infer('my_analyses.rwa', 'dv')

Where to start

TRamWAy is distributed under the terms of the CeCILL license and you should first get to know these terms.