玩转单细胞(10):替换单细胞Seurat对象UMAP坐标

news2024/12/22 23:58:37

玩转单细胞往期精彩系列:

玩转单细胞(2):Seurat批量做图修饰

玩转单细胞(3):堆叠柱状图添加比例

玩转单细胞(4):单细胞相关性

玩转单细胞(5):单细胞UMAP图只标记特定细胞群、圈定细胞群及坐标轴修改

玩转单细胞(6):单细胞差异基因展示之对角散点图

玩转单细胞(7):修改Seurat对象基因名称

玩转单细胞(8): 单细胞3维聚类图展示

玩转单细胞(9):单细胞Seurat对象数据操作

又来到玩转单细胞系列了,这个系列虽然很小很简单,但都是一些实用性的问题。今天这个帖子的起因是这样的。有小伙伴说自己在GEO数据库上看中了一个单细胞数据,作者提供了样本的表达矩阵,还提供了注释好celltype和坐标信息的metadata。小伙伴利用这个数据并不是想重新分析,而是想要原文作者一模一样的聚类降维,然后进行一些比较,所以说是想还原这个数据。如果不是原文作者提供了包含cell type和细胞坐标信息的metadata,那么还真不能,但是有数据就好办了。

解决这个问题很好办,那就是自己降维后替换UMAP坐标信息。为了保护粉丝数据,所以这里我们另找了一篇文章的数据集进行演示。参考文献:Deciphering human macrophage development at single-cell resolution!本文详细注释代码已上传群文件!

首先我们在GEO下载数据,读入数据预处理:

setwd('D:/KS项目/公众号文章/Seuat替换UMAp')#===============================================================================#读入数据library(ggplot2)library(Seurat)meta <- read.table('GSE133345_Annotations.txt', header = T, row.names = 1)
folders=list.files('./GSE133345_RAW/',pattern='^[GSM]')folders
Exp_matrix = lapply(folders,function(x){   read.table(paste0('./GSE133345_RAW/',x),header = T, row.names = 1)})#批量读入
names(Exp_matrix) <- substr(folders, 1, 10)
scelist <- list()for (i in 1:length(Exp_matrix)) {  sce <- CreateSeuratObject(counts = Exp_matrix[[i]])  sce$sample <- names(Exp_matrix)[i]  scelist[[i]] <- sce  }
#merge datasce = merge(scelist[[1]],             y = c(scelist[[2]],scelist[[3]],                  scelist[[4]],scelist[[5]],                  scelist[[6]],scelist[[7]],                  scelist[[8]],scelist[[9]])) 
dim(sce)# [1] 26318  1268dim(meta)# [1] 1231    7
sce1 <- sce[,rownames(meta)]dim(sce1)

走标准的seurat流程:这样我们就拥有了具有UMAP降维的数据了!​​​​​​​

#接下来就是标准流程了,至于其中的参数,差不多就行了,我们的目的主要是为了跑UMAP降维sce1 <- NormalizeData(sce1)sce1 <- FindVariableFeatures(sce1, nfeatures = 4000)sce1 <- ScaleData(sce1,verbose = T)sce1 <- RunPCA(sce1,npcs = 50, verbose = FALSE)sce1 <- RunUMAP(sce1,  dims = 1:20)sce1 <- FindNeighbors(sce1, dims = 1:20) sce1  <- FindClusters(object = sce1 , resolution = 1, verbose = FALSE) DimPlot(sce1, reduction = 'umap', label = T)+  theme_bw()+  theme(panel.background = element_blank(),        panel.grid = element_blank())

图片

看这个图和原文还有差距比较大的,我们将原文作者的celltype信息合UMAP坐标信息替换一下。​​​​​​​

#保证meta和seurat obj两者的barcode一致sce1$cellid <- rownames(sce1@meta.data)meta = meta[sce1$cellid,]
umap1 <- meta$UMAP1names(umap1) <- rownames(meta)sce1@reductions[["umap"]]@cell.embeddings[,1] <- umap1
umap2 <- meta$UMAP2names(umap2) <- rownames(meta)sce1@reductions[["umap"]]@cell.embeddings[,2] <- umap2
sce1@meta.data <- cbind(sce1@meta.data, meta)
Idents(sce1)='cluster'DimPlot(sce1, reduction = 'umap', label = F, repel = T)+  theme_bw()+  theme(panel.background = element_blank(),        panel.grid = element_blank())

图片

原文的UMAP降维图:

图片

可以看到结果是一模一样,这样就可以进行后续的分析了。至于UMAP的修饰,我们在之前的帖子已经讲过了:Nature作图也出错:单细胞UMAP/TSNE图的ggplot做法与修饰。好了,这就是所有内容了,觉得分享有用的,点个赞、分享下再走呗!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/772736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(5)-Charles如何设置捕获Https会话

1.简介 在大数据时代&#xff0c;互联网时代&#xff0c;个人信息安全尤为重要&#xff0c;网络安全在近日多起电信诈骗事情发酵下的情况下&#xff0c;引起国家&#xff0c;企业&#xff0c;个人对于互联网安全进一步的重视。而之前很多以http协议传输的网站出现的网站信息泄露…

APIKIT 自学日记:不光有测试报告,还可以保存测试方案呢

在 APIkit 中做测试&#xff0c;可以直接查看测试报告的&#xff01; 测试报告 进入测试报告页面&#xff0c;在这里会列出所有手动批量测试、定时测试、Open api测试的测试报告。 查看测试报告 点击顶部的标签&#xff0c;进入定时测试报告列表&#xff0c;你可以在这里选择…

【hadoop】HDFS

HDFS 操作HDFSWeb Console 网页工具操作NameNode操作SecondaryNameNode 命令行Java API HDFS的原理解析数据上传的过程数据下载的过程 HDFS的高级特性回收站配额Quota名称配额空间配额 快照Snapshot安全模式 SafeMode权限管理&#xff1a;类似LinuxHDFS的集群 HDFS的底层原理&a…

LangChain + Embedding + Chromdb,关联使用ChatGLM的本地搭建训练平台教程

一.介绍 OpenAI 在国内用户注册会遇到各种阻力&#xff0c;目前可行的方法是使用本地数据集的功能实现联网搜索并给出回答&#xff0c;提炼出TXT、WORD 文档里的内容。 现在主流的技术是基于强大的第三方开源库&#xff1a;LangChain 。 文档地址&#xff1a;&#x1f99c;…

行为型模式 - 责任链模式

概述 在现实生活中&#xff0c;常常会出现这样的事例&#xff1a;一个请求有多个对象可以处理&#xff0c;但每个对象的处理条件或权限不同。例如&#xff0c;公司员工请假&#xff0c;可批假的领导有部门负责人、副总经理、总经理等&#xff0c;但每个领导能批准的天数不同&a…

2023出海增长背后的隐忧

2023出海增长背后的隐忧 2023.7.19版权声明&#xff1a;本文为博主chszs的原创文章 今年出口逆势增长的领域&#xff0c;新能源车、锂电池、太阳能电池&#xff0c;号称新三样&#xff0c;有数据支撑&#xff0c;看起来鼓舞人心。 见&#xff1a;外贸出口“新三样”&#xf…

Vue2计算属性如何传参

Vue2官网并没解释计算属性应该怎么传值&#xff0c;但是呢&#xff0c;通过闭包的方式(使用箭头表达式)实际上是可以给计算属性传参的&#xff08;当然&#xff0c;多个参数也是可行的&#xff09;。 以下是本人项目开发使用自己基于ElementUI封装的集信息采集与文件上传功能的…

软件基础问答题

性能&#xff1a; 负载压力测试是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量等&#xff0c;以确定系统所能承受的最大负载压力。 负载测试是通过逐步增加系统负载&#xff0c;测试系统性能的变化&#xff0c;并最终确定在满足性能指标的情况下&#xf…

如何控制项目管理的时间节点?

“这个任务着急&#xff0c;先把这个做出来”“临时加个任务”我们在项目开发中&#xff0c;经常遇到这些问题&#xff0c;往往造成项目范围增加、进度延迟、成本增加等问题&#xff0c;项目风险不断增加。 那么我们应该如何更高效地管理项目&#xff0c;尤其是针对关键时间节点…

Win10家庭版安装docker 以及解决 docker is starting

&#x1f468; 作者简介&#xff1a;大家好&#xff0c;我是Taro&#xff0c;前端领域创作者 ✒️ 个人主页&#xff1a;唐璜Taro &#x1f680; 支持我&#xff1a;点赞&#x1f44d;&#x1f4dd; 评论 ⭐️收藏 文章目录 前言一、Hype-v是什么&#xff1f;二、使用步骤1.do…

自动登录harbor脚本

在CI/CD自动化流程中&#xff0c;或者执行shell脚本拉取本地镜像时&#xff0c;需要手工docker login本地仓库&#xff0c;十分的不方便&#xff0c;这里提供一个可以执行的sh脚本&#xff0c;自动登录本地的镜像仓库。 1、安装expect yum -y install expect 2、创建sh文件 vi…

基于XPopup实现的弹窗效果

基于XPopup实现的弹窗效果&#xff1a; implementation com.github.li-xiaojun:XPopup:2.9.191、底部弹窗(BottomPopupView) class OutlinkDealDialog(context: Context,private val selectClickCallback: ((index: Int) -> Unit)? null, ) : BottomPopupView(context) {…

Mybatis简介

1.1 框架介绍 框架是一款半成品软件&#xff0c;可以基于这个半成品软件继续开发&#xff0c;来完成我们个性化的需求&#xff01; 如图: 1.2 框架要解决的问题 框架要解决最重要的是技术整合的问题 不同的软件企业需要从 J2EE 中选择不同的技术&#xff0c;使得软件企业最…

【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(备份+恢复篇)

深入探索和分析MySQL数据库的数据备份和恢复实战开发指南 MySQL数据库备份全量备份全量备份应用场景 增量备份binlogbinlog主要作用binlog的作用主要有两个方面 开启binlog日志功能要开启MySQL的binlog日志步骤 mysqlbinlogmysqlbinlog的使用案例 全量备份与增量备份结合按天全…

TKDE论文,跑的改的,GPSCVULDETECTOR

Combining Graph Neural Networks With Expert Knowledge for Smart Contract Vulnerability Detection 论文代码GitHub https://github.com/Messi-Q/GPSCVulDetectorpaper https://ieeexplore.ieee.org/abstract/document/9477066/参考IJCAI 21中AME的数据集 https://gith…

huggingface新作品:快速和简便的训练模型

AutoTrain Advanced是一个用于训练和部署最先进的机器学习模型的工具。它旨在提供更快速、更简便的方式来进行模型训练和部署。 安装 您可以通过PIP安装AutoTrain-Advanced的Python包。请注意&#xff0c;为了使AutoTrain Advanced正常工作&#xff0c;您将需要python > 3.…

微信小程序源码反编译(wxss样式无法恢复的问题)

背景&#xff1a;从微信小程序源码上线后&#xff0c;网上一直有大神写程序来反编微信小程序的源码&#xff0c;不过现在来看基本都不能用了&#xff0c;有的能用也不能获取样式wxss文件&#xff0c;经过我的不懈努力&#xff0c;找到一些办法&#xff0c;接下来我会一步步讲。…

HarmonyOS课程体验官招募(第四期),寻找乐于分享,精益求精的伙伴

华为开发者联盟HarmonyOS课程体验官&#xff08;第四期&#xff09;活动&#xff0c;开始招募啦&#xff01; 如果你精益求精、乐于分享&#xff1b;如果你愿意为学堂课程优化改进出谋划策&#xff0c;那就快来加入我们吧&#xff01;学堂期待与你共同成长、一起进步&#xff0…

大模型开发(八):基于思维链(CoT)的进阶提示工程

全文共8000余字&#xff0c;预计阅读时间约16~27分钟 | 满满干货&#xff08;附复现代码&#xff09;&#xff0c;建议收藏&#xff01; 本文目标&#xff1a;介绍提示工程基础类方法、思维链提示方法和LtM的提示方法&#xff0c;并复现解决论文中四个经典推理问题。 代码下载…

JimuReport积木报表 v1.5.9版本发布—免费的可视化报表

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…