网易首页 > 网易号 > 正文 申请入驻

使用 Seaborn 绘制pair plot可视化变量之间的相关性

0
分享至

使用散点图评估数值变量之间的相关性很简单,但是分类变量呢?

散点图是很好的可视化工具,用于评估数值或连续变量之间的关系和关联。但是使用数据点来评估分类变量可能并不那么简单。

考虑一个常见的场景,研究人员想要在微阵列(包含约 20,000 个转录本)中找出实验条件 A 是否引发与条件 B 相同的基因表达谱。绘制条形图或箱形图以可视化所有基因表达差异和趋势。但是因存在大量数据点,全部绘制在一张图上会对性能有极大的挑战。

聚类图或热图可能是另一种可视化基因表达差异的替代方法。这些图表没有提供统计数据来衡量基因表达差异的趋势是相似还是不同。所以为了解决这些限制可以使用相关矩阵和pairplot,我们使用Seaborn 可以轻松的绘制他们。如果使用原始值,需要通过计算 log2–transformed fold-change (log2FC) 值来标准化数据。如果数据是带有时间性质,则可以根据基线(时间 = 0)计算 log2FC。

在这篇文章中,我们将使用 Seaborn 和 matplotlib 库:

import csv
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

这里我们将使用Zak等人2012年发表的transcriptomics 数据集,研究血清阳性和血清阴性受试者在不同时间点对Merck Ad5/HIV疫苗的反应。该研究的总结可以在本篇文章的引用中找到,Partek Genomics Suite分析的处理数据集可以在GitHub中找到。这里我们根据基线(时间点= 0)计算fold change, ratio, p-value和adjusted p-value (q-value)。

在这篇文章中,我们将分析Merck Ad5/HIV疫苗接种后不同时间点之间的相关性。

我们将从GitHub加载和处理过的数据文件。将基因列标记为索引列以供参考是很重要的。代码如下:

df = pd.read_csv('https://raw.githubusercontent.com/kuanrongchan/vaccine-studies/main/Ad5_seroneg.csv',index_col=0)
df.head()

输出文件显示了与基线(时间点= 0)相比的6小时、1天、3天和7天时间点的p-value (pval)、调整后的p-value (qval)、比率和折叠变化(fc)的值:

由于log2FC值近似于正态分布或对数正态分布,这些值最适合用于分类变量之间的相关性。因此,我们将把log2FC值制成表格,并过滤包含各个时间点的log2FC值。

df['log2FC_6h'] = np.log2(df['ratio_6h'])
df['log2FC_1d'] = np.log2(df['ratio_1d'])
df['log2FC_3d'] = np.log2(df['ratio_3d'])
df['log2FC_7d'] = np.log2(df['ratio_7d'])df_log2FC = df.filter(items=['log2FC_6h','log2FC_1d', 'log2FC_3d', 'log2FC_7d'])
df_log2FC

输出文件如下:

计算不同时间点之间的相关系数,代码如下:

corr = df_log2FC.corr()
corr

显示相关系数的输出为:

数据表明,第 1 天的基因特征与第 3 天最相似。有趣的是,疫苗接种后 6 小时的特征也与第 7 天相似。

接下来,我们可以评估相关性的p值,以检验相关性的显著性。我们导入SciPy并执行如下代码:

from scipy import stats
from scipy.stats import pearsonr
pvals = pd.DataFrame([[pearsonr(df_log2FC[c], df_log2FC[y])[1] for y in df_log2FC.columns] for c in df_log2FC.columns],
columns=df_log2FC.columns, index=df_log2FC.columns)
pvals

输出是这样的:

请注意,所有的相关性都是显著的,可能是因为统计分析考虑了大量的数据点。

为了在相关矩阵中显示这些相关系数,我们可以使用以下代码:

mask = np.zeros_like(corr)
mask[np.triu_indices_from(mask)] = True
with sns.axes_style('white'):
f, ax = plt.subplots(figsize=(10, 7))
ax = sns.heatmap(corr, cmap='vlag', mask=mask, center=0, square=True, linewidths=2, annot=True, cbar_kws={'shrink': .5})

简单解释一下上面的代码。 这些代码在相关矩阵的上半部分和相同变量之间的相关性上添加一个掩码,以便用户可以专注于图下半部分的比较。 我还定义了图形大小、使用的颜色图(范围从蓝色到红色,其中蓝色为负相关,红色为正相关),并将相关值集中在 0(白色)处。 annot(注释) 提供图形中的相关系数值,而linewidth (线条宽度) 使我们能够更好地分隔正方形。

相关矩阵的输出如下所示:

为了让我们看到组成相关矩阵的点,我们可以使用下面的命令来绘制pair plot:

g = sns.pairplot(df_log2FC)
g.map_lower(sns.regplot)

pairplot主要展示变量之间的两两关系,它的下半部分将包含回归图,以便更清楚地可视化趋势和斜率。 这在有大量数据点情况下尤为重要。 输出文件如下:

作者:Kuan Rong Chan

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
奥巴马:“外星人确实存在,但……”

奥巴马:“外星人确实存在,但……”

环球时报国际
2026-02-15 22:35:39
李玮锋:踢日本恨不得把鞋钉换成刀!我们比赛没赢过 场上没怂过

李玮锋:踢日本恨不得把鞋钉换成刀!我们比赛没赢过 场上没怂过

念洲
2026-02-15 17:07:32
西贝频繁发声,硬汉和悲情互织,罗永浩长文回应,为何哪么毒舌?

西贝频繁发声,硬汉和悲情互织,罗永浩长文回应,为何哪么毒舌?

匀枫财技大兜底
2026-02-15 12:14:58
库里宣布百分百参加明年三分赛!冲击个人第三冠:叫上利拉德克莱

库里宣布百分百参加明年三分赛!冲击个人第三冠:叫上利拉德克莱

罗说NBA
2026-02-16 06:06:31
羡慕!新人结婚邀请索尼 结果索尼真随礼了!

羡慕!新人结婚邀请索尼 结果索尼真随礼了!

游民星空
2026-02-15 22:53:10
我方开启全面索赔,巴拿马43个港口或保住,李嘉诚险遭“0元购”

我方开启全面索赔,巴拿马43个港口或保住,李嘉诚险遭“0元购”

白梦日记
2026-02-15 18:45:30
王毅和1米98的德国总理默茨比身高

王毅和1米98的德国总理默茨比身高

大象新闻
2026-02-15 23:47:09
中国反制巴拿马之际又一地“起火”,美想把中国赶走,绝无可能!

中国反制巴拿马之际又一地“起火”,美想把中国赶走,绝无可能!

梁讯
2026-02-14 11:20:43
星链正式入越!马斯克卫星互联网获越南官方许可

星链正式入越!马斯克卫星互联网获越南官方许可

缅甸中文网
2026-02-15 14:14:22
清华全球第三,北大全球第七,国内11所高校跻身全球前100

清华全球第三,北大全球第七,国内11所高校跻身全球前100

史海流年号
2026-02-13 11:13:26
辽视春晚收视率又爆表了,这么好的成绩,其它卫视为什么不抄作业

辽视春晚收视率又爆表了,这么好的成绩,其它卫视为什么不抄作业

马庆云的影音娱
2026-02-15 22:42:48
被大量提问内部逻辑!谷歌 Gemini 遭蒸馏攻击

被大量提问内部逻辑!谷歌 Gemini 遭蒸馏攻击

安兔兔
2026-02-15 22:02:32
担心的事还是发生,跑丢编制的女护士张水华,又回到了她的怪圈

担心的事还是发生,跑丢编制的女护士张水华,又回到了她的怪圈

天天热点见闻
2026-02-15 08:24:58
惊人一致!99%的男人玩够女人后,都会默契地做出这3种行为

惊人一致!99%的男人玩够女人后,都会默契地做出这3种行为

朗威谈星座
2026-02-07 15:17:30
KD说没说错?东契奇和约基奇全明星合砍2分,第二场直接不打

KD说没说错?东契奇和约基奇全明星合砍2分,第二场直接不打

懂球帝
2026-02-16 08:29:07
8岁女孩拿到6张奖状在母亲坟前哭诉“没有意义你看不到”,40岁姑姑安慰“我奖励你”,涡阳县民政:正核实跟进

8岁女孩拿到6张奖状在母亲坟前哭诉“没有意义你看不到”,40岁姑姑安慰“我奖励你”,涡阳县民政:正核实跟进

极目新闻
2026-02-15 21:02:32
林肯汽车,还能挺过明年吗?

林肯汽车,还能挺过明年吗?

汽车K线
2026-02-14 09:16:15
有意思,湖人队勒布朗·詹姆斯在NBA全明星赛新闻发布会上谈退役

有意思,湖人队勒布朗·詹姆斯在NBA全明星赛新闻发布会上谈退役

好火子
2026-02-16 04:22:41
“一号难求”,全球爆火!大量外国人求这个中国产品的使用教程,美国导演:这能搞垮好莱坞

“一号难求”,全球爆火!大量外国人求这个中国产品的使用教程,美国导演:这能搞垮好莱坞

新民晚报
2026-02-15 15:18:34
刚刚! 中国当局已抵澳, 与澳洲联手, 全力追捕这个让全球震怒的中国留学生!

刚刚! 中国当局已抵澳, 与澳洲联手, 全力追捕这个让全球震怒的中国留学生!

澳洲红领巾
2026-02-15 11:58:23
2026-02-16 08:48:49
deephub incentive-icons
deephub
CV NLP和数据挖掘知识
1922文章数 1448关注度
往期回顾 全部

科技要闻

OpenAI拿下OpenClaw,承诺开源绝不动摇

头条要闻

王菲将六登春晚 还未开唱歌曲已经火了

头条要闻

王菲将六登春晚 还未开唱歌曲已经火了

体育要闻

NBA三分大赛:利拉德带伤第三次夺冠

娱乐要闻

2026央视春晚最新剧透 重量级嘉宾登场

财经要闻

2025,中国商业十大意外,黄金只排第九

汽车要闻

奔驰中国换帅:段建军离任,李德思接棒

态度原创

数码
本地
时尚
旅游
公开课

数码要闻

盲测显示:音频发烧友无法分辨铜线、香蕉与湿泥传输的音频信号

本地新闻

春花齐放2026:《骏马奔腾迎新岁》

多巴胺失宠了?过年这样穿彩色时髦又减龄

旅游要闻

新春走基层|群鸥日翔集 灯河夜璀璨——市民游客沉浸津城年味新景

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版