Py学习  »  Git

Github代码文献复现之卵巢和子宫内膜癌(三)|| 双细胞过滤之 DoubletFinder

单细胞天地 • 3 月前 • 58 次点击  

我们的新专辑《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
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》。

双包体阻碍了差异基因表达分析,因为双包体在基因表达空间中单独聚集,与它们所源于的细胞类型共享转录特征。去除双包体后:

  • 1.差异表达基因数量显著增加
  • 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学徒继续招生啦

满足你生信分析计算需求的低价解决方案


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181331
 
58 次点击