Takes a data.frame of numeric gene expression over time (genes X ZT times) and computes the persistence score using getPersistence. For a given gene, each lag (min to max) is used to transform the expression into a 3-D embedded space via time-delay embedding. A non-linear dimension reduction technique (laplacian eigenmaps) is used to transfrom the 3-D embedding to a 2-D embedding. Finally, the persistence score of the 2-D embedding is calculated via persistence homology. The median persistence score across all lags (min to max) for each gene is returned as a numeric vector. For more details see TimeCycle's vignette: vignette("TimeCycle").

computePersistence(
  data,
  minLag = 2,
  maxLag = 5,
  cores = parallel::detectCores() - 2,
  laplacian = T
)

Arguments

data

a data.frame of numeric gene expression over time (row = genes x col = ZT times).

minLag

a numeric specifying the min lag to check in the 3-D embedding. Default is 2.

maxLag

a numeric specifying the max lag to check in the 3-D embedding. Default is 5.

cores

a numeric specifying the number of parallel cores to use. Default number of cores is parallel::detectedCores() - 2.

laplacian

a logical scalar. Should the Laplacian Eigenmaps be used for dimensionality reduction? Default TRUE.

Value

a vector of the median persistence score across lags (minLag to maxLag) for each gene in data

References

  • Wadhwa RR, Williamson DFK, Dhawan A, Scott JG. (2018). "TDAstats: R pipeline for computing persistent homology in topological data analysis." Journal of Open Source Software. 2018; 3(28): 860. doi:[10.21105/joss.00860]

  • Bauer U. (2019). "Ripser: Efficient computation of Vietoris-Rips persistence barcodes." arXiv: 1908.02518.

See also