前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单细胞专栏-如何给orig.ident换名字

单细胞专栏-如何给orig.ident换名字

原创
作者头像
小胡子刺猬的生信学习123
发布2022-05-10 21:53:43
7.8K1
发布2022-05-10 21:53:43
举报

?由于上游的分析是公司给做的,但是发现我在跟他们说样本名字的时候发错了,想后面自己更改一下每个orig.ident和groups的名字,百度了一下有没有类似问题,果然在seurat的官网上发现了类似的问题(https://github.com/satijalab/seurat/issues/1479

)。

代码整理

代码语言:javascript
复制
##官网上回答问题的作者给予的回答
> # Quickly preview the metadata
> head(x = pbmc_small[[]])
                  orig.ident nCount_RNA nFeature_RNA RNA_snn_res.0.8
ATGCCAGAACGACT SeuratProject         70           47               0
CATGGCCTGTGCAT SeuratProject         85           52               0
GAACCTGATGAACC SeuratProject         87           50               1
TGACTGGATTCTCA SeuratProject        127           56               0
AGTCAGACTGCACA SeuratProject        173           53               0
TCTGATACACGTGT SeuratProject         70           48               0
               letter.idents groups RNA_snn_res.1
ATGCCAGAACGACT             A     g2             0
CATGGCCTGTGCAT             A     g1             0
GAACCTGATGAACC             B     g2             0
TGACTGGATTCTCA             A     g2             0
AGTCAGACTGCACA             A     g2             0
TCTGATACACGTGT             A     g1             0
> # Create a new metadata column called "original" with the contents of "orig.ident"
> pbmc_small$original <- pbmc_small$orig.ident
> # Remove the "orig.ident" metadata column
> pbmc_small$orig.ident <- NULL
> # Quickly preview the metadata again
> head(x = pbmc_small[[]])
               nCount_RNA nFeature_RNA RNA_snn_res.0.8 letter.idents groups
ATGCCAGAACGACT         70           47               0             A     g2
CATGGCCTGTGCAT         85           52               0             A     g1
GAACCTGATGAACC         87           50               1             B     g2
TGACTGGATTCTCA        127           56               0             A     g2
AGTCAGACTGCACA        173           53               0             A     g2
TCTGATACACGTGT         70           48               0             A     g1
               RNA_snn_res.1      original
ATGCCAGAACGACT             0 SeuratProject
CATGGCCTGTGCAT             0 SeuratProject
GAACCTGATGAACC             0 SeuratProject
TGACTGGATTCTCA             0 SeuratProject
AGTCAGACTGCACA             0 SeuratProject
TCTGATACACGTGT             0 SeuratProject
##You can add metadata columns using AddMetaData, the [[ operator, or the $ operator. For your specific case, I would create a character vector of 'ctrl' or 'patient' based on testing the value of your metadata column, then add it in like I did above.

由于后面需要加入addmetadata这个函数,因此就想起了前几天做复现的时候用过这个函数,因此准备直接搬运,把作者的代码改了改。

首先需要一个xlsx格式的表格,将自己想要的信息填上,类似于以下的格式。

xlsx表格示例
xlsx表格示例

其中有一列需要与自己的矩阵里面的信息一样,因为后面我们要用left_join进行合并,我这里选用的是orig.ident。

代码语言:javascript
复制
##load library,先加载一堆有的没的包,防止后面代码找不到函数,没办法调取
library(Seurat)
library(dplyr)
library(reticulate)
library(sctransform)
library(cowplot)
library(ggplot2)
library(viridis)
library(tidyr)
library(magrittr)
library(reshape2)
library(readxl)
library(progeny)
library(readr)
library(stringr)
##先读取xlsx格式的表格
metatable <- read_excel("id_change.xlsx")
metadata <- FetchData(seu_obj, "orig.ident")
metadata$cell_id <- rownames(metadata)
metadata$sample_id <- metadata$orig.ident
##left_join:左连接,保留X中得所有观测,这样可以保留原表数据
metadata <- left_join(x = metadata, y = metatable, by = "orig.ident")
rownames(metadata) <- metadata$cell_id
##AddMetaData:添加元数据列;AddMetaData()中传递给元数据参数的内容必须是具有与数据@meta.data中的行名匹配的行名的数据框
seu_obj <- AddMetaData(seu_obj, metadata = metadata)
##查看矩阵情况
head(seu_obj)
##发现多了original、sample_id、cell_id、Groups几列,需要把original替换为orig.ident
##如果是cell_id及sample_id自己研究不在需要,可以跳过那两行代码
##删去orig.ident行,参考seurta官网答疑的代码
seu_obj$orig.ident <- NULL
##新生成orig.ident的一列
seu_obj$orig.ident <- seu_obj$original
##删去original列
seu_ob$original <- NULL
##查看seurat对象情况
seu_obj
##选择新给予的分组进行test,看看能不能有图出来,表明改的是合理的
DimPlot(seu_obj, group.by = "orig.ident",  pt.size = 0.1)

测试的umap图
测试的umap图

总结

目前是通过手动改矩阵的列没有发现问题,明天还需要跟公司那边讨论一下这种方法的可行度怎么样,但是能出图,基本保证一部分还是改对了,后面有可能需要对barcode进行再一次的修改。

?

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码整理
  • 总结
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com