## ---- include = FALSE---------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----quickYo, eval = FALSE----------------------------------------------------
# if(!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
# BiocManager::install("FEAST")
## ----quick, eval = TRUE, message=FALSE, results='hide', include = TRUE--------
library(FEAST)
data(Yan)
k = length(unique(trueclass))
Y = process_Y(Y, thre = 2)
# The core function.
ixs = FEAST(Y, k=k)
# look at the features
Ynorm = Norm_Y(Y)
par(mfrow = c(3,3))
for (i in 1:9){
tmp_ix = ixs[i]
tmp_gene = rownames(Ynorm)[tmp_ix]
boxplot(as.numeric(Ynorm[tmp_ix, ])~trueclass, main = tmp_gene, xlab="", ylab="", las=2)
}
## ----load_data, eval = TRUE---------------------------------------------------
data(Yan)
dim(Y)
table(trueclass)
## ----consensus, eval = TRUE, message=FALSE, results='hide', include = TRUE----
Y = process_Y(Y, thre = 2) # preprocess the data if needed
con_res = Consensus(Y, k=k)
## ----gene-level, eval = TRUE, message=FALSE, results='hide', include = TRUE----
F_res = cal_F2(Y, con_res$cluster)
ixs = order(F_res$F_scores, decreasing = TRUE) # order the features
## ----validation, eval = TRUE, message=FALSE, results='hide', include = TRUE----
## clustering step
tops = c(500, 1000, 2000)
cluster_res = NULL
for (top in tops){
tmp_ixs = ixs[1:top]
tmp_markers = rownames(Y)[tmp_ixs]
tmp_res = TSCAN_Clust(Y, k = k, input_markers = tmp_markers)
#tmp_res = SC3_Clust(Y, k = k, input_markers = tmp_markers)
cluster_res[[toString(top)]] = tmp_res
}
## validation step
Ynorm = Norm_Y(Y)
mse_res = NULL
for (top in names(cluster_res)){
tmp_res = cluster_res[[top]]
tmp_cluster = tmp_res$cluster
tmp_mse = cal_MSE(Ynorm = Ynorm, cluster = tmp_cluster)
mse_res = c(mse_res, tmp_mse)
}
names(mse_res) = names(cluster_res)
## ----demo, eval = TRUE, message=FALSE, results='hide', include = TRUE---------
original = TSCAN_Clust(Y, k=k)
id = which.min(mse_res)
eval_Cluster(original$cluster, trueclass)
eval_Cluster(cluster_res[[id]]$cluster, trueclass)
## ----wraper-group, eval = TRUE, message=FALSE, results='hide', include = TRUE, fig.height=4.5, fig.width=8----
data(Yan)
Y = process_Y(Y, thre = 2) # preprocess the data if needed
con_res = Consensus(Y, k=k)
mod_res = Select_Model_short_TSCAN(Y, cluster = con_res$cluster, top = c(200, 500, 1000, 2000))
# mod_res = Select_Model_short_SC3(Y, cluster = con_res$cluster, top = c(200, 500, 1000, 2000))
# to visualize the result, one needs to load ggpubr library.
library(ggpubr)
PP = Visual_Rslt(model_cv_res = mod_res, trueclass = trueclass)
print(PP$ggobj) # show the visualization plot.
## ----wraperfunctions, eval = TRUE, message=FALSE, results='hide', include = TRUE, fig.height=4.5, fig.width=8----
ixs = FEAST(Y, k=k)
#ixs = FEAST_fast(Y, k=k)
#ixs = FEAST_fast(Y, k=k, split=TRUE, batch_size = 1000)
## -----------------------------------------------------------------------------
sessionInfo()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.