ggraph做环形网络互作图---一个简单的例子

news2024/11/26 2:52:03

之前我们写过很多精彩的网络图帖子:

graph包:圆状网络图的绘制|互作网络图|基因通路网络图

新方法---大型网络图绘制---ggraph包

学做NAR图表:ggraph做网络图

复现《Cell stem cell》图表:STRING互作分析+igraph绘制大型蛋白互作网络图

图片复现:ggraph互作网络图

这里我们以基因互作演示一个简单的网络图示意。这个图的特点是。第一:基因按照分组展示。第二:上下调基因也区分展示出来。其实,就是一个非常简单的网络图,很基础,主要是为了熟悉下网络的设置等等。首先准备网络数据,我这里是 STRING网络分析的结果。然后设置节点数据。最后构建ggraph作图数据。ggraph作图重要的是构建好作图数据。组图就很简单了。

setwd("D:/KS项目/公众号文章/一个简单的网络图")
library(ggraph)library(tidygraph)library(ggnewscale)df <- read.csv('net.csv', header = T)#这是一个基因互作关系网络文件#接下来,为了让我们的网络图更加丰富,我们人为对这些基因进行分组等等#事实上,如果是你有用的数据,可以提前整理好文件读入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))#这里的分组是虚构的数据genes$regulation <- c(sample(c(rep("up",12), rep("down",10))))#随机分下上下调
data <- tbl_graph(nodes = genes, edges = df)

绘图。ggraph是ggplot2的拓展包,所以作图设置和ggplot类似。不同组的基因按照不同的颜色区别,上下调基因按照节点边框颜色区分。​​​​​​​

#绘图,ggraph是ggplot的拓展包,所以当你构建好ggraph作图数据后,
​​​​​​​#剩下的和你在利用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()

图片

本贴示例数据及详细注释代码已上传群文件,请自行下载。觉得分享有用的点个赞、分享下再走呗!

 

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

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

相关文章

【代码随想录 | Leetcode | 第二天】数组 | 移除元素

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏&#xff0c;今天将为大家带来双指针法和相向双指针的分享✨ 目录 前言27. 移除元素总结 27. 移除元素 ✨题目链接点这里 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于val的元素&#xff0c;并…

关于python创建项目时的一些基础的概念

写项目时&#xff0c;通常是&#xff0c;先跑起来&#xff0c;跑起来再说。 很多基础的概念仅仅是知其然而已&#xff0c; 不知道为什么这么写&#xff0c;但这样写是可以跑的&#xff08;或大家都这么写&#xff09;&#xff08;我忘了为啥这么写&#xff0c;但就得这么写&…

第五章:STL简介

系列文章目录 文章目录 系列文章目录前言什么是STLSTL的版本STL的六大组件如何学习STLSTL的缺陷总结 前言 STL是C的标准模板库&#xff0c;是一个实现算法与数据结构的组件库。 什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&…

掌握无人机遥感数据预处理的全链条理论与实践流程、典型农林植被性状的估算理论与实践方法、利用MATLAB进行编程实践(脚本与GUI开发)以及期刊论文插图制作等

目录 专题一 认识主被动无人机遥感数据 专题二 预处理无人机遥感数据 专题三 定量估算农林植被关键性状 专题四 期刊论文插图精细制作与Appdesigner应用开发 近地面无人机植被定量遥感与生理参数反演 更多推荐 遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多…

浅谈测试工程化 - 以并发自动化框架为例

目录 前言 测试工程化 一、测试需求分析 二、测试设计 三、测试实现和落地 四、测试维护 扩展 前言 测试工程化是指将软件测试过程中的各个环节进行自动化和标准化&#xff0c;以提高测试效率、质量和可持续性。在测试工程化中&#xff0c;使用并发自动化框架是一个重要…

java版+免费商城搭建+小程序商城免费搭建+Spring Cloud + Spring Boot + MybatisPlus + 前后端分离 + 二次开发

J2EE企业分布式微服务云快速开发架构 Spring CloudSpring Boot2MybatisOauth2ElementUI 前后端分离 1. 鸿鹄Cloud架构清单 2. Commonservice&#xff08;通用服务&#xff09; 通用服务&#xff1a;对spring Cloud组件的使用&封装&#xff0c;是一套完整的针对于分布式微…

【洛谷】数字三角形(动态规划)

目录 边读边存 优化成一维数组——倒序没用了&#xff1f; 从上往下存&#xff0c;最大值存在最后一行&#xff0c;最后遍历最后一行得到最大值的写法 边读边存 边读边存&#xff0c;可以有效降低时间复杂度 #include<iostream> using namespace std; int dp[1005]…

git回退到指定版本

git回退到指定版本 1、查找commitId 首先用命令行打开git项目路径&#xff0c;输入git log命令查看commit记录&#xff0c;如下&#xff1a; 在控制台中输入&#xff1a;git log 得到提交记录&#xff1a; 找到commitId是38ada082c229853cf7880da74f584f73266e58a2记录&…

chatGPT这个风口普通人怎么抓住

抓住ChatGPT这个风口&#xff0c;普通人可以考虑以下几个方面&#xff1a; 学习和了解AI技术&#xff1a;了解人工智能和自然语言处理的基本原理&#xff0c;深入了解GPT模型的概念和应用场景。这将帮助您更好地理解ChatGPT的潜力和限制。 寻找创造性的应用场景&#xff1a…

Triton部署之TensorRT-bugfix

一、前言 Triton部署经常会有一些姨妈的错误&#xff0c;个人经验大都为版本不匹配导致&#xff1b; 二、 本人环境 nvidia-smi: 使用的官方镜像为&#xff1a;nvcr.io/nvidia/tritonserver:21.09-py3 使用的onnx版本为&#xff1a;pip install onnx 1.12.0 -i https://pypi.t…

Drools用户手册翻译——第四章 Drools规则引擎(一)核心概念介绍

之前翻译内容一下就是一大节&#xff0c;感觉有点多&#xff0c;我自己看这都费劲&#xff0c;这一章开始步入正题&#xff0c;我就一小节一小节翻译吧&#xff0c;比较容易阅读&#xff0c;修改错误也简单一些。 甩锅声明&#xff1a;本人英语一般&#xff0c;翻译只是为了做…

拼多多API接口,百亿补贴商品详情页面采集

电商API的数据类型 电商API提供的数据种类多样&#xff0c;一般可分为以下几类&#xff1a; 1.商品数据&#xff1a;商品ID、商品名称、商品价格、库存等。 2.交易数据&#xff1a;订单号、付款时间、收货人等。 3.店铺数据&#xff1a;店铺ID、店铺名称、开店时间、店铺评…

SuperMap iServer新增支持FlatGeobuf数据格式,查询渲染性能提升2-3倍

导语 FlatGeobuf是一种地理数据存储格式&#xff0c;采用了二进制编码&#xff0c;相比其他文本或XML格式更高效&#xff0c;可以显著减小文件大小&#xff0c;这使得数据的传输和存储更加快速和高效。 SuperMap iServer 11i(2023) &#xff08;以下简称SuperMap iServer11.1&a…

【代码随想录 | Leetcode | 第三天】数组 | 长度最小的子数组

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏&#xff0c;今天将为大家带来滑动窗口的分享✨ 目录 前言209. 长度最小的子数组总结 209. 长度最小的子数组 ✨题目链接点这里 给定一个含有 n 个正整数的数组和一个正整数target。找出该数组中满足其和 ≥ target 的长度…

ubantu下的前后端部署

ubantu 远程ssh连接 通过ssh远程连接服务器&#xff0c;传输文件和执行命令 首先更新软件包保证版本最新 sudo apt update安装ssh sudo apt install openssh-server安装完成后默认开启&#xff0c;也可输入命令查看ssh状态 sudo systemctl status ssh如果输入为下图&#…

warning: ignoring JAVA_HOME=D:\JDK; using bundled JDK报错解决

warning: ignoring JAVA_HOMED:\JDK; using bundled JDK报错原因是因为你JDK版本太低或者你的ElasticSearch版本太高降低版本即可、 我的是JDK1.8我下载的是elasticsearch-8.7.0改成elasticsearch-7.6.1就可以了 elasticsearch-7.6.1地址&#xff1a;弹性搜索 7.6.1 |弹性的 …

【动手学深度学习】--13.使用块的网络 VGG

文章目录 使用块的网络 VGG1.VGG块2.VGG网络3.训练模型 使用块的网络 VGG 学习视频&#xff1a;使用块的网络 VGG【动手学深度学习v2】 官方笔记&#xff1a;使用块的网络&#xff08;VGG&#xff09; 1.VGG块 经典卷积神经网络的基本组成部分是下面的这个序列&#xff1a;…

软件测试转车载测试应该怎么做?

1、你要是零基础小白&#xff0c;做车载测试零基础没有经验&#xff0c;可以找到工作吗&#xff1f;没有汽车软件测试经验零基础小白能找到汽车测试的工作吗&#xff1f;对于企业而言&#xff0c;企业比较倾向于录用&#xff0c;就能给公司带来利益的员工来了就能直接上岗&…

公开讲座笔记 | 雷达学报 雷达系统微课 - 第一讲 雷达系统 与 “1+1=2“

原笔记链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486333&idx1&sn05397073a1e645d68e2611c9f9f3aeef&chksmcf51b984f8263092dd4ac6c6fd76817ae022ec8f0cda9a915245156cb4c3eb849091da06fdd1#rd 公开讲座笔记 | 雷达学报 雷达系统…

vue3 和vue2 的插槽写法区别

目录 1. vue2 2. vue3 注意的点&#xff1a; 1. vue2 2. vue3 注意的点&#xff1a; 在data里面定的初值&#xff0c;最好不要直接赋给表格数据。如下&#xff1a; data里面 editRow初始化 给表格tableData 赋值