ss_Borcherding$sample <- recode(ss_Borcherding$sample,
"Control" = "Normal CD4",
"SS_Patient1" = "Malignant CD4")
table(ss_Borcherding$sample)
Malignant CD4 Normal CD4
3443 4437
VlnPlot(ss_Borcherding, 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.
VlnPlot(ss_Borcherding, features = c("nFeature_RNA",
"nCount_RNA",
"percent.mt",
"percent.rb"),
ncol = 4, pt.size = 0.1) &
theme(plot.title = element_text(size=10))
Warning: Default search for "data" layer in "RNA" assay yielded no results; utilizing "counts" layer instead.Warning: The following requested variables were not found: percent.rb
FeatureScatter(ss_Borcherding,
feature1 = "nCount_RNA",
feature2 = "nFeature_RNA") +
geom_smooth(method = 'lm')
##FeatureScatter is typically used to visualize feature-feature relationships ##for anything calculated by the object, ##i.e. columns in object metadata, PC scores etc.
FeatureScatter(ss_Borcherding,
feature1 = "nCount_RNA",
feature2 = "percent.mt")+
geom_smooth(method = 'lm')
FeatureScatter(ss_Borcherding,
feature1 = "nCount_RNA",
feature2 = "nFeature_RNA")+
geom_smooth(method = 'lm')
ss_Borcherding <- NormalizeData(ss_Borcherding, normalization.method = "LogNormalize", scale.factor = 10000)
Normalizing layer: counts.SS_Patient1
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Normalizing layer: counts.Control
Performing log-normalization
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
ss_Borcherding <- FindVariableFeatures(ss_Borcherding, selection.method = "vst", nfeatures = 2000)
Finding variable features for layer counts.SS_Patient1
Calculating gene variances
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Finding variable features for layer counts.Control
Calculating gene variances
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
ss_Borcherding <- ScaleData(ss_Borcherding, features = VariableFeatures(ss_Borcherding))
Centering and scaling data matrix
|
| | 0%
|
|============================================== | 50%
|
|=============================================================================================| 100%
# PCA
ss_Borcherding <- RunPCA(ss_Borcherding, features = VariableFeatures(ss_Borcherding))
PC_ 1
Positive: TRBV14, TRBV21-1, S100A10, TRAV9-2, CRIP1, B2M, ITGB1, S100A6, S100A4, PLS3
HLA-C, S100A11, KLF6, CD70, MBP, KIR3DL2, PCSK1N, AHNAK, CD52, HACD1
LMNA, VIM, HPGD, GPR15, CCDC167, PTTG1, ANXA2, HLA-A, TSPAN2, KIR3DL1
Negative: RPS4Y1, RPS12, RPS6, TPT1, RPL3, MT-CO3, MT-ND3, RPL13, MT-CO1, TXNIP
RPSA, MT-ATP8, RPL35, C1orf162, RPS18, MT-CYB, ABLIM1, RPS19, RPLP1, SLC40A1
NUCB2, RPLP0, SATB1, HNRNPA1, AIF1, PCED1B, FYB, MBNL1, MT-CO2, VAMP5
PC_ 2
Positive: TYROBP, CST3, LYZ, FCER1G, FCN1, S100A9, HLA-DRA, CYBB, S100A8, SERPINA1
CLEC12A, FGL2, VCAN, CSTA, LST1, FGR, MPEG1, SPI1, RAB31, DUSP6
MNDA, S100A12, CD68, SLC7A7, NCF2, CLEC7A, LGALS2, TNFAIP2, CD14, LYN
Negative: RPSA, RPL3, IFITM1, RPS18, RPLP0, RPL13, TCF7, LTB, LEF1, CD7
CCR7, IL7R, PTPRCAP, RPS12, IL32, RPS6, CD27, RPS19, TRBV14, TRBV21-1
MAL, ID3, ARHGAP15, TRAV9-2, STMN1, AES, CD3G, RPLP1, LRRN3, RGCC
PC_ 3
Positive: PFN1, MIR4435-2HG, LINC00152, GZMA, CCL5, CST7, ANXA5, GZMK, HLA-DPA1, FAS
CTSC, CXCR3, C12orf75, CDCA7, PRDM1, SRGN, CD99, HLA-DRB5, PTPRCAP, KLRB1
SH3BGRL3, NKG7, FAM46C, HLA-DPB1, GBP5, ITGA4, CD74, JAKMIP1, ARHGDIB, CD2
Negative: TCF7, TRBV14, TRBV21-1, CCR7, LRRN3, FOS, LEF1, JUNB, SPINT2, TRAV9-2
RAB25, LINC01480, RHOB, KIR3DL2, RPL13, ESPN, PLS3, KIR3DL1, ID3, DNM3OS
COL6A2, TSPAN2, PCSK1N, RHBDL1, JUN, MAL, EPHX2, S100A9, AIF1, LYZ
PC_ 4
Positive: MT-CO2, MT-CO1, MT-ND6, AHNAK, MT-CYB, MIR4435-2HG, FTH1, LINC00152, SH3BGRL3, S100A10
TTN, HIST1H1E, FOXP3, C12orf75, S100A4, TTC39C, LGALS3, VIM, NEAT1, MYO1F
SAMSN1, S100A6, KLF6, PREX1, TIGIT, PRDM1, CTLA4, HLA-DQA1, CDCA7, MT-ND3
Negative: HLA-B, CFL1, HLA-A, IFITM1, ITM2B, CALM2, CCR7, ARHGDIB, MYL12A, CD7
PGK1, HSP90AB1, ACTB, MYL6, RPL27A, IFITM2, TXNIP, CD3G, STMN1, RPS18
HLA-C, NOSIP, ANXA1, CORO1A, SELL, LEF1, RPL35, PRDX2, CALR, B2M
PC_ 5
Positive: MALAT1, MT-ND3, PTPRC, CCR7, TTN, LEF1, MBNL1, MT-ATP8, MT-ATP6, MT-CYB
MT-CO2, SELL, IL6ST, FOXP1, ITK, MT-CO1, LINC00861, MT-CO3, MT-ND2, SPTBN1
SF3B1, FAM65B, DDX5, CLEC2D, SLFN5, GPR155, FCMR, IKZF2, SESN3, PDE3B
Negative: RPLP1, RPLP0, RPS18, RPL13, RPS19, RPSA, RPS12, SH3BGRL3, RPL35, TPT1
RPL36A, NME2, RPL3, TMSB10, S100A4, ATP5E, ACTG1, RPS6, S100A11, CRIP1
VIM, FTH1, GAPDH, S100A10, PFN1, ACTB, HNRNPA1, IFITM2, TMSB4X, TXN
# Optional: Visualize elbow plot
ElbowPlot(ss_Borcherding, ndims = 20)
# Run JackStraw analysis properly
ss_Borcherding <- JackStraw(ss_Borcherding, num.replicate = 100)
Warning: The `slot` argument of `GetAssayData()` is deprecated as of SeuratObject 5.0.0.
Please use the `layer` argument instead.
| | 0 % ~calculating
|+ | 1 % ~04m 41s
|+ | 2 % ~04m 04s
|++ | 3 % ~03m 48s
|++ | 4 % ~03m 39s
|+++ | 5 % ~03m 34s
|+++ | 6 % ~03m 32s
|++++ | 7 % ~03m 28s
|++++ | 8 % ~03m 25s
|+++++ | 9 % ~03m 21s
|+++++ | 10% ~03m 19s
|++++++ | 11% ~03m 16s
|++++++ | 12% ~03m 14s
|+++++++ | 13% ~03m 11s
|+++++++ | 14% ~03m 09s
|++++++++ | 15% ~03m 06s
|++++++++ | 16% ~03m 05s
|+++++++++ | 17% ~03m 02s
|+++++++++ | 18% ~03m 01s
|++++++++++ | 19% ~03m 01s
|++++++++++ | 20% ~02m 59s
|+++++++++++ | 21% ~02m 57s
|+++++++++++ | 22% ~02m 54s
|++++++++++++ | 23% ~02m 52s
|++++++++++++ | 24% ~02m 49s
|+++++++++++++ | 25% ~02m 47s
|+++++++++++++ | 26% ~02m 44s
|++++++++++++++ | 27% ~02m 41s
|++++++++++++++ | 28% ~02m 39s
|+++++++++++++++ | 29% ~02m 37s
|+++++++++++++++ | 30% ~02m 35s
|++++++++++++++++ | 31% ~02m 32s
|++++++++++++++++ | 32% ~02m 30s
|+++++++++++++++++ | 33% ~02m 27s
|+++++++++++++++++ | 34% ~02m 25s
|++++++++++++++++++ | 35% ~02m 23s
|++++++++++++++++++ | 36% ~02m 20s
|+++++++++++++++++++ | 37% ~02m 18s
|+++++++++++++++++++ | 38% ~02m 16s
|++++++++++++++++++++ | 39% ~02m 13s
|++++++++++++++++++++ | 40% ~02m 11s
|+++++++++++++++++++++ | 41% ~02m 09s
|+++++++++++++++++++++ | 42% ~02m 07s
|++++++++++++++++++++++ | 43% ~02m 05s
|++++++++++++++++++++++ | 44% ~02m 02s
|+++++++++++++++++++++++ | 45% ~02m 00s
|+++++++++++++++++++++++ | 46% ~01m 58s
|++++++++++++++++++++++++ | 47% ~01m 56s
|++++++++++++++++++++++++ | 48% ~01m 54s
|+++++++++++++++++++++++++ | 49% ~01m 51s
|+++++++++++++++++++++++++ | 50% ~01m 49s
|++++++++++++++++++++++++++ | 51% ~01m 47s
|++++++++++++++++++++++++++ | 52% ~01m 45s
|+++++++++++++++++++++++++++ | 53% ~01m 43s
|+++++++++++++++++++++++++++ | 54% ~01m 40s
|++++++++++++++++++++++++++++ | 55% ~01m 39s
|++++++++++++++++++++++++++++ | 56% ~01m 36s
|+++++++++++++++++++++++++++++ | 57% ~01m 34s
|+++++++++++++++++++++++++++++ | 58% ~01m 32s
|++++++++++++++++++++++++++++++ | 59% ~01m 30s
|++++++++++++++++++++++++++++++ | 60% ~01m 27s
|+++++++++++++++++++++++++++++++ | 61% ~01m 25s
|+++++++++++++++++++++++++++++++ | 62% ~01m 23s
|++++++++++++++++++++++++++++++++ | 63% ~01m 21s
|++++++++++++++++++++++++++++++++ | 64% ~01m 18s
|+++++++++++++++++++++++++++++++++ | 65% ~01m 16s
|+++++++++++++++++++++++++++++++++ | 66% ~01m 14s
|++++++++++++++++++++++++++++++++++ | 67% ~01m 12s
|++++++++++++++++++++++++++++++++++ | 68% ~01m 10s
|+++++++++++++++++++++++++++++++++++ | 69% ~01m 07s
|+++++++++++++++++++++++++++++++++++ | 70% ~01m 05s
|++++++++++++++++++++++++++++++++++++ | 71% ~01m 03s
|++++++++++++++++++++++++++++++++++++ | 72% ~01m 01s
|+++++++++++++++++++++++++++++++++++++ | 73% ~59s
|+++++++++++++++++++++++++++++++++++++ | 74% ~57s
|++++++++++++++++++++++++++++++++++++++ | 75% ~55s
|++++++++++++++++++++++++++++++++++++++ | 76% ~52s
|+++++++++++++++++++++++++++++++++++++++ | 77% ~50s
|+++++++++++++++++++++++++++++++++++++++ | 78% ~48s
|++++++++++++++++++++++++++++++++++++++++ | 79% ~46s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~44s
|+++++++++++++++++++++++++++++++++++++++++ | 81% ~41s
|+++++++++++++++++++++++++++++++++++++++++ | 82% ~39s
|++++++++++++++++++++++++++++++++++++++++++ | 83% ~37s
|++++++++++++++++++++++++++++++++++++++++++ | 84% ~35s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~33s
|+++++++++++++++++++++++++++++++++++++++++++ | 86% ~31s
|++++++++++++++++++++++++++++++++++++++++++++ | 87% ~28s
|++++++++++++++++++++++++++++++++++++++++++++ | 88% ~26s
|+++++++++++++++++++++++++++++++++++++++++++++ | 89% ~24s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~22s
|++++++++++++++++++++++++++++++++++++++++++++++ | 91% ~20s
|++++++++++++++++++++++++++++++++++++++++++++++ | 92% ~17s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 93% ~15s
|+++++++++++++++++++++++++++++++++++++++++++++++ | 94% ~13s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~11s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~09s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~07s
|+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03m 39s
| | 0 % ~calculating
|+++ | 5 % ~00s
|+++++ | 10% ~00s
|++++++++ | 15% ~00s
|++++++++++ | 20% ~00s
|+++++++++++++ | 25% ~00s
|+++++++++++++++ | 30% ~00s
|++++++++++++++++++ | 35% ~00s
|++++++++++++++++++++ | 40% ~00s
|+++++++++++++++++++++++ | 45% ~00s
|+++++++++++++++++++++++++ | 50% ~00s
|++++++++++++++++++++++++++++ | 55% ~00s
|++++++++++++++++++++++++++++++ | 60% ~00s
|+++++++++++++++++++++++++++++++++ | 65% ~00s
|+++++++++++++++++++++++++++++++++++ | 70% ~00s
|++++++++++++++++++++++++++++++++++++++ | 75% ~00s
|++++++++++++++++++++++++++++++++++++++++ | 80% ~00s
|+++++++++++++++++++++++++++++++++++++++++++ | 85% ~00s
|+++++++++++++++++++++++++++++++++++++++++++++ | 90% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++ | 95% ~00s
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=00s
ss_Borcherding <- ScoreJackStraw(ss_Borcherding, dims = 1:20)
# Visualize JackStraw scores
JackStrawPlot(ss_Borcherding, dims = 1:20)
# TEST-1
# given that the output of RunPCA is "pca"
# replace "so" by the name of your seurat object
pct <- ss_Borcherding[["pca"]]@stdev / sum(ss_Borcherding[["pca"]]@stdev) * 100
cumu <- cumsum(pct) # Calculate cumulative percents for each PC
# Determine the difference between variation of PC and subsequent PC
co2 <- sort(which((pct[-length(pct)] - pct[-1]) > 0.1), decreasing = T)[1] + 1
# last point where change of % of variation is more than 0.1%. -> co2
co2
[1] 12
# TEST-2
# get significant PCs
stdv <- ss_Borcherding[["pca"]]@stdev
sum.stdv <- sum(ss_Borcherding[["pca"]]@stdev)
percent.stdv <- (stdv / sum.stdv) * 100
cumulative <- cumsum(percent.stdv)
co1 <- which(cumulative > 90 & percent.stdv < 5)[1]
co2 <- sort(which((percent.stdv[1:length(percent.stdv) - 1] -
percent.stdv[2:length(percent.stdv)]) > 0.1),
decreasing = T)[1] + 1
min.pc <- min(co1, co2)
min.pc
[1] 12
# Create a dataframe with values
plot_df <- data.frame(pct = percent.stdv,
cumu = cumulative,
rank = 1:length(percent.stdv))
# Elbow plot to visualize
ggplot(plot_df, aes(cumulative, percent.stdv, label = rank, color = rank > min.pc)) +
geom_text() +
geom_vline(xintercept = 90, color = "grey") +
geom_hline(yintercept = min(percent.stdv[percent.stdv > 5]), color = "grey") +
theme_bw()
NA
NA
NA
# Then find neighbors & clusters
ss_Borcherding <- FindNeighbors(ss_Borcherding, dims = 1:10)
Computing nearest neighbor graph
Computing SNN
ss_Borcherding <- FindClusters(ss_Borcherding, resolution = 1.2)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
Number of nodes: 7880
Number of edges: 260091
Running Louvain algorithm...
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.7903
Number of communities: 19
Elapsed time: 0 seconds
# run UMAP
ss_Borcherding <- RunUMAP(ss_Borcherding, dims = 1:10)
Warning: The default method for RunUMAP has changed from calling Python UMAP via reticulate to the R-native UWOT using the cosine metric
To use Python UMAP via reticulate, set umap.method to 'umap-learn' and metric to 'correlation'
This message will be shown once per session16:36:34 UMAP embedding parameters a = 0.9922 b = 1.112
16:36:34 Read 7880 rows and found 10 numeric columns
16:36:34 Using Annoy for neighbor search, n_neighbors = 30
16:36:34 Building Annoy index with metric = cosine, n_trees = 50
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
16:36:34 Writing NN index file to temp file /tmp/Rtmp8n5s4h/file14a79594363bc
16:36:34 Searching Annoy index using 1 thread, search_k = 3000
16:36:36 Annoy recall = 100%
16:36:36 Commencing smooth kNN distance calibration using 1 thread with target n_neighbors = 30
16:36:38 Initializing from normalized Laplacian + noise (using RSpectra)
16:36:38 Commencing optimization for 500 epochs, with 322366 positive edges
16:36:38 Using rng type: pcg
Using method 'umap'
0% 10 20 30 40 50 60 70 80 90 100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
16:36:44 Optimization finished
RunTSNE(object, dims.use = 1:10)
Error: object 'object' not found
DimPlot(ss_Borcherding, reduction = "umap",group.by = "sample", label = TRUE, pt.size = 0.6) +
ggtitle("UMAP of Sézary Syndrome CD4+ T Cells")
DimPlot(ss_Borcherding, reduction = "umap", label = TRUE, pt.size = 0.6) +
ggtitle("UMAP of Sézary Syndrome CD4+ T Cells")
DimPlot(ss_Borcherding, reduction = "tsne", label = TRUE, pt.size = 0.6) +
ggtitle("TSNE of Sézary Syndrome CD4+ T Cells")
top_50_up <- read.csv("top_50_upregulated.csv") # or read.delim("top_50_up.tsv")
top_50_down <- read.csv("top_50_downregulated.csv")
Idents(ss_Borcherding) <- "sample"
FeaturePlot(ss_Borcherding,
features = top_50_up$gene[1:10],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
Warning: The following requested variables were not found: PCLAF
FeaturePlot(ss_Borcherding,
features = top_50_up$gene[11:20],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
FeaturePlot(ss_Borcherding,
features = top_50_up$gene[21:30],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
FeaturePlot(ss_Borcherding,
features = top_50_up$gene[31:40],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
FeaturePlot(ss_Borcherding,
features = top_50_up$gene[41:50],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
FeaturePlot(ss_Borcherding,
features = top_50_down$gene[1:10],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
Warning: The following requested variables were not found: PCED1B-AS1, SNHG5
FeaturePlot(ss_Borcherding,
features = top_50_down$gene[11:20],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
Warning: The following requested variables were not found: RIPOR2
FeaturePlot(ss_Borcherding,
features = top_50_down$gene[21:30],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
FeaturePlot(ss_Borcherding,
features = top_50_down$gene[31:40],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
Warning: The following requested variables were not found: LINC01578
FeaturePlot(ss_Borcherding,
features = top_50_down$gene[41:50],
reduction = "umap",
cols = c("lightblue", "red"), # Custom color gradient from light blue to red
label = TRUE)
Warning: The following requested variables were not found: AL138963.4
DimPlot(ss_Borcherding, group.by = "seurat_clusters", label = T, label.box = T, repel = T, reduction = "umap")
NA
NA
Idents(ss_Borcherding) <- "sample"
# Vector of genes to plot
up_genes <- c("CLIC1", "COX5A","GTSF1", "MAD2L1","MYBL2","MYL6B","NME1","PLK1", "PYCR1", "SLC25A5", "SRI", "TUBA1C", "UBE2T", "YWHAH")
# DotPlot with custom firebrick-red gradient
DotPlot(ss_Borcherding, features = up_genes) +
RotatedAxis() +
scale_color_gradient2(low = "lightyellow", mid = "red", high = "firebrick", midpoint = 1) +
ggtitle("Expression of Upregulated Genes in Sézary Syndrome") +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
axis.text.y = element_text(size = 12),
plot.title = element_text(hjust = 0.5, face = "bold", size = 14)
)
Warning: Scaling data with a low number of groups may produce misleading resultsScale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
Idents(ss_Borcherding) <- "seurat_clusters"
# Vector of genes to plot
up_genes <- c("CLIC1", "COX5A","GTSF1", "MAD2L1","MYBL2","MYL6B","NME1","PLK1", "PYCR1", "SLC25A5", "SRI", "TUBA1C", "UBE2T", "YWHAH")
# DotPlot with custom firebrick-red gradient
DotPlot(ss_Borcherding, features = up_genes) +
RotatedAxis() +
scale_color_gradient2(low = "lightyellow", mid = "red", high = "firebrick", midpoint = 1) +
ggtitle("Expression of Upregulated Genes in Sézary Syndrome") +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
axis.text.y = element_text(size = 12),
plot.title = element_text(hjust = 0.5, face = "bold", size = 14)
)
Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
Idents(ss_Borcherding) <- "sample"
# Downregulated genes
down_genes <- c("TXNIP", "RASA3", "RIPOR2",
"ZFP36", "ZFP36L1", "ZFP36L2",
"PRMT2", "MAX", "PIK3IP1",
"BTG1", "CDKN1B")
# DotPlot with firebrick color for high expression
DotPlot(ss_Borcherding, features = down_genes) +
RotatedAxis() +
scale_color_gradient2(low = "lightyellow", mid = "red", high = "firebrick", midpoint = 1) +
ggtitle("Expression of Downregulated Genes in Sézary Syndrome") +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
axis.text.y = element_text(size = 12),
plot.title = element_text(hjust = 0.5, face = "bold", size = 14)
)
Warning: The following requested variables were not found: RIPOR2Warning: Scaling data with a low number of groups may produce misleading resultsScale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
Idents(ss_Borcherding) <- "seurat_clusters"
# DotPlot with firebrick color for high expression
DotPlot(ss_Borcherding, features = down_genes) +
RotatedAxis() +
scale_color_gradient2(low = "lightyellow", mid = "red", high = "firebrick", midpoint = 1) +
ggtitle("Expression of Downregulated Genes in Sézary Syndrome") +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 12),
axis.text.y = element_text(size = 12),
plot.title = element_text(hjust = 0.5, face = "bold", size = 14)
)
Warning: The following requested variables were not found: RIPOR2Scale for colour is already present.
Adding another scale for colour, which will replace the existing scale.
saveRDS(ss_Borcherding, file = "data/ss_Borcherding_Malignant_Normal.rds")