R语言:单细胞pcoa降维和去批次

#生成随机颜色
> randomColor <- function() {
  paste0("#",paste0(sample(c(0:9, letters[1:6]), 6, replace = TRUE),collapse = ""))
}

# 生成100个随机颜色
> randomColors <- replicate(100,randomColor())
> seurat=readRDS("seurat.rds")#读取数据
#归一化
> all.genes <- rownames(seurat)
> seurat <- ScaleData(seurat, features = all.genes)

# PCA降维
> seurat <- Seurat::RunPCA(seurat, features = VariableFeatures(object = seurat))
> seurat <- Seurat::RunTSNE(seurat,dims = 1:20)
> pdf(file = "降维tsne图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "tsne",pt.size = 0.5)+theme_classic()+theme(panel.border = element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right") #top为图列位置最上方,除此之外还有right、left、bottom(意思同英文)
> dev.off()


> pdf(file = "降维pca图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "pca",pt.size = 0.5)+theme_classic()+theme(panel.border =  element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right")
> dev.off()

> colaa=distinctColorPalette(100)
> pdf(file = "降维tsne单样品分布图.pdf",width =12,height = 10)

> coords <- as.data.frame(seurat@reductions$tsne@cell.embeddings[, c(1, 2)])
> names(coords) <- c("tSNE_1", "tSNE_2")

# 添加聚类信息
> coords$cluster <- seurat@meta.data$Type

# 绘制 t-SNE 图
> ggplot(coords, aes(x = tSNE_1, y = tSNE_2, color = cluster)) +
  geom_point(size = 0.5) +
  ggtitle("This is the plot title") +
  theme(legend.position = "bottom")

> dev.off()

#harmony 去批次
> seurat <- RunHarmony(seurat, group.by.vars = "Type")

## 鉴定高变基因(由于去除了存在批次的细胞,高变基因可能会发生改变,因此需要重新鉴定高变基因)
> seurat <- FindVariableFeatures(seurat, selection.method = "vst", nfeatures = 2000)

# 提取前10的高变基因
> top10 <- head(VariableFeatures(seurat), 10)

# 展示高变基因
> plot1 <- VariableFeaturePlot(seurat)
> plot1

> plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)

> pdf(file = "去批次后鉴定高变基因.pdf",width =7,height = 6)
> plot2                  
> dev.off()

#降维可视化
> pdf(file = "harmony去批次pca图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "harmony",pt.size = 0.5)+theme_classic()+theme(panel.border = element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right")
> dev.off()

> seurat <- Seurat::RunTSNE(seurat,dims = 1:20,reduction ='harmony')
> pdf(file = "去批次后tsne图.pdf",width =7.5,height = 5.5)
> DimPlot(seurat, reduction = "tsne",pt.size = 0.5)+theme_classic()+theme(panel.border = element_rect(fill=NA,color="black", size=0.5, linetype="solid"),legend.position = "right")
> dev.off()

> pdf(file = "去批次后tsne单样本分布图.pdf",width =12,height = 7.5)

# 添加聚类信息
> coords$cluster <- seurat@meta.data$Type

# 绘制 t-SNE 图
> ggplot(coords, aes(x = tSNE_1, y = tSNE_2, color = cluster)) +
  geom_point(size = 0.5) +
  ggtitle("This is the plot title") +
  theme(legend.position = "bottom")

> dev.off()

#绘制去批次后tsne单样本分布图

> ggplot(coords, aes(x = tSNE_1, y = tSNE_2, color = cluster)) +
  geom_point(size = 0.5) +
  ggtitle("This is the plot title") +
  theme(legend.position = "bottom")

学习交流

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

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

相关文章

RAG系统(四)手撕基于向量检索的 RAG

RAG系统&#xff08;一&#xff09;系统介绍与向量检索 RAG系统&#xff08;二&#xff09;文档的加载与分段 RAG系统&#xff08;三&#xff09;向量数据库 完整代码需要依赖前边三章中的代码&#xff0c;本节主要展示整合后的RAG系统&#xff0c;及运行示例。 from MyVec…

前端javascript包管理,npm升级用pnpm

一 pnpm 介绍 pnpm&#xff08;Package Manager&#xff09;是一个快速、节省磁盘空间的 JavaScript 包管理器&#xff0c;它是 Node.js 生态系统中 npm 的一个替代品。pnpm 解决了传统包管理工具在处理依赖时的一些痛点&#xff0c;特别是关于存储空间使用和依赖地狱的问题。…

如何将Google Search Console添加到WordPress和GA4

您想知道如何将 Google Search Console 添加到您的 Google Analytics 帐户和 WordPress 网站吗&#xff1f; 作为网站主&#xff0c;Google Search Console 是一款不能不使用的工具。对于任何想要确保其网站在 Google 搜索结果中表现良好的人来说&#xff0c;这绝对是一个必不…

leetCode-hot100-数组专题之区间问题

数组专题之区间问题 知识点&#xff1a;解决思路&#xff1a;例题56.合并区间57.插入区间253.会议室 Ⅱ485.无重叠区间 数组区间问题是算法中常见的一类问题&#xff0c;它们通常涉及对数组中的区间进行排序、合并、插入或删除操作。无论是合并区间、插入区间还是删除重复空间&…

【HarmonyOS尝鲜课】- 下载、安装DevEco Studio以及配置环境、创建运行HarmonyOS项目

下载、安装开发工具 进入DevEco Studio下载官网&#xff0c;单击“立即下载”进入下载页面。 这里以Windows为例进行安装&#xff0c;可以根据操作系统选择对应的版本进行下载。 下载完成后解压一下&#xff0c;进入文件里&#xff0c;双击应用程序&#xff0c;打开安装向导&a…

Redis主从、哨兵、集群讲解

一、Redis主从 大家在面试中可能经常会被问到Redis的高可用问题。Redis高可用回答包括两个层面&#xff0c;一个就是数据不能丢失&#xff0c;或者说尽量减少丢失 ;另外一个就是保证Redis服务不中断 。 对于尽量减少数据丢失&#xff0c;可以通过AOF和RDB保证。 对于保证服务…

2024年中青杯数学建模思路+建模过程+视频讲解

A 题&#xff1a;人工智能视域下养老辅助系统的构建 随着全球人口老龄化的加剧&#xff0c;养老问题已经成为一个世界性的社会问题。它不仅 关系到每个家庭、每个个体的未来福祉&#xff0c;也关系到国家的社会稳定和可持续发展。根 据联合国的相关数据显示&#xff0c;全球 65…

linux---线程控制

线程和进程 以前我们要同时跑多个程序&#xff0c;可以通过fork()多个子进程&#xff0c;然后通过系统函数进行程序的替换&#xff0c;但是创建进程代价大&#xff0c;不仅要拷贝一份父进程的地址空间&#xff0c;页表&#xff0c;文件表述符表等。但是线程不需要因为是进程的…

搜索引擎新特性与未来展望

多元化大模型支持: 本搜索引擎具备卓越的兼容性和灵活性,支持多种大模型(LLMs)。无论是本地部署的llama3、gemma、mistral等模型,还是云服务提供的OpenAI/gpt4-o、Groq/Llama3等,都能轻松接入,为用户提供丰富的智能搜索体验。现代化技术栈构建: 项目采用业界领先的Next…

windows docker desktop 更换镜像存储目录

windows docker desktop 更换镜像存储目录 方法&#xff1a;如图&#xff0c;Browse浏览一个新的目录并选中&#xff0c;确定后&#xff0c;程序会开始stop&#xff0c;在stop完成前&#xff0c;会持续迁移原有镜像到新的位置&#xff0c;你会发现目标位置的磁盘占用空间越来越…

Mac网线连接windows本【局域网互传文件】

Mac网线连接windows本【局域网互传文件】 两台电脑网线互联 Mac->网络->USP TCP/IP 手动配置IP&#xff0c;子网掩码&#xff0c;路由器 windows 网络和Internet配置->更改适配器选项->以太网->Internet协议版本4&#xff08;TCP/IPv4&#xff09;->属性 …

K8S/ hpa分享

在 Kubernetes 中&#xff0c;HorizontalPodAutoscaler 自动更新工作负载资源 &#xff08;例如 Deployment 或者 StatefulSet&#xff09;&#xff0c; 目的是自动扩缩工作负载以满足需求。 hpa的使用本身还是很简单的 示例如下&#xff1a; 官网示例 apiVersion: apps/v1 k…

NetCore发布的时候怎么去除生成的多余的语言文件夹cs,de...,Microsoft.CodeAnalysis语言资源文件

1、问题&#xff1a; .NetCore 3.1 发布出来的publish目录一大堆杂七杂八的文件夹如下图&#xff1a; 2、产生原因 由Microsoft.VisualStudio.Web.CodeGeneration.Design包导致 3、解决方法&#xff1a; 如果确实需要某种语言资源文件&#xff0c;可以这样&#xff0c;右键编…

压摆率SR、增益带宽积GBP、开环增益Aol

运放的选型对运放电路的实际效果非常关键&#xff0c;一定要理解运放重要参数的概念。下面几天将对运放的选型进行系统学习并做实验 运放的压摆率&#xff08;Slew Rate&#xff0c;简称SR&#xff09;是指闭环放大器在输入为阶跃信号时&#xff0c;输出电压时间变化率的平均值…

vue打包部署到springboot,通过tomcat运行

tomcat默认端口 8080springboot端口 9132vue 端口 9131 框架 项目是基于SpringBootVue前后端分离的仓库管理系统 后端&#xff1a;SpringBoot MybatisPlus前端&#xff1a;Node.js Vue element-ui数据库&#xff1a;mysql 一. 打包Vue项目 cmd中输入命令 npm run build 后…

深度学习之基于YoloV5-Deepsort人物识别与追踪项目

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与目标 本项目旨在利用深度学习技术&#xff0c;结合YoloV5和Deepsort算法&#xff0c;开发一个高效、…

前端:音频可视化(H5+js版本)

一、效果展示 HTML5JS实现一个简单的音频可视化 二、代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>音频可视化</title><style></style></head><body><divs…

非平稳信号的傅里叶变换与短时傅里叶变换

一、仿真一个非平稳的时间序列。 N 10000; t 0:N-1; z1 4.2*sin(2*pi/20.*t5); z2 2.2*sin(2*pi/100.*(10.001*t).*t8); w1 randn(length(t),1); yz1z2w1; figure;plot(y,LineWidth,1.5);grid on; ylabel(Signal); xlabel(Time); 二、傅里叶变换&#xff08;FFT&#xff…

教育智能化的历史及发展趋势

1. 教育智能化概述 1.1 定义与背景 教育智能化是指利用人工智能、大数据、云计算等现代信息技术&#xff0c;对教育过程进行智能化改造&#xff0c;提升教育质量与效率。随着技术进步&#xff0c;教育智能化已成为全球教育改革的重要趋势。 教育智能化的背景可以追溯到20世纪…

Llama 3超级课堂作业笔记

文章目录 基础作业完成 Llama 3 Web Demo 部署环境配置下载模型Web Demo 部署对话截图 使用 XTuner 完成小助手认知微调Web Demo 部署自我认知训练数据集准备训练模型推理验证 使用 LMDeploy 成功部署 Llama 3 模型环境&#xff0c;模型准备LMDeploy CLI chatLMDeploy模型量化(…