我们的新专辑《Github带有全套代码分享的文献复现2025 》开启后受到大家的热烈喜爱,里面学习的文章为:《A multi-omic single-cell landscape of human gynecologic malignancies》,前面的学习笔记如下:
今天继续来学习他的代码,代码部分接上面的稿子,做完了数据预处理,保存的对象为saveRDS(rna,"./rna_predoublet_PassedPC1Checks.rds")
。
今天的学习内容: 今天主要学习作者 对双细胞进行过滤,这里主要使用了两款软件 DoubletDecon 和 DoubletFinder
Doublets及其形成的原因 10X单细胞平台的dulblets比率 Chromium Next GEM Single Cell 3ʹ Reagent Kits v3.1 User Guide • Rev D DoubletFinder算法预测双细胞
这个软件于2019年4月24发表在 Cell Systems(2021年影响因子 11.091),文献标题为:《DoubletFinder: Doublet Detection in Single-Cell RNA Sequencing Data Using Artificial Nearest Neighbors》。
双包体阻碍了差异基因表达分析,因为双包体在基因表达空间中单独聚集,与它们所源于的细胞类型共享转录特征。去除双包体后:
2.新筛选出来的DEGs有许多是文献支持的cell-type markers 1、DoubletFinder原理 2、DoubletFinder性能:Ground-Truth Doublet Labels 3、注意点: 4、运行 首先加载R包
rm(list=ls()) library(scater) library(dplyr) library(Seurat) library(patchwork) library(SingleCellExperiment) library(scater) library(ComplexHeatmap) library(ConsensusClusterPlus) library(msigdbr) library(fgsea) library(dplyr) library(tibble) library(DoubletFinder) library(Signac) library(ggplot2) library(stringr) library(SingleR) library(GEOquery)
读取上次保存的数据:
## 读取上次保存的数据 # saveRDS(rna,"./rna_predoublet_PassedPC1Checks.rds") rna "./02-scRNA_Res/rna_predoublet_PassedPC1Checks.rds") rna
这里对于pK参数的选择,我对其进行了一下可视化:
## pK Identification (no ground-truth) --------------------------------------------------------------------------------------- # sweep.res.list sweep.res.list sweep.stats ## pK_select based bcmvn bcmvn # 新加 p geom_point() + geom_line() + geom_vline(xintercept = which.max(bcmvn$BCmetric ), linewidth=1, col="red" ) + theme_bw() p
可以看到图片中给出的pK为0.17,来看看作者的代码,提取的值也是:
pK.1 $pK[1])) pK.1# [1] 0.17
根据细胞数,选择一个合适的双细胞率,细胞数5421个,根据上文的那个10x给出的对应双细胞率:
## Assuming 4.6% doublet formation rate - tailor for your dataset doublet.rate nExp_poi nExp_poi# [1] 249 # Run doubletFinder with pk.1 rna
提取预测结果,预计得到249个双细胞
# 预测结果 meta head(meta) doublet.column "DF.classifications_0.25_",pK.1,"_" ,nExp_poi) doublet.column table(meta$DF .classifications_0.25_0.17_249) doublet.calls colnames(doublet.calls) "Call" rna.dub "Doublet") rna.singlet "Singlet") DF.doublets DF.doublets# 保存数据 save(DF.doublets, rna.dub, rna.singlet, file = "02-scRNA_Res/DF.doublets.Radata" )# 可以看一下在umap中的什么位置 DimPlot(rna, group.by = doublet.column)
结果如下:
可以看一下他们的 基因表达数等:
VlnPlot(rna, features = c("nFeature_RNA" , "nCount_RNA" , "percent.mt" ), ncol = 3, group.by = doublet.column)
下一期来学习 另一款 双细胞过滤软件~ 友情宣传 生信入门&数据挖掘线上直播课2025年1月班
时隔5年,我们的生信技能树VIP学徒继续招生啦
满足你生信分析计算需求的低价解决方案