#Using sctransform in Seurat

##Tutorial


##packages
library(Seurat)
library(ggplot2)
library(sctransform)

#Load Data and Create Seurat Object

pbmc.data <- Read10X(data.dir = "C:/Users/evrajadh/Documents/RBook/filtered_gene_bc_matrices/hg19/")

#"C:\Users\evrajadh\Documents\RBook\filtered_gene_bc_matrices\hg19"

pbmc <- CreateSeuratObject(counts = pbmc.data)
Warning: Feature names cannot have underscores ('_'), replacing with dashes ('-')
head(pbmc)
View(pbmc)

#Store mitochondria percentage in object meta data
pbmc <- PercentageFeatureSet(pbmc, pattern = "^MT-", col.name = "percent.mt")

#THIS STORES A NEW COLUMN IN METADATA (with nCount_RNA and nFeature_RNA)

#run sctransform
#This covers NORMALIZE, SCALE, and FindVariableFeatures

pbmc <- SCTransform(pbmc, vars.to.regress = "percent.mt", verbose=F)

head(VariableFeatures(pbmc))
[1] "S100A9" "GNLY"   "LYZ"    "S100A8" "NKG7"   "FTL"   
VariableFeatures(pbmc)[1:10]
 [1] "S100A9" "GNLY"   "LYZ"    "S100A8" "NKG7"   "FTL"    "GZMB"   "IGLL5"  "FTH1"   "CCL5"  
interesting_gene_names <- VariableFeatures(pbmc)[1:100]

head(interesting_gene_names)
[1] "S100A9" "GNLY"   "LYZ"    "S100A8" "NKG7"   "FTL"   
#Perform dimensionality reduction by PCA and UMAP embedding (workflow for visualization and clustering

pbmc <- RunPCA(pbmc, verbose=F)

ElbowPlot(pbmc)

pbmc <- RunUMAP(pbmc, dims = 1:30, verbose=F)

pbmc <- FindNeighbors(pbmc, dims = 1:30)
Computing nearest neighbor graph
Computing SNN
pbmc <- FindClusters(pbmc)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 2700
Number of edges: 111035

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.8342
Number of communities: 12
Elapsed time: 0 seconds
DimPlot(pbmc, label=T)


DimPlot(pbmc, dims = c(2,1), label=T)

LS0tDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgaHRtbF9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNCiNVc2luZyBzY3RyYW5zZm9ybSBpbiBTZXVyYXQNCg0KIyNUdXRvcmlhbA0KDQpgYGB7cn0NCg0KIyNwYWNrYWdlcw0KbGlicmFyeShTZXVyYXQpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHNjdHJhbnNmb3JtKQ0KDQpgYGANCmBgYHtyfQ0KDQojTG9hZCBEYXRhIGFuZCBDcmVhdGUgU2V1cmF0IE9iamVjdA0KDQpwYm1jLmRhdGEgPC0gUmVhZDEwWChkYXRhLmRpciA9ICJDOi9Vc2Vycy9ldnJhamFkaC9Eb2N1bWVudHMvUkJvb2svZmlsdGVyZWRfZ2VuZV9iY19tYXRyaWNlcy9oZzE5LyIpDQoNCiMiQzpcVXNlcnNcZXZyYWphZGhcRG9jdW1lbnRzXFJCb29rXGZpbHRlcmVkX2dlbmVfYmNfbWF0cmljZXNcaGcxOSINCg0KcGJtYyA8LSBDcmVhdGVTZXVyYXRPYmplY3QoY291bnRzID0gcGJtYy5kYXRhKQ0KDQoNCmBgYA0KDQpgYGB7cn0NCmhlYWQocGJtYykNClZpZXcocGJtYykNCmBgYA0KYGBge3J9DQoNCiNTdG9yZSBtaXRvY2hvbmRyaWEgcGVyY2VudGFnZSBpbiBvYmplY3QgbWV0YSBkYXRhDQpwYm1jIDwtIFBlcmNlbnRhZ2VGZWF0dXJlU2V0KHBibWMsIHBhdHRlcm4gPSAiXk1ULSIsIGNvbC5uYW1lID0gInBlcmNlbnQubXQiKQ0KDQojVEhJUyBTVE9SRVMgQSBORVcgQ09MVU1OIElOIE1FVEFEQVRBICh3aXRoIG5Db3VudF9STkEgYW5kIG5GZWF0dXJlX1JOQSkNCg0KYGBgDQoNCmBgYHtyfQ0KDQojcnVuIHNjdHJhbnNmb3JtDQojVGhpcyBjb3ZlcnMgTk9STUFMSVpFLCBTQ0FMRSwgYW5kIEZpbmRWYXJpYWJsZUZlYXR1cmVzDQoNCnBibWMgPC0gU0NUcmFuc2Zvcm0ocGJtYywgdmFycy50by5yZWdyZXNzID0gInBlcmNlbnQubXQiLCB2ZXJib3NlPUYpDQoNCmBgYA0KDQpgYGB7cn0NCg0KaGVhZChWYXJpYWJsZUZlYXR1cmVzKHBibWMpKQ0KVmFyaWFibGVGZWF0dXJlcyhwYm1jKVsxOjEwXQ0KaW50ZXJlc3RpbmdfZ2VuZV9uYW1lcyA8LSBWYXJpYWJsZUZlYXR1cmVzKHBibWMpWzE6MTAwXQ0KDQpoZWFkKGludGVyZXN0aW5nX2dlbmVfbmFtZXMpDQpgYGANCmBgYHtyfQ0KI1BlcmZvcm0gZGltZW5zaW9uYWxpdHkgcmVkdWN0aW9uIGJ5IFBDQSBhbmQgVU1BUCBlbWJlZGRpbmcgKHdvcmtmbG93IGZvciB2aXN1YWxpemF0aW9uIGFuZCBjbHVzdGVyaW5nDQoNCnBibWMgPC0gUnVuUENBKHBibWMsIHZlcmJvc2U9RikNCg0KRWxib3dQbG90KHBibWMpDQoNCmBgYA0KDQpgYGB7cn0NCnBibWMgPC0gUnVuVU1BUChwYm1jLCBkaW1zID0gMTozMCwgdmVyYm9zZT1GKQ0KYGBgDQoNCg0KYGBge3J9DQoNCnBibWMgPC0gRmluZE5laWdoYm9ycyhwYm1jLCBkaW1zID0gMTozMCkNCnBibWMgPC0gRmluZENsdXN0ZXJzKHBibWMpDQpEaW1QbG90KHBibWMsIGxhYmVsPVQpDQoNCmBgYA0KDQpgYGB7cn0NCg0KRGltUGxvdChwYm1jLCBkaW1zID0gYygyLDEpLCBsYWJlbD1UKQ0KYGBgDQoNCg==