This repository contains the code used for the analysis presented in:
A metric-space framework for cell motility: continuous trajectories and discrete states across physical and shape domains
by Pavel Buklemishev, Natalia Kravtsova, Clément Soubrier, Lilianna Houston, Lubna Tahtamuni, Ashok Prasad, and Dao Duc Khanh.
Living cells change shape as they move, but physical movement and shape change naturally inhabit different mathematical spaces, making their relationship difficult to quantify. We propose a framework that decouples time-dependent cell motility data into two trajectories in metric spaces: a physical trajectory of the cell centroid in Euclidean space
The repository includes code for:
- segmenting cell trajectories and shapes and extracting tracking information (
dataset_preprocessing/); - preprocessing cell outlines and trajectories (
dataset_preprocessing/anddata/); - computing physical and shape trajectory statistics (
straight_nonstraight_visualization/Physical_and_shape_trajectories.ipynb); - classifying cell behavior using quartile-based and DC-MSS frameworks (
trajectory_classification/); - detecting protrusions using conformalized mean curvature flow-based shape representations (
conformal_mapping/unwrapping_2D/unwrap2D) (in progress); - performing Markov chain analysis for cell states (not included yet; in progress).
The following manuscript figures and tables are currently linked to the code in this repository:
| Manuscript item | Source |
|---|---|
| Fig. 4 | straight_nonstraight_visualization/Physical_and_shape_trajectories.ipynb |
| Fig. 5 | straight_nonstraight_visualization/Physical_and_shape_trajectories.ipynb |
| Fig. 6D | Not included yet |
| Fig. 6E | Not included yet |
| Table 1 | Not included yet |
| Fig. 7 | Not included yet |
Supplementary materials:
| Supplementary item | Source |
|---|---|
| Fig. S1 | straight_nonstraight_visualization/Physical_and_shape_trajectories.ipynb |
| Fig. S2 | Not included yet |
.
├── compute_ot_dataset
│ ├── centroids.npy
│ ├── compute_OT.py
│ ├── first_last_shape_distances.npy
│ ├── first_shapes.npy
│ ├── last_shapes.npy
│ ├── ot_distances.npy
│ └── times.npy
├── conformal_mapping
│ └── unwrapping_2D
│ └── unwrap2D
│ ├── __init__.py
│ ├── README.md
│ └── unwrap2D.py
├── data
│ ├── cells_filtered.zip
│ ├── cells.zip
│ └── filter_cells.py
├── dataset_preprocessing
│ ├── construct_dataset.py
│ ├── extract_individuals.py
│ ├── final_graph.py
│ ├── main.py
│ ├── plot_final_lineage_tree.py
│ ├── run_image_processing.ipynb
│ └── segmentation.py
├── README.md
├── straight_nonstraight_visualization
│ └── Physical_and_shape_trajectories.ipynb
└── trajectory_classification
├── classifier.m
├── time_events_filtered.h5
└── trajectories_to_matlab.py
The data associated with this repository are available on Zenodo:
https://zenodo.org/records/21047731