查看原文
其他

各类单细胞对象(数据格式)转换大全(一)

BIOMAMBA Biomamba 生信基地 2023-06-15

前言



作为今年来科研界的香饽饽,单细胞测序技术自身蓬勃发展的同时,其对应的分析软件也在不断地涌现。目前我使用过的单细胞测序R包也已经有十余种了,例如Seurat、iCellR、Monocle、Cellchat、iTalk、NicheNet、CellphoneDB、infercnv、scWGCNA、SingleR、DropletTestFiles、velocyto.R等。虽然它们实际运行时的”容器“结构可能会有所不同,但这些R包的核心作用都是用来分析scRNA-Seq所产生的矩阵,因此这些包的数据对象之间又可以通过一定的方式进行转化、运用。并且,它们大都可以通过Seurat相互转换。这里先给大家列出一些,后续如果有更多R包,再发布一个续集。当然了,列在这里大家未必会用,出到这些R包的教程时我们会再给大家详细介绍,这里就当插个眼吧。如果看不懂,就看看前面的教程:
不好意思 第一还是我









01



Seurat => Cellchat


library(CellChat)library(SeuratscRNA$celltype<-Idents(scRNA)DefaultAssay(scRNA)<-"RNA"Idents(scRNA)<-"celltype"scRNA@meta.data$celltype <- scRNA@active.identdata.input <- scRNA@assays$RNA@data#取出输入数据#identity = data.frame(group =scRNA@active.ident,row.names = names(scRNA.final@active.ident)) #被我用meta替代了#unique(identity$group)meta<-scRNA@meta.data#取出注释信息cellchat <- createCellChat(object = data.input, meta = meta, group.by = "celltype")#创建cellchat对象,加上meta注释与细胞类型cellchat <- setIdent(cellchat, ident.use = "celltype")#设置默认的ident






02



Seurat => monocle


library(monocle)library(multtest)library(Seurat)DefaultAssay(scRNA)<-"RNA"data <- as(as.matrix(scRNA@assays$RNA@counts), 'sparseMatrix')pd <- new('AnnotatedDataFrame', data = scRNA@meta.data)fData <- data.frame(gene_short_name = row.names(data), row.names = row.names(data))fd <- new('AnnotatedDataFrame', data = fData)mycds <- newCellDataSet(data, phenoData = pd, featureData = fd, expressionFamily = negbinomial.size())#从seurat到monocle的数据转换






03



Seurat => cellphoneDB


library(Seurat)library(tidyverse)dir.create("CellTalk")scRNA <- readRDS("C:/Users/CPU1302/Desktop/cellfind.rds")sp1 <- scRNAsp1_counts <- as.matrix(sp1@assays$RNA@data)sp1_counts <- data.frame(Gene=rownames(sp1_counts), sp1_counts)sp1_meta <- data.frame(Cell=rownames(sp1@meta.data), cell_type=sp1@meta.data$celltype_Monaco)write.table(sp1_counts, "CellTalk/sp1_counts.txt", row.names=F, sep='\t')write.table(sp1_meta, "CellTalk/sp1_meta.txt", row.names=F, sep='\t')






04



Seurat => italk


library(iTALK)library(Seurat)library(Matrix)library(dplyr)scRNA <- readRDS(file = "/Seurat.rds")# iTALK 要求的矩阵: 行为细胞,列为基因iTalk_data <- as.data.frame(t(scRNA@assays$RNA@counts))# iTALK 要求包含cell_type列,我的细胞分群存储在seurat_clusteriTalk_data$cell_type <- scRNA@meta.data$seurat_cluster# iTALK 要求包含compare_group列(多样本),表示每个细胞的生物学分组/样本,我的细胞分组存放在GroupiTalk_data$compare_group <- scRNA@meta.data$Group






05



Seurat => loom


scRNA.loom <- as.loom(scRNA, filename = "./scRNA.loom", verbose = FALSE)scRNA.loom






06



loom => Seurat


library(Seurat)loomPath <- system.file(package="SCENIC", "examples/mouseBrain_toy.loom")library(SCopeLoomR)loom <- open_loom(loomPath)exprMat <- get_dgem(loom)cellInfo <- get_cell_annotation(loom)close_loom(loom)scRNA <- CreateSeuratObject(counts = exprMat)scRNA <- AddMetaData(scRNA, metadata=cellInfo)





07



Seurat => SingleCellExperiment


library(Seurat)scRNA.sce <- as.SingleCellExperiment(scRNA)





08



SingleCellExperiment=> Seurat


library(scater)library(Seurat)#remotes::install_github("mojaveazure/seurat-disk")library(SeuratDisk)library(patchwork)library(SeuratData)#BiocManager::install('zellkonverter')pbmc <- zellkonverter::readH5AD('adata.tcell.010920/adata.tcell.010920.h5ad')saveRDS(pbmc,'singlecellexperiment.rds')





09



Seurat => SingleR


library(SingleR)scRNA_for_SingleR <- GetAssayData(scRNA, slot="data")#取出样本中的表达序列#mouseImmu <- ImmGenData()#############解决内置数据库无法正常载入问题#################参考:https://mp.weixin.5pVLS5TKd6g
library(SingleR)if(!require(celldex))BiocManager::install('celldex')cg=MouseRNAseqData()mouseRNA <- MouseRNAseqData()#读取整个鼠的表达阵列做参考pred.mouseRNA <- SingleR(test = scRNA_for_SingleR, ref = mouseRNA, labels = mouseRNA$label.fine )#以kidney中提取的阵列为输入数据,以小鼠的阵列作为参考,predict细胞类型
cellType=data.frame(seurat=scRNA@meta.data$seurat_clusters, mouseImmu=pred.mouseImmu$labels,#这一行第一次run的时候可能要去掉 mouseRNA=pred.mouseRNA$labels)






如何联系我们


最近发现后台中有一些消息我没能及时看到并答复,微信后台中超过48h后便不允许回复读者消息,这里还是再给大家留一下答疑的扣扣号,方便大家随时交流:1913507043。微信号可以点击喜欢作者后自动回复里有。欢迎大家向我咨询或者提供建议大家可以阅读完这几篇之后添加我:如何搜索公众号过往发布内容
答疑公约
笑一笑也就算了




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存