跳转到主要内容

Python中基因集富集分析(GSEA)的Pandas API(GSEApy,cudaGSEA,GSEA)

项目描述

Build Status MIT License DOI

Python中基因集富集分析(GSEA)的Pandas API(GSEApy,cudaGSEA,GSEA)

  • 旨在为各种GSEA实现提供一个统一的API;使用pandas DataFrames和Pythonic类的层次结构。

  • 文件导出(导出GSEA的输入)使用低级numpy函数,比在pandas中快得多

  • 旨在允许研究人员轻松比较不同的GSEA实现,并将这些实现集成到需要高性能GSEA的项目中(例如,大规模筛选药物重定位)

  • 为使用GMT文件或在Python中一般处理基因集和通路提供了有用的工具

安装

要安装API,请使用

pip3 install gsea_api

有关特定GSEA实现安装的说明,请参阅下面

示例用法

from pandas import read_table
from gsea_api.expression_set import ExpressionSet
from gsea_api.gsea import GSEADesktop
from gsea_api.molecular_signatures_db import GeneSets

reactome_pathways = GeneSets.from_gmt('ReactomePathways.gmt')

gsea = GSEADesktop()

design = ['Disease', 'Disease', 'Disease', 'Control', 'Control', 'Control']
matrix = read_table('expression_data.tsv', index_col='Gene')

result = gsea.run(
    # note: contrast() is not necessary in this simple case
    ExpressionSet(matrix, design).contrast('Disease', 'Control'),
    reactome_pathways,
    metric='Signal2Noise',
    permutations=1000
)

其中expression_data.tsv的格式如下

Gene    Patient_1   Patient_2   Patient_3   Patient_4   Patient_5   Patient_6
TACC2   0.2 0.1 0.4 0.6 0.7 2.1
TP53    2.3 0.2 2.1 2.0 0.3 0.6

MSigDB集成

分子签名数据库(MSigDB)可以从Broad研究所GSEA网站下载。它提供了专家精选的基因集集合,以及精选的通路数据库子集(Reactome,KEGG,Biocarta,基因本体),以去除冗余、重叠和其他价值不大的术语(如有必要)。

您可以一次性下载所有通路集合(在下载页面搜索ZIP压缩的MSigDB)。下载并解压缩后(例如,到一个名为msigdb的本地目录),您可以使用以下方式访问MSigDB中的基因集:

from gsea_api.molecular_signatures_db import MolecularSignaturesDatabase

msigdb = MolecularSignaturesDatabase('msigdb', version=7.1)
msigdb.gene_sets

msigdb.gene_sets 返回一个描述自动检测到的通路的字典列表

[
    {'name': 'c1.all', 'id_type': 'symbols'},
    {'name': 'c1.all', 'id_type': 'entrez'},
    {'name': 'c2.cp.reactome', 'id_type': 'symbols'},
    {'name': 'c2.cp.reactome', 'id_type': 'entrez'}
    # etc..
]

有关磁盘位置和版本信息,请查看msigdb.pathmsigdb.version

msigdb.load 将特定集合加载到GeneSets对象中

> kegg_pathways = msigdb.load('c2.cp.kegg', 'symbols')
> print(kegg_pathways)
<GeneSets 'c2.cp.kegg' with 186 gene sets>

此对象可以传递给任何支持的GSEA实现;请参阅下文,了解GeneSets对象的详细描述。

GeneSets对象

GeneSets代表一组基因的集合,其中每个集合都表示为GeneSet对象。

您可以使用以下方法检查集合中包含的集合数量:

> len(kegg_pathways)
186

基因集可以通过gene_sets(元组)和gene_sets_by_name(字典)属性访问

> kegg_pathways.gene_sets[:2]
(<GeneSet 'KEGG_TIGHT_JUNCTION' with 132 genes>, <GeneSet 'KEGG_RNA_DEGRADATION' with 59 genes>)
> kegg_pathways.gene_sets_by_name
{
    'KEGG_TIGHT_JUNCTION': <GeneSet 'KEGG_TIGHT_JUNCTION' with 132 genes>,
    'KEGG_RNA_DEGRADATION': <GeneSet 'KEGG_RNA_DEGRADATION' with 59 genes>
    # etc.
 }

子集集合

有时实验中只测量了部分基因。您可以从集合中删除不包含任何测量基因的基因集

> measured_genes = {'APOE', 'CYB5R1', 'FCER1G', 'PVR', 'HK2'}
> measured_subset = kegg_pathways.subset(measured_genes)
> print(measured_subset)
<GeneSets with 12 gene sets>

跳过的基因集在measured_subset.empty_gene_sets中可用于检查。

修剪集合

> kegg_pathways.trim(min_genes=10, max_genes=20)
<GeneSets with 21 gene sets>

美化名称

def prettify_kegg_name(name):
    return name.replace('KEGG_', '').replace('_', ' ')

kegg_pathways_pretty = kegg_pathways.format_names(prettify_kegg_name)
kegg_pathways_pretty.gene_sets[:2]
# (<GeneSet 'TIGHT JUNCTION' with 132 genes>, <GeneSet 'RNA DEGRADATION' with 59 genes>)

其他属性

GeneSets提供的其他属性和方法包括:- all_genes:返回集合中所有基因的集合,这些基因被基因集所覆盖 - name:集合的名称 - to_frame() 返回一个描述基因成员资格的pandas DataFrame(基因集 = 行,基因 = 列),可用于UpSet可视化(例如,使用ComplexUpset) - to_gmt(path: str) 将基因集导出为GMT(基因矩阵转置)文件

安装GSEA实现

以下GSEA实现得到支持

来自Broad研究所的GSEA

官方GSEA网站上登录/注册并下载gsea_3.0.jar文件(或更新的版本)。

使用gsea_jar_path参数提供下载文件的路径给GSEADesktop(),例如:

gsea = GSEADesktop(gsea_jar_path='downloads/gsea_3.0.jar')

GSEApy

要使用gsea.py,请使用以下命令安装它:

pip3 install gseapy

使用它:

from gsea_api.gsea import GSEApy

gsea = GSEApy()

cudaGSEA

请将此cudaGSEA分支克隆到第三方目录并编译二进制版本(使用此存储库中的说明)

git clone https://github.com/krassowski/cudaGSEA

或使用原始版本,该版本未实现FDR计算。

使用它:

from gsea_api.gsea import cudaGSEA

# CPU implementation can be used with use_cpu=True
gsea = cudaGSEA(fdr='full', use_cpu=False)

引用

DOI

请同时引用您使用的包装工具的作者。

参考文献

此代码的初始版本是为伦敦帝国理工学院的研究生论文项目编写的。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

gsea_api-0.3.4.tar.gz (16.6 kB 查看哈希值)

上传时间: 源代码

支持