最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

python版本GSEA分析并可视化

网站源码admin3浏览0评论

python版本GSEA分析并可视化

差异基因列表

还是使用前面做过的一个芯片数据的差异结果:2万个基因少一半也不影响最后的差异分析富集结果啊?

数据为:.cgi?acc=GSE17351,拿到之后进行芯片预处理并做差异表达分析得到一个差异结果,或者 微信找我发你:Biotree123。

或者百度云盘:链接: 提取码: uavp 。

读取差异基因结果:

代码语言:javascript代码运行次数:0运行复制
# 导入模块
import pandas as pd
import gseapy as gp

# 读取差异分析结果
# 记住文件路径改成自己的
# index_col=0:第一列读取为行名
deg = pd.read_csv("./GSE17351/DEG.csv", index_col=0)
deg.head()

差异结果如下:

提取基因排序列表

这里用到的基因为全部的基因,包括显著的和不显著的:

代码语言:javascript代码运行次数:0运行复制
ranking = deg[['gene', 'log2FC']]
# 对基因列表排序,降序排列
ranking = ranking.sort_values('log2FC', ascending = False).reset_index(drop = True)
ranking

获取基因集

还是老办法,像之前的稿子一样:python版本的功能富集分析:GSEApy

下载50条 hallmarks 通路:

代码语言:javascript代码运行次数:0运行复制
msig = gp.Msigdb()
gmt = msig.get_gmt(category='h.all', dbver="2024.1.Hs")

# 查看一下基因集合
list(gmt.keys())[0:10]
# 列出某个基因集里的基因
gene_set=gmt['HALLMARK_ADIPOGENESIS']
print(gene_set) 

运行GSEA分析

prerank函数:

具体参数:

  • ranking:输入的排序基因列表,是一个数据框或者Series结构
  • gene_sets:输入基因集,是一个list列表或者dict字典结构
  • outdir:输出目录
  • min_size/max_size:基因集大小过滤参数,设置可以让多的基因集留下来
  • permutation_num:随机扰动次数
代码语言:javascript代码运行次数:0运行复制
# run gsea
pre_res = gp.prerank(rnk = ranking, gene_sets = gmt, seed = 6, permutation_num = 1000, min_size=1, max_size=10000,outdir="./")

# 结果类型
type(pre_res)
# gseapy.gsea.Prerank

对结果转换为数据框:

代码语言:javascript代码运行次数:0运行复制
out = []

for term in list(pre_res.results):
    out.append([term,
               pre_res.results[term]['fdr'],
               pre_res.results[term]['es'],
               pre_res.results[term]['nes']])

out_df = pd.DataFrame(out, columns = ['Term','fdr', 'es', 'nes']).sort_values('fdr').reset_index(drop = True)
out_df.head()

结果可视化

绘制一下GSEA结果经典图:

代码语言:javascript代码运行次数:0运行复制
# 选一条通路看看
# color="black":修改曲线的颜色
gp.gseaplot(rank_metric = pre_res.ranking,term = 'HALLMARK_WNT_BETA_CATENIN_SIGNALING', **pre_res.results['HALLMARK_WNT_BETA_CATENIN_SIGNALING'],color="black")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-25,如有侵权请联系 cloudcommunity@tencent 删除可视化排序数据芯片python

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论