WormTensor
Install WormTensor
package from CRAN or GitHub in
advance and then type the code below in the R console window.
library(WormTensor)
worm_download
is a function to retrieve data from
figshare for a total of 28 animals (24 normal and 4 noisy). If there is
no argument, mSBD distance matrices (including 24 normal animals) will
be downloaded.
<- worm_download() object
as_worm_tensor
is a function to generate a
WormTensor
object from distance matrices. A
WormTensor
object S4 class is used by
worm_membership
, worm_clustering
,
worm_evaluate
, and worm_visualize
.
<- as_worm_tensor(object$Ds) object
worm_membership
is a function to generate a membership
tensor from a WormTensor
object with distance matrices. Set
the assumed number of clusters to k(>=2).
<- worm_membership(object, k=6) object
worm_clustering
is a function to generate a clustering
result from a WormTensor
object with a membership
tensor.
<- worm_clustering(object) object
worm_evaluate
is a function to generate an evaluation
result from a WormTensor
object with a
worm_clustering
result.
<- worm_evaluate(object) object
worm_visualizeis a function to visualize
worm_clusteringand
worm_evaluate`
results.<- worm_visualize(object) object
The above functions can also be run by connecting them with R’s native pipe.
worm_download()$Ds |>
as_worm_tensor() |>
worm_membership(k=6) |>
worm_clustering() |>
worm_evaluate() |>
worm_visualize() -> object
If you have a label for the cells, you can use it for external evaluation.
# Sample Labels
worm_download()$Ds |>
as_worm_tensor() |>
worm_membership(k=6) |>
worm_clustering() -> object
<- list(
labels label1 = sample(3, length(object@clustering), replace=TRUE),
label2 = sample(4, length(object@clustering), replace=TRUE),
label3 = sample(5, length(object@clustering), replace=TRUE))
# WormTensor (with Labels)
worm_download()$Ds |>
as_worm_tensor() |>
worm_membership(k=6) |>
worm_clustering() |>
worm_evaluate(labels) |>
worm_visualize() -> object_labels
worm_distance
helps you analyze your time-series data
matrices with WormTensor
. worm_distance
is a
function to convert time-series data matrices into distance matrices.
The distance matrices can be used for analysis by
WormTensor
.
# Toy data (data of 3 animals)
<- 13
n_cell_x <- 24
n_cell_y <- 29
n_cell_z <- 30
n_cells <- 100
n_time_frames
# animal_x : 13 cells, 100 time frames
<- matrix(runif(n_cell_x*n_time_frames),
animal_x nrow=n_cell_x, ncol=n_time_frames)
rownames(animal_x) <- sample(seq(n_cells), n_cell_x)
colnames(animal_x) <- seq(n_time_frames)
# animal_y : 24 cells, 100 time frames
<- matrix(runif(n_cell_y*n_time_frames),
animal_y nrow=n_cell_y, ncol=n_time_frames)
rownames(animal_y) <- sample(seq(n_cells), n_cell_y)
colnames(animal_y) <- seq(n_time_frames)
# animal_z : 29 cells, 100 time frames
<- matrix(runif(n_cell_z*n_time_frames),
animal_z nrow=n_cell_z, ncol=n_time_frames)
rownames(animal_z) <- sample(seq(n_cells), n_cell_z)
colnames(animal_z) <- seq(n_time_frames)
# Input list for worm_distnce
<- list(animal_x=animal_x,
X animal_y=animal_y,
animal_z=animal_z)
# Pipe Operation
# tsne.perplexity must be adjusted for data size
worm_distance(X, "mSBD") |>
as_worm_tensor() |>
worm_membership(k=6) |>
worm_clustering() |>
worm_evaluate() |>
worm_visualize(tsne.perplexity=5) -> object
#> R Under development (unstable) (2022-07-07 r82559)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Ubuntu 22.04 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=C
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] WormTensor_0.1.0
#>
#> loaded via a namespace (and not attached):
#> [1] ade4_1.7-19 tidyselect_1.1.2 viridisLite_0.4.0 farver_2.1.1
#> [5] dplyr_1.0.9 fastmap_1.1.0 promises_1.2.0.1 shinyjs_2.1.0
#> [9] digest_0.6.29 mime_0.12 lifecycle_1.0.1 factoextra_1.0.7
#> [13] cluster_2.1.3 ellipsis_0.3.2 magrittr_2.0.3 compiler_4.3.0
#> [17] rlang_1.0.3 sass_0.4.1 tools_4.3.0 utf8_1.2.2
#> [21] yaml_2.3.5 knitr_1.39 ggsignif_0.6.3 labeling_0.4.2
#> [25] plyr_1.8.7 abind_1.4-5 R2HTML_2.3.3 Rtsne_0.16
#> [29] purrr_0.3.4 grid_4.3.0 stats4_4.3.0 fansi_1.0.3
#> [33] ggpubr_0.4.0 xtable_1.8-4 e1071_1.7-11 colorspace_2.0-3
#> [37] aricode_1.0.0 ggplot2_3.3.6 scales_1.2.0 iterators_1.0.14
#> [41] MASS_7.3-57.1 cli_3.3.0 rmarkdown_2.14 crayon_1.5.1
#> [45] generics_0.1.3 RcppParallel_5.1.5 rstudioapi_0.13 RSpectra_0.16-1
#> [49] reshape2_1.4.4 usedist_0.4.0 proxy_0.4-27 stringr_1.4.0
#> [53] splines_4.3.0 modeltools_0.2-23 parallel_4.3.0 clValid_0.7
#> [57] vctrs_0.4.1 Matrix_1.4-1 carData_3.0-5 jsonlite_1.8.0
#> [61] car_3.1-0 ggrepel_0.9.1 rstatix_0.7.0 clue_0.3-61
#> [65] foreach_1.5.2 jquerylib_0.1.4 tidyr_1.2.0 glue_1.6.2
#> [69] dtw_1.22-3 codetools_0.2-18 cowplot_1.1.1 flexclust_1.4-1
#> [73] uwot_0.1.11 stringi_1.7.6 gtable_0.3.0 rTensor_1.4.8
#> [77] later_1.3.0 munsell_0.5.0 tibble_3.1.7 pillar_1.7.0
#> [81] htmltools_0.5.2 clusterSim_0.50-1 R6_2.5.1 evaluate_0.15
#> [85] shiny_1.7.1 lattice_0.20-45 backports_1.4.1 dtwclust_5.5.10
#> [89] broom_1.0.0 httpuv_1.6.5 bslib_0.3.1 class_7.3-20.1
#> [93] Rcpp_1.0.8.3 nlme_3.1-158 mgcv_1.8-40 xfun_0.31
#> [97] pkgconfig_2.0.3