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.pswp.cn/diannao/13854.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13854.shtml
英文地址,請注明出處:http://en.pswp.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模型量化(…