ixxmu / mp_duty

抓取网络文章到github issues保存
https://archives.duty-machine.now.sh/
106 stars 30 forks source link

处理单细胞转录组下游数据遇到的问题及解决办法 #3480

Closed ixxmu closed 1 year ago

ixxmu commented 1 year ago

https://mp.weixin.qq.com/s/J8ia22UIHkD-AIK6JnIk-A

ixxmu commented 1 year ago

处理单细胞转录组下游数据遇到的问题及解决办法 by 单细胞天地

Question 1

最近在做一个单细胞转录组测序的数据集的时候。在降维分群后,画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就正常了。

Question 2

在跑曾老师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包运行

这样就成功解决了问题,后续代码可以运行了~


往期回顾

单细胞转录组揭示了Semaglutide对肥胖小鼠非心肌细胞的影响

手把手带你复现NC图表之Figure 2

单细胞基因集合打分方法-08-UCell包-算法

细胞互作中的“avoidance ”是什么?

bollito—单细胞转录组的流程化工具






如果你对单细胞转录组研究感兴趣,但又不知道如何入门,也许你可以关注一下下面的课程



看完记得顺手点个“在看”哦!


生物 | 单细胞 | 转录组丨资料
每天都精彩

长按扫码可关注