科研绘图(四)火山图

       火山图是生物信息学中常用的一种图表,用来显示基因表达数据的变化。它通常将每个点表示为一个基因,x轴显示对数比率(log ratio),表示基因表达的变化大小;y轴显示-log10(p-value),表示变化的统计显著性。在火山图中,通常会看到分布在两侧的点表示表达上升或下降的基因,而分布在中间的点表示没有显著变化的基因。这种图表有助于快速识别在特定条件下显著上调或下调的基因。

import matplotlib.pyplot as plt
import numpy as np

# 生成示例数据
np.random.seed(0)
x = np.random.normal(size=1000)
y = -np.log10(np.random.uniform(low=0.001, high=1.0, size=1000))

# 分类条件,随机分配,仅用于示例
conditions = np.random.choice(['up', 'down', 'nodiff'], size=1000, p=[0.1, 0.1, 0.8])

# 创建火山图
plt.figure(figsize=(8, 6))
plt.scatter(x[conditions == 'up'], y[conditions == 'up'], color='r', label='up')
plt.scatter(x[conditions == 'down'], y[conditions == 'down'], color='b', label='down')
plt.scatter(x[conditions == 'nodiff'], y[conditions == 'nodiff'], color='grey', alpha=0.5, label='nodiff')

# 添加必要的标签和标题
plt.title('Volcano Plot')
plt.xlabel('Log2 Fold Change')
plt.ylabel('-Log10 p-value')

# 添加图例
plt.legend()

# 显示图表
plt.show()

 下面是matlab的代码

% 假设数据
logFoldChange = randn(1000,1); % 随机生成对数变化倍数
pValues = rand(1000,1); % 随机生成p值

% 设置阈值
pValueThreshold = 0.05; % p值显著性阈值
logFoldChangeThreshold = 1; % 对数变化倍数阈值

% 计算统计显著性
negLogPValues = -log10(pValues); % 计算负对数p值

% 分类基因表达变化
upRegulated = logFoldChange > logFoldChangeThreshold & pValues < pValueThreshold;
downRegulated = logFoldChange < -logFoldChangeThreshold & pValues < pValueThreshold;
notRegulated = ~upRegulated & ~downRegulated;

% 绘制火山图
figure;
hold on;
scatter(logFoldChange(upRegulated), negLogPValues(upRegulated), 40,'blue', 'filled');
scatter(logFoldChange(downRegulated), negLogPValues(downRegulated), 40, 'red', 'filled');
scatter(logFoldChange(notRegulated), negLogPValues(notRegulated), 10, 'black');

% 标注显著的点
significantPoints = find(pValues < pValueThreshold);
for i = 1:length(significantPoints)
text(logFoldChange(significantPoints(i)), negLogPValues(significantPoints(i)), ...
num2str(significantPoints(i)), 'FontSize', 8);
end

% 增加参考线
line(xlim(), [-log10(pValueThreshold) -log10(pValueThreshold)], 'Color', 'green', 'LineStyle', '--');
line([-logFoldChangeThreshold -logFoldChangeThreshold], ylim(), 'Color', 'green', 'LineStyle', '--');
line([logFoldChangeThreshold logFoldChangeThreshold], ylim(), 'Color', 'green', 'LineStyle', '--');

% 添加轴标签和标题
xlabel('Log2 Fold Change');
ylabel('-Log10 p-Value');
title('Volcano Plot');

% 添加图例
legend({'Up-regulated', 'Down-regulated', 'Not significant'}, 'Location', 'northeastoutside');

% 格式化图像
set(gca, 'FontSize', 12);
grid on;
hold off;

 为了进一步美化,我们可以添加一些额外的格式设置,例如自定义颜色,透明度,以及改进的标注。如下所示,

 

火山图的用处

1. 差异表达基因的可视化:火山图是用来直观显示成千上万个基因或蛋白质之间表达水平差异显著性的工具。每个点代表一个基因或蛋白质,它的位置基于表达变化的大小(通常是对数变化率)和这种变化的统计显著性。

2. 筛选重要目标:火山图可以用来快速识别和筛选出那些表达变化最大且统计显著的基因或蛋白质。这些通常是研究中的关键分子,可能是疾病标记物或药物靶标。

3. 趋势观察:通过观察点的分布,研究人员可以了解基因表达变化的总体趋势,例如是否有很多基因表达上升或下降,以及变化是否集中在某个特定区域。

4. 数据质量评估:火山图也可以帮助研究人员评估实验数据的质量。理想情况下,大多数基因应该集中在图的中部,表示没有显著差异,而显著差异的基因应该均匀地分布在左右两侧。

5. 交互式探索:现代生物信息学软件提供的火山图通常是交互式的,允许用户点击特定的点来获取更多关于该基因或蛋白质的信息,如名称、功能以及与其他分子的关联。

6. 组合其他分析:火山图常与其他生物信息学工具和分析结合使用,比如富集分析、网络分析等,来进一步探索和解释数据中的生物学现象。

7. 通信工具:作为一种强有力的视觉工具,火山图可以在学术出版物、研究报告和演示中,帮助解释复杂的统计数据,并传达研究的关键发现。

火山图是一种功能强大的数据展示方法,它不仅能够显示单个基因或蛋白质的变化,还能在生物学上下文中提供这些变化的全局视图。通过这种方式,火山图帮助研究人员理解实验条件下生物学系统的整体响应。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手把手Docker部署Gitblit服务器

1拉取镜像 docker pull jacekkow/gitblit:v1.9.1 2.启动 docker run -d --name gitblit --restart always -p 10006:8080 -p 18443:8443 -p 19418:9418 -p 29418:29418 -v /data/gitblit/data:/opt/gitblit-data jacekkow/gitblit:v1.9.1 3.查看 默认账户/密码:admin/adm…

Trie字符串统计

题目传送门&#xff1a;835.Trie字符串统计 维护一个字符串集合&#xff0c;支持两种操作&#xff1a; I x 向集合中插入一个字符串 x&#xff1b;Q x 询问一个字符串在集合中出现了多少次。 共有 N 个操作&#xff0c;所有输入的字符串总长度不超过 105105&#xff0c;字符串仅…

您与此网站之间建立的连接不安全

连接不安全的主要原因之一是使用不安全的通信协议。在互联网传输中&#xff0c;如果使用的协议不加密&#xff0c;那么数据就容易受到窃听和篡改。另一个可能的原因是网站没有正确配置其安全证书&#xff0c;使得用户的连接没有得到适当的加密保护。 解决方法&#xff1a; 采用…

Jeson nano--安装使用摄像头csi/usb

Jeson nano--安装使用摄像头 一、 安装使用摄像头二、vscode调用摄像头总结 一、 安装使用摄像头 列出与视频设备相关的设备文件 ls /dev/video*显示与 /dev/video0 设备关联的摄像头支持的所有格式及其详细信息。可以查看输出以了解所支持的分辨率、帧率和像素格式等信息。请…

centos docker-compose安装教程-2024最新版 亲测可用

目录 长时间不安装,生疏了,再次记录下 1.下载 2.修改名称 3.提权 4.测试验证 长时间不安装,生疏了,再次记录下 1.下载 官网地址 docker-compose官网地址&#xff1a;https://docs.docker.com/compose/compose-file/compose-file-v3/ #进入目录 cd /usr/local/bin#下载 wg…

LeetCode讲解篇之216. 组合总和 III

文章目录 题目描述题解思路题解代码 题目描述 题解思路 使用递归回溯算法&#xff0c;当选择数字num后&#xff0c;在去选择大于num的合法数字&#xff0c;计算过程中的数字和&#xff0c;直到选择了k次&#xff0c;如果数组和等于n则加入结果集 从1开始选择数字&#xff0c;直…

jmeter如何做接口测试?

Jmeter介绍&测试准备&#xff1a; Jmeter介绍&#xff1a;Jmeter是软件行业里面比较常用的接口、性能测试工具&#xff0c;下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库。 前期准备&#xff1a;测试前&#xff0c;需要安装好Jmeter以及jdk并配置好jdk环…

基于时域有限差分法的FDTD的计算电磁学算法-YEE网格下的更新公式推导

基于时域有限差分法的FDTD的计算电磁学算法&#xff08;含Matlab代码&#xff09;-YEE网格下的更新公式推导 参考书籍&#xff1a;The finite-difference time-domain method for electromagnetics with MATLAB simulations&#xff08;国内翻译版本&#xff1a;MATLAB模拟的电…

LLM之RAG理论(五)| 使用知识图谱增强RAG

知识图谱&#xff08;KG&#xff09;或任何图都包括节点和边&#xff0c;其中每个节点表示一个概念&#xff0c;每个边表示一对概念之间的关系。本文介绍一种将任何文本语料库转换为知识图谱的技术&#xff0c;本文演示的知识图谱可以替换其他专业知识图谱。 一、知识图谱 知识…

Postman接口测试之断言,全网最细教程没有之一!

一、断言 在 postman 中我们是在Tests标签中编写断言&#xff0c;同时右侧封装了常用的断言&#xff0c;当然 Tests 除了可以作为断言&#xff0c;还可以当做后置处理器来编写一些后置处理代码&#xff0c;经常应用于&#xff1a; 【1】获取当前接口的响应&#xff0c;传递给…

JavaScript的一道题型

这道题我觉得考察的知识点蛮多的&#xff0c;就单独拿出来了&#x1f92d; <html> <head><title>Title</title> </head> <body> <input type"button" value"全选" id"qx"> <input type"butto…

关于编程的一些小小记录

这里记录一些关于编程的小技巧吧&#xff0c;算是个记录 1&#xff0c;vs同时有多个cpp文件怎么办&#xff1f; 我们只想运行第一个cpp文件&#xff0c;那么怎么做呢&#xff1f; 其实很简单&#xff0c;单击你不想让之运行的文件&#xff0c;点击最下面的属性 最后设置为这样…

强化学习应用(五):基于Q-learning算法的无人车配送路径规划(通过Python代码)

一、Q-learning算法介绍 Q-learning是一种强化学习算法&#xff0c;用于解决基于环境的决策问题。它通过学习一个Q-table来指导智能体在不同状态下采取最优动作。下面是Q-learning算法的基本步骤&#xff1a; 1. 定义环境&#xff1a;确定问题的状态和动作空间&#xff0c;并…

最小花费-银行转账-图的最短路-超详细解析注释

最小花费-银行转账-图的最短路-超详细解析注释 【题目描述】 在n个人中&#xff0c;某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费&#xff0c;请问A最少需要多少钱使得转账后B收到100元。 …

office办公技能|word中的常见通配符使用

一、删除Word中含有指定内容的整行 操作方法&#xff1a; 1、快捷键 CtrlH&#xff0c;打开Word的查找替换窗口&#xff0c;单击【更多】按钮&#xff0c;勾选“使用通配符”。 2、在查找内容处&#xff0c;输入“替换内容*^13”&#xff0c;替换为处什么都不填。 3、单击【…

现阶段Python和Java哪个更吃香?

现阶段Python和Java哪个更吃香&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Java的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&…

2024年最新版 springboot+vue整合支付宝沙箱支付功能,一步一步带您实现完整的支付宝支付功能

目录 1、进入支付宝开放平台 1.1 登录支付宝账号后下拉选择网页/移动应用开发​编辑 1.2 创建网页应用​编辑 1.3 创建成功后进入沙箱 1.4 点击启用公钥&#xff08;有重要作用&#xff01;springboot整合时会用到&#xff09;​编辑 2、开始springboot与支付宝沙箱的整…

2024年【山东省安全员C证】考试及山东省安全员C证复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 山东省安全员C证考试是安全生产模拟考试一点通总题库中生成的一套山东省安全员C证复审考试&#xff0c;安全生产模拟考试一点通上山东省安全员C证作业手机同步练习。2024年【山东省安全员C证】考试及山东省安全员C证复…

电影《潜行》中说的蜜罐是什么(网络安全知识)

近期刘德华、彭于晏主演的电影《潜行》在网上掀起了轩然大波&#xff0c;电影中有提到网络蜜罐&#xff0c;这引起了很多观众的疑问&#xff0c;蜜罐到底是什么&#xff1f; 从字面意思上来看&#xff0c;蜜罐就是为黑客设下的诱饵。这是一种具有牺牲性质的计算机系统&#xff…