社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

生信技能树 • 4 月前 • 143 次点击  

我们的新专辑《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/179128
 
143 次点击