Note on input format
saspt expects input trajectories as a large table of spatiotemporal coordinates. Each coordinate represents the detection of a single fluorescent emitter, and is associated with a trajectory index that has been assigned by a tracking algorithm. An example is shown in the figure below.
The detection table (usually as a CSV) is the format expected by saspt
.
This format was chosen for simplicity.
saspt
comes with an example of the kind of input it expects:
>>> from saspt import sample_detections
>>> detections = sample_detections()
>>> print(detections)
y x frame trajectory
0 575.730202 84.828673 0 13319
1 538.416604 485.924667 0 1562
2 107.647631 61.892363 0 363
.. ... ... ... ...
493 366.475688 70.559735 297 14458
494 363.350134 67.585339 298 14458
495 360.006572 70.511980 299 14458
[496 rows x 4 columns]
The XY coordinates in pixels.
These can then be used to construct the objects that saspt
expects (see
the class hierarchy at API):
>>> from saspt import TrajectoryGroup, StateArrayParameters, StateArray, make_likelihood, RBME
>>> settings = dict(likelihood_type = RBME, pixel_size_um = 0.16, frame_interval = 0.00748)
>>> params = StateArrayParameters(**settings)
>>> trajectories = TrajectoryGroup(detections, **settings)
>>> likelihood = make_likelihood(**settings)
>>> SA = StateArray(trajectories, likelihood, params)
>>> print(params)
StateArrayParameters:
pixel_size_um: 0.16
frame_interval: 0.00748
focal_depth: inf
splitsize: 10
sample_size: 10000
start_frame: 0
max_iter: 200
conc_param: 1.0
>>> print(trajectories)
TrajectoryGroup:
n_detections: 434
n_jumps: 370
n_tracks: 64
>>> print(SA)
StateArray:
likelihood_type : rbme
n_tracks : 64
n_jumps : 370
parameter_names : ('diff_coef', 'loc_error')
shape : (101, 36)
Although this approach is explicit, it is usually easier to use one of the alternative constructors that produce a StateArray
directly from a set of detections:
>>> SA = StateArray.from_detections(detections, **settings)
This executes exactly the same steps implicitly:
>>> print(SA)
StateArray:
likelihood_type : rbme
n_tracks : 64
n_jumps : 370
parameter_names : ('diff_coef', 'loc_error')
shape : (101, 36)