之前我們已經(jīng)講述了Cellphonedb的安裝配置和數(shù)據(jù)分析价涝,就差可視化了彬伦,這里簡(jiǎn)單說(shuō)一下常見(jiàn)的可視化嫂用,如果需要其他更加個(gè)性化的可視方式,就需要發(fā)揮自己的聰明才智了沼沈!
CellphoneDB單細(xì)胞互作分析:
CellPhoneDB單細(xì)胞互作分析(1):Linux軟件安裝及遇到的Bug(ERROR)解決
CellPhoneDB單細(xì)胞互作分析(2):數(shù)據(jù)分析|人鼠基因同源轉(zhuǎn)化|ERROR解決|詳細(xì)注釋版代碼
cellphonedb分析完成后流酬,我們得到6個(gè)數(shù)據(jù)文件,將其全部讀入列另,看似6個(gè)康吵,從內(nèi)容上講其實(shí)就三個(gè)。利用這些文件就可以做互作網(wǎng)絡(luò)圖访递、受配體氣泡圖及熱圖等等文章中常見(jiàn)的可視化圖形了晦嵌。
setwd("D:/cellinter-celldb/out")
#cellphonedb可視化
count_net <- read.delim("count_network.txt", check.names = FALSE)
inter_net <- read.delim("interaction_count.txt", check.names = FALSE)
pvalues <- read.delim("pvalues.txt", check.names = FALSE)
means <- read.delim("means.txt", check.names = FALSE)
sig.means <- read.delim("significant_means.txt", check.names = FALSE)
deconvoluted <- read.delim("deconvoluted.txt", check.names = FALSE)
一、互作網(wǎng)絡(luò)圖
互作圖很多網(wǎng)上教程使用igraph包做的,其實(shí)這是源碼惭载,確實(shí)是需要這樣做的熏矿,但是我認(rèn)為太麻煩心例,因?yàn)槟阋约赫{(diào)整罢吃,還不一定做的對(duì)露氮。所以我想了一個(gè)妙招---”借雞下蛋“,這應(yīng)該是生信人需要做的舉一反三含长。之前我們說(shuō)過(guò)Cellchat的單細(xì)胞互作分析(Cellchat(代碼詳細(xì)注釋版):?jiǎn)渭?xì)胞轉(zhuǎn)錄組(人券腔、小鼠)細(xì)胞互作分析及可視化),這里面有作者寫好的函數(shù)拘泞,可視化也是相當(dāng)不錯(cuò)的纷纫,只要將Cellphonedb文件格式整理成需要的格式,使用Cellchat函數(shù)包不就完成了陪腌?需要的文件是count_network.txt
#互作網(wǎng)絡(luò)圖
library(CellChat)
count_inter <- count_net
count_inter$count <- count_inter$count/100
library(tidyr)
count_inter<-spread(count_inter, TARGET, count)
rownames(count_inter) <- count_inter$SOURCE
count_inter <- count_inter[, -1]
count_inter <- as.matrix(count_inter)
netVisual_circle(count_inter,weight.scale = T)
每種細(xì)胞與其他細(xì)胞的互作辱魁,循環(huán)出圖!
par(mfrow = c(4,3), xpd=TRUE)
for (i in 1:nrow(count_inter)) {
mat2 <- matrix(0, nrow = nrow(count_inter), ncol = ncol(count_inter), dimnames = dimnames(count_inter))
mat2[i, ] <- count_inter[i, ]
netVisual_circle(mat2,
weight.scale = T,
edge.weight.max = max(count_inter),
title.name = rownames(count_inter)[i],
arrow.size=0.2)
}
二诗鸭、熱圖
其實(shí)熱圖和網(wǎng)絡(luò)圖一樣染簇,都是展示了不同細(xì)胞之間互作的數(shù)目。我們?cè)谶\(yùn)行完cellphonedb的熱圖作圖函數(shù)后强岸,熱圖展示的已經(jīng)是篩選過(guò)的p<0.05的受配體互作數(shù)目锻弓,生成的文件是count_net, 這里我們直接用這個(gè)文件作熱圖,進(jìn)行一些簡(jiǎn)單的修飾蝌箍,例如展示互作數(shù)目青灼,其他個(gè)性化修飾同熱圖。當(dāng)然如果不需要默認(rèn)的作圖十绑,自己篩選做熱圖需要從pvalues這個(gè)文件開始聚至,具體可參考網(wǎng)上其他教程酷勺。
#熱圖其實(shí)和網(wǎng)絡(luò)圖一樣本橙,都是展示互作數(shù)目的。
library(tidyr)
count_matrix<-spread(count_net, TARGET, count)
rownames(count_matrix) <- count_matrix$SOURCE
count_matrix <- count_matrix[, -1]
count_matrix <- as.matrix(count_matrix)
用pheatmap做熱圖脆诉。
library(pheatmap)
pheatmap(count_matrix, show_rownames = T, show_colnames = T, scale="none", cluster_cols = T,
border_color='white', cluster_rows = T, fontsize_row = 14, fontsize_col = 14,
main = "Control", treeheight_row = 0, family = 'Arial',
color = colorRampPalette(c("dodgerblue4",'peachpuff','deeppink4' ))( 1000 ),
treeheight_col = 0,
display_numbers = T, number_color="white",fontsize_number=12,
number_format="%.0f", legend_labels = c(0,300))
三甚亭、受配體點(diǎn)圖
受配體點(diǎn)圖的繪制需要兩個(gè)文件pvalues.txt和means.txt,原理是將兩個(gè)文件合并击胜,提取受配體對(duì)進(jìn)行可視化亏狰,ggplot就可以實(shí)現(xiàn)。但是自己弄比較繁瑣偶摔,這里有一個(gè)專門針對(duì)cellphonedb的可視化R包暇唾,可以輕松解決這一問(wèn)題,你只需修改參數(shù)即可,可視化效果也不錯(cuò)策州,用在文章中綽綽有余瘸味!
#安裝
if (!requireNamespace("devtools", quietly = TRUE))
install.packages("devtools")
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
devtools::install_github('zktuong/ktplots', dependencies = TRUE)
library(ktplots)
#作圖需要的文件,means.txt够挂, pvalues.txt, 單細(xì)胞seurat對(duì)象
讀入作圖需要的文件旁仿。
pvals <- read.delim(paste0(pbmc,"pvalues.txt"), check.names = FALSE)
means <- read.delim(paste0(pbmc,"means.txt"), check.names = FALSE)
load("E:/生物信息學(xué)/數(shù)據(jù)/scRNA.Rdata")
氣泡圖。cell_type1孽糖、2指定互作細(xì)胞枯冈,如果不指定則默認(rèn)所有細(xì)胞,這里我們指定DC办悟,可視化的就是DC發(fā)出信號(hào)作用于其他細(xì)胞尘奏,以及DC接受的其他細(xì)胞的作用。實(shí)際情況按照自己的實(shí)驗(yàn)?zāi)康闹付ㄓ狻cdata就是我們用于分析的單細(xì)胞seurat對(duì)象罪既。means和pvals就是我們cellphonedb分析產(chǎn)生的兩個(gè)文件。gene.family是一些基因?qū)险∷。衏hemokines', 'Th1', 'Th2', 'Th17', 'Treg', 'costimulatory', 'coinhibitory', 'niche'琢感,可以選擇需要的指定,不選擇則默認(rèn)所有探熔。keep_significant_only=T驹针,我們只選擇顯著的。其他的可視化參數(shù)可自行查閱函數(shù)诀艰,可視化是基于ggplot的柬甥,所以主題修改和ggplot一樣。
plot_cpdb(cell_type1 = 'DC', cell_type2 = "", scdata = scRNA,
idents = 'celltype', means = means, pvals = pvals,
gene.family = 'costimulatory',highlight = "blue",
keep_significant_only=T) +
theme(axis.text = element_text(size = 10, color = 'black'))
這樣的可視化就很足夠了其垄。當(dāng)然了苛蒲,ktplots還有其他的可視化,比如比較新奇的將細(xì)胞之間互作基因?qū)τ孟覉D展示绿满,還可以指定特定的幾種細(xì)胞互作弦圖展示臂外。還可以多組分析可視化、結(jié)合空間轉(zhuǎn)錄組的可視化喇颁、對(duì)于單細(xì)胞的可能化等等漏健,感興趣的值得學(xué)習(xí)。但是就我們細(xì)胞互作而言橘霎,已經(jīng)足夠了蔫浆。
我們這里提供了最少的代碼和步驟,比較簡(jiǎn)潔的完成了cellphonedb的可視化姐叁,我覺(jué)得這就足夠了瓦盛。如果你覺(jué)得有用洗显,分享點(diǎn)贊一下唄!當(dāng)然原环,你可以學(xué)習(xí)其他包的函數(shù)墙懂,研究明白其原理,可以自己寫函數(shù)可視化扮念。
更多精彩內(nèi)容請(qǐng)至我的公眾號(hào)《KS科研分享與服務(wù)》