1. load libraries

2. Load Seurat Object


#Load Seurat Object merged from cell lines and a control(PBMC) after filtration
load("AllSample_corrected.Robj")

AllSample
An object of class Seurat 
38620 features across 49193 samples within 3 assays 
Active assay: integrated (1991 features, 1991 variable features)
 2 layers present: data, scale.data
 2 other assays present: RNA, ADT
 3 dimensional reductions calculated: pca, umap, tsne

3. Perform PCA



ElbowPlot(AllSample)

NA
NA

4. Clustering


# understanding resolution
 AllSample <- FindClusters(AllSample, resolution = c(0.4, 0.5, 0.7, 1.2))
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 49193
Number of edges: 1512234

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8921
Number of communities: 18
Elapsed time: 15 seconds
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 49193
Number of edges: 1512234

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8838
Number of communities: 18
Elapsed time: 14 seconds
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 49193
Number of edges: 1512234

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8669
Number of communities: 19
Elapsed time: 12 seconds
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 49193
Number of edges: 1512234

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8375
Number of communities: 24
Elapsed time: 10 seconds

#5. Visualization


# non-linear dimensionality reduction --------------
# All_samples_Merged <- RunUMAP(All_samples_Merged, 
#                           dims = 1:8,
#                           verbose = FALSE)
#                                   

# note that you can set `label = TRUE` or use the LabelClusters function to help label
# individual clusters


DimPlot(AllSample,group.by = "orig.ident", 
        reduction = "umap",
        label.size = 3,
        repel = T,
        label = T, label.box = T)


DimPlot(AllSample,
        group.by = "integrated_snn_res.0.4", 
        reduction = "umap",
        label.size = 2,
        repel = T,
        label = T, label.box = T)


DimPlot(AllSample,
        group.by = "integrated_snn_res.0.5", 
        reduction = "umap",
        label.size = 2,
        repel = T,
        label = T, label.box = T)


DimPlot(AllSample,
        group.by = "integrated_snn_res.1.2", 
        reduction = "umap",
        label.size = 2,
        repel = T,
        label = T, label.box = T)

6. Cell Distribution Tables

cluster_table <- table(Idents(AllSample))
print(cluster_table)

   0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23 
5038 4655 4640 3724 3017 2960 2907 2839 2328 2178 1813 1742 1654 1525 1525 1073  900  891  858  825  817  493  444  347 
#0.4
cell_distribution_table <- table(AllSample$cell_line, AllSample$integrated_snn_res.0.4)
cell_distribution_df <- as.data.frame.matrix(cell_distribution_table)
print(cell_distribution_df)
#write.csv(cell_distribution_df, file = "/home/bioinfo/Downloads/integration_table_Marie-0.4.csv", row.names = TRUE)

#0.5
cell_distribution_table <- table(AllSample$cell_line, AllSample$integrated_snn_res.0.5)
cell_distribution_df <- as.data.frame.matrix(cell_distribution_table)
print(cell_distribution_df)
#write.csv(cell_distribution_df, file = "/home/bioinfo/Downloads/integration_table_Marie-0.4.csv", row.names = TRUE)

#0.7
cell_distribution_table <- table(AllSample$cell_line, AllSample$integrated_snn_res.0.7)
cell_distribution_df <- as.data.frame.matrix(cell_distribution_table)
print(cell_distribution_df)
#write.csv(cell_distribution_df, file = "/home/bioinfo/Downloads/integration_table_Marie-0.4.csv", row.names = TRUE)

#1.2
cell_distribution_table <- table(AllSample$cell_line, AllSample$integrated_snn_res.1.2)
cell_distribution_df <- as.data.frame.matrix(cell_distribution_table)
print(cell_distribution_df)
#write.csv(cell_distribution_df, file = "/home/bioinfo/Downloads/integration_table_Marie-0.4.csv", row.names = TRUE)

7. Find Top Genes (Markers)


Idents(AllSample) <- AllSample@meta.data$seurat_clusters

# find markers for every cluster compared to all remaining cells, report both positive and negative
SS.markers <- FindAllMarkers(AllSample,  
                              only.pos = FALSE,
                              logfc.threshold = 0.25, verbose = FALSE)
SS.markers
#write.table(SS.markers, file = "/home/bioinfo/Documents/1-SS-STeps/9-Integration/1-Marie_Uncorrected_Robj/SS_markers_all_clusters.tsv", sep = "\t", row.names = FALSE)

8. FeaturePlot

DefaultAssay(AllSample) <- "RNA"
myfeatures <- c("CD3", "CD3E", "CD4","CD8", "CD8A", "CD14", "CD19")
FeaturePlot(AllSample, reduction = "umap", dims = 1:2, features = myfeatures, ncol = 3, order = T) 
Warning: Could not find CD3 in the default search locations, found in 'ADT' assay insteadWarning: The following requested variables were not found: CD8

9. Save the Seurat object as an Robj file

LS0tCnRpdGxlOiAiQ29ycmVjdGVkLVVNQVAiCmF1dGhvcjogTmFzaXIgTWFobW9vZCBBYmJhc2kKZGF0ZTogIjIwMjQtMDQtMjQiCm91dHB1dDoKICBodG1sX25vdGVib29rOiAKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICB0b2NfY29sbGFwc2VkOiB0cnVlCiAgICB0aGVtZTogZGFya2x5Ci0tLQoKIyAxLiBsb2FkIGxpYnJhcmllcwpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KCmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KFNldXJhdE9iamVjdCkKbGlicmFyeShTZXVyYXREYXRhKQpsaWJyYXJ5KHBhdGNod29yaykKCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoUkNvbG9yQnJld2VyKQpsaWJyYXJ5KG1hZ3JpdHRyKQpsaWJyYXJ5KGRicGx5cikKbGlicmFyeShybWFya2Rvd24pCmxpYnJhcnkoa25pdHIpCmxpYnJhcnkodGlueXRleCkKI0F6aW11dGggQW5ub3RhdGlvbiBsaWJyYXJpZXMKbGlicmFyeShBemltdXRoKQoKI3NpbmdsZVIgQW5ub3RhdGlvbiBsaWJyYXJpZXMKbGlicmFyeShTaW5nbGVSKQpsaWJyYXJ5KGNlbGxkZXgpCmxpYnJhcnkoU2luZ2xlQ2VsbEV4cGVyaW1lbnQpCgpgYGAKCgojIDIuIExvYWQgU2V1cmF0IE9iamVjdCAKYGBge3IgbG9hZF9zZXVyYXR9CgojTG9hZCBTZXVyYXQgT2JqZWN0IG1lcmdlZCBmcm9tIGNlbGwgbGluZXMgYW5kIGEgY29udHJvbChQQk1DKSBhZnRlciBmaWx0cmF0aW9uCmxvYWQoIkFsbFNhbXBsZV9jb3JyZWN0ZWQuUm9iaiIpCgpBbGxTYW1wbGUKYGBgCgoKIyAzLiBQZXJmb3JtIFBDQQpgYGB7ciBQQ0EsIGZpZy5oZWlnaHQ9NCwgZmlnLndpZHRoPTZ9CgoKRWxib3dQbG90KEFsbFNhbXBsZSkKCgpgYGAKCgojIDQuIENsdXN0ZXJpbmcKYGBge3IgQzEsIGZpZy5oZWlnaHQ9NCwgZmlnLndpZHRoPTZ9CgojIHVuZGVyc3RhbmRpbmcgcmVzb2x1dGlvbgogQWxsU2FtcGxlIDwtIEZpbmRDbHVzdGVycyhBbGxTYW1wbGUsIHJlc29sdXRpb24gPSBjKDAuNCwgMC41LCAwLjcsIDEuMikpCgoKYGBgCgojNS4gVmlzdWFsaXphdGlvbiAKYGBge3IgQzIsIGZpZy5oZWlnaHQ9NCwgZmlnLndpZHRoPTZ9CgojIG5vbi1saW5lYXIgZGltZW5zaW9uYWxpdHkgcmVkdWN0aW9uIC0tLS0tLS0tLS0tLS0tCiMgQWxsX3NhbXBsZXNfTWVyZ2VkIDwtIFJ1blVNQVAoQWxsX3NhbXBsZXNfTWVyZ2VkLCAKIyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpbXMgPSAxOjgsCiMgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlID0gRkFMU0UpCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKIyBub3RlIHRoYXQgeW91IGNhbiBzZXQgYGxhYmVsID0gVFJVRWAgb3IgdXNlIHRoZSBMYWJlbENsdXN0ZXJzIGZ1bmN0aW9uIHRvIGhlbHAgbGFiZWwKIyBpbmRpdmlkdWFsIGNsdXN0ZXJzCgoKRGltUGxvdChBbGxTYW1wbGUsZ3JvdXAuYnkgPSAib3JpZy5pZGVudCIsIAogICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwKICAgICAgICBsYWJlbC5zaXplID0gMywKICAgICAgICByZXBlbCA9IFQsCiAgICAgICAgbGFiZWwgPSBULCBsYWJlbC5ib3ggPSBUKQoKRGltUGxvdChBbGxTYW1wbGUsCiAgICAgICAgZ3JvdXAuYnkgPSAiaW50ZWdyYXRlZF9zbm5fcmVzLjAuNCIsIAogICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwKICAgICAgICBsYWJlbC5zaXplID0gMiwKICAgICAgICByZXBlbCA9IFQsCiAgICAgICAgbGFiZWwgPSBULCBsYWJlbC5ib3ggPSBUKQoKRGltUGxvdChBbGxTYW1wbGUsCiAgICAgICAgZ3JvdXAuYnkgPSAiaW50ZWdyYXRlZF9zbm5fcmVzLjAuNSIsIAogICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwKICAgICAgICBsYWJlbC5zaXplID0gMiwKICAgICAgICByZXBlbCA9IFQsCiAgICAgICAgbGFiZWwgPSBULCBsYWJlbC5ib3ggPSBUKQoKRGltUGxvdChBbGxTYW1wbGUsCiAgICAgICAgZ3JvdXAuYnkgPSAiaW50ZWdyYXRlZF9zbm5fcmVzLjEuMiIsIAogICAgICAgIHJlZHVjdGlvbiA9ICJ1bWFwIiwKICAgICAgICBsYWJlbC5zaXplID0gMiwKICAgICAgICByZXBlbCA9IFQsCiAgICAgICAgbGFiZWwgPSBULCBsYWJlbC5ib3ggPSBUKQoKYGBgCiMgNi4gQ2VsbCBEaXN0cmlidXRpb24gVGFibGVzCmBgYHtyIEMzLCBmaWcuaGVpZ2h0PTQsIGZpZy53aWR0aD02fQpjbHVzdGVyX3RhYmxlIDwtIHRhYmxlKElkZW50cyhBbGxTYW1wbGUpKQpwcmludChjbHVzdGVyX3RhYmxlKQoKIzAuNApjZWxsX2Rpc3RyaWJ1dGlvbl90YWJsZSA8LSB0YWJsZShBbGxTYW1wbGUkY2VsbF9saW5lLCBBbGxTYW1wbGUkaW50ZWdyYXRlZF9zbm5fcmVzLjAuNCkKY2VsbF9kaXN0cmlidXRpb25fZGYgPC0gYXMuZGF0YS5mcmFtZS5tYXRyaXgoY2VsbF9kaXN0cmlidXRpb25fdGFibGUpCnByaW50KGNlbGxfZGlzdHJpYnV0aW9uX2RmKQojd3JpdGUuY3N2KGNlbGxfZGlzdHJpYnV0aW9uX2RmLCBmaWxlID0gIi9ob21lL2Jpb2luZm8vRG93bmxvYWRzL2ludGVncmF0aW9uX3RhYmxlX01hcmllLTAuNC5jc3YiLCByb3cubmFtZXMgPSBUUlVFKQoKIzAuNQpjZWxsX2Rpc3RyaWJ1dGlvbl90YWJsZSA8LSB0YWJsZShBbGxTYW1wbGUkY2VsbF9saW5lLCBBbGxTYW1wbGUkaW50ZWdyYXRlZF9zbm5fcmVzLjAuNSkKY2VsbF9kaXN0cmlidXRpb25fZGYgPC0gYXMuZGF0YS5mcmFtZS5tYXRyaXgoY2VsbF9kaXN0cmlidXRpb25fdGFibGUpCnByaW50KGNlbGxfZGlzdHJpYnV0aW9uX2RmKQojd3JpdGUuY3N2KGNlbGxfZGlzdHJpYnV0aW9uX2RmLCBmaWxlID0gIi9ob21lL2Jpb2luZm8vRG93bmxvYWRzL2ludGVncmF0aW9uX3RhYmxlX01hcmllLTAuNC5jc3YiLCByb3cubmFtZXMgPSBUUlVFKQoKIzAuNwpjZWxsX2Rpc3RyaWJ1dGlvbl90YWJsZSA8LSB0YWJsZShBbGxTYW1wbGUkY2VsbF9saW5lLCBBbGxTYW1wbGUkaW50ZWdyYXRlZF9zbm5fcmVzLjAuNykKY2VsbF9kaXN0cmlidXRpb25fZGYgPC0gYXMuZGF0YS5mcmFtZS5tYXRyaXgoY2VsbF9kaXN0cmlidXRpb25fdGFibGUpCnByaW50KGNlbGxfZGlzdHJpYnV0aW9uX2RmKQojd3JpdGUuY3N2KGNlbGxfZGlzdHJpYnV0aW9uX2RmLCBmaWxlID0gIi9ob21lL2Jpb2luZm8vRG93bmxvYWRzL2ludGVncmF0aW9uX3RhYmxlX01hcmllLTAuNC5jc3YiLCByb3cubmFtZXMgPSBUUlVFKQoKIzEuMgpjZWxsX2Rpc3RyaWJ1dGlvbl90YWJsZSA8LSB0YWJsZShBbGxTYW1wbGUkY2VsbF9saW5lLCBBbGxTYW1wbGUkaW50ZWdyYXRlZF9zbm5fcmVzLjEuMikKY2VsbF9kaXN0cmlidXRpb25fZGYgPC0gYXMuZGF0YS5mcmFtZS5tYXRyaXgoY2VsbF9kaXN0cmlidXRpb25fdGFibGUpCnByaW50KGNlbGxfZGlzdHJpYnV0aW9uX2RmKQojd3JpdGUuY3N2KGNlbGxfZGlzdHJpYnV0aW9uX2RmLCBmaWxlID0gIi9ob21lL2Jpb2luZm8vRG93bmxvYWRzL2ludGVncmF0aW9uX3RhYmxlX01hcmllLTAuNC5jc3YiLCByb3cubmFtZXMgPSBUUlVFKQpgYGAKCiMgNy4gRmluZCBUb3AgR2VuZXMgKE1hcmtlcnMpIApgYGB7ciB0b3BnZW5lcyxpbmNsdWRlID0gVH0KCklkZW50cyhBbGxTYW1wbGUpIDwtIEFsbFNhbXBsZUBtZXRhLmRhdGEkc2V1cmF0X2NsdXN0ZXJzCgojIGZpbmQgbWFya2VycyBmb3IgZXZlcnkgY2x1c3RlciBjb21wYXJlZCB0byBhbGwgcmVtYWluaW5nIGNlbGxzLCByZXBvcnQgYm90aCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUKU1MubWFya2VycyA8LSBGaW5kQWxsTWFya2VycyhBbGxTYW1wbGUsICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25seS5wb3MgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZmMudGhyZXNob2xkID0gMC4yNSwgdmVyYm9zZSA9IEZBTFNFKQpTUy5tYXJrZXJzCiN3cml0ZS50YWJsZShTUy5tYXJrZXJzLCBmaWxlID0gIi9ob21lL2Jpb2luZm8vRG9jdW1lbnRzLzEtU1MtU1RlcHMvOS1JbnRlZ3JhdGlvbi8xLU1hcmllX1VuY29ycmVjdGVkX1JvYmovU1NfbWFya2Vyc19hbGxfY2x1c3RlcnMudHN2Iiwgc2VwID0gIlx0Iiwgcm93Lm5hbWVzID0gRkFMU0UpCmBgYAojIDguIEZlYXR1cmVQbG90CmBgYHtyIGZlYXR1cmVzLGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQpEZWZhdWx0QXNzYXkoQWxsU2FtcGxlKSA8LSAiUk5BIgpteWZlYXR1cmVzIDwtIGMoIkNEMyIsICJDRDNFIiwgIkNENCIsIkNEOCIsICJDRDhBIiwgIkNEMTQiLCAiQ0QxOSIpCkZlYXR1cmVQbG90KEFsbFNhbXBsZSwgcmVkdWN0aW9uID0gInVtYXAiLCBkaW1zID0gMToyLCBmZWF0dXJlcyA9IG15ZmVhdHVyZXMsIG5jb2wgPSAzLCBvcmRlciA9IFQpIApgYGAKCiMgOS4gU2F2ZSB0aGUgU2V1cmF0IG9iamVjdCBhcyBhbiBSb2JqIGZpbGUKYGBge3Igc2F2ZVJPQkosIGVjaG89RkFMU0V9Cgojc2F2ZShBbGxTYW1wbGUsIGZpbGUgPSAiQWxsU2FtcGxlX0NvcnJlY3RlZF93aXRoX2RpZmZlcmVudF9yZXNvbHV0aW9ucy5Sb2JqIikKCgpgYGAKCgoKCgoKCg==