其他
各类单细胞对象(数据格式)转换大全(一)
前言
作为今年来科研界的香饽饽,单细胞测序技术自身蓬勃发展的同时,其对应的分析软件也在不断地涌现。目前我使用过的单细胞测序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(Seurat
scRNA$celltype<-Idents(scRNA)
DefaultAssay(scRNA)<-"RNA"
Idents(scRNA)<-"celltype"
scRNA@meta.data$celltype <- scRNA@active.ident
data.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 <- scRNA
sp1_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_cluster
iTalk_data$cell_type <- scRNA@meta.data$seurat_cluster
# iTALK 要求包含compare_group列(多样本),表示每个细胞的生物学分组/样本,我的细胞分组存放在Group
iTalk_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)
如何联系我们
答疑公约
笑一笑也就算了