## ----include=FALSE------------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----install-package, eval=FALSE----------------------------------------------
# if (!require("BiocManager", quietly = TRUE)) {
# install.packages("BiocManager")
# }
#
# BiocManager::install("PIUMA")
## ----chunk-1,eval=FALSE-------------------------------------------------------
# #############################################
# ############# NOT TO EXECUTE ################
# ########## please skip this chunk ###########
# #############################################
#
#
# dataset_seu <- readRDS("./GSE193346_CD1_seurat_object.rds")
#
# # subset vascular endothelial cells
# vascularEC_seuobj <- subset(x = dataset_seu,
# subset = markFinal == "vascular_ec")
# df_data_counts <- vascularEC_seuobj@assays$RNA@counts
# df_cl <- as.data.frame(df_data_counts)
# meta_cl <- vascularEC_seuobj@meta.data[, c(10,13,14,15)]
# meta_cl[sapply(meta_cl, is.character)] <- lapply(meta_cl[sapply(meta_cl,
# is.character)],
# as.factor)
#
# ## Filtering and normalization
# colnames(meta_cl)[4] <- "class"
# SE <- DaMiR.makeSE(df_cl, meta_cl)
# data_norm <- DaMiR.normalization(SE,
# type = "vst",
# minCounts = 3,
# fSample = 0.4,
# hyper = "no")
# vascEC_norm <- round(t(assay(data_norm)), 2)
# vascEC_meta <- meta_cl[, c(3,4), drop=FALSE]
# df_TDA <- cbind(vascEC_meta, vascEC_norm)
#
## ----chunk-2,warning=FALSE----------------------------------------------------
library(PIUMA)
library(ggplot2)
data(vascEC_norm)
data(vascEC_meta)
df_TDA <- cbind(vascEC_meta, vascEC_norm)
dim(df_TDA)
head(df_TDA[1:5, 1:7])
## ----chunk-3,warning=FALSE----------------------------------------------------
TDA_obj <- makeTDAobj(df_TDA, c("stage","zone"))
## ----chunk-3_1,warning=FALSE, eval=FALSE--------------------------------------
# data("vascEC_meta")
# data("vascEC_norm")
#
# dataSE <- SummarizedExperiment(assays=as.matrix(t(vascEC_norm)),
# colData=as.data.frame(vascEC_meta))
# TDA_obj <- makeTDAobjFromSE(dataSE, c("stage","zone"))
#
## ----chunk-4, fig.width=10, fig.height=10,warning=FALSE, fig.cap = "Scatterplot from UMAP. Four scatter plots are drawn, using the first 2 components identified by UMAP. Each panel represents cells belonging to a specific heart chamber, while colors refer to the development stage."----
set.seed(1)
# calculate the distance matrix
TDA_obj <- dfToDistance(TDA_obj, distMethod = "euclidean")
# calculate the projections (lenses)
TDA_obj <- dfToProjection(TDA_obj,
"UMAP",
nComp = 2,
umapNNeigh = 25,
umapMinDist = 0.3,
showPlot = FALSE)
# plot point-cloud based on stage and zone
df_plot <- as.data.frame(cbind(getOutcomeFact(TDA_obj),
getComp(TDA_obj)),
stringAsFactor = TRUE)
ggplot(data= df_plot, aes(x=comp1, y=comp2, color=stage))+
geom_point(size=3)+
facet_wrap(~zone)
## ----chunk-5, fig.width=10, fig.height=10,warning=FALSE-----------------------
TDA_obj <- mapperCore(TDA_obj,
nBins = 15,
overlap = 0.3,
clustMeth = "kmeans")
# number of clusters (nodes)
dim(getDfMapper(TDA_obj))
# content of two overlapping clusters
getDfMapper(TDA_obj)["node_102_cl_1", 1]
getDfMapper(TDA_obj)["node_117_cl_1", 1]
## ----chunk-6, fig.width=10, fig.height=10,warning=FALSE-----------------------
# Jaccard Matrix
TDA_obj <- jaccardMatrix(TDA_obj)
head(round(getJacc(TDA_obj)[1:5,1:5],3))
round(getJacc(TDA_obj)["node_102_cl_1","node_117_cl_1"],3)
## ----chunk-7, fig.width=10, fig.height=10,warning=FALSE-----------------------
TDA_obj <- tdaDfEnrichment(TDA_obj,
cbind(getScaledData(TDA_obj),
getOutcome(TDA_obj)))
head(getNodeDataMat(TDA_obj)[1:5, tail(names(getNodeDataMat(TDA_obj)), 5)])
## ----chunk-8, fig.width=10, fig.height=10,warning=FALSE, eval=TRUE, fig.cap = "Power-law degree distribution. The correlation between P(k) (y-axis) and k (x-axis) is represented in linear scale (on the left) and in log-log scale (on the right). The regression line (orange line) is also provided."----
# Anchoring (supervised)
entropy <- checkNetEntropy(getNodeDataMat(TDA_obj)[, "zone"])
entropy
# Scale free network (unsupervised)
netModel <- checkScaleFreeModel(TDA_obj, showPlot = TRUE)
netModel
## ----fig.width=10, fig.height=10, warning=FALSE, eval=FALSE-------------------
# write.table(x = round(getJacc(TDA_obj),3),
# file = "./jaccard.matrix.txt",
# sep = "\t",
# quote = FALSE,
# na = "",
# col.names = NA)
#
# write.table(x = getNodeDataMat(TDA_obj),
# file = "./nodeEnrichment.txt",
# sep = "\t",
# quote = FALSE,
# col.names = NA)
#
#
## ----session_info-------------------------------------------------------------
sessionInfo()