1. load libraries
2. Reading Data from 10x & Creating Seurat Object
# Reading 10x data and creating Seurat object
sc.data <- Read10X(data.dir = "filtered_feature_bc_matrix/")
# Renaming barcodes to prevent conflicts if merging later
colnames(sc.data) <- paste('PBMC_10x', colnames(sc.data), sep = '_')
# Creating the Seurat object from the RNA counts
SS_PBMC_10x <- CreateSeuratObject(counts = sc.data)
# Preview the object
SS_PBMC_10x
An object of class Seurat
36601 features across 10636 samples within 1 assay
Active assay: RNA (36601 features, 0 variable features)
1 layer present: counts
3. Quality Control (QC)
# Calculating the percentage of mitochondrial gene expression
SS_PBMC_10x[["percent.mt"]] <- PercentageFeatureSet(SS_PBMC_10x, pattern = "^MT-")
# Ensure 'percent.mt' is numeric and handle NaNs
SS_PBMC_10x$percent.mt <- replace(as.numeric(SS_PBMC_10x$percent.mt), is.na(SS_PBMC_10x$percent.mt), 0)
# Violin plot to visualize QC metrics
VlnPlot(SS_PBMC_10x, features = c("nFeature_RNA","nCount_RNA", "percent.mt"), ncol = 3)
Warning: Default search for "data" layer in "RNA" assay yielded no results; utilizing "counts" layer instead.

# Scatter plots to visualize relationships between key metrics
plot1 <-FeatureScatter(SS_PBMC_10x, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
plot2 <-FeatureScatter(SS_PBMC_10x, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot3 <-FeatureScatter(SS_PBMC_10x, feature1 = "nFeature_RNA", feature2 = "percent.mt")
plot1

plot2

plot3

# Display the scatter plots
plot1 + plot2 + plot3

4. Filtering
SS_PBMC_10x <- subset(SS_PBMC_10x, subset = nFeature_RNA > 500 & nFeature_RNA < 7000 & nCount_RNA < 40000 & percent.mt < 7.5
& percent.mt > 0.1)
# Visualize QC metrics as a violin plot
VlnPlot(SS_PBMC_10x, features = c("nFeature_RNA","nCount_RNA", "percent.mt"), ncol = 3)
Warning: Default search for "data" layer in "RNA" assay yielded no results; utilizing "counts" layer instead.

plot4 <-FeatureScatter(SS_PBMC_10x, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
plot5 <-FeatureScatter(SS_PBMC_10x, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot6 <-FeatureScatter(SS_PBMC_10x, feature1 = "nFeature_RNA", feature2 = "percent.mt")
plot4

plot5

plot6

SS_PBMC_10x
An object of class Seurat
36601 features across 10162 samples within 1 assay
Active assay: RNA (36601 features, 0 variable features)
1 layer present: counts
5. Adding Metadata
6. Save the Seurat object as an Robj file
```r
save(SS_PBMC_10x, file = \PBMC_10x.Robj\)
```
LS0tCnRpdGxlOiAiUEJNQ18xMHgiCmF1dGhvcjogTmFzaXIgTWFobW9vZCBBYmJhc2kKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiAgI3JtZGZvcm1hdHM6OnJlYWR0aGVkb3duCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICB0b2NfY29sbGFwc2VkOiB0cnVlCiAgIyBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKICAjIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQKICAjIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQKCiAgCi0tLQoKCiMgMS4gbG9hZCBsaWJyYXJpZXMKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KHBhdGNod29yaykKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KFJDb2xvckJyZXdlcikKbGlicmFyeShkYnBseXIpCmxpYnJhcnkodGlueXRleCkKYGBgCgoKIyAyLiBSZWFkaW5nIERhdGEgZnJvbSAxMHggJiBDcmVhdGluZyBTZXVyYXQgT2JqZWN0CmBgYHtyIHNldXJhdCwgZmlnLmhlaWdodD04LCBmaWcud2lkdGg9MTJ9CiMgUmVhZGluZyAxMHggZGF0YSBhbmQgY3JlYXRpbmcgU2V1cmF0IG9iamVjdApzYy5kYXRhIDwtIFJlYWQxMFgoZGF0YS5kaXIgPSAiZmlsdGVyZWRfZmVhdHVyZV9iY19tYXRyaXgvIikKCiMgUmVuYW1pbmcgYmFyY29kZXMgdG8gcHJldmVudCBjb25mbGljdHMgaWYgbWVyZ2luZyBsYXRlcgpjb2xuYW1lcyhzYy5kYXRhKSA8LSBwYXN0ZSgnUEJNQ18xMHgnLCBjb2xuYW1lcyhzYy5kYXRhKSwgc2VwID0gJ18nKQoKIyBDcmVhdGluZyB0aGUgU2V1cmF0IG9iamVjdCBmcm9tIHRoZSBSTkEgY291bnRzClNTX1BCTUNfMTB4IDwtIENyZWF0ZVNldXJhdE9iamVjdChjb3VudHMgPSBzYy5kYXRhKQoKIyBQcmV2aWV3IHRoZSBvYmplY3QKU1NfUEJNQ18xMHgKCmBgYAoKCgojIDMuIFF1YWxpdHkgQ29udHJvbCAoUUMpCmBgYHtyIFFDLCBmaWcuaGVpZ2h0PTgsIGZpZy53aWR0aD0xMn0KCiMgQ2FsY3VsYXRpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgbWl0b2Nob25kcmlhbCBnZW5lIGV4cHJlc3Npb24KU1NfUEJNQ18xMHhbWyJwZXJjZW50Lm10Il1dIDwtIFBlcmNlbnRhZ2VGZWF0dXJlU2V0KFNTX1BCTUNfMTB4LCBwYXR0ZXJuID0gIl5NVC0iKQoKIyBFbnN1cmUgJ3BlcmNlbnQubXQnIGlzIG51bWVyaWMgYW5kIGhhbmRsZSBOYU5zClNTX1BCTUNfMTB4JHBlcmNlbnQubXQgPC0gcmVwbGFjZShhcy5udW1lcmljKFNTX1BCTUNfMTB4JHBlcmNlbnQubXQpLCBpcy5uYShTU19QQk1DXzEweCRwZXJjZW50Lm10KSwgMCkKCiMgVmlvbGluIHBsb3QgdG8gdmlzdWFsaXplIFFDIG1ldHJpY3MKVmxuUGxvdChTU19QQk1DXzEweCwgZmVhdHVyZXMgPSBjKCJuRmVhdHVyZV9STkEiLCJuQ291bnRfUk5BIiwgInBlcmNlbnQubXQiKSwgbmNvbCA9IDMpCgojIFNjYXR0ZXIgcGxvdHMgdG8gdmlzdWFsaXplIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBrZXkgbWV0cmljcwpwbG90MSA8LUZlYXR1cmVTY2F0dGVyKFNTX1BCTUNfMTB4LCBmZWF0dXJlMSA9ICJuQ291bnRfUk5BIiwgZmVhdHVyZTIgPSAibkZlYXR1cmVfUk5BIikgCnBsb3QyIDwtRmVhdHVyZVNjYXR0ZXIoU1NfUEJNQ18xMHgsIGZlYXR1cmUxID0gIm5Db3VudF9STkEiLCBmZWF0dXJlMiA9ICJwZXJjZW50Lm10IikgCnBsb3QzIDwtRmVhdHVyZVNjYXR0ZXIoU1NfUEJNQ18xMHgsIGZlYXR1cmUxID0gIm5GZWF0dXJlX1JOQSIsIGZlYXR1cmUyID0gInBlcmNlbnQubXQiKSAKCnBsb3QxCnBsb3QyCnBsb3QzCgojIERpc3BsYXkgdGhlIHNjYXR0ZXIgcGxvdHMKcGxvdDEgKyBwbG90MiArIHBsb3QzCmBgYAoKIyA0LiBGaWx0ZXJpbmcgCmBgYHtyIGZpbHRlcmluZywgZmlnLndpZHRoPTYsIGZpZy5oZWlnaHQ9NH0KClNTX1BCTUNfMTB4IDwtIHN1YnNldChTU19QQk1DXzEweCwgc3Vic2V0ID0gbkZlYXR1cmVfUk5BID4gNTAwICYgbkZlYXR1cmVfUk5BIDwgNzAwMCAmIG5Db3VudF9STkEgPCA0MDAwMCAmIHBlcmNlbnQubXQgPCA3LjUgCiAgICAgICAgICAgICAgICAgICYgcGVyY2VudC5tdCA+IDAuMSkKCiMgVmlzdWFsaXplIFFDIG1ldHJpY3MgYXMgYSB2aW9saW4gcGxvdApWbG5QbG90KFNTX1BCTUNfMTB4LCBmZWF0dXJlcyA9IGMoIm5GZWF0dXJlX1JOQSIsIm5Db3VudF9STkEiLCAicGVyY2VudC5tdCIpLCAgbmNvbCA9IDMpCgoKcGxvdDQgPC1GZWF0dXJlU2NhdHRlcihTU19QQk1DXzEweCwgZmVhdHVyZTEgPSAibkNvdW50X1JOQSIsIGZlYXR1cmUyID0gIm5GZWF0dXJlX1JOQSIpIApwbG90NSA8LUZlYXR1cmVTY2F0dGVyKFNTX1BCTUNfMTB4LCBmZWF0dXJlMSA9ICJuQ291bnRfUk5BIiwgZmVhdHVyZTIgPSAicGVyY2VudC5tdCIpIApwbG90NiA8LUZlYXR1cmVTY2F0dGVyKFNTX1BCTUNfMTB4LCBmZWF0dXJlMSA9ICJuRmVhdHVyZV9STkEiLCBmZWF0dXJlMiA9ICJwZXJjZW50Lm10IikgCgpwbG90NApwbG90NQpwbG90NgpTU19QQk1DXzEweApgYGAKCiMgNS4gQWRkaW5nIE1ldGFkYXRhCmBgYHtyIGFkZF9pbmZvLCBlY2hvPUZBTFNFfQoKIyBMb2FkIHRoZSBtZXRhZGF0YSBmcm9tIHRoZSBDU1YgZmlsZQptZXRhZGF0YV9jc3YgPC0gcmVhZC5jc3YoImFubm90YXRpb25fbnVtZXJpcXVlLmNzdiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgc2VwID0gIiwiLCBoZWFkZXIgPSBUUlVFKQoKIyBFeHRyYWN0IHRoZSB2YWx1ZXMgZnJvbSB0aGUgZmlyc3Qgcm93IG9mIHRoZSBDU1YgZmlsZQptZXRhZGF0YV92YWx1ZXMgPC0gbWV0YWRhdGFfY3N2WzksIF0KCiMgR2V0IHRoZSBudW1iZXIgb2YgY29sIGluIHlvdXIgU2V1cmF0IG9iamVjdCAoYXNzdW1pbmcgeW91ciBTZXVyYXQgb2JqZWN0IGlzIG5hbWVkIFNTX0wxKQpudW1fY2VsbHMgPC0gbmNvbChTU19QQk1DXzEweCkKCm1ldGFkYXRhX1BCTUNfcmVwZWF0ZWQgPC0gbWV0YWRhdGFfdmFsdWVzW3JlcCgxLCBudW1fY2VsbHMpLCBdCgojIEFkZCB0aGUgbmV3IG1ldGFkYXRhIGNvbHVtbnMgdG8gdGhlIGVuZCBvZiB5b3VyIFNldXJhdCBvYmplY3QncyBtZXRhZGF0YQpTU19QQk1DXzEweEBtZXRhLmRhdGEgPC0gY2JpbmQoU1NfUEJNQ18xMHhAbWV0YS5kYXRhLCBtZXRhZGF0YV9QQk1DX3JlcGVhdGVkKQoKIyBOb3csIHlvdXIgU2V1cmF0IG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgYWRkaXRpb25hbCBtZXRhZGF0YSBjb2x1bW5zIGF0IHRoZSBlbmQuCgpgYGAKCiMgNi4gU2F2ZSB0aGUgU2V1cmF0IG9iamVjdCBhcyBhbiBSb2JqIGZpbGUKYGBge3IgVU1BUH0KCnNhdmUoU1NfUEJNQ18xMHgsIGZpbGUgPSAiUEJNQ18xMHguUm9iaiIpCgoKYGBgCgoKCgoK