這里我們以基因互作演示一個簡單的網(wǎng)絡(luò)圖示意。這個圖的特點是。第一:基因按照分組展示。第二:上下調(diào)基因也區(qū)分展示出來。其實,就是一個非常簡單的網(wǎng)絡(luò)圖,很基礎(chǔ),主要是為了熟悉下網(wǎng)絡(luò)的設(shè)置等等。首先準(zhǔn)備網(wǎng)絡(luò)數(shù)據(jù),我這里是 STRING網(wǎng)絡(luò)分析的結(jié)果。然后設(shè)置節(jié)點數(shù)據(jù)。最后構(gòu)建ggraph作圖數(shù)據(jù)。ggraph作圖重要的是構(gòu)建好作圖數(shù)據(jù)。組圖就很簡單了。
setwd("D:/KS項目/公眾號文章/一個簡單的網(wǎng)絡(luò)圖")
library(ggraph)
library(tidygraph)
library(ggnewscale)
df <- read.csv('net.csv', header = T)#這是一個基因互作關(guān)系網(wǎng)絡(luò)文件
#接下來,為了讓我們的網(wǎng)絡(luò)圖更加豐富,我們?nèi)藶閷@些基因進(jìn)行分組等等
#事實上,如果是你有用的數(shù)據(jù),可以提前整理好文件讀入
from = unique(df$from)
to = unique(df$to)
genes <- data.frame(unique(c(from, to)))
colnames(genes) <- 'gene'
genes$pathway <- c(rep("MAPK",6), rep("Wnt",5), rep("JAK",6),rep("Toll",5))#這里的分組是虛構(gòu)的數(shù)據(jù)
genes$regulation <- c(sample(c(rep("up",12), rep("down",10))))#隨機(jī)分下上下調(diào)
data <- tbl_graph(nodes = genes, edges = df)
繪圖。ggraph是ggplot2的拓展包,所以作圖設(shè)置和ggplot類似。不同組的基因按照不同的顏色區(qū)別,上下調(diào)基因按照節(jié)點邊框顏色區(qū)分。
#繪圖,ggraph是ggplot的拓展包,所以當(dāng)你構(gòu)建好ggraph作圖數(shù)據(jù)后,剩下的和你在利用ggplot2作圖沒什么分別
ggraph(data,layout='linear',circular = TRUE) +
geom_node_point(aes(size=8,
fill = pathway),shape=21) +
scale_fill_manual(values = c('#4CA85F','orange','#4A90BD','#C387B8'))+
geom_node_point(aes(size=8,
color = regulation),shape=21,stroke=2)+
scale_color_manual(values = c('black','#B11E23'))+
scale_size_continuous(range = c(30, 1))+
geom_node_text(aes(x = x*1.15,
y=y*1.15,
label=gene,
angle=-((-node_angle(x, y) + 90) %% 180) + 90),
size=3,
hjust='outward')+
coord_cartesian(xlim=c(-1.5,1.5),ylim = c(-1.5,1.5))+
geom_edge_arc(aes(width=score),color="lightblue")+
scale_edge_width_continuous(range = c(0.5,1))+
theme_graph()

image.png
覺得分享有用的點個贊、分享下再走唄!