dcis <- Load10X_Spatial(data.dir = here::here("data/dcis"),
filename = "filtered_feature_bc_matrix.h5")
dcis_norm <- SCTransform(dcis, assay = "Spatial", verbose = FALSE)
dcis_obj <- RunPCA(dcis_norm, assay = "SCT", verbose = FALSE)
# compute K nearest neighbors (KNN)
dcis_obj <- FindNeighbors(dcis_obj, reduction = "pca", dims = 1:30)
# Leiden algorithm for community detection
dcis_obj <- FindClusters(dcis_obj, verbose = FALSE)
# PCA result is the default UMAP input, use dimensions 1:30 as input features
dcis_obj <- RunUMAP(dcis_obj, reduction = "pca", dims = 1:30)annotation_data_dcis <- read.csv(here::here("data/dcis/Pathology.csv"), header = TRUE, row.names = 1)
dcis_obj <- AddMetaData(dcis_obj, metadata = annotation_data_dcis)
dcisPlot <- DimPlot(dcis_obj, group.by = "Pathology", label = TRUE, pt.size = 0.5) + NoLegend()
annotation_data_ids <- read.csv(here::here("data/ids/Pathology.csv"), header = TRUE, row.names = 1)
ids_obj <- AddMetaData(ids_obj, metadata = annotation_data_ids)
idsPlot <- DimPlot(ids_obj, group.by = "Pathology", label = TRUE, pt.size = 0.5) + NoLegend()
dcisPlot + idsPlotmerged_obj <- merge(x = dcis, y = ids, add.cell.ids = c("DCIS", "IDS"))
merged_obj <- NormalizeData(merged_obj)
merged_obj <- FindVariableFeatures(merged_obj)
merged_obj <- ScaleData(merged_obj)
merged_obj <- RunPCA(merged_obj)
merged_obj <- IntegrateLayers(object = merged_obj,
method = RPCAIntegration,
orig.reduction = "pca",
new.reduction = "integrated.rpca",
verbose = FALSE)
obj <- FindNeighbors(merged_obj, reduction = "integrated.rpca", dims = 1:30)
obj <- FindClusters(obj, resolution = 0.8, cluster.name = "rpca_clusters")
obj <- RunUMAP(obj, reduction = "integrated.rpca", dims = 1:30, reduction.name = "umap.rpca")
obj <- BuildClusterTree(obj)
obj <- JoinLayers(obj)\[\text{Factorize } 60 \text{ into its prime factors.}\]
\[60 = 2^2 \times 3 \times 5\]