# Load data
# CNV
cnv <- read.csv("../3.tumorcell/cancer.cnv.csv", row.names = 1, check.names = F)
rownames(cnv) <- gsub("cell.", "", rownames(cnv))
rownames(cnv) <- gsub("\\.", "-", rownames(cnv))
# Peak
peak <- readRDS("../5.peakcorrection/peak.mat.rds")
# peak <- peak[apply(peak, 1, sd) > 0.25,]
nrow(peak)
# SNV
snv <- readRDS("../6.snvcorrection/denoised.mat.rds")
rownames(snv) <- paste0(rownames(snv), "-1")
share.barcode <- Reduce(intersect, list(colnames(peak), rownames(snv), rownames(cnv)))
# saveRDS(share.barcode, "share.barcode.rds")
# Randomly sample 200 cells to speed up running
share.barcode <- withr::with_seed(1, sample(share.barcode, size = 200))
saveRDS(share.barcode, "share.barcode.rds")
#
peak <- t(peak)
peak.raw <- peak[share.barcode,] %>% as.matrix()
cnv.raw <- cnv[share.barcode,] %>% as.matrix()
snv.raw <- snv[share.barcode,] %>% as.matrix()
###############################################################################
# Calculate cell similarity
peak.similarity <- 1- as.matrix(parallelDist::parDist(as.matrix(peak.raw), method = "cosine", threads = 40))
cnv.similarity <- 1- as.matrix(parallelDist::parDist(as.matrix(cnv.raw), method = "hamming", threads = 40))
snv.similarity <- 1- as.matrix(parallelDist::parDist(as.matrix(snv.raw), method = "hamming", threads = 40))
maas.test <- MAAS(peak.similarity, cnv.similarity, snv.similarity, dims = 2:5) # The three cell=cell similarity matrix is stored in the data folder of MAAS package.
saveRDS(maas.test, "maas.res.all.rds")