單細胞Seurat - 降維與細胞標記(4)

本系列持續更新Seurat單細胞分析教程,歡迎關注!

非線形降維

Seurat 提供了幾種非線性降維技術,例如 tSNE 和 UMAP,來可視化和探索這些數據集。這些算法的目標是學習數據集中的底層結構,以便將相似的細胞放在低維空間中。因此,在上面確定的基于圖的簇內分組在一起的細胞應該在這些降維圖上共同定位。

雖然和其他人經常發現 tSNE 和 UMAP 等 2D 可視化技術是探索數據集的有價值的工具,但所有可視化技術都有局限性,并且不能完全代表基礎數據的復雜性。特別是,這些方法旨在保留數據集中的局部距離(即確保具有非常相似的基因表達譜的細胞共定位),但通常不會保留更多的全局關系。我們鼓勵用戶利用 UMAP 等技術進行可視化,但避免僅根據可視化技術得出生物學結論。

pbmc?<-?RunUMAP(pbmc,?dims?=?1:10)

#?note?that?you?can?set?`label?=?TRUE`?or?use?the?LabelClusters?function?to?help?label
#?individual?clusters
DimPlot(pbmc,?reduction?=?"umap")
alt

您可以在此時保存對象,以便可以輕松地重新加載它,而無需重新運行上面執行的計算密集型步驟,或者輕松地與協作者共享。

尋找差異表達特征(簇生物標志物)

Seurat 可以幫助您找到通過差異表達 (DE) 定義簇的標記。默認情況下,與所有其他細胞相比,它識別單個簇的陽性和陰性標記(在 ident.1 中指定)。 FindAllMarkers() 會針對所有集群自動執行此過程,但您也可以測試集群組之間的對比,或針對所有細胞進行測試。

在 Seurat v5 中,我們使用 presto 軟件包來顯著提高 DE 分析的速度,特別是對于大型數據集。對于不使用 presto 的用戶,您可以查看該函數的文檔(?FindMarkers)來探索 min.pct 和 logfc.threshold 參數,可以增加這些參數以提高 DE 測試的速度。

#?find?all?markers?of?cluster?2
cluster2.markers?<-?FindMarkers(pbmc,?ident.1?=?2)
head(cluster2.markers,?n?=?5)

##?????????????p_val?avg_log2FC?pct.1?pct.2????p_val_adj
##?IL32?2.593535e-91??1.3221171?0.949?0.466?3.556774e-87
##?LTB??7.994465e-87??1.3450377?0.981?0.644?1.096361e-82
##?CD3D?3.922451e-70??1.0562099?0.922?0.433?5.379250e-66
##?IL7R?1.130870e-66??1.4256944?0.748?0.327?1.550876e-62
##?LDHB?4.082189e-65??0.9765875?0.953?0.614?5.598314e-61

#?find?all?markers?distinguishing?cluster?5?from?clusters?0?and?3
cluster5.markers?<-?FindMarkers(pbmc,?ident.1?=?5,?ident.2?=?c(0,?3))
head(cluster5.markers,?n?=?5)

##???????????????????????p_val?avg_log2FC?pct.1?pct.2?????p_val_adj
##?FCGR3A????????2.150929e-209???6.832372?0.975?0.039?2.949784e-205
##?IFITM3????????6.103366e-199???6.181000?0.975?0.048?8.370156e-195
##?CFD???????????8.891428e-198???6.052575?0.938?0.037?1.219370e-193
##?CD68??????????2.374425e-194???5.493138?0.926?0.035?3.256286e-190
##?RP11-290F20.3?9.308287e-191???6.335402?0.840?0.016?1.276538e-186

#?find?markers?for?every?cluster?compared?to?all?remaining?cells,?report?only?the?positive
#?ones
pbmc.markers?<-?FindAllMarkers(pbmc,?only.pos?=?TRUE)
pbmc.markers?%>%
????group_by(cluster)?%>%
????dplyr::filter(avg_log2FC?>?1)

##?#?A?tibble:?7,046?×?7
##?#?Groups:???cluster?[9]
##????????p_val?avg_log2FC?pct.1?pct.2?p_val_adj?cluster?gene?????
##????????<dbl>??????<dbl>?<dbl>?<dbl>?????<dbl>?<fct>???<chr>????
##??1?1.74e-109???????1.19?0.897?0.593?2.39e-105?0???????LDHB?????
##??2?1.17e-?83???????2.37?0.435?0.108?1.60e-?79?0???????CCR7?????
##??3?8.94e-?79???????1.09?0.838?0.403?1.23e-?74?0???????CD3D?????
##??4?3.05e-?53???????1.02?0.722?0.399?4.19e-?49?0???????CD3E?????
##??5?3.28e-?49???????2.10?0.333?0.103?4.50e-?45?0???????LEF1?????
##??6?6.66e-?49???????1.25?0.623?0.358?9.13e-?45?0???????NOSIP????
##??7?9.31e-?44???????2.02?0.328?0.11??1.28e-?39?0???????PRKCQ-AS1
##??8?4.69e-?43???????1.53?0.435?0.184?6.43e-?39?0???????PIK3IP1??
##??9?1.47e-?39???????2.70?0.195?0.04??2.01e-?35?0???????FHIT?????
##?10?2.44e-?33???????1.94?0.262?0.087?3.34e-?29?0???????MAL??????
##?#???7,036?more?rows

Seurat 有幾種差異表達測試,可以使用 test.use 參數進行設置。例如,ROC 測試返回任何單個標記的“分類能力”(范圍從 0 到 1)。

cluster0.markers?<-?FindMarkers(pbmc,?ident.1?=?0,?logfc.threshold?=?0.25,?test.use?=?"roc",?only.pos?=?TRUE)

我們提供了幾種用于可視化標記表達的工具。 VlnPlot()(顯示跨簇的表達概率分布)和 FeaturePlot()(在 tSNE 或 PCA 圖上可視化特征表達)是我們最常用的可視化。我們還建議探索 RidgePlot()、CellScatter() 和 DotPlot() 作為查看數據集的附加方法。

VlnPlot(pbmc,?features?=?c("MS4A1",?"CD79A"))
alt
#?you?can?plot?raw?counts?as?well
VlnPlot(pbmc,?features?=?c("NKG7",?"PF4"),?slot?=?"counts",?log?=?TRUE)
alt
FeaturePlot(pbmc,?features?=?c("MS4A1",?"GNLY",?"CD3E",?"CD14",?"FCER1A",?"FCGR3A",?"LYZ",?"PPBP",
????"CD8A"))
alt

DoHeatmap() 為給定的細胞和特征生成表達式熱圖。在本例中,我們繪制每個簇的前 20 個標記(如果少于 20 個則為所有標記)。

pbmc.markers?%>%
????group_by(cluster)?%>%
????dplyr::filter(avg_log2FC?>?1)?%>%
????slice_head(n?=?10)?%>%
????ungroup()?->?top10
DoHeatmap(pbmc,?features?=?top10$gene)?+?NoLegend()
alt

細胞類型分配

在此數據集的情況下,可以使用規范標記輕松地將無偏聚類與已知細胞類型進行匹配:

alt
new.cluster.ids?<-?c("Naive?CD4?T",?"CD14+?Mono",?"Memory?CD4?T",?"B",?"CD8?T",?"FCGR3A+?Mono",
????"NK",?"DC",?"Platelet")
names(new.cluster.ids)?<-?levels(pbmc)
pbmc?<-?RenameIdents(pbmc,?new.cluster.ids)
DimPlot(pbmc,?reduction?=?"umap",?label?=?TRUE,?pt.size?=?0.5)?+?NoLegend()
alt
library(ggplot2)
plot?<-?DimPlot(pbmc,?reduction?=?"umap",?label?=?TRUE,?label.size?=?4.5)?+?xlab("UMAP?1")?+?ylab("UMAP?2")?+
????theme(axis.title?=?element_text(size?=?18),?legend.text?=?element_text(size?=?18))?+?guides(colour?=?guide_legend(override.aes?=?list(size?=?10)))
ggsave(filename?=?"../output/images/pbmc3k_umap.jpg",?height?=?7,?width?=?12,?plot?=?plot,?quality?=?50)

saveRDS(pbmc,?file?=?"../output/pbmc3k_final.rds")

未完待續,持續更新,歡迎關注!

本文由 mdnice 多平臺發布

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715194.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715194.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715194.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

__vueParentComponent和__vue__獲取dom元素上的vue實例

vue2: 使用__vue__ const el document.querySelector(.xxx); const vueInstance el.__vue__;vue3: 使用 __vueParentComponent const el document.querySelector(.xxx); const vueInstance el.__vueParentComponent;

Python錯題集-4:NameError:(變量名錯誤)

1問題描述 Traceback (most recent call last): File "D:\pycharm\projects\1-可視化學習\8.3更改小提琴圖的中位數、均值、顏色等.py", line 8, in <module> violin_parts plt.violinplot(data, showmediansTrue, showmeansTrue) …

代碼隨想錄算法訓練營第四十四天 完全背包 、零錢兌換 II 、組合總和 Ⅳ

代碼隨想錄算法訓練營第四十四天 | 完全背包 、零錢兌換 II 、組合總和 Ⅳ 完全背包 題目鏈接&#xff1a;題目頁面 (kamacoder.com) 解釋一、01背包 一維 &#xff1a;為什么要倒序遍歷背包&#xff1f; 首先要明白二維數組的遞推過程&#xff0c;然后才能看懂二維變一維的…

【MATLAB源碼-第150期】基于matlab的開普勒優化算法(KOA)機器人柵格路徑規劃,輸出做短路徑圖和適應度曲線。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 開普勒優化算法&#xff08;Kepler Optimization Algorithm, KOA&#xff09;是一個虛構的、靈感來自天文學的優化算法&#xff0c;它借鑒了開普勒行星運動定律的概念來設計。在這個構想中&#xff0c;算法模仿行星圍繞太陽的…

項目風險:測試大佬結合實例告訴你如何應對!

項目有風險 今天下午15點&#xff0c;團隊成員D向他的主管Z反饋他測試的項目有風險&#xff1a;項目在測試周期內&#xff0c;但在用例評審時發現有一處功能邏輯有爭議&#xff0c;需要產品經理跟業務方確認&#xff0c;可能出現的情況有&#xff1a; 1 不變更需求&#xff0…

【技巧】SpringCloud Gateway實現多子域(單個應用開放多個端口)

0. 目錄 1. 需求背景2. 實現3. 額外 - 其它Servlet容器實現3.1 Undertow3.2 Tomcat 4. 相關 1. 需求背景 瀏覽器針對單個網站地址(ipport)存在“6個請求”限制&#xff1b;通過多子域配置可以突破這個限制&#xff0c;增加網站的響應效率&#xff0c;尤其是針對三維服務這類大…

【深入了解設計模式】組合設計模式

組合設計模式 組合模式是一種結構型設計模式&#xff0c;它允許你將對象組合成樹狀結構來表現“整體-部分”關系。組合模式使得客戶端可以統一對待單個對象和組合對象&#xff0c;從而使得代碼更加靈活和易于擴展。 概述 ? 對于這個圖片肯定會非常熟悉&#xff0c;上圖我們可…

Carla自動駕駛仿真九:車輛變道路徑規劃

文章目錄 前言一、關鍵函數二、完整代碼效果 前言 本文介紹一種在carla中比較簡單的變道路徑規劃方法&#xff0c;主要核心是調用carla的GlobalRoutePlanner模塊和PID控制模塊實現變道&#xff0c;大體的框架如下圖所示。 一、關鍵函數 1、get_spawn_point(),該函數根據指定r…

c語言字符串函數之strcpy函數,strnpy函數

strcpy函數 語法格式 strcpy(字符數組1,字符串2&#xff09; 它的作用是把字符串2復制到字符數組1里面 #include<stdio.h> #include<string.h> int main() {char c[]"河南";char d[]"安徽";char d[];printf("%s\n",strcpy(c,d));…

力扣hot100題解(python版41-43題)

41、二叉樹的層序遍歷 給你二叉樹的根節點 root &#xff0c;返回其節點值的 層序遍歷 。 &#xff08;即逐層地&#xff0c;從左到右訪問所有節點&#xff09;。 示例 1&#xff1a; 輸入&#xff1a;root [3,9,20,null,null,15,7] 輸出&#xff1a;[[3],[9,20],[15,7]]示例…

【C語言結構體】用戶自定義類型--結構體,結構體傳參,位段,聯合體和枚舉【圖文詳解】

歡迎來CILMY23的博客喔&#xff0c;本篇為【C語言結構體】用戶自定義類型--結構體&#xff0c;結構體傳參&#xff0c;位段&#xff0c;聯合體和枚舉【圖文詳解】&#xff0c;感謝觀看&#xff0c;支持的可以給個一鍵三連&#xff0c;點贊關注收藏。 前言 上一篇&#xff08;ht…

GO—函數

Go 語言支持普通函數、匿名函數和閉包&#xff0c;從設計上對函數進行了優化和改進&#xff0c;讓函數使用起來更加方便。 Go 語言的函數屬于“一等公民”&#xff08;first-class&#xff09;&#xff0c;也就是說&#xff1a; 函數本身可以作為值進行傳遞。支持匿名函數和閉…

Leetcode.2369 檢查數組是否存在有效劃分

題目鏈接 Leetcode.2369 檢查數組是否存在有效劃分 rating : 1780 題目描述 給你一個下標從 0 0 0 開始的整數數組 n u m s nums nums &#xff0c;你必須將數組劃分為一個或多個 連續 子數組。 如果獲得的這些子數組中每個都能滿足下述條件 之一 &#xff0c;則可以稱其為…

推薦6款SSH遠程連接工具

1、Xshell 介紹&#xff1a; xshell是一個非常強大的安全終端模擬軟件&#xff0c;它支持SSH1, SSH2, 以及Windows平臺的TELNET 協議。Xshell可以在Windows界面下用來訪問遠端不同系統下的服務器&#xff0c;從而比較好的達到遠程控制終端的目的。 業界最強大的SSH客戶機 官…

數據分析-Pandas數據的直方圖探查

數據分析-Pandas數據的直方圖探查 數據分析和處理中&#xff0c;難免會遇到各種數據&#xff0c;那么數據呈現怎樣的規律呢&#xff1f;不管金融數據&#xff0c;風控數據&#xff0c;營銷數據等等&#xff0c;莫不如此。如何通過圖示展示數據的規律&#xff1f; 數據表&…

農產品質量追溯系統—功能介紹(2)

儲藏管理 儲藏信息管理對需要儲藏的農產品,記錄儲藏的相關信息,如儲藏開始時間、存放倉庫、操作人員、儲藏原因等; 倉庫信息管理物流管理 物流公司管理對相關的物流公司信息進行登記,以便于管理和追溯; 車輛管理

我的秋招數據分析崗面經分享(京東,美團,阿里,拼多多,vivo,滴滴)

節前&#xff0c;我們社群組織了一場技術&面試討論會&#xff0c;邀請了一些互聯網大廠同學、參加社招和校招面試的同學&#xff0c;針對新手如何入門數據分析、機器學習算法、該如何備戰面試、面試常考點分享等熱門話題進行了深入的討論。 基于社群的討論&#xff0c;今天…

力扣爆刷第84天之hot100五連刷6-10

力扣爆刷第84天之hot100五連刷6-10 文章目錄 力扣爆刷第84天之hot100五連刷6-10一、15. 三數之和二、42. 接雨水三、3. 無重復字符的最長子串四、438. 找到字符串中所有字母異位詞五、560. 和為 K 的子數組 一、15. 三數之和 題目鏈接&#xff1a;https://leetcode.cn/problem…

JAVA學習筆記13(位運算)

1.位運算 1.1 原碼、反碼、補碼 ? *規則&#xff1a; ? 1.二進制的最高位是符號位&#xff1a;0表示正數&#xff0c;1表示負數 ? 2.正數的原碼&#xff0c;反碼&#xff0c;補碼都一樣&#xff08;三碼合一&#xff09; ? 3.負數的反碼 他的原碼符號位不變&#xff…

從metashape導出深度圖,從深度圖恢復密集點云

從metashape導出深度圖&#xff0c;從深度圖恢復密集點云 1.從metashape導出深度圖 參考&#xff1a;https://blog.csdn.net/WHU_StudentZhong/article/details/123107072?spm1001.2014.3001.5502 2.從深度圖建立密集點云 首先從metashape導出blockExchange格式的xml文件&…