这个工具让你5分钟搞定GSEA分析!还不来看看?

在某一项研究中,我们通过转录组或者蛋白组学研究了干预组和对照组的表达谱,获得了数千个基因的变化信息,如何从这些表达谱中发掘有用的信息?初步的生物信息分析可能已经给我们提供了它们之间的差异倍数,P值等等。接下来我们可以使用在线工具对基因表达的分布进行分析。这里提供一个最近更新的简单又快捷,不需要安装的在线分析工具。

 

01

 

首先点击网站      

见文末

 

如Figure 1所示  第一行显示的是不同的分析类型,从左边起第一个是ORA (Over-representation analysis,过度表达分析 ) 检查符合选择标准的基因,并确定该列表中是否存在统计学上过度表达的基因集。第二个是我们最常用的GSEA (基因富集分析,Gene Set Enrichment  Analysis)(红色圈圈)。GSEA用来确定先验定义的一组基因是否在两种生物学状态(例如表型)之间显示出统计学上显着而且一致的差异。第三个是NTA(Network Topology-based Analysis,基于网络拓扑的分析)。第四个是2019年新增加的功能磷酸化位点分析。

 

文章剩余内容<<<

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的基因的GSEA分析代码示例,供参考: ```python import pandas as pd import numpy as np from scipy.stats import norm # 读取基因达数据 gene_expression_data = pd.read_csv("gene_expression_data.csv") # 读取基因集合数据 gene_set_data = pd.read_csv("gene_set_data.csv") # 计算每个基因的达值的均值 gene_expression_mean = gene_expression_data.mean(axis=1) # 基于基因达均值计算基因的排名 gene_ranks = gene_expression_mean.rank(method='min') # 初始化GSEA参数 n_genes = len(gene_ranks) n_perms = 1000 gene_set_size_min = 15 gene_set_size_max = 500 alpha = 0.05 # 计算基因集合的ES值 def calculate_es(gene_set): gene_ranks_in_set = gene_ranks[gene_ranks.index.isin(gene_set)] gene_set_size = len(gene_ranks_in_set) if gene_set_size < gene_set_size_min: return np.nan else: es = 0 running_sum = 0 for gene_rank in gene_ranks: if gene_rank in gene_ranks_in_set: running_sum += 1 else: running_sum -= 1 es = max(es, running_sum) return es / gene_set_size # 计算基因集合的NES值 def calculate_nes(gene_set, gene_set_es, gene_set_size): gene_set_mean = gene_expression_mean[gene_expression_mean.index.isin(gene_set)] gene_set_sd = np.std(gene_set_mean, ddof=1) if gene_set_sd == 0: return np.nan else: nes = gene_set_es / gene_set_sd return nes # 计算随机排列基因集合的ES值 def calculate_permutation_es(gene_set): permuted_ranks = gene_ranks.sample(frac=1).reset_index(drop=True) permuted_es = calculate_es(gene_set, permuted_ranks) return permuted_es # 计算基因集合的p值和FDR校正的p值 def calculate_p_value(gene_set_es, permutation_es): p_value = (np.sum(permutation_es >= gene_set_es) + 1) / (len(permutation_es) + 1) fdr_p_value = p_value * n_perms return p_value, fdr_p_value # 进行GSEA分析 results = [] for index, row in gene_set_data.iterrows(): gene_set = row['gene_set'].split(',') gene_set_es = calculate_es(gene_set) if np.isnan(gene_set_es): continue gene_set_size = len(gene_set) if gene_set_size < gene_set_size_min or gene_set_size > gene_set_size_max: continue permutation_es = [calculate_permutation_es(gene_set) for i in range(n_perms)] p_value, fdr_p_value = calculate_p_value(gene_set_es, permutation_es) if fdr_p_value <= alpha: nes = calculate_nes(gene_set, gene_set_es, gene_set_size) results.append({ 'gene_set': row['gene_set'], 'es': gene_set_es, 'nes': nes, 'p_value': p_value, 'fdr_p_value': fdr_p_value, 'gene_set_size': gene_set_size }) # 输出结果 results_df = pd.DataFrame(results) results_df = results_df.sort_values(by=['fdr_p_value'], ascending=True) print(results_df) ``` 这个代码是一个简单的基因的GSEA分析代码示例,具体实现过程如下: 1. 读取基因达数据和基因集合数据,计算每个基因的达值的均值。 2. 基于基因达均值计算每个基因的排名。 3. 初始化GSEA参数,包括基因集合的大小范围、置信水平等。 4. 定义计算基因集合的ES值、NES值、随机排列基因集合的ES值、p值和FDR校正的p值的函数。 5. 对每个基因集合进行GSEA分析,计算其ES值、NES值、p值和FDR校正的p值,筛选出FDR校正的p值小于等于置信水平的基因集合,并将结果保存在结果列中。 6. 输出结果,按照FDR校正的p值升序排列。 需要注意的是,这个代码只是一个简单的示例,实际应用中可能需要根据具体情况进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值