当前位置: 首页 > news >正文

科研绘图(四)火山图

       火山图是生物信息学中常用的一种图表,用来显示基因表达数据的变化。它通常将每个点表示为一个基因,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. 通信工具:作为一种强有力的视觉工具,火山图可以在学术出版物、研究报告和演示中,帮助解释复杂的统计数据,并传达研究的关键发现。

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

 

相关文章:

科研绘图(四)火山图

火山图是生物信息学中常用的一种图表&#xff0c;用来显示基因表达数据的变化。它通常将每个点表示为一个基因&#xff0c;x轴显示对数比率&#xff08;log ratio&#xff09;&#xff0c;表示基因表达的变化大小&#xff1b;y轴显示-log10(p-value)&#xff0c;表示变化的统计…...

超强站群系统v9.0:最新蜘蛛池优化技术,一键安装,内容无缓存刷新,高效安全

安全、高效&#xff0c;化的优化利用php性能&#xff0c;使得运行流畅稳定 独创内容无缓存刷新不变&#xff0c;节省硬盘。防止搜索引擎识别蜘蛛池 蜘蛛池算法&#xff0c;轻松构建站点&#xff08;电影、资讯、图片、论坛等等&#xff09; 可以个性化每个网站的风格、内容、…...

torch.fx的极简通用量化教程模板

现在比较流行的方式,是使用 torch.fx来做量化,比如地平线J3/J5的oe开发包中内嵌的ptq/qat量化方式,就是基于torch.fix进行开发的。本文将使用100行代码教你入门比较标准的量化步骤。,这些问题需要解答。本文100行代码,麻雀虽小五脏俱全,包括怎么用,用在哪里,哪里不能用…...

rpc的正确打开方式|读懂Go原生net/rpc包

前言 大家好&#xff0c;这里是白泽&#xff0c;之前最近在阅读字节跳动开源RPC框架Kitex的源码&#xff0c;分析了如何借助命令行&#xff0c;由一个IDL文件&#xff0c;生成client和server的脚手架代码&#xff0c;也分析了Kitex的日志组件klog。当然Kitex还有许多其他组件&…...

【信号与系统】【北京航空航天大学】实验二、连续时间系统的时域分析【MATLAB】

一、实验目的 1、掌握连续时间信号的卷积运算以及其对应的 MATLAB 实现方法&#xff1b; 2、掌握连续系统的冲激响应、阶跃响应 以及其对应的 MATLAB 实现方法&#xff1b; 3、掌握利用 MATLAB 求 LTI &#xff08;Linear Time-Invariant, 线性时不变&#xff09;系统响应的方…...

【Linux 内核源码分析笔记】系统调用

在Linux内核中&#xff0c;系统调用是用户空间程序与内核之间的接口&#xff0c;它允许用户空间程序请求内核执行特权操作或访问受保护的内核资源。系统调用提供了一种安全可控的方式&#xff0c;使用户程序能够利用内核功能而不直接访问底层硬件。 系统调用&#xff1a; 通过…...

mysql清空并重置自动递增初始值

需求&#xff1a;当上新项目时&#xff0c;测试环境数据库导出来的表id字段一般都有很大的初始递增值了&#xff0c;需要重置一下 先上代码&#xff1a; -- 查看当前自动递增值 SHOW CREATE TABLE table_name; -- 重建自动递增索引&#xff08;可选&#xff09; ALTER TABLE t…...

计算机算法之二分算法

文章目录 前言核心问题遍历查找思路遍历查找代码实现遍历查找缺点二分查找思路二分查找代码实现二分查找优点二分查找的变种问题一解题思路代码实现问题二解题思路代码实现 前言 大家好&#xff0c;我是醉墨居士&#xff0c;今天聊一下计算机中的经典算法 - 二分算法 核心问题…...

获取当前设备的IP

背景&#xff1a; 在本地使用自带webUI的项目时&#xff0c;需要制定webUI的访问地址。 一般本地访问使用&#xff1a;127.0.0.1&#xff0c;配置为可以从其他设备访问时&#xff0c;需要指定当前设备的IP&#xff0c;或者指定为0.0.0.0。 例如&#xff1a;使用locust的时候&a…...

koa2文件的上传下载功能

const Router require(“koa-router”); const upload new Router(); const bodyParser require(“koa-bodyparser”); const multer require("koa/multer"); const path require(“path”); const article require("…/utils/sql"); const { getCur…...

test-02-test case generate 测试用例生成 EvoSuite 介绍

拓展阅读 junit5 系列 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) 拓展阅读 自动生成测试用例 什么…...

1.单表查询

作业要求 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varc…...

FFmpeg 的使用与Docker安装流媒体服务器

本文阐述的均为命令行的使用方式&#xff0c;并不牵扯FFmpeg 的 C音视频开发内容&#xff0c;补充一句&#xff0c;C的资料真的少&#xff0c;能把C学好的人&#xff0c;我真的是觉得巨佬。 我主要是使用FFmpeg 推流方面的知识&#xff0c;案例大都是靠近这方面。 一、FFmpeg…...

Qt QListWidget列表框控件

文章目录 1 属性和方法1.1 外观1.2 添加条目1.3 删除条目1.4 信号和槽 2 实例2.1 布局2.2 代码实现 Qt中的列表框控件&#xff0c;对应的类是QListWidget 它用于显示多个列表项&#xff0c;列表项对应的类是QListWidgetitem 1 属性和方法 QListWidget有很多属性和方法&#xf…...

小知识分享2

文章目录 1.TCP/IP协议2.四次挥手断开连接3.TCP的三次握手和四次挥手4.在什么情况下需要设置WINS Proxy&#xff1f;5.用户与用户账户有什么不同&#xff1f;为什么需要使用用户账户&#xff1f; 1.TCP/IP协议 1、TCP/IP、Transmission Control Protocol/internet Protocol,传…...

【Golang开源项目】Golang高性能内存缓存库BigCache设计与分析

项目地址 BigCache 是一个快速&#xff0c;支持并发访问&#xff0c;自淘汰的内存型缓存&#xff0c;可以在存储大量元素时依然保持高性能。BigCache将元素保存在堆上却避免了GC的开销。 背景介绍 BigCache的作者在项目里遇到了如下的需求&#xff1a; 支持http协议支持 10…...

Elasticsearch 7.8.0从入门到精通

安装Elasticsearch 7.8.0 官网&#xff1a;Elasticsearch 7.8.0 | Elastic 大家下载所需要的安装包即可。然后解压缩&#xff1a; Elasticsearch是通过java编写的&#xff0c;所以自带jdk。多好&#xff0c;下载Elasticsearch赠送jdk 0.0&#xff0c;不过一般我们用自己的jdk…...

寻找最富裕的小家庭 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 在一棵树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭现给你一棵树,请计算出最富裕的小家庭的财富和。 输入描述 第一行为一个数N,…...

ssm基于Java的药店药品信息管理系统的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;药品信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…...

Word插件-大珩助手-手写电子签名

手写签名 支持鼠标写&#xff0c;支持触摸屏写&#xff0c;点击画笔按钮切换橡皮擦&#xff0c;支持清空画板重写&#xff0c;点击在word中插入签名&#xff0c;可插入背景透明的签字图 素材库-保存签名 将写好的签字图复制粘贴到素材库中&#xff0c;以便永久使用&#xff…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...