青海管理系统开发 两种不同的口头竣事harmony的多个单细胞整合
本札记会被收录于《生信手段树》公众号的《单细胞2024》专辑,何况咱们从2024初始的教程齐是基于Seurat的V5版块啦青海管理系统开发,之前照旧演示了怎样读取不同体式的单细胞转录组数据文献,如下所示:
初试Seurat的V5版块
使用Seurat的v5来读取多个10x的单细胞转录组矩阵
使用Seurat的v5来读取多个不是10x圭臬文献的单细胞面容
然而其它代码基本上就跟Seurat早期的v4莫得差别,比如harmony整合多个单细胞样品。
但本色上Seurat有了我方的立异,官网文档:
https://satijalab.org/seurat/articles/seurat5_integration
https://satijalab.org/seurat/articles/integration_introduction
内部提到了它内置了多种整合多个单细胞样品的算法,不错 Perform streamlined (one-line) integrative analysis
Anchor-based CCA integration (method=CCAIntegration)
Anchor-based RPCA integration (method=RPCAIntegration)
Harmony (method=HarmonyIntegration)
FastMNN (method= FastMNNIntegration)
scVI (method=scVIIntegration)
要是是一次性读取了多个10x样品
这个时辰,因为函数Read10X不错一次性读取多个合理的旅途,是以咱们会把多个样品就被长入读取成为了一个疏淡矩阵而不是每个样品孤苦的疏淡矩阵,如下所示;
图片
长入读取成为了一个疏淡矩阵
详见:使用Seurat的v5来读取多个10x的单细胞转录组矩阵,它就不相宜走Seurat的v5的内置的多个单细胞样品的整划算法,是以咱们会先split它,代码如下所示:table(sce.all$orig.ident)
obj = sce.all
obj[["RNA"]] <- split(obj[["RNA"]], f = obj$orig.ident)
恶果如下所示,不错看到每个样品的矩阵这个时辰被上头的split函数远离了:
图片
split函数远离
接下来,如下所示走内置的harmony历程,便是IntegrateLayers函数内部的 :obj <- NormalizeData(obj)
obj <- FindVariableFeatures(obj)
obj <- ScaleData(obj)
obj <- RunPCA(obj)
# 运行的harmony需要基于上头的PCA适度哦
sce.all <- IntegrateLayers(
object = obj, method = HarmonyIntegration,
orig.reduction = "pca", new.reduction = "harmony",
verbose = FALSE
)
sce.all@reductions$harmony
sce.all <- FindNeighbors(sce.all, reduction = "harmony", dims = 1:30)
res = c(0.01, 0.05, 0.1, 0.2, 0.3, 0.5,0.8 )
sce.all <- FindClusters(sce.all, resolution = res )
sce.all <- RunUMAP(sce.all, reduction = "harmony", dims = 1:30)
p1 <- DimPlot( sce.all,label = T)
p1
是很容易看到harmony被到手运行啦。
要是是先我方跑RunHarmony函数
这个时辰又不行用split函数远离了的Seurat对象哦,需要最初始阿谁多个样品就被长入读取成为了一个疏淡矩阵的Seurat对象,这个时辰不错定名为 input_sce 变量,青海管理系统开发然后走底下的代码:print(dim(input_sce))
input_sce <- NormalizeData(input_sce,
normalization.method = "LogNormalize",
scale.factor = 1e4)
input_sce <- FindVariableFeatures(input_sce)
小程序开发input_sce <- ScaleData(input_sce)
input_sce <- RunPCA(input_sce, features = VariableFeatures(object = input_sce))
seuratObj <- RunHarmony(input_sce, "orig.ident")
names(seuratObj@reductions)
seuratObj <- RunUMAP(seuratObj, dims = 1:15,
reduction = "harmony")
# p = DimPlot(seuratObj,reduction = "umap",label=T )
# ggsave(filename='umap-by-orig.ident-after-harmony',plot = p)
input_sce=seuratObj
input_sce <- FindNeighbors(input_sce, reduction = "harmony",
一、直选215分析:排列三最近3期分别开出直选号码:663历史出现次数为6次、535历史出现次数为11次、215历史出现次数为8次,本期注意历史上已开出8次左右的直选号码。
排列三第2024181期奖号两码合差分析:
dims = 1:15)
这个恶果跟前边的IntegrateLayers函数是一趟事,要是你这个时辰的Seurat对象内部的矩阵是按照样品远离的, 就需要先并吞智力走RunHarmony函数,它来自于harmony这个r包啦。
一样是不冷落走内置的harmony历程
其实我就不应该先容这个IntegrateLayers函数的,因为它需要split阿谁矩阵,这么的话后头的好多分析齐会有问题,比如咱们跑 cosg 函数针对阿谁矩阵去找marker就会遭遇报错:# remotes::install_github('genecell/COSGR')
# genexcell <- Seurat::GetAssayData(object = object[[assay]],slot = slot)
marker_cosg <- cosg(
sce.all.int,
groups='all',
assay='RNA',
slot='data',
mu=1,
n_genes_user=100)
如下所示:Error in `Seurat::GetAssayData()`:
! GetAssayData doesn't work for multiple layers in v5 assay.
Run `rlang::last_trace()` to see where the error occurred.
> rlang::last_trace()
<error you can run 'object
Error in `Seurat::GetAssayData()`:
! GetAssayData doesn't work for multiple layers in v5 assay.
---
Backtrace:
▆
1. └─COSG::cosg(...)
2. ├─Seurat::GetAssayData(object = object[[assay]], slot = slot)
3. └─SeuratObject:::GetAssayData.StdAssay(object = object[[assay]], slot = slot)
Run rlang::last_trace(drop = FALSE) to see 1 hidden frame.
>
要是要照顾这个报错,就需要最初把前边的split的矩阵重新joint且归,又是收敛的事情!!!
文末友情宣传
厉害冷落你推选给身边的博士后以及年青生物学PI,多少量数据理会,让他们的科研上一个台阶:
生物信息学马拉松讲课(买一得五) ,你的生物信息学初学课,春节前临了一次
时隔5年,咱们的生信手段树VIP学徒不绝招生啦
144线程640Gb内存做事器分享一年仍然是仅需800青海管理系统开发
本站仅提供存储做事,统共内容均由用户发布,如发现存害或侵权内容,请点击举报。