打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
scRNA挖掘 |只有矩阵如何构建单细胞对象?meta信息如何利用?

如果额外给了细胞水平的meta文件,如何利用呢?

本文以2021年12月发表在nature cancer上的文献数据为例,读取提供的GSE179994中的矩阵和meta数据。

一 载入数据,R包

文章https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE179994只提供了矩阵文件,不能使用Read10X函数的形式,但是也可以很简单的读取。

1.1 读取下载的数据

1) 读取矩阵文件

注意区分rds 和 RData文件的读取方式 。如果是文本文件的话直接read.table 或者 readMM 读取。

library(tidyverse)library(Seurat)data <- readRDS("GSE179994_all.Tcell.rawCounts.rds")data[1:4,1:4]
4 x 4 sparse Matrix of class "dgCMatrix" P1.ut.AAACCTGAGGCACATG-1 P1.ut.AAACCTGGTGGTACAG-1 P1.ut.AAACCTGTCACGGTTA-1 P1.ut.AAACCTGTCCGCTGTT-1OR4F5 . . . .OR4F29 . . . .OR4F16 . . . .SAMD11 . . .

2)读取meta文件

meta <- read.table("GSE179994_Tcell.metadata.tsv",header = T )head(meta)
cellid patient sample celltype cluster1 P1.ut.AAACCTGAGGCACATG-1 P1 P1.pre <NA> <NA>2 P1.ut.AAACCTGGTGGTACAG-1 P1 P1.pre CD4 CD4_C8-Treg3 P1.ut.AAACCTGTCACGGTTA-1 P1 P1.pre CD4 CD4_C8-Treg4 P1.ut.AAACCTGTCCGCTGTT-1 P1 P1.pre CD4 CD4_C9-Prolif.5 P1.ut.AAACCTGTCTGGTATG-1 P1 P1.pre <NA> <NA>6 P1.ut.AAACCTGTCTTGAGAC-1 P1 P1.pre CD4 CD4_C8-Treg

可以看到提供了cell level的注释信息。

1.2 创建seurat对象

依然使用CreateSeuratObject 函数,此处count 为读取的矩阵文件。

sce0 <- CreateSeuratObject(counts = data)sce0head(sce0@meta.data)
An object of class Seurat  19790 features across 150849 samples within 1 assay  Active assay: RNA (19790 features, 0 variable features)
                            orig.ident nCount_RNA nFeature_RNAP1.ut.AAACCTGAGGCACATG-1 SeuratProject       3265         1241P1.ut.AAACCTGGTGGTACAG-1 SeuratProject       3871         1783P1.ut.AAACCTGTCACGGTTA-1 SeuratProject       3945         1816P1.ut.AAACCTGTCCGCTGTT-1 SeuratProject      21848         4426P1.ut.AAACCTGTCTGGTATG-1 SeuratProject       2959         1376P1.ut.AAACCTGTCTTGAGAC-1 SeuratProject       1809         1024

之后就可以进行标准的seurat流程,然后进行个性化挖掘分析了。

二 添加meta信息

文献提供的metadata文件中含有每个细胞的patient ,sample ,celltype 以及 cluster ,是很有利用价值的 。

之前在scRNA分析|Marker gene 可视化 以及 细胞亚群注释--你是如何人工注释的?中提到了如何添加亚群注释(cluster level)结果到metadata的方式,这里介绍下如何添加每个细胞(cell level)的metadata。

1,CreateSeuratObject中的meta.data参数

CreateSeuratObject函数除了简单的过滤条件外 ,还有一个重要的meta.data参数,可以输入提供的meta信息。

sce1 <- CreateSeuratObject(counts = data,                              meta.data =meta,                             min.cells = 3,  # 可以注释掉                              min.features = 200,  # 可以注释掉                             project = "GSE179994")chead(sce1@meta.data)

可以看到虽然添加上了meta的信息列,但是全是NA,这是什么原因呢?

检索之后https://github.com/satijalab/seurat/issues/2715 发现 ,是因为CreateSeuratObject要求meta文件中rownames是count文件的colnames

其实 ??CreateSeuratObject函数的帮助文档中也很明确的提到了该点要求。

发现问题后,只需要将meta文件的cellid列转为rownames即可。

meta2 <- meta %>% column_to_rownames("cellid")sce2 <- CreateSeuratObject(counts = data,                           meta.data =meta2,                          min.cells = 3,                           min.features = 200,                           project = "GSE179994")head(sce2@meta.data)

2,AddMetaData函数

也可以在sce0的基础上,使用AddMetaData函数进行添加

sce3 <- AddMetaData(       object = sce0,       metadata = meta2   )head(sce3@meta.data)

3,矩阵添加

建议优先使用上述两种单细胞特有的方式进行添加。

sce4 <- sce0sce4@meta.data <- sce4@meta.data %>%   rownames_to_column("cellid") %>%   inner_join(meta) %>%   column_to_rownames("cellid")  #一定要转回来head(sce4@meta.data)

注意一定要把cell barcode的列转为rowname !

OK,搞定!以上三种方式结果是一致的。

建议可以先自行注释,然后参照文献注释结果修正自己的marker库,或者找到一些手动注释的思路。

◆ ◆ ◆  ◆ 

精心整理(含图PLUS版)|R语言生信分析,可视化(R统计,ggplot2绘图,生信图形可视化汇总)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用VBA代码快速合并多个工作簿到一个工作簿
如何访问behance设计网站?
手机怎么定位对方的手机所在位置?学会这个小窍门,定位再也不用愁
宏--战士宏--通用 老雷
旧电脑比新电脑还好用还流畅的方法
微信上可直接复制使用的emoji符号大全
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服