Closed ixxmu closed 1 year ago
最近在做一个单细胞转录组测序的数据集的时候。在降维分群后,画dotplot的时候cluster不按照正常的数字排序显示,使用factor对cluster设置levels。
first_sce.Rdata为做过QC,降维分群和harmony后的数据。
library(Seurat)
library(ggplot2)
library(clustree)
library(cowplot)
library(dplyr)
dir.create("./2-markers")
setwd("./2-markers/")
getwd()
load(file = '../1-QC/first_sce.Rdata')
sce <- FindClusters(sce, resolution = 0.8)
DimPlot(sce,reduction = "umap",label=T )
library(ggplot2)
genes_to_check = c('PTPRC', 'CD3D', 'CD3E',
'CD4','CD8A','CD19', 'CD79A', 'MS4A1',
'IGHG1', 'MZB1', 'SDC1',
'CD68', 'CD163', 'CD14',
'TPSAB1' , 'TPSB2', # mast cells,
'RCVRN','FPR1' , 'ITGAM' ,
'C1QA', 'C1QB', # mac
'S100A9', 'S100A8', 'MMP19',# monocyte
'LAMP3', 'IDO1','IDO2',## DC3
'CD1E','CD1C', # DC2
'KLRB1','NCR1', # NK
'FGF7','MME', 'ACTA2',
'PECAM1', 'VWF',
'DCN', 'LUM', 'GSN' , ## mouse PDAC fibo
'MKI67','TOP2A',
'EPCAM' , 'KRT19', 'PROM1', 'ALDH1A1' )
library(stringr)
# str_to_title
# str_to_upper()
genes_to_check=str_to_upper(genes_to_check)
genes_to_check
p1 <- DotPlot(sce, features = unique(genes_to_check),
assay='RNA' ,scale = T,
group.by = "RNA_snn_res.0.8" ) + coord_flip()
p1
ggsave(p1,file='check_out_cluster_RNA_snn_res.0.8.pdf',width = 14,height = 10)
My_levels<-c("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31")
sce$RNA_snn_res.0.8
sce$RNA_snn_res.0.8<-factor(sce$RNA_snn_res.0.8,levels= My_levels)
sce$RNA_snn_res.0.8
genes_to_check
p1 <- DotPlot(sce, features = unique(genes_to_check),
assay='RNA' ,scale = T,
group.by = "RNA_snn_res.0.8" ) + coord_flip()
p1
这么看level就正常了。
在跑曾老师scissor算法的代码的时候,遇到了一个报错。
rm(list=ls())
#devtools::install_github('sunduanchen/Scissor')
library(Seurat)
library(Scissor)
load('input/scRNA-seq.RData')
load('input/TCGA_LUAD_exp1.RData')
load('input/TCGA_LUAD_survival.RData')
dim(sc_dataset)
sc_dataset <- Seurat_preprocessing(sc_dataset,
min.cells = 3,
min.features = 400 ,
verbose = T)
DimPlot(sc_dataset, reduction = 'umap', label = T, label.size = 10)
sc_dataset
dim(bulk_dataset)
head(bulk_survival)
table(colnames(bulk_dataset) == bulk_survival$TCGA_patient_barcode) #确认生存数据的样本顺序是和表达矩阵一致的
phenotype <- bulk_survival[,2:3]
colnames(phenotype) <- c("time", "status")
head(phenotype)#
identical(colnames(bulk_dataset) ,row.names(phenotype))
row.names(phenotype) = colnames(bulk_dataset)
# 数据有56716个基因, 471个样本。
# 执行Scissor算法,对细胞进行分类
infos1 <- Scissor(bulk_dataset, sc_dataset, phenotype, alpha = 0.05,
family = "cox", Save_file = 'Scissor_LUAD_survival.RData')
#Error in normalize.quantiles(dataset0) : ERROR; return code from pthread_create() is 22
在小郭老师和永杰的帮助下了解到这个报错是由于一个R包的问题,才造成scissor分析计算的时候报错。
解决方法:
https://github.com/sunduanchen/Scissor/issues/15
#使用这个代码,重新安装 preprocessCore
BiocManager::install("preprocessCore", configure.args="--disable-threading", force = TRUE)
#重启Rstudio 或者退出
#重新加载R包运行
这样就成功解决了问题,后续代码可以运行了~
为什么这么个不好用的算法还是有人在跑~~~~
https://mp.weixin.qq.com/s/OmZ7jpuRJiW8Vp4zWqNWRQ