This code reposotory explains the statistical analysis performed in the paper Spatiotemporal analysis of glioma heterogeneity reveals Col1A1 as an actionable 1 target to disrupt tumor mesenchymal differentiation, invasion and malignancy. It includes an example of experimental data to test the various programs. Running any script should take less than a minute except for one script in step 3 step3_zone_create_df.jl
(this script is not necessary to run the other scripts).
The tracking of the cells has been done using ImageJ with the plugin TrackMate. We use the DoG detection (Difference of Gaussian) with a radius of 20μm and a threshold of 1. As a result, we obtain two CSV files (see an example and an illustration in the folder data_tracking/step1_data_trackMate/NPA_stich_3
) containing the positions *spots.csv
) along with the trajectories (*tracks.csv
).
We then smooth the trajectories obtained with TrackMate. Smoothing is necessarily to make an estimate of the velocity of each cell at any time. Without smoothing, the trajectories are too noisy. We use a Gaussian kernel as a filter with standard deviation src
:
> include("step2_filter_data.jl")
The velocity of the cells
Thus, we have now an estimation of the positions jld2
file in the folder data_tracking/step2_data_filtered
.
We now perform statistical analysis in specific zones of the experiment. These zones are specified manually (see an illustration data_tracking/step3_data_zone/NPA_stich_3/NPA_stich_3_zones.pdf
) and store in a json file called coordinates.json
. This file is used in the julia following script:
> include("step3_zone_create_df.jl")
which creates dataframes containing the analysis on each zone. This script has to be run twice to get both the velocities analysis and correlation functions (see the line 13 in the script).
The results of the analysis can be visualized using the two scripts:
> include("step3_zone_velocity_plot.jl")
> include("step3_zone_correlation_plot.jl")
To classify a zone as a flock, a stream or a swarm, we take the collection of angle
> source("step4_zone_testing_distribution.r")
The Julia scripts have been tested using Julia version 1.6.2 (stable) with the following packages:
- computing:
Revise
,ProgressMeter
,CSV
,JSON
,DataFrames
,FileIO
- visualization:
PyPlot
,LaTeXStrings
- math:
LinearAlgebra
,Statistics
,DSP
The R script requires the library circular
.
- Schindelin, Johannes, et al. Fiji: an open-source platform for biological-image analysis. Nature methods 9.7 (2012): 676-682.
- Tinevez, Jean-Yves, et al. TrackMate: An open and extensible platform for single-particle tracking. Methods 115 (2017): 80-90.
The programs are distributed under the GNU GPL license version 2. More information are available in the file COPYING.txt. For any information or bugs, please contact me at: smotsch[at]asu.edu
.